SCORM Engine Launch Parameters

When launching the SCORM Engine, there a several parameters that can be passed to it via the querystring. These parameters tell the SCORM Engine which course to load, how to track the learner's progress and how the course should behave.

Parameter Name Possible Values (should be URL encoded)
"configuration" A serialized external configuration object
"registration" A serialized external registration id
"package" A serialized external package id
"manifestDirPath" A valid file path or HTTP path
"webPath" A value HTTP path to a directory
"tracking" "true" or "false"
"forceReview" "true" or "false"
"regForCredit" "true" or "false"
"cc" CultureCode to choose a delivery language. (e.g., 'en', 'fr'. Note, this functionality is not turned on by default.)
"startSco" An Item Identifier that identifies a SCO in the manifest.

Configuration

The "configuration" parameter contains a serialized version of the specific integration's external configuration object. This parameter is always required to be present, but usually does not have to contain a value. The external configuration object is used to vary the behavior of the SCORM Engine in the integration layer. Passing in a string representation of this object at launch, will cause an instance of the specific integration's external configuration object to be instantiated and passed into the integration layer whenever an integration function is called.

Registration

The "registration" parameter contains a identifier that should be associated with the SCORM tracking information for this course launch. This is the "external registration id". The format of the registration parameter should be a serialized version of the specific integration's external registration id object. If the external registration id specified in this parameter does not already exist in the SCORM Engine, then by default a new registration will be created (although this behavior can vary based on the integration layer and the "CreateRegistrationIfNeeded" SCORM Engine setting). If the specified external registration id does exist, then that registration will be resumed and the tracking data from any previous attempts will be restored.

Package

The "package" parameter contains an external package id identifying a package that has already been imported into the SCORM Engine. If no "registration" parameter is passed in, then the package identified in this parameter will be launched in a preview mode with no tracking. If a "registration" parameter is passed in and a new registration needs to be created because the external registration id does not exist, then the package identified by this parameter will be associated with the newly created registration. If the "registration" parameter is passed in and there is an existing registration, then the "package" parameter is ignored.

Registration Parameter Package Parameter Action
Not Included Included Package is launched in preview mode
Included, no matching registration exists Included New registration is created with specified package
Included, matching registration does exist Included Existing registation is launched, package parameter is ignored. If the registration id does exist, the package parameter is not required.

ManifestDirPath and WebPath

The "manifestDirpath" and "webPath" parameters are used in conjunction with one another. They enable the SCORM Engine to launch a course that has not yet been imported. The course's manifest is parsed on the fly and the course is launched in a preview mode with no tracking. The "manifestDirPath" parameter should contain either a file path (accessible to the server on which SCORM Engine is deployed) or an HTTP location of the course's descriptor file (usually the imsmanifest.xml file). When launching a course that has not yet been imported, you also need to pass in the "webPath" parameter to tell the SCORM Engine where the course resides. The "webPath" parameter is an HTTP path to the root of the course (usually the directory where the manifest resides).

Tracking

The "tracking" parameter provides a way to launch a registration without saving any of the tracking data associated with the course. When the "tracking" parameter is provided set to "false", the SCORM Engine will still accept all of the SCORM data sent to it by the content, but it will only persist it for the duration of the session. When the learner exits the course, all of the new data is discarded and the original state is preserved. This mode is useful for allowing learner's to review content that has already been completed to ensure that the record of their completion is not overwritten. If not included, the default value for this paramter is "true".

ForceReview

When set to "true", the "forceReview" parameter ensures that the data model element for mode ("cmi.mode" or "cmi.core.lesson_mode") is always set to "review". This setting is often used in conjunction with the "tracking" setting to provide learners an opportunity to review a course after it has been completed. If not included, the default value for this paramter is "false".

RegForCredit

The "regForCredit" parameter is used when the SCORM Engine creates a new registration upon launch. If the "regForCredit" parameter is passed in and set to "false", the SCORM Engine will create a new regisration with the data model element for credit ("cmi.credit" or "cmi.core.credit") set to "no credit". This setting is useful for lanching courses that should be tracked but that don't "count" for anything. If not included, the default value for this paramter is "true".

CC

The "cc" parameter can be used by a client integration to force the delivery language to a particular culture code, e.g., 'en', 'fr', via the launch string. The following table lists the languages we support.

