Forum Discussion
How often does Rise ping the LMS?
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!
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;
}