SCORM 2004 - suspend_data not saving in SCORM Cloud - scorm

I have a bit of a strange problem and am struggling to find any relevant info about it in the docs or elsewhere.
We have implemented SCORM 1.2 and 2004 in the past and I'm currently trying to fix an issue we have with our 2004 version and have hit a bit of a brick wall. We store data about our learners progress through the course, i.e which pages they have visited in 'cmi.suspend_data' we then retrieve this at the start of their next session to provide visual feedback in the UI.
In 2004 2nd Edition, we are unable to retrieve that data from the LMS.
To take it right back to basics, I have uploaded a blank SCORM course to SCORM Cloud (empty index.html) and am launching the course and finding the API_1484_11 and calling the following functions on it.
API.Initialize('');
API.SetValue('cmi.suspend_data', 'Test');
API.Commit('');
API.Terminate('');
Then exiting the course. At this point I can see the suspend data in the 'Sandbox Registration State'.
I then go back into the course and call:
API.Initialize('');
API.GetValue('cmi.suspend_data');
And am returned a blank string. At that point if you do API.GetLastError() it is a 403.
Am I missing something vital here, or some difference between 1.2 and 2004? Is this expected behaviour?

I think the issue you are running into is that you are not setting cmi.exit to "suspend". I believe that the specification says that the LMS is to retrieve the suspend_data from a previous learning experience only if the exit is suspended...

Related

Scorm Suspend Data issue migrating from scorm cloud

I currently have a client that has a Scorm 1.2 course which is hosted on Scorm cloud. Things are going fine there with the course but the client wants to get off Scorm cloud because the fees are adding up. I know Scorm cloud is a very in depth application but all the client really needs to worry about is allowing the user to continue where they left off, detecting if the user passed the final score and ideally the score they got on the final exam.
I have used a few different scorm player wrappers but I am running into the same issue with them all. The scorm course made from storyboard creates a huge value for suspend_data and when it is really long for some reason the course will ask if the user wants to continue where they left off but will bring them back to the beginning and not continue where they left off.
I know to be Scorm 1.2 compliant the suspend_data should be no longer than 4096 characters but some are upwards of 90,000 characters. I also have read Scorm doesn't really enforce this it is mainly a LMS restriction on field size. I am storing all of the cmi data into a medium_text field so I am not having an issue with storing it.
My main question is has any migrated off scorm cloud and took their users history (suspend_data) with them to have users continue where they left off with your scorm player? Another question is has anyone had this issue and is there a player/wrapper you have used to successfully use a large suspend_data for a Scorm 1.2 course. What I am trying to do is take them off Scorm cloud so I can do an api call to get all of the cmi data for each user and then start launching directly from their site and store new cmi data but we can't move away since many users would have to start the course over.
I did run more tests with my scorm player and when through the entire course and saved my suspend_data at various points and I can get it to launch at that point. The longest my suspend_data was just under 30k characters.
Any tips in the right direction would be appreciated.
Migrating SCORM data from system to system is tough as while the SCORM elements themselves should be named similarly in the systems SCORM implementation, each LMS could store/name them in a different manner.
As far as the large suspend data issue goes, are you moving to a system that allows for a customized maximum suspend data size? In SCORM Cloud and LMSs that run our SCORM Engine, we do have that course property that allows you to store as much suspend data as you want. There are a number of LMSs out there that use Engine so you may be able to modify that behavior.
Shoot us a message at support#scorm.com if you have any other questions!
Thanks,
Joe Donnelly
Rustici Software Support

Is Edit and Continue patented?

Just wondering why there isn't that many ide that can edit native code at runtime.
Visual Studio is the only one that can do it?
gdb can "compile and inject code", but it only executes a single line of code, doesn't seem like it modifies anything.
Found this https://www.google.com/patents/WO2015200235A1?cl=en , but not sure where can I get the whole patent, it's just ocr without any graphic.
I need to know if that technique of starting all functions with 6 nop is patented, that's all I care. It's pretty old by now. I plan on developing a language, if that matters.
To get a full answer you would need to contact a patent attorney, patent search company or engage with an examiner at a particular patent office.
For the patent you found above, you can obtain more complete information, including drawings etc from WIPO PATENTSCOPE here.
The preliminary search report from WIPO indicates that claims 1,2 7, 9 10 and 15 are insufficiently novel, and claims 1-15 do not constitute an inventive step on the basis of obviousness.
The WIPO Application has entered into national phase under application EP15735802 in Europe, and the website shows two citations, one patent and one NPL (non-patent literature). I can't post the link because I am new to stack overflow and can only post two links, but you can use the 'national phase' tab of the link above to go direct to the European Patent Office website.
You can search Esp#cenet using keywords to see if there are other inventions out there which are close to your idea.