Language ISO 639-1 Code
Arabic ar
Chinese (simplified) zh-cn
Chinese (traditional) zh-tw
Danish da
Dutch nl
English en
Finnish fi
French fr
German de
Hungarian hu
Italian it
Japanese ja
Norwegian no
Portuguese pt
Russian ru
Spanish es
Swedish sv

StartSCO

If provided, this parameter identifies a SCO that the SCORM Engine should launch first. If not provided, the SCORM Engine will either launch the first SCO (for new registrations) or the SCO from which the learner suspended a previous attempt (for previously attempted registrations). Note that these default SCOs can be altered by SCORM 2004 sequencing rules in the content. The format of this parameter is a string representing the Item identifier associated with the SCO to be launched in the manifest. Note that if the manifest contains SCORM 2004 sequencing rules, it might not always be possible to launch the specified SCO (if for instance it's prerequisites are not met). In this case, the learner will be prompted with a message to make another selection.

Serializing and Encoding

All values must be properly escaped (or "URL Encoded") when they are included in the query string. It is important not to double encode the values. All common programming languages include a library function for properly escaping values to be placed in a querystring. For static values that do not change, it can be helpful to use a tool to perform the one time encoding.

When passing an external package id, external registration id or external configuration id to the SCORM Engine these objects must be represented in their serialized state. The number, type and name of the properties contained in each of these of these objects in unique to each integration. Often, there is just one property, in which case the serialized version of the object is just the value for that property. However, in cases where there is more than one property, the serialized form of the object is a series of name value pairs separated by delimiters. By default, the delimiter that is between the name and value is a pipe character ("|") and the delimiter between a set of names and values is an exclamation mark character ("!"). Note that these defaults will vary based on the version of the SCORM Engine and can be different for each integration.

For example, if an external registration id is composed of two fields, userName and courseId, then a serialized external registration id might look like this:

userName|joeuser!courseId|42That value indicates an external registration id with a value for userName of "joeuser" and a vale for courseId of "42". When passing the serialized value into the SCORM Engine, the entire serialized value needs to be URL Encoded. Note that "!" does not need to be escaped and that the escaped represenation of "|" is "%7c". Once escaped, the above example would look like:

userName%7cjoeuser!courseId%7c42Engine's console can simplify the process of creating serialized and escaped object values. When creating new registrations, Engine's console will display the proper launch URL. Since Engine is configured to use your specific integration, it is easy to simply copy and paste values into your code.

image alt text

Common Configurations

Launch a registration "normally"

Parameter Name Value to pass in
"configuration" A serialized external configuration object if used by your integration.
"registration" A serialized external registration id
"package" A serialized external package id
"manifestDirPath" Not included
"webPath" Not included
"tracking" Not included
"forceReview" Not included
"regForCredit" Not included

Launch a completed registration in review mode with no changes to the tracking data

Parameter Name Value to pass in
"configuration" A serialized external configuration object if used by your integration.
"registration" A serialized external registration id
"package" Not included
"manifestDirPath" Not included
"webPath" Not included
"tracking" "false"
"forceReview" "true"
"regForCredit" Not included

Launch an imported course in preview mode with no tracking

Parameter Name Value to pass in
"configuration" A serialized external configuration object if used by your integration.
"registration" Not included
"package" A serialized external package id
"manifestDirPath" Not included
"webPath" Not included
"tracking" Not included (only relevant if a registration is passed in)
"forceReview" Not included
"regForCredit" Not included

Launch a course that does not "count" for credit, but should still be tracked

Parameter Name Value to pass in
"configuration" A serialized external configuration object if used by your integration.
"registration" A serialized external registration id
"package" A serialized external package id
"manifestDirPath" Not included
"webPath" Not included
"tracking" Not included
"forceReview" Not included
"regForCredit" "false"

Launch a course directly from a manifest that has not yet been imported

Parameter Name Value to pass in
"configuration" A serialized external configuration object if used by your integration.
"registration" Not included
"package" Not included
"manifestDirPath" File path to manifest
"webPath" Web path to course directory
"tracking" Not included
"forceReview" Not included
"regForCredit" Not included

Mode and Credit

The SCORM runtime data model contains two elements that indicate the context in which a course was launched. This context is affected by the parameters that are passed into the SCORM Engine on launch. The "mode" data model element indicates that the course was launched either in a "normal", "review" or "browse" mode. The "credit" data model element indicates whether or not the course is being taken for credit.

Mode:

Credit: