Anyone Using Storyline and SCORM 2004 with a Saba 5.5 LMS?

Nov 26, 2012

If so, can you get courses to complete that have a final quiz?  If you have, what have you done?

I can get AICC and SCORM 1.2 courses (with this fix) to complete but not SCORM 2004 (I'm trying 3rd Edition).

I'm guessing but it may be the same suspend issue that the fix above solves.  Wondering if we need the same type of replacement file for SCORM 2004 and Saba?

68 Replies
Jenny Anderson

I believe in magic.........and the power of Articulate's collaborative spirit. 

"Starting to also wonder if replacing Saba's SCORM Engine with SCORM.COM's SCORM Engine might be a possibility.  We'd also get Tin Can support with that.  However, not sure if my client has the funds, or the will, to go that route."

I must do research on this.......

Gerry Wasiluk

Jenny Anderson said:

I believe in magic.........and the power of Articulate's collaborative spirit. 

"Starting to also wonder if replacing Saba's SCORM Engine with SCORM.COM's SCORM Engine might be a possibility.  We'd also get Tin Can support with that.  However, not sure if my client has the funds, or the will, to go that route."

I must do research on this.......

Actually, just found out today that Saba People Cloud, their next generation of learning and talent has Tin Can support now.

Saba Enterprise Cloud, which my client has installed internally, DOES NOT have Tin Can support in versions up to 6.1.  However, 6.2 gets announced in two weeks and I'm wondering if Tin Can support gets added with that version.

If I had the choice with Saba, I'd go with a Tin Can version, especially since the Articulate Mobile Player for iOS supports talking to an LMS with it.

Also, on our other issue with Storyline HTML5 content not launching in most Saba player templates, we got a lead.  Saba did change the player templates with 6.x.  The code they added for HTML5 support to the player templates looks (in my non-techie opinion) like something that could be easily patchable in 5.X.  With fingers crossed . . . .

Gerry Wasiluk

Hey, Jenny! 

Quick update.  We may not be able to solve this.  Despite great help and support from both Articulate and Rustici, we're at an impasse. 

Apparently, Saba is using some fancy "if-then-else" logic to determine completions and rollover to the transcript with SCORM 2004 content, and Rustici's driver for Storyline doesn't have the needed logic. The Rustici developer may continue to tinker when he has a chance but I'm not holding out much hope.

So we're probably stuck with AICC and SCORM 1.2 with Storyline and Saba.  For long courses, we may recommend breaking up into separate courses or doing multi-modules or one of the fixes Articulate discusses here.

BTW, I was talking to Saba support Tuesday on another need (having Storyline HTML5 content launch in Saba 5.5 player templates).  I brought up this issue and the support person indicated Saba may have gone way overboard with SCORM 2004 and should have made things easier for content from third-party tools to work with the LMS.

P.S. As for that other issue, we're hopeful Saba backports a patch for 5.5 to permit HTML5 content launching (and not freezing up) in their player templates (only the 3/x/5.1 player works).  Saba fixed the issue in 6.x by adding some doctype info to the player pages.  Should be an easy fix.  The Saba support person agreed with our need and was going to write up a patch request for approval by the higher ups.  Fingers crossed . . .

Jenny Anderson

Thanks for the update, and for fighting the good fight.  Disappointed it didn't work out, but not surprised.  I guess we just need to be more creative on how we use those stored characters in SCORM 1.2 and AICC. I appreciate the updates.  Let me know if/when additional tinkering results in a celebratory drink.  

Ashley Terwilliger-Pollard

Hi Paul,

I haven't heard of a specific issue with Update 5, Scorm 2004/3rd edition and Saba 5.5 - but could you tell us a bit more about if you've experienced a particular problem? Have you also tested the course at SCORM Cloud to see if the issue persists there? There isn't a way to edit or override the resume/suspend data limit - but if you are exceeding it within a SCORM 1.2 course you may want to review this article. 

Ashley Terwilliger-Pollard

Hi Paul,

I am not certain that the other users in this thread are still subscribed, as you mentioned it's been a bit since this thread was updated. I can't think of another similar thread I've run across recently - but have you reached out to your Saba LMS team to share the results from SCORM Cloud and see if they have any updates to share?

Gerry Wasiluk

Sorry for the late appearance, been off elsewhere in Articulate-Land most of the time . . .

The problem, IMVHO, is not with Articulate but with how Saba interprets SCORM 2004.

We only publish to SCORM 1.2 with Storyline and then make two edits to get things to work.  We've given up on getting Saba and SCORM 2004 courses to work the way we want.  If you like the Saba pop-up at course exit, and will assume learners will pick the right choice, then go for it.

Paul Shorr

Thanks Gerry, we are staying with SCORM 1.2 and going with a passed/failed SCORM setting.  This resolves our resume buffer issue, as it moves the course to the transcript on any assessment attempt, and there is enough resume data buffer to go all the way through the course until the assessment.  The sponsor wants records of every attempt on the final assessment, so this works all the way around.  At this point, we are not even modifying the storyline output, as the LMS admin can edit the offering settings to let the course determine completion (this keeps it in To-Do learning until the assessment is attempted.)

Thanks for weighing in!

Buddy Keane

Hey everyone...this is a very helpful discussion...I'm learning much!! But I have a question for Gerry...or anyone else with multi-module course experience. You mentioned above that "if you are concerned with the amount of resume data being sent by the Articulate course, I'd do a multi-module course in SCORM 1.2." How does this help? Does each module run as a separate course sending data to separate resume-data variables? Is the type of multi-module course you're talking about loaded to the LMS as a single course?

Do you have any experience doing this with SCORM 1.2 in Saba?

Breanne Myers

Hi Buddy,

It depends on your LMS. My organization uses Trivantis' Coursemill, and I found out that our version of Coursemill only supports SCORM 1.2 and AICC. Because my class was so interactive, long, and robust, I knew it needed to be broken up so as not to exceed the SCORM suspend data limits used to "remember" where a learner left off to help them resume a class after taking a break from it. See

After breaking the class up into 6 modules, I was able to link them together as a "curriculum."

This allowed me to have completion tracked for the entire curriculum rather than 1 module at a time (that would be annoying). Learners complete each module individually, returning to the LMS home screen at the end of each module in order to move on to the next module. They only receive completion status after completing all 6 modules, though completion is recorded for each individual module in order to facilitate prerequisite modules so learners have to take them in the correct order (module 1, module 2, module 3... module 6).

I had to upload each of the 6 modules individually as if they were individual classes, then instructed my LMS to link them together. I then instructed my LMS to issue a certificate of completion to learners who completed the entire curriculum.

I hope that helps!

Chad Cardwell

Hello! I've been following this thread for quite some time, and I'm also trying to get SCORM 2004 3rd edition content to rollup properly within the Saba LMS.

Background: The specific LMS I'm targeting is called the Army Learning Management System (ALMS), and it is built upon Saba. (I believe Saba 5.5...) It services thousands of students across the Army, and I'm just one developer in one of the Army's many schools. Sort of like a small blip on a very large radar.  :P

The folks that manage the ALMS published a document about two years ago that provides standards, guidelines, and best practices for ALMS content developers (that's me!). Within this document, there is a section carved out solely for the purpose of assisting developers with configuring Articulate products to work well with the Saba-driven ALMS. Unfortunately, the document only speaks to Articulate Presenter, but I'm working under the assumption that Articulate uses the same lms javascript files and SCORM logic in Storyline as well.

Within the Articulate section of this document, there are suggested script alterations for some of the javascript files located in the "lms" folder. Specifically, these files include the Configuration.js, API.js, and SCORM2004Functions.js files.  I've implemented these changes, and I am using the Passed/Incomplete LMS Reporting status, which is recommended per the document for use with the script alterations. My courseware is designed to rollup when the user reaches the last screen via a hidden one-question quiz.

The good news... The script alterations appear to work!  BUT... they only work when the courseware is exited using the player's Exit button or a button assigned the "Exit course" trigger.

The bad news... The script alterations don't account for the courseware being closed with the browser's red X button. So if a learner reaches the last slide (meaning they've satisfied the completion/passing requirements), and they click the red X button, a Suspend status is called and Saba refuses to roll things up, leaving the lesson "Not Evaluated."

Wait, so what about those script alterations? The script alterations begin on page 74 of the previously mentioned PDF document. You'll probably notice a few code errors in the document. I fixed these before using the code. The fixes included adding a few missing semicolons, swapping "exit" with "normal" in a SCORM2004_CallSetValue() function call, and adding a missing "break;" statement to the code for a switch statement. The code, with my slight modifications, are below...

File: SCORM2004Functions.js

In function SCORM2004_Finish(strExitType, blnStatusWasSet)

this code could be added at about line 165:

/*Since the course was not setup to determine completion in scorm 2004 via the LMS_SPECIFIED_REDIRECT it is returning that the content should be completed. However this should be validated first. if the status is unknown then this is not allowed to be set to anything but incomplete. That is set in the API function ConcedeControl()./*

var myStatus = SCORM2004_CallGetValue("cmi.success_status");

if (myStatus != "unknown"){
blnResult = blnResult && SCORM2004_CallSetValue("cmi.completion_status", strStatusAfterCompletion);

Make this change to the code at about line 173:

//Remove this we are setting this up in API.js
//blnResult = SCORM2004_CallSetValue("cmi.exit", SCORM2004_TranslateExitTypeToSCORM(strExitType)) && blnResult;

File: Configuration.js

Set the following variables as follows:


File: API.js

In function ConcedeControl() add the following case: ***

/*This case was missing from the list of possible actions to close the course. Adding the code below sets up the exit routine to work well with the passed/incomplete and pass/fail publishing settings.*/

var myStatus = SCORM2004_CallGetValue("cmi.success_status");
if(myStatus == "passed") {
SCORM2004_CallSetValue("cmi.exit", "normal");
SCORM2004_CallSetValue("adl.nav.request", "exitAll");
SCORM2004_CallSetValue("cmi.completion_status", "incomplete");
SCORM2004_CallSetValue("cmi.exit", "suspend");
SCORM2004_CallSetValue("adl.nav.request", "suspendAll");

***I feel like the "Finish()" function call in the above else statement should probably be a "Suspend()" function call. This may be a copy/paste typo from the document author, or maybe it was intentional...? I don't know!

Another note... Without these script alterations in place, our Saba-driven ALMS presents the user with the goodbye.html landing page, at which point the user is forced to close the window using the browser's exit button. As explained in the document linked above, this "...will cause the API to act as if a catastrophic closure occurred. It is up to the developer to figure out the best method for making the specific courseware to shut the Player down." Gee, thanks, but I don't know how to do that!

So why aren't you talking to the folks who wrote the document? Well, I am, actually. The team of people that wrote the code changes in the document above doesn't work in that office anymore. I am currently working with one of the gurus at the ALMS, and he is doing all that he can to help me crack this problem. Of course, he has a lot of other stuff on his plate, too, so he can't work on this full-time.

So what can I do? The above solution just mostly works, but it doesn't fully work with regard to the user exiting the course with the browser's close button (at least not for me). I don't know enough about SCORM and HTML/javascript to find a way to fix this.

I'm reaching out to you guys because if you're reading this, it's because you've probably run into the same issue. My hope is that this possible solution will spark an idea that leads to a complete solution.

  • Perhaps there is just some snippet of code needed in an onbeforeunload statement somewhere?
  • Maybe a fix is to leave Articulate's code as-is, and just place some magic javascript to the goodbye.html page that my LMS navigates to when the courseware closes?
  • Maybe it just needs more cowbell?

I have way more questions than answers at this point! If you have an answer or idea, or if I've left out some important info you need to know, please let me know. Also, I'm happy to take any published SCORM 2004 3rd edition files and test them in our Saba-driven ALMS to see if they rollup properly.

Thanks for taking the time to read this, and thanks in advance for your help!


Chad Cardwell

Just FYI - I managed to get my SL1 courseware to run and rollup properly in our Saba-driven LMS, and it no longer matters how the learner exits the courseware (using either the browser close button or the SL Exit method). It's a multi-step process that may or may not work for you depending on your application, as several of my edits are specific to my organization's SCORM testing requirements. However, if you'd like to know more I can probably post it here or we can talk through PMs.

This discussion is closed. You can start a new discussion or contact Articulate Support.