Getting student name from the LMS and using it in Articulate

Jun 08, 2017

In the LMS we are about to use, we can get the student name since the SCORM runtime variable for it is "cmi.core.student_name".  However, how do I get it as a variable in Articulate at run time? 

40 Replies
Michael Anderson

Create a javascript trigger and use some code like this:

var player = GetPlayer();
player.SetVar("NameOfYourStorylineVariable", variableValue);

Let us know if you need more help than this. There is more sample code here: https://articulate.com/support/article/javascript-best-practices-and-examples

Marcia Dougherty

Matthew, I don't know if you have any other suggestions.  I have been trying to get the JavaScript trigger to work using the script you provided, but with no luck.  When I run it live in the LMS I am not getting an error, just nothing is being returned.   Not sure what I am missing.  Would it matter if I am using a demo version of 360?  Are some features disabled?

Marcia Dougherty

Hi Matthew,

Thanks for the quick response. The script you gave me did not do the job, but the link to the discussion did. I am publishing to SCORM 1.2 and using HTML5 with Flash. This is what worked for me. Thanks everyone.

var player = GetPlayer();

function findLMSAPI(win) {
// look in this window
if (win.hasOwnProperty("GetStudentID")) return win;

// all done if no parent
else if (win.parent == win) return null;

// climb up to parent window & look there
else return findLMSAPI(win.parent);
}
var lmsAPI = findLMSAPI(this);
var myName = lmsAPI.GetStudentName();
var array = myName.split(',');
var newName = array[1] + ' ' + array[0];
player.SetVar("newName", newName);

Thanks,
Marcia
-----------------------------------------
The information contained in this email is confidential and is intended solely for the use of the person identified and intended as the recipient. If you are not the intended recipient, any disclosure, copying, distribution, or taking of any action in reliance on the contents is prohibited. If you receive this message in error, contact the sender immediately and delete it from your computer. Personal e-mails are restricted by PSECU policy. As such, PSECU specifically disclaims any responsibility or liability for any personal information or opinions of the author expressed in this email.

Kayode Arowolo

This JS is already giving me a headache. This might be a very simple fix for someone. All I need is to pull a student's name from Blackboard and insert it in a completion certificate slide that I have created. Please see the attached certificate with the script I'm using (created by Matthew Bibby). I am using Storyline 3. Any help will be greatly appreciated.

Aaron Max Abramowicz

Publishing Using HTML5 on Cornerstone LMS, This code was sort of working but giving me a duplicated name...
By modifying it slightly I was able to get rid of the duplication and have the full name display.

I was hoping to separate the first and last name, but (after 22 attempts) I've decide to settle with it working this way.

The on-slide reference display variable is: %newName%

and the JS code was as follows:

var player = GetPlayer();

function findLMSAPI(win) {
// look in this window
if (win.hasOwnProperty("GetStudentID")) return win;

// all done if no parent
else if (win.parent == win) return null;

// climb up to parent window & look there
else return findLMSAPI(win.parent);
}

var lmsAPI = findLMSAPI(this);
var myName = lmsAPI.GetStudentName();
var array = myName.split(',');
var newName = array[0];
player.SetVar("newName", newName);

Thanks for the starting point!

Ashley Terwilliger-Pollard

Hi Azza, 

Are you having an issue with the code that Aaron shared? 

It looks like he used it with HTML5, but perhaps it's the difference in browser or LMS. You could also look at testing it in SCORM Cloud to further narrow down where the issue could be. 

Lastly, when you're launching it in IE - do you see an error message or a different behavior than expected? If you can share a bit more detail that may be just the hint the community needs to help with this custom code. 

Kevin Hayes

I've been trying to use this code on SCORM Cloud but it isn't working for me:

var player = GetPlayer();

function findLMSAPI(win) { 
// look in this window 
if (win.hasOwnProperty("GetStudentID")) return win;

// all done if no parent 
else if (win.parent == win) return null;

// climb up to parent window & look there 
else return findLMSAPI(win.parent); 

var lmsAPI = findLMSAPI(this); 
var myName = lmsAPI.GetStudentName(); 
var array = myName.split(','); 
var newName = array[1] + ' ' + array[0]; 
player.SetVar("newName", newName);

Is it because SCORM cloud stores the name under a variable name other than StudentID? 

Has anyone managed to get this to retrieve the learner ID from SCORM cloud?

 

Nathan Leavitt

The lmsAPI.GetStudentName(); method no longer works for me when I publish to HTML5 only. Here's the code that I use for HTML5:

//This trigger is set to execute when the timeline starts. In order for it to work, this slide requires a variable "newName".
//Get User Name embedded into file from LMS
var myName = SCORM_GetStudentName();

//SCORM has last name, first and we are switching it around to first last.
var array = myName.split(',');
var newName = array[1] + ' ' + array[0];

//Set the variable
var player = GetPlayer();
player.SetVar("newName", newName);

FYI, we’ve found that although the lms.js file is still included in the published HTML5 zip package, it’s not actually used and all its functions and variables aren’t used in our LMS. I’m not sure if that has something to do with our LMS (Saba Cloud) or something else. Regardless, that’s why the lmsAPI variable is undefined in our LMS. Instead I used the SCORM_GetStudentName(); function from SCORMFunctions.js.

Gina Labato

Hi all, revisiting this post. 

My team and I are trying to do the following using JavaScript:

1. Retrieve a username from the LMS

2. Culminate user's score on a quiz into a LeaderBoard. 

For now, we're trying to tackle the first problem and have realized that all of the codes provided in these threads do not work with Docebo LMS for some reason. Any suggestions? 

None of us are versed enough in Javascript to know how to manipulate the code for our LMS more than just plug it in and test. 

Nisha Makan

Hi. I have a Storyline SCORM package embedded in an iframe on my LMS course page. I'm wanting to include the learners name in the Storyline file however the name is not showing up as the embedded course doesn't seem to talk to the LMS. I am getting a course saying it is unable to talk to the LMS API.

I tested the course by running it like a normal eLearning course which launches from the training course page in a new window - in this instance the names are appearing in the module, so I know the Execute Javascript code is working correctly.

Does anyone have any advice on how I could get this to work in my iframe version? The LMS I am using is Totara.