Why might Scorm not record total time?
Feb 10, 2015
Hi Guys,
I have 2 colleagues that produce scorm packs in storyline and run them inside moodle (different moodles also on different servers with different hosts). Both have been experiencing the same problem when reporting on the scorm activity completion.
The scorms have been tested in Scorm Cloud and we have tested them in the moodles with API debugging switched on. No errors are reported when we test.
Then after the Scorms have been used for a period of time by students, we ran a report on the database to extract the cmi.total_time for each users Scorm attempt. It was then that we noticed that some records didn't have an entry for cmi.total_time.
When ending the Scorm our testing shows that if we close the scorm using 'exit activity' or by forcing the browser to close, we see that cmi.total_time is written to the database. So why do we have some user records where cmi.total_time is not recorded?
Our testing records and those without cmi.total_time all have the following records in the database:
x.start.time
cmi.completion_status
cmi.exit
cmi.session_time
cmi.suspend_data
11 Replies
Hello Peter,
If you have tested in the SCORM Cloud, and it was working as expected, you may want to reach out to someone at Moodle. There are members here who are familiar with Moodle who may also jump in with suggestions.
Thanks for your advice Emily. I'd be really interested to hear if others have no total_time stored in their databases as this is proving a bit of a mystery.
We are having the same problem, Peter, did were you able to get a response from moodle?
Hello Chantal - this thread is a bit dated and I'm not sure if Peter is still subscribed here. You are welcome to reach out to the user directly via the 'Contact Me' option on the user profile if needed.
Dear all,
I have the same problem: how can I modify Scorm package, in order they send the total time to the platform?
thank you very much.
Elena
Hi Elena!
Our team doesn't support modifying the published output, but other folks here can certainly share what has worked for them. What learning management system are you using? Hopefully another community member who uses the same one will chime in and suggest a solution!
3 years later, some problem here. Moodle 3.8, Storyline 360. Most of users get cmi.total_time recorded as expected but some users don't (on the same Moodle and on the same Articulate SCORM package). About 2% of users don't get cmi.total_time recorded. we tested the particular SCORM 1.2 package on that same Moodle in IE, Edge, Firefox and Chrome. Records cmi.total_time very well so we can't reproduce the problem but some users sometimes have the problem in recording cmi.total_time. It's very frustrating because we can't reproduce and can't figure out what's causing the problem.
Hi Zoran,
I might be able to provide you with a fix for this but it will require moodle core to be edited. What is the exact version and build number of your moodle 3.8?
Cheers.
Dear Peter, that would be awesome!
Hi there,
Is there a way for SCORM to calculate how long a participant has taken to complete the module? I am using LearnUpon LMS. I have been following this threat for a bit and wanted to see if anyone is able to help me out?
Thanks,
I figured it out in our LMS (Moodle) but didn't solve the problem yet. The content often sends cmi.core.session_time to LMS. That's some kind of temporary value because we don't know if the user finished his SCORM session or not. When SCORM session ends, Moodle reads the last cmi.core.session_time recieved from the SCORM in that session and adds that to the cmi.core.total_time in the database. Each SCORM package (and each SCO) has it's own cmi.core.total_time. The problem is that sometimes a user doesn't close the browser window or the content window and just closes the laptop. Laptop goes to sleep but html session doesn't end so Moodle doesn't recieve the info that the user finished the SCORM. When the user turns the laptop on again wakeing it from the sleep, html session is already gone and Moodle never gets the info that user's SCORM session ended so it never adds cmi.core.session_time to the cmi.core.total_time. The solution would be that the LMS (Moodle in my case) adds first cmi.core.session_time to cmi.core.total_time when SCORM sends the cmi.core.session_time for the first time in the session. Later, for each subsequent cmi.core.session_time recieved from the content, LMS would have to calculate the difference between this one and the previous cmi.core.session_time received in the same SCORM session and add that difference to the cmi.core.total_time. So, cmi.core.total_time would be updated correctly each time the content sends the new cmi.core.session_time. If the user doesn't close the content window or the browser window and the LMS never receives the info that SCORM session ended, cmi.core.session_time is still recorded in the database using all cmi.core.session_time values received from the content during that SCORM session.
I'm not sure if some kind of solution can be done from the content side also, but I doubt it.