Question

SCORM | Trying to get fancy - using variables and JS beyond username, fname, lname


Userlevel 7
Badge +6

Howdy folks and a happy New Years to everyone.

A question - I am dabbling on retrieving some data via a SCORM package that I am whipping up so that a person has a personalized course experience.

From taking a look at what JS and LMSAPI calls the SCORM standard can support - I can get to a username and a First Name, Last Name into a compiled Storyline file- not much fuss..but lets say I want to get to an additional field...is there a way to do a “call” to the learning system to get an additional field for the learner? Let’s make it easy - and make it a system field - like email address?


12 replies

Userlevel 7
Badge +5

Hmm…

Thanks for the puzzle @dklinger 

I have not attempted such a thing before so I found this an interesting topic to explore with Captivate and I think I will play with the idea a bit today.

While I will have zero feedback as it relates to Storyline - perhaps I might discover something helpful for the both of us.

Userlevel 7
Badge +3

My understanding was if you are living in the SCORM standard then you can only get the data that is support by SCORM which is fairly basic, basically what is on the link you put above.

If using the API totally possible, but have not done it in a course directly yet.

Userlevel 7
Badge +6

Right - the fairly basic are first name, last name and userID. I believe the userID is not always the username as you jump from one LMS to the next.

Userlevel 7
Badge +6

Hmm…

Thanks for the puzzle @dklinger 

I have not attempted such a thing before so I found this an interesting topic to explore with Captivate and I think I will play with the idea a bit today.

While I will have zero feedback as it relates to Storyline - perhaps I might discover something helpful for the both of us.

Thanks Greg for the dabbling in advance.

Userlevel 7
Badge +6

Minor add…AICC as an output does support a little more of a call to the LMS about the metadata about the student. But the SCORM LMS API is at its limit.

I can game the experience some by collecting the detail from the learner in the SCO…but that just seems to be less elegant.

A thought…Because this cohort is small and isolated? I can literally store a csv file in my scorm structure….with columns that would emulate a demographics database.

@gstager if it helps? if JS supports something like that…so I would use the userID and a few columns in a flat file to support a lookup based on the userID and return that value? Then I think we are cooking with Crisco…

Userlevel 7
Badge +3

Minor add…AICC as an output does support a little more of a call to the LMS about the metadata about the student. But the SCORM LMS API is at its limit.

I can game the experience some by collecting the detail from the learner in the SCO…but that just seems to be less elegant.

A thought…Because this cohort is small and isolated? I can literally store a csv file in my scorm structure….with columns that would emulate a demographics database.

@gstager if it helps? if JS supports something like that…so I would use the userID and a few columns in a flat file to support a lookup based on the userID and return that value? Then I think we are cooking with Crisco…

Nice, that makes sense, doesn’t seem scalable, can that table live on an external server instead of within the package so that it is loaded on package load? I used to do this with a package that faked a checklist type course so we could centrally update the items and have them update each day if needed.

I also find myself thinking how I usually do this using the iframe widgets on pages and courses, and almost wish the oauth option that is available on those was available on the scorm package element too. That lets you have the user interact with the actual API of the platform securely and get any known data to play back.
Might make an idea about it.

Userlevel 7
Badge +6

@Bfarkas - the file could sit anywheres - it would be fine by me. I think there maybe some interesting components to watch when it comes to XSS types of concerns (I have literally no idea what I am talking about 🤣), but I would imagine staying within the SCORM package is a sure bet - not scalable - certainly - but a sure bet.

Userlevel 7
Badge +5

A thought…Because this cohort is small and isolated? I can literally store a csv file in my scorm structure….with columns that would emulate a demographics database.

Just how small and isolated are we talking?

Userlevel 7
Badge +6

Less than 500 rows. I can keep the column count very tight because it is literally only two data elements I am after (userID returns the Docebo userID, so I need to work with userID, username (which is an employee ID), and a JobTitle columns. I am not worried about a name because I can get that via a different method - via that LMSAPI call.

Userlevel 7
Badge +3

@Bfarkas- the file could sit anywheres - it would be fine by me. I think there maybe some interesting components to watch when it comes to XSS types of concerns (I have literally no idea what I am talking about 🤣), but I would imagine staying within the SCORM package is a sure bet - not scalable - certainly - but a sure bet.

A concern for sure, but able to be overcome. Have several active packages that function this way, the checklist one I mentioned worked based off a SharePoint list so any of a gorup of admins could update content, but the virtual classroom calendar works this way too and pulls a CSV on load that is updated hourly from a seperate API process to build the file and make it as up to date and accurate for users as possible :)

Userlevel 7
Badge +5

Hmm… 

I was going off the CSV idea and thinking along the lines of an object array with your learner information.

On Enter to the project - we query the LMS for the student name and find that match in the array. 
Store the corresponding index to a variable and you can grab info from that object as you need it.

~500 lines could be done but maintenance could pretty much suck at that point depending on how often things change.

Userlevel 7
Badge +3

Def writting up the add oauth app option to the scorm package conatiner….it would solve this easy, I do this allll the time throughout the system using embedded objects.

Reply