I've tried doing this through a button that would execute g_objAPI.LMSCommit(''); and also go to the next slide. It doesn't seem like this worked as we don't see any additional commits on the LMS side.
I've tried executing the script to happen upon entering a slide. Again there was no increase on the LMS side.
Did you ever find a solution for this problem? I would like to do the same thing (using SCORM 2004).
What is not happening that you feel you need to force a commit? Are your bookmarks not staying?
You only need to do a commit when data is written to the database. In 2004 using an exit to suspend is more advantageous. We are using an older version of Oracles LMS, Learn.com.
Normally the bookmarking works fine for us, but about 10% of the students
run into the following problem.
We have the student go through about 12 slides in our course (slides 3
through 12 are slides which contain videos and last about 6 minutes each),
which takes them about an hour to go through. Then for certain people
they get a communication error and have to close out the course. Then
when these students try to resume the course, they always have to start
over at slide 3 again and are forced to watch the same hours worth of
I am using Adobe Captivate to create this course. The last course we ran
was using Scorm 1.2. This time we will be using Scorm 2004 version 4.
I just want to make sure that if someone gets a communication error (which
apparently no one has any idea what is causing it) that the student will
be able to actually resume where they left off.
I have heard that when using Scorm 2004, the suspend data and location
only get updated when a commit takes place, and since these students
always get sent back to slide number 3 (the first video slide), then slide
3 must be the only slide doing a commit (behind the scenes).
Therefore, I am trying to figure out what the correct sequence and syntax
for making sure that we are updating our suspend data and location as well
as doing the commit on each of these 6 minute video slides.
Any help would be greatly appreciated.
In SCORM 2004, in Learn.com, which Taleo bught, and then Oracle bought, data is stored in a temporary table. The way the data gets commited to a permanent table is when the exit is set to suspend. If the course blows up, the progress is still saved. Another thing, don't make any calls when a swf or a video is loading. All initialization really should take place before the captivate swf is loaded. In all of our functions we set the exit to suspend like this in the setValue function:
function doSetValue(name, value)
var api = getAPIHandle();
if (api == null)
//alert("Unable to locate the LMS's API Implementation.\nSetValue was not successful.");
var result = api.SetValue(name, value);
if (result.toString() != "true")
var err = ErrorHandler();
result = err;
win.opener = true;
Hi BubbaRB - for our specific issue I was able to place a question (survey) slide at various intervals within the course. So the questions weren't scored but the interaction was. This helped for our really long courses. Since you're embedding videos, I'm not sure that solution is going to work. So far for every course I've seen with videos, if you leave or are disconnected from the LMS, you have to watch the entire video all over again unless you keep the fast forwarding capability in there.
There are several commit statements in the scormdriver.js and SCORM_utilities.js file.
You could try any of these to force a commit:
SCORM 1.2 = SCORM_CallLMSCommit();
SCORM 2004 = SCORM2004_CallCommit();
There is also a function CommitData();, can't tell off hand what it is used for, there is a ton of trash no matter which version of SCORM you choose.
I am having a simular issue, we are dealing with an old LMS, when it disconnects unexpectingly, it does not bookmark.. Would putting this code: SCORM_CallLMSCommit(); into the next button of each page, allow it to save progress.