Picture of Brian Knowles
Adapt v1.0 & SCORM Reporting
by Brian Knowles - Tuesday, 25 March 2014, 2:56 PM
 

Can anyone confirm the following SCORM 1.2 data elements have been included in Adapt v 1.0:

cmi.suspend_data

cmi.core.session_time

cmi.core.lesson_location

cmi.core.lesson_status

cmi.core.score.raw

cmi.core.score.min

cmi.core.score.max

cmi.interactions

cmi.core.exit

 

Or perhaps point me in the direction of documentation and I can look for myself?

Thanks in advanced!

Picture of Kev Adsett
Re: Adapt v1.0 & SCORM Reporting
by Kev Adsett - Wednesday, 26 March 2014, 9:40 AM
 

Hi Brian,

I developed the current SCORM solution in the framework, the extension called Spoor. Apologies for the lack of documentation available for the extension, but a brief overview:

We use the Pipworks javascript SCORM-wrapper library in the background, and have an internal bridge between the spoor extension and the wrapper simply called scormWrapper.js, which provides a more convenient (for our purposes) API to communicate with SCORM than Pipworks does.

At an abstract level, Spoor saves the completion status of the course's blocks, and whether an assessment has been passed to cmi.suspend_data, and, in conjunction with the assessment extension, saves the user's quiz result to cmi.core.score.raw (also populating cmi.core.score.min and max).

The completion of the module is reported to cmi.core.lesson_status.

What criteria the module requires for completion (i.e. all interactions done and/or quiz passed), and how the lesson_status is reported (passed, failed, completed, incomplete), is all configurable by the author of the course using the config.json file.

If you need more in-depth information about how it does these things, or anything else, I'd be happy to provide it.

 

Picture of Matt Leathes
Re: Adapt v1.0 & SCORM Reporting
by Matt Leathes - Wednesday, 26 March 2014, 10:38 AM
 

Kev, am I right in thinking that tracking to cmi.interactions is not (yet) implemented?

With respect to cmi.core.exit - it's my experience that setting this to "" is safest as several LMS developers don't seem to have correctly interpreted the SCORM API spec on this - and so using it any other way can cause undesirable behaviour.