Smartsheet Sync for Google Forms times out

I'm getting an error for a survey that has about 90 questions but only 10 respondents when I try to use the Smartsheet Sync add on. Error says that it"Exceeds Maximum Execution Time". How can I increase the execution time so that it will add responses to my Smartsheet? I don't know anything about coding. I'm not evens sure if I could edit the add-on? Please advise.
Thanks for sharing your form with me, so that I could take a closer look. It appears that your form actually contains 96 sections each with multiple questions. When you create a Google Sheet for the form responses, 361 columns are created.
This is probably the cause of your issue. Each sheet in Smartsheet can only handle around 200 columns per sheet, and Smartsheet Sync automatically tries to create a column for each question in your Google Form. It appears you have uncovered a bug where our error messaging in Smartsheet Sync could be better - informing the user that the form has more questions than a sheet can handle, rather than trying to create the sheet and then timing out. We will make a note of this bug so that we can address it in a future revision.
As it stands, Smartsheet would not be able to handle a form with 361 questions, so it doesn't appear that Smartsheet Sync will be able to handle this form.

Some persistent data is not stored issue in Scorm

I have a question in scorm,Actually now i have a scorm package created in lectora and its launching and working fine for me .But in the middle one alert is showing "Some persistent data was not stored" .When i googled it i got that its due to the exceeding of suspend_data reporting from the scorm package(4k for scorm 1.2 and 64 k for scorm 2004).
How can i crack the problem through my code or how can i set the maximum limit in my scorm adaptor because i cant change the package.
Hope you understand the problem very eagerly waiting for your reply
Thanking You
Arun KG
I have seen solutions where developers have hijacked some of the other read/write CMI fields to store arbitrary data. For example, cmi.comments gets you another 4K in SCORM 1.2. SCORM 2004 gives you quite a few more (cmi.interactions.n.description, cmi.objectives.n.description, ...).
Most of these alternative fields are not mandatory, so your target LMS may not support them.

SCORM 1.2 suspended_data for different SCOs

I'm new to SCORM itself and I have a problem with tracking progress via Moodle's LMS API
SCORM version is 1.2
I have structure like this:
Lesson1
Module1.1
Module1.2
...
Lesson2
Module 2.1
etc
Each lesson has a set of modules of 2 types:
HTML Modules - modules that are just viewed by users
Game Modules - some games that have a medal (none, bronez, silver, gold) - as a result of module completness
The progress tracking problem is following:
I need to track progress on different Lessons based on a progress of their children Modules (sequencing?).
After all: I need to add a START to a lesson after all Game modules of the lesson are finished. Star indicates some sort of Progress on a lesson level
What I'm trying to do is to store Module's progress data (medals) in cmi.suspended_data variable as a string:
"module1.1,gold|module1.2|silver ..."
After that I want to process that thing each time page is loaded and figure out if I gain a STAR to one of lessons. For example: when I've finished last game in lesson1 with a medal so that all games are now have medals - and after that I move to lesson 2 - I should add star to lesson 1...
The problem is that moving from module to module and from lesson to module etc - RESETS suspended_data variable.
Question1: Does suspended data link to a SCO object? (which means each module/lesson has it's own suspended_data var)
Question2: What is CORRECT approach in this situation to trach sequencing progress (As I've seen, scorm 2004 has some sequencing mechanisms that can be described in Manifest. Which is correct approach in 1.2 version)
Question 1: the cmi.suspend_data is unique to each SCO, and can only be read/set from within the SCO. In your case, SCO2 cannot read SCO1's suspend_data and vice-versa.
Question 2: you'd better stick with a single SCO aproach here. All your modules and lesson will be part of a single SCO, which means you will be able to track the medals and user progress w/o any problem.

Resources