Recording SCORM Objective data

I'm coming into SL from a custom Flash/JavaScript perspective and getting familiar with the automatic SCORM-recorded it does. I've done custom work for recording SCORM 1.2 / 2004 Objective and Interaction data based on user interaction with custom Flash activities.

I've found a helpful link about what Interaction data gets recorded to the LMS:

http://www.articulate.com/support/kb_article.php?product=st1&id=79nsl3hhgneg

I'm mainly wondering about Objective data. From what I've been able to verify by looking into my client's LMS, there is no Objective data recorded by a SL project. Essentially, Objectives store score & status information on "the thing" you want it to.

I can see where SL doesn't "really" need this because it does record some info to question-related Interaction data models, as well as a course status and course-level master scores, a la:

  • cmi.core.lesson_status

  • cmi.core.score.max

  • cmi.core.score.min

  • cmi.core.score.raw

But because of my experience recording Objective data, and that is come in handy in certain cases, I'm wondering how that might be achieved with SL. I'd assume it's not a supported feature, and would require my own external JavaScript file (JavaScript outside of SL, not in the little Javascript window that you access via the Trigger Wizard).

My thought would be to call my own JavaScript function from a trigger in SL. But as I've found, making any modifications is a delicate matter because every time one publishs a SL project, the entire "output" folder is wiped and re-created with fresh files. This would delete any modified HTML and new *.js files I'd put in there.

Regarding the use of JavScript, I have seen this helpful link:

http://www.articulate.com/support/kb_article.php?product=st1&id=llwes8cn32vg

Among other things, it mentions that any custom JS stuff you do, that won't be available for the Articulate Mobile Player output (helpful to know).

If any SCORM-savvy folks can weigh in on this, I'd be very appreciative for extra insights or suggestions.

2 Replies
Dane Boyington

I do this by setting a variable with a JavaScript trigger and putting that into the LMS response by modifying API.js. I then replace the original API.js in the Program files folder so it always gets published with the output. 

Not graceful, but it works. I don't use the mobile player app to deliver.

Scott L

Dane, that sounds like a nice work-around, nonetheless. Thanks for sharing! Would that be this file?

C:\Program Files (x86)\Articulate\Articulate Storyline\Content\lms\API.js

I didn't know these files were pulled from there, nice! If I were to add my own business logic SCORM file here (I usually create a separate one from the main API file), I'm guessing that would get copied to each publish location. Easy enough to test I suppose.

Good note, too, about the mobile player. I've never published to it yet, but have a large project int he coming months that requires iPad support. Off topic here now, but I understand that the mobile player doesn't have a JavaScript interpreter, so any JS code would be useless there.