Copy link to clipboard
Copied
Hello! We are expereincing a combination of events which result in our users not having their progress or completion recorded in the LMS.
We are expereincing a lot of users who are timing out of their session. They get to a point in the lesson and the lesson will not continue. I can see users getting 404 or 403 errors when this happens. This seems to be an IT or LMS vendor issue, but it is exposing another problem.
We have a lot of users who are timing out and after the re-authenticate and launch the lesson again, they are having to start the lesson back at slide one. This is confusing me, because I have the "Send Data on Every Slide" option turned on in my publish settings.
Does anyone know exaclty what data is being sent on every slide? Are user variables being sent? I update a "visited" variable on every slide visit, but either it is not being sent to the LMS on every slide, or the send data on every slide is not working.
My lessons based on this template have been working flawlessly for the last couple of years, but with this timeout issue, we are finding a new flaw.
Captivate version: 11.5.1.499
OS: MacOS 10.14.6
LMS: SuccessFactors
I am using SCORM 1.2.
I have have checked "Send Data on Every Slide" in LMS Advanced Settings.
In order to get Successfactors to store the progress and other Captivate variables, you need to add this code in a JavasScript window:
SCORM_CallLMSCommit();
I would recommend doing this on the "On Enter" of the slide actions.
You could do it every screen or every 5 screens, whatever interval you decide is an accaptable amount that users might have to repeat if they loose connection to the LMS.
Anoth
...Copy link to clipboard
Copied
In college it happened that the swtiches were overloaded when too many students wrere doing the same quiz at the same time. Solution could be to replace the Scorm template by the one which sends data only at the end.
Copy link to clipboard
Copied
If the lessons have been working perfectly before then something else has changed. I agree with Lieve that you may be looking at a server latency issue.
https://infosemantics.com.au/about-learning-management-system-server-latency/
If the server is bogged down with too many users throwing data at it to record then it starts taking longer and longer to respond until it then starts hitting time-out errors or else crashes.
Your IT department or LMS server administrator should be able to look at their logs or watch the server Task Manager to see whether this is the issue. If that turns out to be the case, you either need to upgrade the server to something more robust that can handle the load or you need to start turning off reporting options in the SCORM settings of the learning module so that it reduces the load. However, that will also have other side effects (e.g. less bookmarking).
Here are the options available for reducing the load:
https://infosemantics.com.au/how-to-reduce-load-on-learning-management-systems/
Copy link to clipboard
Copied
Ron and Lilybiri,
Thanks for the replies. I am working with IT to track down the issue.
I still want to know what data Captivate is sending to the LMS when you select "Send Data on Every Slide".
Is it sending user vars along with the default Captivate vars?
Thanks!
Copy link to clipboard
Copied
The problem is that since the session timed out, Captivate can no longer communicate with the LMS and it cannot exit the session properly. If a course exits in the middle of a session it needs to set the exit to suspend so it will save the progress, them terminate the session, this is not happening.
Copy link to clipboard
Copied
I think I found the issue.
Captivate DOES send cmi.suspend_data on every slide.
Captivate does NOT send LMSCommit() on every slide.
The LMS we are using, SuccessFactors, needs to have the commit called to store the data.
Copy link to clipboard
Copied
I am not familiar with all this technical stuff, but I seem to have the same problem.
We are also using SuccessFactors and I have a certain percentage of users where the lessons are not reported completed (though they are).
Without being IT or able to write code or influence SuccessFactors:
Do I have the chance to eliminate that problem with simply changing settings in Captivate?
IT told me to set a different commit, but I have no clue what to do.
I appreciate every bit of help you can offer!
Thanks,
Sandra
Copy link to clipboard
Copied
Hi ChrisMayAtDelta,
I am having a simular issue. Did this solve your issue? would you be able to share how you applied the solution?
What version of SCORM are you using?
We are using 1.2, would this affect what code to use?
Copy link to clipboard
Copied
I am using SCORM 1.2.
I have have checked "Send Data on Every Slide" in LMS Advanced Settings.
In order to get Successfactors to store the progress and other Captivate variables, you need to add this code in a JavasScript window:
SCORM_CallLMSCommit();
I would recommend doing this on the "On Enter" of the slide actions.
You could do it every screen or every 5 screens, whatever interval you decide is an accaptable amount that users might have to repeat if they loose connection to the LMS.
Another issue I have found is that Captivate is preloading the lesson, so user may be able to go several slides, or even finish the lesson without noticing they have lost connection with the LMS. To solve this, I improved my script some:
var commitTest = "xx";
try {
commitTest = SCORM_CallLMSCommit();
} catch (err) {
}
if (commitTest == "xx" || commitTest === false) {
alert("ERROR: The LMS did not respond to the last request. Please exit and relaunch the lesson. If you continue, without doing so, your progress will not be saved.");
}
Every time you call this, Captivate will attempt to save the progress and variables to the LMS. If it cannot complete the transaction, users will get an alert message. You can edit the alert message as you see fit.
Copy link to clipboard
Copied
Hi Chris, I am working with Charley trying to resolve this issue. I have gone in and added this on the slides and wanted to confirm I implemented the code correctly.
I added "Execute JavaScript" advanced action with the following code when the user selects the Next button.
The LMSCommit seems to be working based on the Debug feature in SCORM Cloud, but I cannot seem to trigger the alert to see if it is functioning as expected.
SCORM_CallLMSCommit();
var commitTest = "xx";
try {
commitTest = SCORM_CallLMSCommit();
} catch (err) {
}
if (commitTest == "xx" || commitTest === false) {
alert("ERROR: The LMS did not respond to the last request. Please exit and relaunch the lesson. If you continue, without doing so, your progress will not be saved.");
}
Copy link to clipboard
Copied
One way you could test this would be to launch the lesson, let it sit for a couple of minutes to allow the Captivate player to preload the rest of the lesson, then disconnect Wi-Fi or un plug your Ethernet. Then the next time you press the next button, you should see the msg.
Copy link to clipboard
Copied
I tried disconnecting Wifi unfortunately SCORM Cloud window shuts down when it loses connection.
I will keep trying though. I really appreciate your suggestion and think it checks all the boxes we need!
Copy link to clipboard
Copied
Yeah - SCORM Cloud has a lot of good error checking like that. Can you try on your regular LMS?
Another way to test is to close the LMS window that usually opens behind the lesson window. The one that usually says something like "Don't close this window or your progress will not be saved." Of course SCORM Cloud also detects this and closes the lesson window.
Copy link to clipboard
Copied
This is great information. I have a follow up question,
You mentioned using "Send Data on Every Slide" in LMS Advanced Settings. Do you think this necessary if I am mainly concerened about Bookmarking becuase I only have one question at the end? When talking with some Adobe help reps, I was told that "Send Data on Every Slide" does not effect bookmarking, because Captivate already bookmark every slide. However, because the code is calling the Commit(), it makes sense that it would be necessary. Just thinking this may be a way to save sending so much data every time, but am interested in your thoughts, or if you have tried it without it already?
Copy link to clipboard
Copied
That would depend on what other data you are generating in Captivate. If you have any variables that are changing and you need the most up to date values to resume the lesson properly, you might want to do this.
It also depends on your LMS. Some LMSs will store the data as soon as you send LMSSetValue(), others require LMSCommit() to tigger the saving of the variables, including bookmarks to the LMS.
Don't lose sight of why I started down this road. It is because the LMS we are using, SuccessFactors, will terminate the users connection after 1/2 hour when the browser setting are not properly configured. If you do not have an issue where users are losing their progress due to internet connectivity or time-out issues, then this could all be over-kill.
Copy link to clipboard
Copied
Got it, it sounds like the safest bet to include. We are using SuccessFactor as well, and have the same exact issue, so your post was a life saver. It takes the client a little while to upload once we send, and we have run out of time, so we are hoping to get it spot on this time.
Copy link to clipboard
Copied
The timeout issue can be solved by enabling the browser to accept third party cookies (AKA accepting cross-site tracking). Not sure of your IT situation, but that might be a change IT can push to all users' browsers.
Over here, we are bring your own device, so we cannot force the setting on everyone, we needed to enable these checks and try to comunnicate the settings needed.
Copy link to clipboard
Copied
Great info again. The solution you provided worked for us!
I do have an additional follow up. The pop-up box from the javaScript window is not displaying the okay button. Did you experiance this? Any ideas on how to fix? (see screenshot)
Copy link to clipboard
Copied
I have not seen the missing OK before...
Are you publishing to HTML5 or Flash?
My alert boxes show up as regular browser alerts in Safari and Chrome, with either "Close" or "OK" as the label for the button.
I would search around the forum for alerts or dialog boxes, maybe someone else has seen this.
Copy link to clipboard
Copied
That is interesting that it is so different, I was using HTML 5. here is the solution I found:
10. Click Ok and check the issue again.
Copy link to clipboard
Copied
Chrismay_at_Delta
As a follow up to these, this was working great for a while, but recently, when I went back to test the old courses, and create new ones, SCORM_CallLMSCommit(); stopped working. The pop up no longer comes up when disconnecting, and the course does not save its spot when timing out. It was working, now it is not. Have you had the same experiance? Could it be updated browser security? Or possibly Successfactors changed their settings? Any insight is welcome.
Thanks
Charley
Copy link to clipboard
Copied
Is there any updates on this? We are having a similar issue with Cornerstone on Demand LMS.
- Mark -
Copy link to clipboard
Copied
An edit to my last mesage, the code actually does save the place, as long as you exit the course through the captivate interface, and not close the browser. But, the pop-up we could not get to work again.
Copy link to clipboard
Copied
Ok, that's something. Thanks for your reply. I have always thought it was the same if you close the browser or use an exit button. I guess I have always been wrong (not surprising really). Is your code what Ian posted above?
Copy link to clipboard
Copied
Yes, same code. The later versions of the browsers seem to have more security measures. We also get different results from different browsers, so advise our users to use Chrome.