SCORM 1.2 LMSFinish Issue in Linux Moodle 2.4

I am having an issue with SCORM 1.2 Single SCOs that were working fine in a Moodle 2.2 Windows implementation, but are now hitting a problem in a Moodle 2.4 installation on Linux.   In doing some debugging work, I think I've identified where the issue is occurring and how it differs from the Windows installation.  

The issue occurs only when clicking the "Next" button in our course, where we have attached an "Exit Course" trigger.  In the debug window, a sequence of SCORM functions are called.   The sequence looks like this:

1159: - In SCORM_Finish strExitType=SUSPEND, blnStatusWasSet=true

1160: - In SCORM_ClearErrorInfo

1161: - Setting Exit

1162: - In SCORM_TranslatgeExitTypeToSCORM strExitType-SUSPEND

1163: - Returning suspend

1164: - SCORM_CallLMSSetValue strElement=cmi.core.exit, strValue=suspend

1165: - In SCORM_GrabAPI

1166: - SCORM_GrabAPI, returning

1167: - Calling LMSSetValue

1168: - strResult=true

1169: - Returning true

1170: - Calling Commit

1171: - In SCORM_CallLMSCommit

1172: - In SCORM_GrabAPI

1173: - SCORM_GrabAPI, returning

1174: - Calling LMSCommit

1175: - strResult=true

1176: - Returning true

1177: - Calling Finish

1178: - In SCORM_CallLMSFinish

1179: - In SCORM_GrabAPI

1180: - SCORM_GrabAPI, returning

1181: - Calling LMS Finish

Now here is where the problem begins.  In Windows Moodle 2.2, after calling LMSFinish, you see the following:


Returning True

Returning True

These lines are missing in Linux Moodle 2.2, which stem from the function SCORM_CallLMSFinish() defined in SCORMFunctions.js in the /lms folder in the published package.

By looking at the API Debug window in Moodle, I see that LMSFinish is called, and then the API object shuts down.  So the line "strResult = SCORM_objAPI.LMSFinish("");" from SCORM_CallLMSFinish() does not execute, since no API object exists.  So even though I click "Next", which executes the "Exit Course" trigger, the Storyline content just stays as is.  When I click the "Next" button AGAIN, I see the "Goodbye.html" file displayed, more functions execute in the debug window, but there is still no API object.

So I can then exit the SCO by clicking on a button provided in the Moodle Interface, which brings me back to the course menu. But when I try to re-enter the SCO, it just hangs (I assume because it did not shut down properly.  Everything else seems to be working fine (Quizzes passing values, suspend data, completion of the SCO, etc.), but there is some issue with "Exit Course/LMSFinish"

Any advice on how to proceed would be appreciated.  I am wondering if some of the functions within the Exit Course sequence of events could be moved up so this shutdown of the API object does not cause a problem.


Be the first to reply