The details of the runtime API and data model implementation and current status of them can be found below.
Good references -
http://scorm.com/scorm-explained/technical-scorm/run-time/run-time-reference/
The runtime API is a javascript API which exposes an instance of it as a variable “API_1484_11”. The sco interacts with it by calling the methods. The implementation of if is found in the source code under /public/javascripts/runtime.js.
A new instance of API can be created as below
var API_1484_11 = new RunTimeApi();
As per scorm 2004 specification, the runtime needs to expose the following methods to an SCO.
Initialize() Terminate() GetValue() SetValue() Commit() GetLastError() GetErrorString() GetDiagnostic()
We expose all of the above methods and also some more methods for error handling which might not be used by many SCOs.
The current status of the runtime -
Improvements Needed -
The Scorm 2004 data model is the list of the attributes an SCO can either set or get or boht set and get through the API.
We support the following attributes which are minimum as per Scorm 2004 suggestions.
Note - (RO - read only, WO - write only).
| Property | type | Implementation Status |
|---|---|---|
| cmi._version | RO | No need to support |
| cmi.comments_from_learner.* | Not supported | |
| cmi.completion_status | Supported | |
| cmi.completion_threshold | RO | Supported |
| cmi.credit | RO | Supported |
| cmi.entry | RO | Supported |
| cmi.exit | WO | Supported |
| cmi.interactions. * | Supported | |
| cmi.launch_data | RO | Supported |
| cmi.learner_id | RO | Not supported (This is upto the LMS to set. we don't set this for now) |
| cmi.learner_name | RO | Not supported (This is upto the LMS to set. we don't set this for now) |
| cmi.learner_preference.* | Supported | |
| cmi.location | Supported | |
| cmi.max_time_allowed | RO | Supported |
| cmi.mode | RO | Supported |
| cmi.objectives.* | Supported | |
| cmi.progress_measure | Supported | |
| cmi.scaled_passing_score | RO | Supported |
| cmi.score.* | Supported | |
| cmi.session_time | WO | Supported |
| cmi.success_status | Supported | |
| cmi.suspend_data | Supported | |
| cmi.time_limit_action | Supported | |
| cmi.max_time_allowed | Supported | |
| cmi.total_time | Supported | |
| adl.nav.request.* | Not Supported |
Also, we have the following limitations on scorm gem that parses the manifest file. We need to patch it to support these.
Limitations in manifest parsing -
The runtime API is a javascript API which exposes an instance of it as a variable “API”. The sco interacts with it by calling the methods. The implementation of if is found in the source code under /public/javascripts/scorm/scorm_12.js.
A new instance of API can be created as below
var API = new RunTimeApi12();
As per scorm 1.2 specification, the runtime needs to expose the following methods to an SCO.
LMSInitialize() LMSFinish() LMSGetValue() LMSSetValue() LMSCommit() LMSGetLastError() LMSGetErrorString() LMSGetDiagnostic()
We expose all of the above methods and also some more methods for error handling which might not be used by many SCOs.
The current status of the runtime -
Improvements Needed -
The Scorm 1.2 data model is the list of the attributes an SCO can set and get through the API.
We support the following attributes which are minimum as per Scorm 1.2 suggestions.
Note - (RO - read only, WO - write only).
| Property | type | Implementation Status |
|---|---|---|
| cmi.core._children | RO | Supported |
| cmi.core.student_id | RO | This is upto the LMS to set. We don't set this now |
| cmi.core.student_name | RO | This is upto the LMS to set. We don't set this now |
| cmi.core.lesson_location | Supported | |
| cmi.core.credit | RO | Supported |
| cmi.core.lesson_status | Supported | |
| cmi.core.entry | RO | Supported |
| cmi.core.score_children | RO | Supported |
| cmi.core.score.* | Supported | |
| cmi.core.total_time | RO | Supported |
| cmi.core.lesson_mode | RO | Supported |
| cmi.core.exit | WO | Supported |
| cmi.core.session_time | WO | Supported |
| cmi.suspend_data | Supported | |
| cmi.launch_data | RO | Supported |
| cmi.comments | Not Supported | |
| cmi.comments_from_lms | RO | Not Supported |
| cmi.objectives.* | Supported | |
| cmi.student_data._children | RO | Supported |
| cmi.student_data.mastery_score | RO | Supported |
| cmi.student_data.max_time_allowed | RO | Supported |
| cmi.student_data.time_limit_action | RO | Supported |
| cmi.student_preference._children | RO | Supported |
| cmi.student_preference.* | Supported | |
| cmi.interactions.* | Supported |
Limitations in manifest parsing -
Same as scorm 2004.