Frequently Asked Questions
Configuration
How do we configure settings using the API?
The REST api has hierarchical URLs allowing you to configure settings for the whole tenant, single package, or individual registration. For instance, the URL to set a configuration property at the tenant level is ScormEngineInterface/api/v1/{tenantId}/configuration/{settingId}
. The URL to set one at the package level is ScormEngineInterface/api/v1/{tenantId}/{courseid}/configuration/{settingId}
, and at the registration level it's ScormEngineInterface/api/v1/{tenantId}/{registrationid}/configuration/{settingId}
. See API configuration documentation for more information.
How do we configure player window size?
The player window size configuration keys are PlayerDesiredWidth
and PlayerDesiredHeight
, which allow you to specify the dimensions in pixels.
How do we launch the player in an iframe?
To launch in a frameset you will want to assign the config properties PlayerScoLaunchType
and PlayerLaunchType
to "FRAMESET". One important consideration is that your content needs a way to exit if it's not being opened in a new window. An exit event triggers Engine to perform the final rollup of runtime data as well as notify your LMS the learner has finished the training. Either verify content provides some form of exit button or set PlayerShowNavBar
and PlayerShowFinishButton
to "YES" so Engine can supply a means to exit.
How do we use course versioning?
Import the new version of the course with the same course
identifier as the original course. Also set mayCreateNewVersion=true
on the querystring. Registration behavior is governed by the WhenToRestartRegistration
configuration setting.
How is logging configured?
Please see the Logging section of the Appendix.
Integration
What is the best practice for tracking progress?
You should supply a listener endpoint to which Engine will post JSON runtime data. The URL of this listener can be configured using the ApiRollupRegistrationPostBackUrl
key in your SCORMEngineSettings file. Your LMS application should parse the data as it is posted and store the elements relevant to its reporting schema in the application database.
Engine supplies ${TenantName}
, ${CourseId}
, and ${RegistrationId}
variables so these values can be specified on the postback URL. For instance, http://example.org/${TenantName}?courseid=${CourseId}®istrationid=${RegistrationId}
.
For more information about postback configuration, please see ApiRollup Settings.
How do we track time after launching a course?
Use the totalSecondsTracked
that is returned in the Engine JSON data for a registration. You can obtain this data by making a call to the /{tenant}/{registration}/progress
resource, or the /{tenant}/{registration}/progress/detail
resource, or (preferably) by gleaning it from the JSON postback data.
How can Engine signal to our LMS a course is closed?
When a learner exits a course, Engine will redirect the window or frame to the value set for the RedirectOnExitUrl
configuration setting. You can use requests to that URL to signal that the course is closed.
How should our LMS implement an internal “Required Score”?
We recommend that an LMS utilize Engine for e-learning compliance only; the responsibility for reporting and a general data model falls to the LMS itself. The LMS should inspect the results returned from Engine for information relevant to its data model and reporting. The LMS should parse the results returned from Engine for fields relevant to its data model, save them in its own tables, and report from those tables.
It is not uncommon for an LMS's concept of completion to differ from the learning standard's data model for completions. In other words, your LMS should inspect the data returned from Engine, evaluate it based on organizational criteria (rather than take the completion status reported by the course at face value), and report the results to the LMS.
In particular, if there is an internal "required score" every course must meet, the LMS reporting layer should inspect the score returned by Engine and report completion to users based on whether the score surpasses the internal threshold. Not all courses report scores, so it is important they be tested by an admin to catch this so that the courses can be revised by the content authors.