Professional Documents
Culture Documents
OLC Whitepaper RESTAPIforManagingRMC
OLC Whitepaper RESTAPIforManagingRMC
API for
Loading Rich
Media Content
Oracle Learning Cloud
DISCLAIMER
This document in any form, software or printed matter, contains proprietary information that is the
exclusive property of Oracle. Your access to and use of this confidential material is subject to the
terms and conditions of your Oracle software license and service agreement, which has been
executed and with which you agree to comply. This document and information contained herein may
not be disclosed, copied, reproduced or distributed to anyone outside Oracle without prior written
consent of Oracle. This document is not part of your license agreement nor can it be incorporated into
any contractual agreement with Oracle or its subsidiaries or affiliates.
This document is for informational purposes only and is intended solely to assist you in planning for the
implementation and upgrade of the product features described. It is not a commitment to deliver any
material, code, or functionality, and should not be relied upon in making purchasing decisions. The
development, release, and timing of any features or functionality described in this document remains at
the sole discretion of Oracle.
Due to the nature of the product architecture, it may not be possible to safely include all features
described in this document without risking significant destabilization of the code.
2 W HITE PAPER / Using REST API for Loading Rich Media Content
TABLE OF CONTENTS
Videos ........................................................................................................................................12
3 W HITE PAPER / Using REST API for Loading Rich Media Content
Understanding Akamai Token Expiration ...................................................................................13
Process Overview.......................................................................................................................13
How HDL Managed Objects are Dependent on the REST Content Managed Objects...............14
Troubleshooting ......................................................................................... 27
Learning Content Service Error Code 500 Internal Server Error Response ...............................27
4 W HITE PAPER / Using REST API for Loading Rich Media Content
5 W HITE PAPER / Using REST API for Loading Rich Media Content
ORACLE LEARNING CLOUD
6 W HITE PAPER / Using REST API for Loading Rich Media Content
DATA MOVEMENT BETWEEN ENVIRONMENTS
Rich media bits are not cloned/copied/preserved on the target when performing P2T, T2T, T2P, etc.
The metadata about OLC Rich media content items will always be transferred from the source to the
target, but the rich media bits on the OLC Akamai POD will not be transferred from the source to the
target. However, loading the rich media bits of an OLC Content Item to the OLC Akamai POD can be
(re)executed on the target after the P2T operation so the rich media items are playable on the target.
Note: For a complete list of supported media formats, compatibility and limitations visit the System
Requirements for Oracle Applications Cloud web page, and view the Learning Cloud Service
section under Oracle Human Capital Management Cloud.
Recommended Reading: Refer to the document called “Understanding Data Loading and
Migration” (DOC ID 2518764.1) on My Oracle Support.
Oracle Learning Cloud REST services provides a powerful, convenient, and simple web services
interface for interacting with Oracle Learning Cloud. REST is used to load in rich media content (for
example SCORM, Video, PDF) and then this rich media content is associated to a self-paced learning
item activity. This is an example of the course hierarchy of learning objects, how they are associated
to one another, and how they are loaded into the system.
7 W HITE PAPER / Using REST API for Loading Rich Media Content
– Rich Media Content Item (Loaded in via REST)
• To get, create, and update content items, use REST Service - eLearning Content
• To get content items, use REST Service – eLearning Content Read Only
https://XXXX-test.hcm.us2.oracle.com/hcmCore/faces/FndOverview,
XXXX-test.hcm.us2.oracle.com.
Once you have this hostname, the URL for the Learning Content item REST endpoint will be as
follows:
http://HOSTNAME_ABOVE/hcmRestApi/resources/latest/learningContentItems
The following table outlines the mandatory and optional input payload attributes for the learning
content service when creating a new content item. Unless otherwise indicated, the attributes apply to
all content types: Online Content (SCORM, HACP), Video, PDF, and Web Link.
File Name String Only if tracking type value is: • 30 characters maximum
• ORA_SCORM_12 including extension.
• ORA_SCORM_2004 Valid Extensions:
• ORA_HACP • Online Content: .zip
• ORA_CONTENT_VIDEO • Video: .mov
• ORA_PDF • PDF: .pdf
8 W HITE PAPER / Using REST API for Loading Rich Media Content
URL String Only if tracking type value is
ORA_AUTO (Web link)
URL String No. Only if tracking type value is 2000 character maximum, fully
ORA_AUTO (Web link) qualified URL.
9 W HITE PAPER / Using REST API for Loading Rich Media Content
For example, if during an implementation a self-paced activity is loaded with HDL with an Effective
Start Date of Start of Time and an End Date of January 1st 2019, and then the rich media content is
loaded with an Effective Start Date and Effective End Date that falls outside of the effective dating of
the self-paced activity. Let’s say the rich media content Effective Start Date is July 1st, 2019, and has
an Effective End date of End of Time. There is a gap of 6 months between the self-paced activity
Effective Dates and the rich media content item Effective Dates. If users view this in Oracle Learning
Cloud prior to July 1st, 2019, the offering will display to them, but the rich media content will not show
to them due to the rich media content and offering dates not overlapping.
Note: Setting the Effective Start Date and Effective End Date is optional. If no value is assigned,
during the REST services rich media content load, the Effective Start Date will default the Effective
Start Date to the date of the rich media content load, and the Effective End Date will default to the
end of time.
Adding Effective Start and Effective End Dates can only be done in the initial POST of rich media
content. Effective Start and Effective End Dates can’t be updated via a PUT. Updating Effective Start
and Effective End Dates via REST or HDL is not allowed due to the data corruption that this could
cause in the system if you do not handle these updates correctly.
When loading in rich media content items, the best practice to use is to set the Effective Start Date to
the “start of time” and the Effective End Date to the “end of time”. The Effective Start of time is =
01/01/1900 and the Effective End of time is 12/31/4712.
For more information on managing date effective objects, refer to the document on docs.oracle.com
called “REST API for Oracle HCM Cloud” for more details.
10 W HITE PAPER / Using REST API for Loading Rich Media Content
Figure. Setup and Maintenance
The XML file contains several connection details. The one of interest is the following:
<StringRefAddr addrType="ORA_VIDSTORAGESERVICEAPPExternalHost">
<Contents>XXXX.akamaihd.net/YYYY/src</Contents>
Where XXXX and YYYY are unique per provisioned Learning Cloud pod. This hostname is referred to
as AKAMAI_HOST herein. In this example, AKAMAI_HOST=”XXXX.akamaihd.net/YYYY”
11 W HITE PAPER / Using REST API for Loading Rich Media Content
1. Create a new Oracle Learning Cloud Content ID for the rich media content item you are creating.
Use a POST request to the Learning Rich media content Items REST endpoint, the system will
generate a new placeholder learning content item and return header information that you will use in
Step 2 through Step 4. Step 1 can be done independently from steps 2 thru 4 below.
2. Get the Akamai token required to upload the files to Akamai. You can obtain the Akamai token and
UUID from the successful output of Step 1.
3. Upload the files to Akamai. Using a PUT request to the Akamai upload URL with the Oracle
Learning Cloud headers from Step 1, and the Akamai token from Step 2. Step 2 and 3 must be
done together. There is a 30-second Akamai timeout on the token that must be used in step 3, so it
is important to do these two steps together.
4. Update Oracle Learning Cloud to finalize the transaction. When Step 3 completes successfully, use
a PUT request to the Learning Content Items REST service to update Oracle Learning Cloud, and
close out the rich media content upload sequence. Step 4 can be done independently from steps 1
thru 3 above, but is uses information out of Step 1 above. Once this is complete, validate the post
processing by previewing the content in Oracle Learning Cloud.
Videos
You can’t update video files by uploading a new video source file for an existing unique identifier.
Using this technique to upload revised source video files will result in the rich media content no longer
being usable. This affects any course offerings referencing the rich media content item, and
consequently all assignments associated with the offering.
PDF Files
You can update PDF files by uploading a new PDF file using the existing unique identifier. However,
using this technique to upload non-PDF file types will result in the rich media content no longer being
usable. This affects any offerings using it, and consequently all assignments associated with the
offering.
12 W HITE PAPER / Using REST API for Loading Rich Media Content
Understanding Akamai Token Expiration
The token obtained by the GET request to Oracle Learning Cloud in Step 2 expires within 30 seconds
of generation. Therefore, the POST request to Akamai in Step 3 must begin before the token expires,
or it will fail. If this happens, to reattempt the upload step, you must first obtain a new Akamai token
using the GET request to Oracle Learning Cloud.
Oracle Learning Cloud asynchronously parses SCORM and AICC zip files uploaded to Akamai to
determine the list of playable objects. Only when that process is complete is the rich media content
item set to Active status in Oracle Learning Cloud. They can then be previewed by the Administrator
and then be attempted by Learners.
Video files uploaded to Akamai are asynchronously transcoded by the Learning Cloud service before
they are available for playback delivery. When transcoding is completed, the video is set to Active
status in Oracle Learning Cloud. They can then be previewed by the Administrator and then be
attempted by Learners.
PDF files uploaded to Akamai require no asynchronous processing, and are immediately set to Active
in Oracle Learning Cloud.
In addition to verifying the ingested rich media by relying on the REST service call return codes, you
can also verify the media is successfully ingested and functional in Oracle Learning Cloud in a number
of ways.
From the administration work area in Oracle Learning Cloud, you can preview the rich media once it
becomes active from the Catalog Resources work area. Additionally, once active, you can publish
course offerings using the rich media item, which can then be consumed in the employee Self-Service
work area.
In addition to SCORM, AICC, video, and PDF learning rich media content, Oracle Learning Cloud
supports self-paced online activities backed by weblink references that do not require the enabling of
the Oracle Learning Cloud Rich Media service. Programmatically loading these content items into
Oracle Learning Cloud only involves REST calls to Oracle Learning Cloud services.
Process Overview
A single step is required to load weblink learning content items that can be used in offering self-paced
activities. Using a POST request to the Learning Content Items REST endpoint, the system generates
a new Weblink learning content item and return the content ID.
13 W HITE PAPER / Using REST API for Loading Rich Media Content
programmatically by using REST services. These are two primary use cases in which you would
want to load items programmatically:
1. Bulk Loading of Learning Rich Media Content Items – Programmatically loading in rich media
content and learning item metadata in parallel to optimize the project schedule for a customer. In
this approach, the rich media content may be partially loaded while other learning item metadata
is being loaded in parallel.
2. Ad Hoc Loading of Learning Rich Media Content Items – Programmatically loading rich media
content items where all steps are followed back to back before the next rich media content item is
loaded. An example of this might be where administrators are creating and managing their content
in a content management system, and want to publish individual content items one at a time when
they are ready for publication.
How HDL Managed Objects are Dependent on the REST Content Managed Objects
There can be dependencies between learning objects when an object is being created. You need to
make sure that objects that have associations to other objects exist before the object is loaded. For
example, you would not be able to load in a Learning Record (assignment) without a Learner Person
already existing, a learning item, and the person that is performing the assignment. It is important to
understand the processing order to ensure that a child object does not fail because there is missing
parent data.
Rich media content that is loaded into the system has an Oracle Learning Cloud object that is
dependent on it. When looking at a course, there are offerings associated to courses, self-paced
activities associated to offerings and the rich media content (SCORM, video, PDF) is associated to the
self-paced activity. Therefore, when loading in a self-paced activity there should be a rich media
content item already loaded, so the self-Paced activity can be associated to this rich media content.
This rich media content item does not need to have all of the files loaded on the Akamai pod for this
association to occur.
1. Unblocks Self-Paced Activity Creation - Once step 1 of the REST rich media content loading is
completed via a POST, the Oracle Learning Cloud Content Item number is returned in the
response data. This number can then be used to associate the self-paced activity when loading
this self-paced activity in via HDL, or when creating this self-paced activity via the Oracle Learning
Cloud user interface.
14 W HITE PAPER / Using REST API for Loading Rich Media Content
2. Divide and Conquer Approach. Uploading big files to Akamai – Loading the rich media bits to
Akamai can take a large amount of the data loading timeline. Therefore, to optimize the schedule, it
is more efficient to break out this step from the creation of Oracle Learning Cloud rich media content
items. Loading rich media bits to Akamai can be run across several worker programs using a few
client machines with access to high bandwidth (for upload) internet connections to help shorten
overall the loading process.
3. Control when post processing occurs and impact post-processing has on other processes across
HCM Cloud
• For SCORM and AICC the post processing that occurs automatically after this PUT is done with
an ESS job called: “Upload SCORM Package”. It is important to understand that for every PUT
that is done there will be a corresponding thread for this job on the ESS server. This could put a
load on the ESS server, because the ESS job can be run in parallel thus taking multiple threads at
a single point in time. You want to plan accordingly, so that you don’t have a case where this job
consumes all of the ESS server threads and other important ESS jobs are impacted negatively.
• For videos, the post processing that occurs automatically after this PUT transcoding is done by
Oracle Learning Cloud, not an ESS job, so Learning Cloud sends a request to Akamai to
transcode the video. Oracle Learning Cloud has a timer that is run internally, continuously
checking on the status from Akamai. The time to process the video depends on many things,
including how busy Akamai is and how big the file is, in bytes, and the resolution of the video. A
1:1 ratio between video playing time and video transcoding time is the estimated timeframe for
processing.
In Release 19C, this approach changed, and video is now processed using an ESS job called “Video
Transcoding and Processing”. The ESS job is required to run to Transcode Video content before it is
available to be viewed or used in Oracle Learning Cloud. Plan accordingly, so you don’t have a case
where this job consumes all of the ESS server threads and other important ESS jobs are affected.
PROCESS OVERVIEW
This is a “divide and conquer” proposal for loading Oracle Learning Cloud rich media content items
and Oracle Learning Cloud catalog items. Each of the steps below can be run independently of one
another. However, step 1 must be run before steps 2, 3, and 4 can be processed.
1. Create Oracle Learning Cloud content items for each rich media item (SCORM, AICC, pdf,
weblink, and video) you want to load into OLC.
This task involves executing a POST against the OLC REST resource.
• This inserts the appropriate metadata for each desired OLC Content Item into Oracle Learning
Cloud.
• This step is a prerequisite for step 2 through step 4, but can be done in bulk, independently from
step 2, step 3, and step 4.
• This returns the UUID, Location and OLC Content Item # so you can execute step 2 through step 4
below. It is important to note that the program that is used needs to store some of the response
data so that it can be used in the subsequent steps.
• -Each POST should complete in a second or so. This means that creating the metadata for 1,000 or
so new Oracle Learning Cloud rich media content items should complete in an hour or so.
15 W HITE PAPER / Using REST API for Loading Rich Media Content
2. Load desired OLC Course Catalog hierarchy of items (for each desired OLC Content Item) using the
OLC Course HDL hierarchy object.
• HDL will be used to load in the Course, Offering, and Activity hierarchy in the system. The Self-
Paced activity object is where you will need to associate the OLC Content Item # with the specific
Self-Paced activity. Video will use the learning item ID, and the other OLC content items will use the
OLC Content Item #.
• This should complete in the order of hours for 1,000 or so new OLC Course/Offering/Activities with
complex dependency hierarchies, but may require experimenting with the HDL load and import
concurrent thread parameters to get the most efficient load times.
3. Load the rich media bits of an OLC Content Item to the OLC Akamai POD.
This task involves first executing a GET against the OLC REST for an item loaded in step 1. The
purpose of the GET is to obtain an Akamai access token that will enable you to upload the rich media
bits to Akamai. After the GET operation, immediately send the bits via PUT to the OLC Akamai POD
REST resource. There is a 30 second Akamai timeout on the token so it is important to do the GET
and PUT immediately after one another.
• This load can be run across several worker programs using a few client machines with access to
high bandwidth (for upload) internet connections.
• Turnaround time of this step will be driven by the total number of bytes of all rich media items that
must be uploaded to Akamai versus the number of concurrent upload processes / machines.
Once the rich media file successfully uploads to the Oracle Learning Cloud Akamai POD, execute a
PUT against the OLC REST in order to tell Learning Cloud that the rich media file was successfully
uploaded to the Oracle Learning Cloud Akamai POD for the given <content ID>.
• -SCORM, AICC, and Video rich media items do require successful post-processing by OLC in order
to be playable. This post-processing is automatically initiated after this final PUT operation.
• This step is required before the Preview function can be used in Learning Administration —>
Catalog Resources > Manage Content Items >Content Item Details > Preview
16 W HITE PAPER / Using REST API for Loading Rich Media Content
IMPLEMENTATION PROJECT PLAN EXAMPLE
Step 1: Create a new OLC Content ID for the learning content item to be created. The sample input file
below includes some optional attributes in addition to the mandatory attributes for creating a new
content item. For the complete list of attributes and their supported values, refer to the Input Payload
Attributes table at the end of this document.
"FileName" : "SCORM12Package.zip",
"ItemNumber" : "REST-201801301350-SCORM",
"TrackingType" : "ORA_SCORM_12",
17 W HITE PAPER / Using REST API for Loading Rich Media Content
"StartDate" : "2018-01-30",
"EndDate" : "2018-06-30"
curl -vs
-u '<username>:<password>'
-H 'Content-Type: application/vnd.oracle.adf.resourceitem+json'
{{
"ContentId" : 300100101142985,
"FileName" : "SCORM12Package.zip",
"ItemNumber" : "REST-201710081350-SCORM",
"TrackingType" : "ORA_SCORM_12",
"StartDate" : "2018-01-30",
"EndDate" : "2018-06-30",
"UUID" : "92cfc80e-953b-449c-90a6-18afa401628f",
"Status" : "ORA_CONT_INACTIVE",
"URL" : null,
"AuthToken" : "X-Akamai-ACS-Action:action=upload&version=1&index-zip=1||X-Akamai-ACS-Auth-
Data:5, 0.0.0.0, 0.0.0.0, 1507582333, 457024713, Oraclemedia||X-Akamai-ACS-Auth-
Sign:7cQB5HotJLxYBh6X4o0mO3Dma47UGZ1TPG9xLMWUiz0=",
"Location" : "scorm/FA.HCM.PER.HcmEngmtVideoShare-92cfc80e-953b-449c-90a6-
18afa401628f_private/92cfc80e-953b-449c-90a6-18afa401628f.zip",
"IngestionStatus" : "ORA_MED_NEW",
"Operation" : null,
18 W HITE PAPER / Using REST API for Loading Rich Media Content
"links" : [ {
"rel" : "self",
“href" : "https://<OLC_HOSTNAME>/hcmCoreApi/resources/11.12.1.0/
learningContentItems/300100101142985",
"name" : "learningContentItems",
"kind" : "item"
}, {
"rel" : "canonical",
"name" : "learningContentItems",
"kind" : "item"
}]
Step2: Get the Akamai token required to upload the files to Akamai
From the above output, the following attributes are required as input for the next step:
» X-Akamai-ACS-Auth-Sign: 7cQB5HotJLxYBh6X4o0mO3Dma47UGZ1TPG9xLMWUiz0=
» "UUID" : "92cfc80e-953b-449c-90a6-18afa401628f"
» "Location" : "scorm/FA.HCM.PER.HcmEngmtVideoShare-92cfc80e-953b-449c-90a6-
18afa401628f_private/92cfc80e-953b-449c-90a6-18afa401628f.zip"
-H 'X-Akamai-ACS-Action:action=upload&version=1&index-zip=1'
-H 'X-Akamai-ACS-Auth-Data:<STEP_2_Auth_Data>'
-H 'X-Akamai-ACS-Auth-Sign:<STEP_2_Auth_Sign>'
19 W HITE PAPER / Using REST API for Loading Rich Media Content
Successful Response (partial output): UploadOnlineContentFile.out
"IngestionStatus" : "ORA_MED_TRANSCODING"
curl -vs
-u '<username>:<password>'
-H 'Content-Type: application/vnd.oracle.adf.resourceitem+json'
-d "@OnlineContentPayloadForUpdate.txt"
-X PUT
https://<HOSTNAME>/hcmCoreApi/resources/latest/learningContentItems/<CONTENT_ID_FROM_ST
EP_1> &> UpdateOnlineContentFile.out
Step 1: Create a new OLC Content ID for the learning content item to be created
20 W HITE PAPER / Using REST API for Loading Rich Media Content
The sample input file below includes some optional attributes in addition to the mandatory ones for
creating a new content item. For the complete list of attributes and their supported values, refer to the
Input Payload Attributes table at the end of this document.
"FileName" : "video.mov",
"ItemNumber" : "REST-201801301350-VIDEO",
"TrackingType" : "ORA_CONTENT_VIDEO",
"StartDate" : "2018-01-30",
"EndDate" : "2018-06-14"
HTTP POST
curl -vs
-u '<username>:<password>'
-H 'Content-Type: application/vnd.oracle.adf.resourceitem+json'
"ContentId" : 300100101257750,
"FileName" : "video_4_secs.mov",
"ItemNumber" : "REST-201710091906",
"TrackingType" : "ORA_CONTENT_VIDEO",
"StartDate" : "2018-01-30",
"EndDate" : "2018-06-14",
21 W HITE PAPER / Using REST API for Loading Rich Media Content
"UUID" : "e778388a-15f8-4261-9338-d3b702aa8323",
"Status" : "ORA_CONT_INACTIVE",
"URL" : null,
"AuthToken" : "X-Akamai-ACS-Action:action=upload&version=1||X-Akamai-ACS-Auth-Data:5,
0.0.0.0, 0.0.0.0, 1507601292, 604982616, Oraclemedia||X-Akamai-ACS-Auth-
Sign:ktzX85LZYJvFYJbJ6pnSOoY8xBr9EynBw0B8hFg1+aE=",
"Location" : "src/FA.HCM.PER.HcmEngmtVideoShare-e778388a-15f8-4261-9338-
d3b702aa8323_private/e778388a-15f8-4261-9338-d3b702aa8323.mov",
"IngestionStatus" : "ORA_MED_NEW",
"Operation" : null,
"links" : [ {
"rel" : "self",
"href" : "https://fuscdrmovm179-hcm-
ext.us.oracle.com:443/hcmCoreApi/resources/11.12.1.0/learningContentItems/300100101257750",
"name" : "learningContentItems",
"kind" : "item"
}, {
"rel" : "canonical",
"href" : "https://fuscdrmovm179-hcm-
ext.us.oracle.com:443/hcmCoreApi/resources/11.12.1.0/learningContentItems/300100101257750",
"name" : "learningContentItems",
"kind" : "item"
}]
Step 2: Get the Akamai token required to upload the files to Akamai
From the above output, the attributes in red are required as input for the next step
• X-Akamai-ACS-Auth-Sign: ktzX85LZYJvFYJbJ6pnSOoY8xBr9EynBw0B8hFg1+aE=
• "UUID" : "92cfc80e-953b-449c-90a6-18afa401628f"
• "Location" : "scorm/FA.HCM.PER.HcmEngmtVideoShare-92cfc80e-953b-449c-90a6-
18afa401628f_private/92cfc80e-953b-449c-90a6-18afa401628f.zip"
22 W HITE PAPER / Using REST API for Loading Rich Media Content
Step 3: Upload the files to Akamai with required metadata
HTTP PUT
-H 'X-Akamai-ACS-Action:action=upload&version=1'
-H 'X-Akamai-ACS-Auth-Data:<STEP_2_Auth_Data>'
-H 'X-Akamai-ACS-Auth-Sign:<STEP_2_Auth_Sign>'
"IngestionStatus" : "ORA_MED_TRANSCODING"
HTTP PUT
curl -vs
-u '<username>:<password>'
-H 'Content-Type: application/vnd.oracle.adf.resourceitem+json'
-d "@VideoContentPayloadForUpdate.txt"
-X PUT
https://<HOSTNAME>/hcmCoreApi/resources/latest/learningContentItems/<CONTENT_ID_FROM_ST
EP_1> &> UpdateVideoContentFile.out
23 W HITE PAPER / Using REST API for Loading Rich Media Content
The sample input file below includes some optional attributes in addition to the mandatory ones for
creating a new content item. For the complete list of attributes and their supported values, refer to the
Input Payload Attributes table at the end of this document.
"FileName" : "REST.pdf",
"ItemNumber" : "REST-201710091949-PDF",
"TrackingType" : "ORA_PDF",
"Status" : "ORA_CONT_ACTIVE",
"StartDate" : "2017-06-15",
"EndDate" : "2018-06-14"
HTTP POST
curl -vs
-u '<username>:<password>'
-H 'Content-Type: application/vnd.oracle.adf.resourceitem+json'
"ContentId" : 300100101257756,
"FileName" : "TLearn.pdf",
"ItemNumber" : "REST-201710091949-PDF",
"TrackingType" : "ORA_PDF",
"StartDate" : "2017-06-15",
24 W HITE PAPER / Using REST API for Loading Rich Media Content
"EndDate" : "2018-06-14",
"UUID" : "60c5e47d-bc50-44c0-b6ed-736508eb73e8",
"Status" : "ORA_CONT_ACTIVE",
"URL" : null,
"AuthToken" : "X-Akamai-ACS-Action:action=upload&version=1||X-Akamai-ACS-Auth-Data:5,
0.0.0.0, 0.0.0.0, 1507604022, 2097491649, Oraclemedia||X-Akamai-ACS-Auth-Sign:
6szYsIlcztab31lygNDWghM4pj/IVqBEG7JqTxaYQmg=",
"Location" : "scorm/FA.HCM.PER.HcmEngmtVideoShare-60c5e47d-bc50-44c0-b6ed-
736508eb73e8_private/60c5e47d-bc50-44c0-b6ed-736508eb73e8.pdf",
"IngestionStatus" : null,
"Operation" : null,
"links" : [ {
"rel" : "self",
"href" : "https://fuscdrmovm179-hcm-
ext.us.oracle.com:443/hcmCoreApi/resources/11.12.1.0/learningContentItems/300100101257756",
"name" : "learningContentItems",
"kind" : "item"
}, {
"rel" : "canonical",
"href" : "https://fuscdrmovm179-hcm-
ext.us.oracle.com:443/hcmCoreApi/resources/11.12.1.0/learningContentItems/300100101257756",
"name" : "learningContentItems",
"kind" : "item"
}]
Step 2: Get the Akamai token required to upload the files to Akamai
From the above output, the attributes in red are required as input for the next step
• X-Akamai-ACS-Auth-Sign: 6szYsIlcztab31lygNDWghM4pj/IVqBEG7JqTxaYQmg=
• "UUID" : "60c5e47d-bc50-44c0-b6ed-736508eb73e8
• "Location" : "scorm/FA.HCM.PER.HcmEngmtVideoShare-60c5e47d-bc50-44c0-b6ed-
736508eb73e8_private/60c5e47d-bc50-44c0-b6ed-736508eb73e8.pdf"
25 W HITE PAPER / Using REST API for Loading Rich Media Content
HTTP PUT
-H 'X-Akamai-ACS-Action:action=upload&version=1'
-H 'X-Akamai-ACS-Auth-Data:<STEP_2_Auth_Data>'
-H 'X-Akamai-ACS-Auth-Sign:<STEP_2_Auth_Sign>'
"ItemNumber" : "REST-201710092052-WebLink",
"TrackingType" : "ORA_AUTO",
"URL" : "http://www.oracle.com",
"Status" : "ORA_CONT_ACTIVE",
"StartDate" : "2017-06-15",
"EndDate" : "2018-06-14"
REST TOOLKIT
There is an easy-to-use toolkit on My Oracle Support(MOS) to help you use the REST service. Use
the toolkit in conjunction with this white paper. Refer to the MOS document called “Oracle Fusion
Learning Cloud: Programmatic Loading of Rich Media Content Using Learning Content REST Service
(Doc ID 2374277.1) to access the toolkit.
You will see that the steps to load in rich media via the REST API service correlates to the three toolkit
files:
1. Create a new OLC Content ID for the learning item you are creating using a POST. Use the olc-
create.html toolkit page for this step.
26 W HITE PAPER / Using REST API for Loading Rich Media Content
2. Get the Akamai token required to upload the files to Akamai. Use the olc-get.html toolkit page for
this step.
3. Upload the files to Akamai with a PUT command and Update OLC to finalize the transaction. Use
the olc-update page for this step.
TROUBLESHOOTING
The following sections describe how to troubleshoot the steps described in this document.
Learning Content Service Error Code 500 Internal Server Error Response
This error code is returned when there is an issue contacting the REST service. This could be due to
an incorrect URL, or the service is down.
27 W HITE PAPER / Using REST API for Loading Rich Media Content
ORACLE CORPORATION
Worldwide Headquarters
500 Oracle Parkway, Redwood Shores, CA 94065 USA
Worldwide Inquiries
TELE + 1.650.506.7000 + 1.800.ORACLE1
FAX + 1.650.506.7200
oracle.com
CONNECT W ITH US
Call +1.800.ORACLE1 or visit oracle.com. Outside North America, find your local office at oracle.com/contact.
Copyright © 2019, 2020, Oracle and/or its affiliates. This document is provided for information purposes only, and the contents hereof are subject to
change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or
implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with
respect to this document, and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced
or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or
registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks
of Advanced Micro Devices. UNIX is a registered trademark of The Open Group. 0320
White Paper Using REST API for Loading Rich Media Content
March 2020March 2020
Author: Oracle Learning Cloud Product Management
Contributing Authors: