Page 1 of 1

Long suspend_data for SCORM

Posted: Fri May 29, 2015 3:07 pm
by marcelmuntaner
Hi,
I use Articulate Storyline a lot.
One of the things with Articulate Storyline is that it makes an intensive use of the SCORM string 'suspend_data'.
This is the string that is used to store the information about interactions of the user so that when the user is back, the state of the course can be resumed.
If the course is very long and there are lots of consuming elements (like: text variables, slides that are set to resume saved state, objects with states, text inputs, etc.), the space in this string runs out. This makes that when you reenter a course, it doesn't bring you back to where you were, but to the place where the string has reached its limit.

To see this, find a SCORM package that I had prepared for testing (click here to download, I couldn't upload it here due to the size limit). It's only 16 slides where each slide uses one text variable (in the background).
Try the following:
- upload the package
- enter, advance (one or two slides) and exit - a few times.

You'll see that after a while it doesn't bring you back to where you were (I think it reaches the limit at the sixth slide).

Proposed solution:
In the file ‘\appLms\modules\scorm\ScormTypes.js’, change:

Code: Select all

function scormTypes_characterstring( maxlen, value ) { 
       if( typeof(maxlen) == 'undefined' || maxlen === null || maxlen === '' ) 
             maxlen = 4000;
       return scormTypes_checkLen( maxlen, value);
}
For:

Code: Select all

function scormTypes_characterstring( maxlen, value ) { 
       //if( typeof(maxlen) == 'undefined' || maxlen === null || maxlen === '' ) 
             maxlen = 4000000;
       return scormTypes_checkLen( maxlen, value);
}
If you do this fix and then go back to the package, you will find that it always remembers the last position.

Re: Long suspend_data for SCORM

Posted: Fri May 29, 2015 3:56 pm
by max
Hi Marcel,

thank you for the analysis. I see your point. Even other forum users had pointed out similar issues. Our developers will have a look at the solution you propose, although I don't see anything wrong with it (it just changes the maxlen value).

Re: Long suspend_data for SCORM

Posted: Fri May 29, 2015 6:26 pm
by canelli
Hi marcel
the solution you propose can not be accepted and included in standard forma.lms package beacause it breaks SCORM specification.

suspend_data specification
SCORM 1.2: CmiString4096 datatype - the element must be max 4096 char
SCORM 2004 3rd: Data Type: characterstring (SPM: 64000) , e.g. 64000 char len

Re: Long suspend_data for SCORM

Posted: Tue Jun 02, 2015 5:30 pm
by marcelmuntaner
Hi Claudio and Max,

Thanks for the quick responses, it's very good for an open source software to have an active community.

While I was trying to resolve the issue due to a long SCORM module I was trying to track, I noticed that some other users had similar issues. But those threads were resolved, so, not being sure if the issue was the same, I opted to not to reply those threads.
This is one of the reasons for the long explanation before the fix: so that a user that has a similar issue can identify it and easily find it via the search utility of this forum.

Concerning the specifications of SCORM, I must admit that I've exaggerated a lot the size of the maxlen variable.
However, I think that increasing at least ten times the original value is important. In my case this is an essential feature.
Leaving it as it is now makes the player not compliant with the standards for being too short, while it's a common practice now for eLearning platforms to extend the limits beyond SCORM specifications. This is due to the increasing popularity of Authoring tools like Articulate Storyline, that make intensive use of the suspend_data variable.