Oracle Taleo Learn - Storyline unable to set the score in the users' transcript
Dec 21, 2021
Hi,
I am a third-party developer, and our client is using Oracle Taleo Learn for their LMS. I have published a SCORM 2004 3rd Edition course and tested it successfully on SCORM cloud (to track score and course completion). However, when integrated into the client's LMS, it is not responding to the desired outcome.
The problem I am facing is that the user score on the Taleo LMS shows 100% regardless of the score the user is actually getting. For example, if the user scores 70% it would show up as 100% on their transcript.
I would like to try a JavaScript approach, but I can't find the way to get access to the lmsAPI function, or other JavaScript functions to communicate with Taleo.
There is a document at Oracle (https://support.oracle.com/knowledge/Oracle%20Cloud/1540906_1.html) that provides guidelines on integrating Storyline courses into Taleo, but I do not have permission to gain access to it.
Any suggestions?
6 Replies
Other references the might be pertinent:
Chris Barnett -
https://community.articulate.com/discussions/articulate-storyline/inaccurate-score-reporting-in-taleo-learn-storyline-3
Carrie Wang -
https://community.articulate.com/discussions/articulate-storyline/use-javascript-to-send-data-to-lms-with-scorm-2004-4th-edition
I created a build... cross my fingers and I will post an update.
The guidelines provided by Taleo point to SCORM 1.2. This is not ideal since the course I am publishing consists of 250 slides. and so I am resorted to use SCORM 2004 3rd Ed.
Disclaimer: This may not work for everyone, these notes are for future reference when working with a Taleo-based LMS.
Our client sent Taleo guidelines pertaining to integrating Storyline courses. (See pdf attachment. I am not quite sure if this is the latest update, however.) Based upon these guidelines, I have received a favourable response from our client that it works on their LMS using the SCORM 2004 specification.
Of the differences with our previous build:
// Code Snippet
//Set Score
var player = GetPlayer();
// Variable "courseScore" is predefined and set to the Results.ScorePercent variable in a trigger at the slide layer.
var score = parseInt(player.GetVar("courseScore"));
// Variable "passingScore" is predefined and set to the Results.PassPercent variable in a trigger at the slide layer.
var passing = parseInt(player.GetVar("passingScore"));
console.log("score [" + score + "% of " + passing + "%]");
// SCORM2004 detection
var nFindAPITries = 0;
var API = null;
var maxTries = 500;
// The ScanForAPI() function searches for an object named API_1484_11
// in the window that is passed into the function. If the object is
// found a reference to the object is returned to the calling function.
// If the instance is found the SCO now has a handle to the LMS
// provided API Instance. The function searches a maximum number
// of parents of the current window. If no object is found the
// function returns a null reference. This function also reassigns a
// value to the win parameter passed in, based on the number of
// parents. At the end of the function call, the win variable will be
// set to the upper most parent in the chain of parents.
function ScanForAPI(win)
{
while ((win.API_1484_11 == null) && (win.parent != null) && (win.parent != win))
{
nFindAPITries++;
if (nFindAPITries > maxTries)
{
return null;
}
win = win.parent;
}
return win.API_1484_11;
}
// The GetAPI() function begins the process of searching for the LMS
// provided API Instance. The function takes in a parameter that
// represents the current window. The function is built to search in a
// specific order and stop when the LMS provided API Instance is found.
// The function begins by searching the current window’s parent, if the
// current window has a parent. If the API Instance is not found, the
// function then checks to see if there are any opener windows. If
// the window has an opener, the function begins to look for the
// API Instance in the opener window.
function GetAPI(win)
{
if ((win.parent != null) && (win.parent != win))
{
API = ScanForAPI(win.parent);
}
if ((API == null) && (win.opener != null))
{
API = ScanForAPI(win.opener);
}
}
GetAPI(this);
//These lines will be used to set score value in SCORM2004
var finalRawScore = score;
var passPercent = passing;
var scoreScale = finalRawScore/100;
//Set score value here. These 4 lines are necessary for SCORM2004
SCORM2004_objAPI.SetValue('cmi.score.scaled', scoreScale);
SCORM2004_objAPI.SetValue('cmi.score.raw', finalRawScore);
SCORM2004_objAPI.SetValue('cmi.score.min', '0');
SCORM2004_objAPI.SetValue('cmi.score.max', '100');
// Passed and completion status
// SCORM2004_objAPI.SetValue("cmi.success_status","passed");
// SCORM2004_objAPI.SetValue("cmi.completion_status","completed");
I need to get question-level data for a course published in SCORM 2004 format. We use Taleo Learn for our LMS. I am told that we can't get question-level data without rebuilding the assessment in another format. Is this true?
Hi Heather,
Welcome to the E-Learning Heroes community! When using SCORM 2004, Storyline will send this quiz data to an LMS. Have you tried to troubleshoot your LMS with SCORM Cloud? If it works correctly in SCORM cloud, then I suggest that you reach out to Taleo Learn.
Please let me know if you have additional questions!
No we haven't. Thanks for the tip.