Search code examples
scormscorm1.2

Need a unique user/course ID variable in SCORM 1.2 package


I'm working on a project that requires a unique "enrollment" id inside a file inside a SCORM package. Something that works like this:

<script src="...?enrollmentid=1234567890"></script>

I have figured out that I should be able to obtain a student_id, but this is too broad an identifier for this use. The id I use must describe a single student/course enrollment uniquely, as a student could enroll in multiple courses, and a course could have multiple students enrolled.

The id could be a composite of other fields, like student_id + course id + enrollment date, but I can't see any way to get those sorts of details from the LMS either.

Is what I'm trying to do possible?


Solution

  • SCORM 1.2 or even 2004 did not unfortunately include things like enrollment date, course id, or SCO title/structure unless that was pumped in via Launch Data that comes by way of the imsmanifest.xml at author time. And these are things which you would need to provide.

    cmi.core.student_id is the only unique value you'll get directly from SCORM. The LMS was not given a way to also include any Tier IDs or internals it used when it imported the course. And unless they (unreliably) place them in the launch parameters or you have a way of doing some probing with javascript (also unreliable) you'll need to consider some other options.

    Launch Data cmi.launch_data would probably be the easiest way to gain access to any values you want to pass thru to the SCO but this relies heavily on the authoring process of the SCO and its imsmanifest.xml. Situations where there is a LCMS setup or some mechanism of a authoring tool could enable these capabilities.

    I add this below the <title/> tag in the imsmanifest.xml:

    <!-- Launch Data Example uses Querystring format name=value&name=value -->
    <adlcp:dataFromLMS><![CDATA[name=value]]></adlcp:dataFromLMS>
    

    When I state unreliable - I mean to hint that unless you can definitively state you know where this content is running, and the LMS will never change, you won't be able to obtain the info you want in any reliable way.