SCORMs not Bookmarking in LMS365
December 29, 2022 12:00 AM
Hello,
Is anybody using LMS365?
All our SCORMs published by Lectora stopped "bookmarking" users' last pages when resuming a previously started course. The only offered solution has been to set the LMS settings to open the SCORMs in a new window, which we are trying to avoid.
Solution
Here is a little more information, and two potential workarounds.
Lectora SCORM packages use an API provided by the LMS to save information [like last page visited]. It calls the API method LMSSetValue() to do this. Typically LMS implementations of this API do not send that data to the server until another method is called, which is LMSCommit(). This worked fine for many years but then Chrome (version 80) decided to change the way things work when the browser window is closed. Previously when the browser was closed Lectora or the LMS API would ensure LMSCommit() gets called to persist any data the course wanted saved. Now if the browser is closed there is no guarantee because the browser will not allow these calls when the window is closing.
Many LMS systems adjusted for this by calling LMSCommit() and sending data to the server at certain intervals, say every three seconds. If they are a bit smarter then they do this conditionally if anything has changed (or if LMSSetValue() was called). You might send a link to this post and ask your provider how they handle this.
There are a couple ways the course can try to handle this.
One way is to create an clear path to exiting the application that you inform all students that they must use in order for their information to be saved. On the close button, then put a Close/Exit action and then take them to a page that says your information was saved and you can now close the course. This is good if you can communicate it effectively.
Another workaround is to create an action at the root of your Lectora Project that is triggered On Show so it gets called for each page. This action will set the course completion status equal to itself and under the covers this tells the LMS to call LMSCommit() which should persist any changes. Set a delay of 1 second on this action so that the bookmarking updates are made before calling. See the screenshot.
Some LMS systems only send the data when LMSFinish() is called, if that is the case, you need to try the previously mentioned exit button workaround.
Discussion (2)
Hello Wheels,
The LMSCommit() option did not work, but the button workaround did.
Thank you for your help! :)
Here is a little more information, and two potential workarounds.
Lectora SCORM packages use an API provided by the LMS to save information [like last page visited]. It calls the API method LMSSetValue() to do this. Typically LMS implementations of this API do not send that data to the server until another method is called, which is LMSCommit(). This worked fine for many years but then Chrome (version 80) decided to change the way things work when the browser window is closed. Previously when the browser was closed Lectora or the LMS API would ensure LMSCommit() gets called to persist any data the course wanted saved. Now if the browser is closed there is no guarantee because the browser will not allow these calls when the window is closing.
Many LMS systems adjusted for this by calling LMSCommit() and sending data to the server at certain intervals, say every three seconds. If they are a bit smarter then they do this conditionally if anything has changed (or if LMSSetValue() was called). You might send a link to this post and ask your provider how they handle this.
There are a couple ways the course can try to handle this.
One way is to create an clear path to exiting the application that you inform all students that they must use in order for their information to be saved. On the close button, then put a Close/Exit action and then take them to a page that says your information was saved and you can now close the course. This is good if you can communicate it effectively.
Another workaround is to create an action at the root of your Lectora Project that is triggered On Show so it gets called for each page. This action will set the course completion status equal to itself and under the covers this tells the LMS to call LMSCommit() which should persist any changes. Set a delay of 1 second on this action so that the bookmarking updates are made before calling. See the screenshot.
Some LMS systems only send the data when LMSFinish() is called, if that is the case, you need to try the previously mentioned exit button workaround.