pipwerks SCORM Wrapper v1.1.20150614 and SuccessFactors iContent issue w' scorm.set("cmi.core.exit", "logout");

700 views
Skip to first unread message

Angela Poire

unread,
Feb 3, 2016, 8:13:56 PM2/3/16
to eLearning Technology and Development
 Our first gen in house player (developed to get away from Flash packages) is using the awesome Pipewerks Javascript wrapper.  Unfortunately we had a very odd bug reported today by one of our clients.

They note that the content launches just fine, but a problem occurs when each course module is completed.  When the  scorm.set("cmi.core.exit", "logout");

Is set, it is somehow logging the user out of their LMS!

Essentially, when you exit a completed module and try to return to the course/content structure in LMS, you will find you have been logged out of the system.

According to the folks at iContent, the “LMSClose” API is being called … but it should not be. I have verified this behavior for all five course modules, as well as the assessment (upon a successful completion).

From their bug report: "VALIDATION INFORMATION: Upon launching the first content object and completing after viewing all the slides the LMS is being told to close. The course needs to LMSFinish, not LMSClose therefore the content should be republished. Please let me know if you have any questions."

Has anyone ever encountered something similar? Obviously we do not have this problem in ScormCloud!

Philip Hutchison

unread,
Feb 6, 2016, 6:44:56 PM2/6/16
to elearning-technolo...@googlegroups.com
Hi Angela

I think you need to ask the vendor to dig a little deeper. "LMSClose" is not part of the SCORM spec, and the pipwerks wrapper most certainly does not call it. The SCORM spec does not contain any methods/functions that provide the ability to close the LMS or log the user out of the LMS itself.

As for the pipwerks wrapper, its exit behavior is defined as follows:

            if(scorm.handleExitMode && !exitStatus){

                if(completionStatus !== "completed" && completionStatus !== "passed"){

                    switch(scorm.version){
                        case "1.2" : success = scorm.set("cmi.core.exit", "suspend"); break;
                        case "2004": success = scorm.set("cmi.exit", "suspend"); break;
                    }

                } else {

                    switch(scorm.version){
                        case "1.2" : success = scorm.set("cmi.core.exit", "logout"); break;
                        case "2004": success = scorm.set("cmi.exit", "normal"); break;
                    }

                }

            }


scorm.handleExitMode is a convenience built in to the wrapper -- it automatically sets exit mode for you based on the status of the course. If scorm.handleExitMode is enabled, and cmi.exit/cmi.core.exit has not been explicitly set by the course developer, the wrapper will automatically set exit mode to either "suspend" or "logout"(1.2)/"normal"(2004). This is standard operating procedure for a SCORM course. FWIW, the "logout" option means 'close the course session completely' (next launch will be considered a new attempt). It has no bearing on whether the LMS should log a user out of the LMS itself.

Once exit mode has been handled, the wrapper terminates the SCORM connection:

                    case "1.2" : success = makeBoolean(API.LMSFinish("")); break;
                    case "2004": success = makeBoolean(API.Terminate("")); break;


LMSFinish and Terminate are standard procedure, and should have no impact on whether a learner gets logged out of the LMS itself.

If your course code (outside the pipwerks wrapper) is not invoking their proprietary LMSClose function, the vendor must have custom logic that invokes it on its own.

Good luck
- philip




--
You received this message because you are subscribed to the Google Groups "eLearning Technology and Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elearning-technology-and...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

MOLOKO

unread,
May 13, 2016, 10:38:39 AM5/13/16
to eLearning Technology and Development
I've encountered this before with Plateau LMS.

If you're on SCORM 1.2 it's probably easiest just to set handleExitMode to false.

Alex Kieft

unread,
Mar 21, 2017, 4:00:17 PM3/21/17
to eLearning Technology and Development
We're using the SCORMWrapper and ran into the same issue working with a customer using SAP SuccessFactors LMS.

I was able to track it down to SAP's AICC documentation: https://apps.support.sap.com/sap/support/knowledge/public/en/2154023

Each Lesson_Status value may be followed by one of the following flags:

  • Time_out (or T)
    This indicates the lesson ended because the lesson has determined an excessive amount of time has elapsed.
  • Suspend (or S)
    This indicates the student leaves the lesson with the intent of returning to it later at the point where he/she left off. The LMS will send a resume lesson_status flag the next time the content is launched.
  • Logout (or L)
    This indicates that the student logged out of the LMS from within the lesson instead of returning to the LMS to log out. The intent is to require re-authentication from the student.
So they do interpret a "logout" as a request to log the learner out of the entire LMS, sending them back to a sign-in page. Compare this to the AICC specification that they attached to the same documentation (https://apps.support.sap.com/sap/support/sapnotes/public/services/attachment.htm?iv_key=012003146900000413012015&iv_version=0001&iv_guid=6CAE8B27F67B1EE4B7E5FE376556E0D4):

Logout (or l). This indicates that the student logged out from within the lesson instead of returning to the CMI system to log out. This implies that the lesson passed control to the CMI system, and the CMI system automatically logged the student out of the course -- after updating the appropriate files.

There's ambiguity of what it means to "logout out of a course" versus "logout of the LMS", but it appears SuccessFactors has interpreted it to mean the latter.
To unsubscribe from this group and stop receiving emails from it, send an email to elearning-technology-and-development+unsubscribe@googlegroups.com.

Philip Hutchison

unread,
Mar 21, 2017, 4:09:58 PM3/21/17
to elearning-technolo...@googlegroups.com
Great info, Alex. Thanks for sharing.

If anyone runs into this issue and want to avoid it, they can disable the automated exit mode handling via:

pipwerks.SCORM.handleExitMode = false;


and manually specify the exit status:

pipwerks.SCORM.set("cmi.core.exit", "suspend");



MOLOKO

unread,
Mar 22, 2017, 7:31:06 AM3/22/17
to eLearning Technology and Development
We tend to always disable 'handleExitMode' for SCORM 1.2 - there doesn't seem to be any benefit to setting it under SCORM 1.2 and doing so can trigger bugs like this.

For SCORM 2004 it IS important to handle the exit mode correctly.
Reply all
Reply to author
Forward
0 new messages