Forum Discussion
Storyline Suspend Data Compression
Good day!
As some of us know SCORM 1.2 only limits its suspend data for up to 4096 characters. Storyline (360) compresses its data (e.g. SL variables and such) in order to fit the limitations of the suspend data. There must be an underlying decompression algorithm or its own unique reader on SL to read the suspend data.
My question is when this compressed suspend data becomes decompressed, would there be a possibility of it hitting the 4096 limit?
63 Replies
- MichaelBauerCommunity Member
Thanks for the insight here :)
I'm not willing to get in to the SCORM coding, but at least doing a "Reset to initial state" should help!
- DavidHansen-b20Community Member
Yes, that should be fine. The lms/API.js file rarely would change unless there is some update to handle a new API or fix. That seems to rarely happen these days, and many people haven't even adopted TinCan/xAPI yet.
- samerCommunity Member
Hello David,
It appears that since recent Articulate update to 360 this code no longer works.
Would you have any ideas or suggestions as to why?
Help much appreciated!
Kind regards
Sharon Amer
- samerCommunity Member
Thank you David for your help and advice!
I have now successfully implemented the code and tested it on SCORM CLOUD and on our LMS (Webanywhere) Moodle version 1.6.
However this is to be implemented on my clients system who use SAP success factors.
I am slightly apprehensive to give a 100% guarantee that the problem won't occur on their system but am struggling to find out the exact specification of the LMS but I believe it is a custom based solution (if anyone reading this knows?)
I have suggested that they complete a test but my team want to just offer a solution.
I have explained that although we have tested, it still needs to be tested on the Clients LMS as the
LMS can still truncate the data
Would this be a fair analysis? I appreciate your advice, although i'm confident with editing the package, when it comes to API's I am reaching my depths of understanding.
I'm still unclear as to whether this is specific to Articulate Storyline or this happens with any software of this type?
Thanks in advance
regards
Thanks in advance
- DavidHansen-b20Community Member
I do have a bit of experience dealing with customers using SAP Success Factors. It has definitely been one of the more pain-in-the-derrière LMS systems. And yes, SuccessFactors seems to be fixed in time on SCORM 1.2 (and doesn't even support recording interaction data). Anyway, this fix should still help and work fine. But like you, and with my previous SuccessFactors experiences, I would be hesitant to give a 100% guarantee, at least without someone first testing your course on your client's specific version of SuccessFactors. Though, I do know that by using base64 encoding, the suspend_data itself should be fine with SuccessFactors as long as it's not truncated. What would cause me reservation is just the broad number of issues I've encountered with SuccessFactors.
As to whether the suspend_data actually gets truncated or not, that should depend solely on whether your course creates more than 4096 bytes of compressed data. What we usually do is test our courses on cloud.scorm through to the last slide and then exit (causing a suspend). We then look at the registration data on cloud.scorm and examine the size of the suspend_data (typically, you can just copy the result into a web-based byte/string counter and see how long it is). If it's close to 4096, then we have concerns. If it's smaller by at least a 10% margin, then we feel more confident that everything will be fine. Otherwise, we have to figure out how to trim out some of the items that cause saved state to be larger (typically we pair down the number of interactions).
I hope that helps! And good luck!
- VictorMadisonCommunity Member
David, counting the bytes in the suspend data using the SCORM Cloud registration info is great. This is the closest method I have seen for measuring the suspend data for a course. It may not be exact, but it at least gives you an idea of where you are. Thank you very much.
- samerCommunity Member
Thanks David for your help and advice. It has been tested on SuccessFactors and has no issues so far!
I have also tested on SCORM cloud.
However we have just uploaded a replacement module on Webanywhere (moodle 1.6) and got the attached error?
The first test we did worked ok. Have you seen this before?
regards
sharon
- DarioDabbiccoCommunity Member
Hi Sharon, this is an error I usually see when you zip the root folder of the storyline output (es. project - storyline ouput) and not the actual files inside the folder (index_lms.html, imsmanifest.xml etc.). This creates an "extra" outer folder that some LMSes such as Moodle do not accept.
- DavidHansen-b20Community Member
Yep, Dario is spot on. For this very reason, I like to use a command line zip tool. Then I can be sure that I'm in the right directory (where the imsmanifest.xml file is located) and getting all the files. For the tool I use, the command looks like this:
zip -r ../course.zip *
In the this example, the '-r' signals to recurse into subdirectories, the '../course.zip' is the zip archive name (located in the directory above the current directory), and the '*' specifies to package all files/directories from the current working directory.
Hi Sharon,
I agree with Dario.
Try zipping the content from the Publish Successful dialog window to see if it alleviates the issue you're seeing.
- ValeriaVillarroCommunity Member
Hi Folks - would this code work with a SCORM 2004 3rd ed as well?
- DavidHansen-b20Community Member
Yes, this will also work on 2004 published courses. The code change is in lms/API.js which is common to both the SCORM 1.2 and the SCORM 2004 interfaces.
- AndreaBrigan523Community Member
I read this long post and this story is something that perhaps Articulate can consider to improve the software. I am not a developer but I wonder if articulate can do something to bypass this limitation. I don't know....I found this script inside the file scormdriver.js of the course published in SCORM 1.2... What does this mean? Is articulate chunking the volume of suspend data as soon as the y reach 4096? However, is it possible to make something to ignore that limit keeping the SCORM 1.2 format?
if(USE_STRICT_SUSPEND_DATA_LIMITS==true) {
if(strData.length > 4096) {
WriteToDebug("SCORM_SetDataChunk - suspend_data too large (4096 character limit for SCORM 1.2)");
return false;
}else{
return SCORM_CallLMSSetValue("cmi.suspend_data", strData);
}
}else{
return SCORM_CallLMSSetValue("cmi.suspend_data", strData);
}
}- DavidHansen-b20Community Member
"I wonder if articulate can do something to bypass this limitation." - unfortunately, the limitation of 4096 bytes comes from the SCORM 1.2 specification itself. Depending on the LMS system, some will adhere to the specification very strictly and others will make accommodations where it makes sense. Eg, many LMS systems will allow the administrator to configure the maximum size of suspend_data regardless of the spec (all variants of the Rustici driver support this). However, Articulate is bound by whatever implementation of the specification the LMS's has and can not just bypass that.
Note: The really simple solution is actually just to use any variant of SCORM 2004 where it was quickly recognized that 4096 bytes was insufficient and increased the specification maximum to 32768 bytes (as well as many other improvements to the specification). SCORM 1.2 is from 2000-2001, almost 20 years ago! It's unbelievable to me that we are still struggling to get out from under a specification from that long ago! Unfortunately, they did not build in a plan for obsolescence to force progression to newer standards (many standards today do this). About all I can say is there must be a clear desire for simplicity and that is one of the driving reasons why so many people continue to use SCORM 1.2 - it is "simpler".
In regard to your question about that piece of source code, that is designed for the few LMS systems that will potentially crash your course if you attempt to send more than 4096 bytes. If you happen to have one of those rare LMS systems, then you can simply set the USE_STRICT_SUSPEND_DATA_LIMITS variable in the Configuration.js file. Most LMS systems that strictly support 4096 bytes will merely drop the portion that is over 4096. This will often result in your Articulate course resuming some place prior to where you actually left off. With the setting above, if you get to a point that suspend_data exceeds the 4096, all suspend_data will be dropped and you will be resumed to the beginning of the course.
- AndreaBrigan523Community Member
Hi David,
thanks a lot for your reply. I am fully aware about the fact that SCORM 1.2 is not really a modern format. My Company is selling compliance courses for the financial industry so we have to deal with a wide range of LMS (some accepting only SCORM 1.2) and prepare our catalogue in various formats is challenging : this is the reason for which we decided to simplify our production process using SCORM 1.2 only.
Our catalogue counts more than 200 courses and some are in 4 languages and at least one update per year is requested by the Authority.
Beside that, it is also true that our courses are big not only in terms of slides but also in terms of variables and interactions. Of course it is possible to simplify it but this activity will request time and I am also not sure that it will bring to a good result without jeopardizing the quality of the courses.
Last, we are also using moodle for few clients but, as per my understanding, it doesn't support the SCORM 2004 or better...the course is working but the resuming function doesn't.
At the end I decided to write to the community and share my thoughts on this topic users, which quit the course without completing it, can't restart from where they left and this is perceived as a bug. On the other hand users that are taking the course in one shot without interruptions are super happy....
- PhilMayorSuper Hero
Moodle is one of the LMSs where you can override the strict scorm limit
- AndreaBrigan523Community Member
Hi Phil,
How can I do that? Indeed I already checked the moodle.org to find a way but I had difficulties in finding a good procedure. Can you maybe advise or suggest a website where I can get the procedure?
- DavidHansen-b20Community Member
Welcome to my world! Except you apparently have not yet run into the customer that has an LMS that does NOT support SCORM 1.2 (only 2004 or later)...
- NathanHartwickCommunity Member
You can override the SCORM limit by going to site administration > plugins > SCORM package and scroll to the bottom of the page to Admin Settings and uncheck the box for SCORM standards mode.
Related Content
- 6 months ago
- 7 months ago
- 8 months ago
- 4 months ago
- 6 months ago