This blog post is part of our “Cup of Joe” series in which we publish Joe’s answers to common eLearning standards questions to go along with your morning coffee. If you have a question, you can always fill out this form and ask Joe too.
I am a new user to my company’s LMS and am using an authoring tool that I’m familiar with to build SCORM files. I have built the training courses the same way as I’ve previously done and can successfully upload the course but the SCORM 1.2 file and host LMS will not communicate. As in, I can assign the training to myself and view the entire course, but it does not register with the LMS to say I have started or completed the training. I’m not sure if the problem lies in the course or LMS or somewhere in between. Can you help?
Lost in SCORM completion
Hi Lost in SCORM completion,
Thanks for your question. It is a great one (and popular one) as this is the type of thing Ryan and I troubleshoot most days here in support. Our first step is to ask you to test your content in SCORM Cloud. This serves several purposes.
- It removes your course from both the LMS and authoring tool environment so that we can look at the SCORM calls in a “vanilla” environment. We find that using this neutral environment reduces the “finger pointing” that can happen when troubleshooting this type of thing.
- It provides a place for easy debugging. In SCORM Cloud, you can import and launch your content in our dedicated testing sandbox and then see what sort of run-time calls are getting set in the debug log section. You can set up a free account here. Once you’re logged in, you should see an “Add Content” section on the right side where you can import your course. Here is an article describing how to import and test content.
Next let’s talk about what you should be looking for in those debug logs. There are a number of things that normally happen at run-time. Here is a comprehensive list for SCORM 1.2, and I have bolded the things to look for based on your inquiry.
First off, a course must both initialize (calling LMSInitialize) and terminate (calling LMSFinish) communication with the LMS. Think of it as the opening handshake where the course asks for the SCORM API politely, the LMS responds with, “hey I have that API” we should hang out and talk, then the communication happens. What kind of communication you may ask? Well, it is mostly going to be a set of get and setValues to both ask the LMS for data that was previously set by either the LMS or course or set data so that the LMS can either report on it or provide it back to the course later.
If you are having issues with completion, here are the things I would look for.
- If the course has initialized, make sure that it is actually setting a lesson status (cmi.core.lesson_status). Note that for SCORM 1.2, the values for lesson status could be ‘incomplete’, ‘passed’, ‘completed’, ‘browsed’, or ‘unknown’. You are going to want to see your course setting completed or passed, but definitely check with your LMS vendor to see what they prefer.
- If the course is setting a status AND it has a quiz, I would double check to make sure the course is also setting a score via cmi.core.score.raw. Technically it is not required to set a score, but once again, you may want to check with your LMS vendor to be sure that they don’t require it.
- After that data is set, you will want to make sure it is calling LMSCommit(), this is an attempt by the course to persist data to the LMS.
- Lastly, we need to make sure that the course is calling LMSFinish() when it is done. This is going to be the thing that allows the course to signal to the LMS that communication is done and will normally close the window the course is in.
If you see all the appropriate things in SCORM Cloud, then you may want to share your debug log from SCORM Cloud with your LMS vendor to see if there is anything that the course is missing from their perspective. If the course is not completing in SCORM Cloud and you don’t see the values above, you may want to go back to your authoring tool vendor to see if they have any input.
Either way, if you need guidance on reading your debug logs or just want to talk about SCORM, feel free to shoot us a message at email@example.com. We are happy to help where we can! Also join me for our free, upcoming webinar on June 29th where I’ll be covering how to test SCORM packages, understand and fix LMS launch failures and decipher course debug logs.