Forum Discussion
How often does Rise ping the LMS?
Ok. Well. My dev wanted to find a solution and dug on it. Here is what we will use:
We will add this:
if (strElement == "cmi.core.lesson_location")SCORM_CallLMSCommit();
Inside the Scorm_CallLMSSetValue function to force a commit when one change of lesson.
What could be the side effects?
- AlyssaGomez4 years agoStaff
Hi Joyce! I checked in on that case, and our team recommends that you coordinate with your LMS to extend the timeout, if that's a possibility for you.
Our team doesn't support modifying the published output file, but hopefully someone who has made a similar modification can chime in with their experience here!
- DavidHardin-37a4 years agoCommunity Member
Hi Alyssa,
Joyce is right. This is a coding error in Rise. We talked to the Articulate folks about it a few months ago, but it does not seem like a fix has been put into place. Without this code, Rise does not send any data back to the LMS until you close the course. There are major risks associated with this. Our code is a bit different than the one Joyce is using but does basically the same thing by simply sending Commit data back to the LMS after each setvalue. It seems like it would be a simple fix on the Articulate side to either fix their Force Commit variable (and maybe have it fire every 60 seconds like Storyline) or fire after each setvalue (but this may tax some LMS systems). There is a Force_Commit variable in the Rise code, but it is not connected to anything, therefore it never actually fires. Can you please help us get this pushed up the chain? We are not sure who else we can go to since we have already had calls with Articulate developers. Below is our code. The "Write to Debug" is so that we can easily see where this is firing off while we are in debug mode.
SCORM2004_objAPI = SCORM2004_GrabAPI();
WriteToDebug("Calling SetValue");
strElement = strElement + "";
strValue = strValue + "";
strResult = SCORM2004_objAPI.SetValue(strElement, strValue)
strResult = strResult + "";
WriteToDebug("strResult=" + strResult);
if (strResult == SCORM2004_FALSE) {
WriteToDebug("Detected Failed call to SetValue");
SCORM2004_SetErrorInfo();
WriteToDebug("Error calling SetValue:");
WriteToDebug(" strElement=" + strElement);
WriteToDebug(" strValue=" + strValue);
WriteToDebug(" Error Number=" + intSCORM2004Error);
WriteToDebug(" Error String=" + strSCORM2004ErrorString);
WriteToDebug(" Diagnostic=" + strSCORM2004ErrorDiagnostic);
return false;
}
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
WriteToDebug("#### START COMMIT CALL TO EVERY SET VALUE ##########################")
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
SCORM2004_CallCommit();
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
WriteToDebug("#### END COMMIT CALL TO EVERY SET VALUE ############################")
WriteToDebug("####################################################################")
WriteToDebug("####################################################################")
WriteToDebug("Returning true");
return true;
}
- DavidHardin-37a4 years agoCommunity Member
Hi Joyce,
Did you have luck with this? We are having the same issue with Rise courses not bookmarking due to our SSO timeout. Also, which file are you adding this string to?
- MikeZaluski4 years agoCommunity Member
Hi Joyce
In this case, Articulate admitted to a bug with how Rise 360 was handling keepalive/ping messages to the LMS. This was being investigated back in March 21, but there was no time-frame for a fix. We were advised to extend our LMS time-out, which we have since done.I'm not sure if this is the same issue that will be solved by development to the FORCED_COMMIT_TIME in Rise, but it certainly sounds like a promising start!
Alyssa is there any information on what this development/fix to the FORCED_COMMIT_TIME variable might look like? Will it bring Rise into line with how Storyline seems to work? I don't know about other's experiences, but i have always found Storyline's tracking to be very reliable in our LMS.