Using SCORM 1.2 and SCORM 2004 with an LMS

This has been covered many times so it might repeat some other posts, but this does also specify how to implement displaying progress in an LMS when publishing to SCORM 2004 (this works for for 360 training's LMS, and potentially many others).

For SCORM 1.2 use the AICC_Lesson_Status variable which sets the cmi.core.lesson_status for the SCO (sharable content object, or in our case a title). Different LMSs may want special values for this, but typical ones are 'not attempted', 'incomplete', and 'completed'. The variations are usually only for the 'completed' value: 'Completed', 'complete', 'passed' are some variations.

For SCORM 2004 we support the 3rd Edition Spec. We do not use cmi.progress_measure instead we follow the specification which allows us to set the cmi.completion_status directly. This is done by using the CMI_Completion_Status variable.

This page is helpful for mapping Lectora variables to the SCORM spec:

The 2004 specification says that the LMS shall implement the cmi.completion_status data model element as a state consisting of the following vocabulary tokens:

• completed

• incomplete

• not attempted

• unknown

Also of note for SCORM 2004 is the Lectora AICC_Lesson_Status variable which maps to cmi.success_status.

The 2004 specification says the LMS shall implement the cmi.success_status data model element as a state consisting of the following vocabulary tokens:

• passed

• failed

• unknown

For SCORM 2004 the CMI_Core_Exit variable maps to cmi.exit and can be used to control learner sessions or attempts. You need to set this to normal to close an attempt, otherwise it will be passed back as suspend and the attempt will be continued when the user re-enters the course. Valid values are:

• normal

• suspend

• "" (empty string)

* The variable AICC_Score is what always maps to the SCORM score stored in the LMS. This can be set using a Modify Variable action, or by having a test which is "graded".

* If you publish to SCORM 2004 and have an LMS that shows course progress (via a progress bar) you can take advantage of that by doing a Run JavaScript action as the students progress, to set progress, try this:

LMSSetValue('cmi.progress_measure', VAR(ProgressVariable))

Where ProgressVariable is a Lectora User variable that is set with the progress, say a value from 1 to 100 ? Or you could just set the value directly by not using a variable and putting the progress value right into the call. For example when they are half way through:

LMSSetValue('cmi.progress_measure', 50)


You will have to set the cmi.completion_threshold which is the point at which it's deemed complete. Do this at the beginning of the course with another Run JavaScript action:

LMSSetValue('cmi.completion_threshold', '100')

From the specification:

If a cmi.completion_threshold is defined for the SCO and the cmi.progress_measure data model element's value is set by the SCO and the value is less than the cmi.completion_threshold data model element's value, then the LMS shall evaluate and return the value of incomplete.

As you can see we can really support any LMSs SCORM implementation. Even non-standard implementations are easy to adjust for. Please post questions here if you are reading this and still have questions!

- Joe

Discussion (3)

Hi. I know this was posted a year ago but I was wondering if you would know whether or not a SCORM 2004 upload into SABA will render no 'completion' results in LMS reporting.

Joe - one question about the "checking pages" report from Lectora v18:

  • I am receiving this statement:

    "The test ... must be scoreable to be automatically included in the results submitted to AICC/SCORM.

Tim K has a laudable explanation about how this can be addressed (see this link/discussion) but in regards to how the checking pages report works... Is Lectora still sending these "test" results to the LMS when I see that appear int the report? In my case, this "test" is a checkbox acknowledging that the user completed the course independently, and I have set the minimum passing score to 20% and generated that score earlier in the course automatically.

I'm not entirely sure of all the details of your scenario, but here are a few comments.

If a test is graded it will set the AICC_Score and if passed it will set the AICC_Lesson status to completed if the mastery score is set in the AU.

If you just want to set the score and completion status you don't need a test, you can add a checkbox control and attach actions to set the score and completion status if the checkbox variable contains "on".

If for some reason you want the checkbox response recorded you would need to make sure the test is set to "grade the test" and select the SCORM publish option "The published course will report Test/Survey Question Interactions to the LMS"

Hope this helps.

Discussions have been disabled for this post