Is there any way using Captivate 7 to tell a SCORM 1.2 or SCORM 20004 course to send the bookmark data to the LMS on every slide in the course until you get to the quiz, and then only send the resume information at the end of the quiz, so that the quiz does not get bogged down with network traffice?
This is where the problem comes. About 1 in ten students get a Communication Error with the LMS when they click on the Continue button on slide 13. My guess is that most of these people who receive this error are on a very slow or busy network. If that student closes out of the browser and then tries to get back in to continue from where they left off, instead of returning to slide 13, they are always returned to slide 3, the first Web Object Interface slide and must go through almost an hours worth of videos again before they can get back to slide 13 again. And on top of that, some students get hit by the communications error multiple time and each time have to restart the course at slide number 3.
Our LMS uses a pop-up browser window to display the course and uses another webpage (which has to stay open while the course is being taken) to communicate back to the LMS. There has been at least one instance where the student recieved this Communications Error message, closed just the pop-up window where the course was being display, but instead of closing the entire web browser, clicked on the "Launch Course Again" button on this other page and they were able to return back to slide 13 and continue the course from there. But every other time someone has run into this Communications Error problem and they contact us, they have already closed out of the web browser.
I have read that having the advanced setting of "Send Data On Every Slide" checked can really bog the course down when someone is taking a long quiz (we are using 25 Random Quiz Questions in this course) and I would like to avoid bogging down a network where they may already be having slow network issues).
My main concern is that if someone spends the time to watch each video, then I want to make sure that the SCORM bookmarking process works and if they have to get out of the course after watching some or all of the videos using the Web Object Interface, that the normal SCORM bookmarking process remembers which video slide that the student has already watched rather than forcing them to always go back to slide 3 (the first video slide in the course using the Web Object Interface).
So is there any way to tell the scorm bookmarking process (either 1.2 or 2004) to make sure that it remembers that the student has already watched certain slides without having to set the Send Data On Every Slide indicator? And since each video (using a Web Object Interface) lasts between 3 and 8 minutes, there should be plenty of time to get this communication back to the LMS and set the SCORM resume data before it is time to go to the next slide.
This problem (the LMS not remembering that the student has already gone past these other screens which are all before any quiz questions are encountered) is the biggest problem that we ran into when we rolled out our first course to about 15,000 students. And since we are using this past course as the base for the next course that we will be rolling out in about a month (this time using SCORM 2004 Ver. 4), it is liable to be our biggest problem with our next course also. We actually had to create a 2nd course which did NOT include the video slides and manually re-assign the students who ran into this Communication Error problem and let them take this version of the course.
I don't know if this is a problem related to the new Web Object Interface, where the SCORM bookmarking cannot tell the difference between the first video slide or the last video slide, or if something else is going on. It just seems strange that after this communication error arises, it never goes back to slide 1 or 2. It always restarts on slide 3 (the first video slide). When I first created these slides, I create slide 3 from a blank slide, added the Web Object Interface and a continue button which shows up when the video is supposed to be completed. Then I just duplicated the rest of the video slides from the first one and only changed the URL that the Web Object pointed at and changed the name on the slide. Instead of using the Duplicate slide function, would it have made a difference if I had created each new slide from scratch and re-added the Web Object Interface and created a new continue button? Could that be why the bookmarking system doesn't seem to know the difference between the 12th (10th video) slide and the 3rd (first video) slide?
Any help or advice would be greatly appreciated. Thank you for your time.
There could be several issues here.
SCORM 1.2 and 2004 operate very differrently concerning resume data (lesson_location table). In most LMS's SCORM 1.2 will store the data directly to the table, SCORM 2004 will store the data in a temporary table, and wait for the exit call to see if it should put the data in the permanent table (api.SetValue("cmi.exit", "suspend") will move the data, if the exit is not set to suspend, that data will be discarded.
Many LMS's have timeouts, if you are not sending any data to the LMS during the slides that have the WOI, the LMS could break connection.
Our old courses would fail if the page that was initializing the LMS also had a swf file that was loading. Loading movies through the WOI could be causing problems if the course is trying to communicate to the LMS at the same time.
In our SCORM 2004 courses we always call the api.SetValue("cmi.exit", "suspend") after any data is sent to the LMS. That way it is always stored in the permanent table no matter how the course is exited. If the browser lock up or blew up the last location is still in the LMS. Sometimes a user will lose a connection and not know it, in which case they are out of luck.
We have found that some students will open the course content in one browser and the quiz portion of the course in another, at which point all sorts of tracking anomolies can occur.
If you could be more specific on the Captivate tracking settings, SCORM version and anything else possibly I could help more.
I'd be interested to hear more about using something like api.SetValue("cmi.exit", "suspend"), except for SCORM 1.2.
In Captivate SCORM 1.2 the command would be:
Yes, you eecute it on whatever slide you want. In our courses it executes on every slide as it's called in the functions that set data.
The Captivate SCORM API discovery should handle the parenting for you.
Thanks TLC. If I could mark your answer as correct for the original, I would!
When you say, "Sometimes a user will lose a connection and not know it, in which case they are out of luck." does this mean they are out of luck, even when you use the code? Is there a way around this? I see there is now an option to send data on every slide:
Preferences>Quiz>LMS Advanced settings
check the checkbox: “Send Data On Every Slide”
Would this be a better way of doing it than using the code?
Just FYI, the default SCORM template is doing that 'Send Data On Every Slide'.
We are having issues that when the LMS gets disconnected, the user does not get credit, and also starts from the begining of the course. We would like to make it so they at least start from the point where the LMS got disconected. The code does not seem to help with this. Does anyone have any ideas? Or a good explanation to why this is happening so that I can let my client know what is and isn't possible?
Just checking back on this old post to see if anyone had come up with an answer.
The proposed answers listed above did not work, so this problem still exits. I am now using Captivate 8 and just about to start using Captivate 9.
It's only after all of the streaming video slides (which are run back-to-back) are done playing that communications back to the LMS is really re-established (such as sending the Suspend Data). It is at this point that some of our users experience the "Communication Error". If they close out of the pop-up window and restart the course, they are often started back at the first streaming video slide.
There might be a way to "fool" the system, but we have not chosen to use this option. We might be able to put blank or dummy slides in between each video chapter which does NOT include the video player for the streaming video. We did try it at one time, but only left 3 seconds laps between the chapter videos and this did not appear to be enough time for the Suspend data to be transferred. Now that we are starting to use Captivate 9, we might try it again and this time leave up to 10 seconds of "dead air space" between each video chapter to try and let the suspend data be transferred. I am also starting to suspect that the main group of people who are getting hit with this communication error are those that for some reason have a slow internet connection, so possibly giving them 10 seconds between each video might just be enough.
I suggest you get your server administrator to check the CPU activity on the server when you have a number of users accessing these courses. It could be that your server is becoming bogged down with requests and is unable to respond in time for your course modules.
This is known as server latency. How LMS server latency can kill your e-learning | Infosemantics Pty Ltd
Fortunately there are some things you can do about it: How to set up Adobe Captivate e-learning to mimimize load on Learning Management Systems | Infoseman...
Change the argument for each slide, or you could get the Captivate object and concatenate the argument:
var objCp = document.Captivate;
var currentSlide = "Slide_"+objCp.cpInfoCurrentSlide;
Captivate write huge suspend_data strings. Captivate stores information about every slide and uses that in conjunction with the lesson_location to determine how the bookmarking works. I would think it's not just about writing the huge amount of data, but also the gathering of the data internally.