SAP Knowledge Base Article - Public

2626783 - SCORM 2004-Finish button causes an API error

Symptom

A user is taking a piece of content developed in SCORM 2004. Upon getting to the last screen of the content, there is a Finish button that the user can click. Upon clicking on this Finish button, an error will occur. The error will read "Error initializing communications with LMS".

Environment

SAP SuccessFactors Learning Management System (LMS)

Reproducing the Issue

  1. Create content in Articulate that is SCORM 2004 4th edition
  2. Import the content with the Import tool that makes use of a Deployment Location.
  3. The URL Prefix in the Deployment location needs to have the proper URL prefix as per KBA 2396085
  4. Create the item and place the content object into the item
  5. Take the course and get to the very end
  6. Upon reaching the last slide, click the Finish button which is inside the content
  7. The "Error initializing communications with LMS" pop-up will appear

Cause

Content vendor is trying to access the URL in GetContentRootUrlBase(contentRoot) by splitting the URL by "/".

Please note that so far this has only been found with SCORM 2004 content created in Articulate.

Resolution

There are two possible fixes to this Articulate content:

  1. Modify the content object URL to be something along the lines of: "/icontent_e/CUSTOM/[customername]/self-managed/CORP/SCORM_TEST/index_lms.html". The customer name section in that URL can be seen in the iContent configuration file. If not, take your iContent SFTP account which is usually customername_content (if self-managed) and remove the "_content".
  2. Modify the JavaScript of the content.

This function exists in different files in the different tools:
Storyline and Presenter: /LMS/API.js
Rise: /scormdriver/scormdriver.js

Original Function:
function GetContentRootUrlBase(contentRoot)

{var urlParts=contentRoot.location.href.split("/"); delete urlParts[urlParts.length-1]; contentRoot=urlParts.join("/"); return contentRoot;}

Edited Function:
function GetContentRootUrlBase(contentRoot)

{var basePath = contentRoot.location.href.split("?"); var urlParts = basePath[0].split("/"); delete urlParts[urlParts.length - 1]; contentRoot = urlParts.join("/"); return contentRoot;}

Please note, Support is not trained in content creation and cannot assist in modifying the JavaScript. Please reach out to our Professional Services team or Premium iContent Support team. Please reach out to your Customer Success Manager (CSM) or Sales Representative to assist.

See Also

2149831 - How and When to reach out - Professional Services Consultant, Partner and Account/Finance Team

Keywords

content, lms, scorm 2004, API, error, articulate, adobe, presenter, rise, initialize, finish, communication API error, LRN-34247 , KBA , LOD-SF-LMS-CNT , Content , Problem

Product

SAP SuccessFactors Learning all versions