For example, on Plateau/SuccessFactors, setting it to 'logout' causes the LMS to log the user out of the LMS completely :-(

However you can easily revert this back to the default pipwerks wrapper behaviour by setting handleExitMode to true in scormWrapper.js

Picture of Kev Adsett
Re: Adapt v1.0 & SCORM Reporting
by Kev Adsett - Wednesday, 26 March 2014, 11:36 AM
 

Hi Matt, 

Yeah that's right - so far cmi.interactions are not used, but it would be good to include them at some point.

Daryl and I were having an interesting conversation (that may be leading outside of the original topic of Adapt v1.0) yesterday, where spoor should simply be a bridge to the LMS, and not actually do any tracking itself. It should simply accept requests for suspend data and the like, and sends the data (whatever it may be) back to the LMS on request.
This way, different extensions could be built which say to Spoor "I want this data saved too" (i.e. assessment would tell spoor it needs quiz passed saved and score recorded, some 'block tracker' extension would handle the tracking ID functionality that's currently a part of Spoor), and Spoor works in tandem with a serialiser plug in to wrap it all up as a string.
Picture of Chris Jones
Re: Adapt v1.0 & SCORM Reporting
by Chris Jones - Wednesday, 26 March 2014, 12:46 PM
 

The problem with SCORM is that concerns itself with multiple responsibilities; primarily tracking and persistence and these combined into the SCORM data model as one thing.

However there is no actual reason that a single Adapt plugin needs to do both jobs. A SCORM persistence plugin can just turn the Adapt model (entire or partial) into a string and make a call to setSuspendData(...). A SCORM tracking plugin would need to observe the model states to derive the corresponding SCORM data model and make calls to the pipworks scorm wrapper to maintain this state.

Spoor can do either or both jobs, and it should use pipworks and a serialiser plugin as dependencies to achieve this.

 

 Edit: the serialiser is just there to get around the character limit in the SCORM suspend data specification.

If you take SCORM out of the equation then a persistence plugin could just use local storage to save the entire JSON model.

Picture of Martin Pyle
Re: Adapt v1.0 & SCORM Reporting
by Martin Pyle - Tuesday, 8 April 2014, 12:52 PM
 

Hi Kev,

Would always be good to have documentation on each component/extension, but for now can you confirm that the following list is inclusive of all SCORM 1.2 data elements currently available in Spoor?

I've based this list on all the posts here only:

Yes

cmi.suspend_data

Not known?

cmi.core.session_time

No

cmi.core.lesson_location

Yes

cmi.core.lesson_status

Yes

cmi.core.score.raw

Yes

cmi.core.score.min

Yes

cmi.core.score.max

No

cmi.interactions

No

cmi.core.exit

 

Thanks

Picture of Kev Adsett
Re: Adapt v1.0 & SCORM Reporting
by Kev Adsett - Tuesday, 8 April 2014, 2:29 PM
 

Hi Martin, thanks for collating the responses. You're spot on, and we don't currently report session_time. 

For clarity:

Support

Property

Example in Spoor

Yes

cmi.suspend_data

"{"spoor":{"completion":"10000000000000","_isAssessmentPassed":false}}"

No

cmi.core.session_time

 

No

cmi.core.lesson_location

 

Yes

cmi.core.lesson_status

"incomplete", "completed", "failed", "passed"

Yes

cmi.core.score.raw

80

Yes

cmi.core.score.min

0

Yes

cmi.core.score.max

100

No

cmi.interactions

 

No

cmi.core.exit

 

 
Picture of Paul Hilton
Re: Adapt v1.0 & SCORM Reporting
by Paul Hilton - Friday, 10 October 2014, 10:30 AM
 

Hi, 

This is my first post - I hope I'm not speaking out of turn...

Are you aware that if you do not set the cmi.core.exit to "suspend" any values set in cmi.suspend_data *may* not be available to the course when it re-opens depending on the LMS implementation of SCORM.

See here for the Pipworks article on the "issue" ... http://pipwerks.com/2008/05/10/cmicoreexit-cmiexit/

Regards,

Paul

Picture of Matt Leathes
Re: Adapt v1.0 & SCORM Reporting
by Matt Leathes - Friday, 10 October 2014, 2:52 PM
 

I've heard this - but in over a decade of producing SCORM conformant e-learning courses I have not run into this issue.

An issue I definitely HAVE run into though - is that if you set cmi.core.exit to "logout" (which is what you are supposed to do when the user has completed the course) then Plateau LMS will actually log the user out of the LMS completely on LMSFinish. Which is nice!

Picture of Paul Hilton
Re: Adapt v1.0 & SCORM Reporting
by Paul Hilton - Friday, 10 October 2014, 3:47 PM
 

Its not a biggie - I have only seen the suspend thing in one system in 13 years. Just thought I would mention it could cause issue and it should be pretty easy to modify to come into line with the spec.

Just looking over the spec (page 39): "logout": This indicates the student logged out from within the SCO...

The normal exit state is an empty string :"" 

HTH

Paul

Picture of Matt Leathes
Re: Adapt v1.0 & SCORM Reporting
by Matt Leathes - Wednesday, 15 October 2014, 3:48 PM
 

yes, but it's not very clear what exactly they logged out of!!

It goes on to say

'This implies that the SCO passed control to the LMS system, the LMS system automatically logged the student out of the course'

And further on

'In addition, the LMS should log the student out of the course when the SCO that set the cmi.core.exit to “logout” has issued the LMSFinish() or the user navigates away.'

(my emphasis in both cases)

Quite what logging the student out of the course should mean in practical terms, I have no idea - but so far Plateau is the only LMS I know of that logs the user completely out of the LMS when this is set.

So all in all I find it easiest to just leave this field well alone - unless I know for a reason that LMS requires it to be set - as Himanshu has found with SCORM Cloud and SCORM 2004 (it doesn't do this in SCORM 1.2 from memory but I'd need to test that for sure)

Interestingly in the SCORM 2004 docs it's a bit clearer: "The SCO signaled a desire to terminate the entire learning activity of which the SCO is part"

But then goes on to say: "The “logout” keyword is being deprecated and will not be supported in a future version of the SCORM"!

Picture of Paul Hilton
Re: Adapt v1.0 & SCORM Reporting
by Paul Hilton - Wednesday, 15 October 2014, 7:07 PM
 

It is all a bit wooly in SCORM.

We'll certainly do what we can to be accommodating for different interpretations of suspend (and plenty of other ambiguous bits).

I hadn't noticed the log out description before, I hope i didn't appear 'know-it-all'. It seems odd (to me) to even offer the course the opportunity to log-out of the LMS. 

 

Picture of Himanshu Rajotia
Re: Adapt v1.0 & SCORM Reporting
by Himanshu Rajotia - Tuesday, 14 October 2014, 11:08 AM
 

Hi Matt Leathes,

Recently I have started modifying spoor extension for SCORM 2004 for one of my project. So while testing the output on SCORM Cloud I was facing difficulties for retrieving suspend data. After doing lots of fail attempts to make it work, I end with the solution suggested by Paul Hilton and it worked like a charm.

 

Thanks Paul

Picture of Matt Leathes
Re: Adapt v1.0 & SCORM Reporting
by Matt Leathes - Wednesday, 15 October 2014, 3:52 PM
 

Himanshu,

You're quite right - SCORM 2004 is quite specific in the docs that you have to set an 'exit' state of 'suspend' if you want the SCO to "have the same set of data that was acquired during the previously suspended learner attempt".

You've probably already figured this out but you change line 67 of scormWrapper.js to

this.scorm.handleExitMode = false;

In order to get this working right for SCORM 2004. I really should add a note to that effect.

Picture of Brian Knowles
Re: Adapt v1.0 & SCORM Reporting
by Brian Knowles - Wednesday, 2 April 2014, 6:02 PM
 
Appreciate the replies. Very helpful.
Picture of Ant W
Re: Adapt v1.0 & SCORM Reporting
by Ant W - Thursday, 28 January 2016, 11:03 PM
 

Hi All

I wonder if you could help me with a SCORM/Spoor issue? I've read in the forum and this post that Spoor supports cmi.core.score and in particular cmi.core.score.raw but I don't get any reporting on this from either the SCORM debug window or when loaded into our LMS.

I'm using latest package from repo of the Adapt builder on our server, and Moodle as the LMS.

Here is the SCORM log ScormWrapper::isSupported: _property=cmi.interactions._count ScormWrapper::getValue: _property=cmi.interactions._count ScormWrapper::getValue: returning 0 ScormWrapper::setValue: _property=cmi.interactions.0.id _value=56a82f3357df6f1c128e9210 ScormWrapper::setValue: _property=cmi.interactions.0.type _value=choice ScormWrapper::setValue: _property=cmi.interactions.0.student_response _value=1 ScormWrapper::setValue: _property=cmi.interactions.0.result _value=correct ScormWrapper::setValue: _property=cmi.interactions.0.time _value=12:47:30 ScormWrapper::setValue: _property=cmi.suspend_data _value={"completion":"-110100000000001000001000000100000000000100000000000000000000000000000000000","questions":"ECIvoiGQAAAAAAAAAA8AAAABO5rJ/g4MfCgi","_isCourseComplete":false,"_isAssessmentPassed":false}

 

As you can see it's collecting interactions data but no cmi.core.score objects.

Any ideas?

 

Many thanks

Kind regards

Picture of John Niezen
Re: Adapt v1.0 & SCORM Reporting
by John Niezen - Friday, 29 January 2016, 8:15 AM
 

Can you start it again from Moodle, continue some topics, stop and then continue again?

And if that is possible do you see a change in the ['completion":"-1100........ line?

That is what Moodle is using to keep track of everything, as far as I know.

Picture of Matt Leathes
Re: Adapt v1.0 & SCORM Reporting
by Matt Leathes - Friday, 29 January 2016, 9:52 AM
 

Hi Ant

Adapt will only report a score if there's an assessment included in the course - and, even then, only once you have completed the assessment.

The out-of-the-box version of the Framework (that one that you get by doing $ adapt create course) includes an assessment that is correctly configured to report a score back via SCORM.

Picture of Ant W
Re: Adapt v1.0 & SCORM Reporting
by Ant W - Friday, 19 February 2016, 12:12 PM
 

Thanks guys, sorry for slow reply! Got sidetracked on other projects.

I will try adding Assessment Results component to the course in our Adapt Builder install.