Question
hi, is there a way in scorm to set status to "FAILED" and also to "COMPLETED" at the same time?
Answer
Ah, yet another question whose answer relates to the standard in which you're working.
SCORM 1.2
In SCORM 1.2, what we're talking about here is "cmi.core.lesson_status". This vocabulary element can be accessed via Get or Set value, and can have the following values:
- passed
- completed
- failed
- incomplete
- browsed
- not attempted
With regard to this question, if you set the status to "failed", you are making an implicit statement about the fact that this course is complete, or isn't. In fact, different content authors often mean different things in this regard. It can be a bit confusing to an LMS that has to make its own determination about what this means as it rolls up to the aggregation level.
My suspicion is that this question relates to SCORM 1.2, and this confusion is unavoidable. Generally, we interpret "failed" to mean that a user should take the test again... but we also offer package properties in the SCORM Engine that allow a course to use "failed" as a complete replacement... Most LMSs do not offer this option, though.
SCORM 2004
Although it's not the most talked about change in SCORM 2004, one fundamental one is the separation of lesson_status into two distinct concepts. First off, we have "cmi.completion_status", with the following values:
- completed
- incomplete
- not attempted
- unknown
Second, we have "cmi.success_status", with these values:
- passed
- failed
- unknown
So, in SCORM 2004, the content author has an explicit way to set these values separately. In the case of this question, we'd be looking for the following calls:
- API.SetValue('cmi.completion_status', 'completed');
- API.SetValue('cmi.success_status', 'failed');
Hopefully, this clarifies an evolving, important issue. It also helps to point to some of improvements that are part of SCORM 2004. (Lots of people complain about sequencing and navigation in 2004, but there are pieces like this that improve the content author's ability to express the desired behavior.)