SAP Knowledge Base Article - Public

2805176 - Course Home: course does not load when launched via BizX

Symptom

  • When Course Home is enabled and the course is launched via BizX (integrated environments), the course does not load. However, the same course works correctly when course is disabled and launched via BizX.

  • The course correctly loads in Couse Home via BizX, but does not communicate with Learning, does not send completion/fail.

Environment

SAP SuccessFactors Learning

Cause

The cause might be related to (but not restricted to it) the content code structure that could be referencing to "window.top", which is currently not supported in Course Home via BizX.

Resolution

In order to record the completion of a SCORM content type, Learning must make available a JavaScript SCORM API. As recommended by SCORM guidelines, Learning attaches this API to the parent window of the content (the "LMS" window in the image below).

course home.png

To locate the LMS API, the SCORM content executes a search algorithm on the current window hierarchy. The search algorithm, which is implemented by content providers, could be trying to check the BizX Common Header window before the LMS window.

Because the BizX Common Header is located on a different domain from both Learning and the SCORM content windows, browser cross-domain security restrictions are violated as soon as window access is attempted and the search algorithm is immediately terminated before finding the LMS API. Without the LMS API, the content is unable to communicate with Learning, so no status changes can be recorded.

The violation can be present in the described scenario because Course Home embeds the content directly in the page, at the bottom of the window hierarchy, as opposed to the legacy item details page, which opens content in a new window. The usage of a separate window hierarchy on the legacy details page means that users will not see this issue there.

The content can be referencing to window.top during its initialization. Course home cannot support content that references window.top. This reference to window.top will always cause a cross-domain error in Course Home in integrated environments.

Possible recommendations for the situation resolution would be:

  • Referencing window.parent instead of window.top. However, this may lead to the same cross-domain issue if the content is hosted on a different domain from LMS. Implementing exception handling to catch potential cross-domain access errors. If an exception is triggered, the content could attempt to continue by referencing a different window, instead of terminating prematurely. Example:

    1.png

Could become:

2.png

  • The content's API search algorithm might not be following SCORM guidelines. SCORM guidelines recommend that content check for the API on the first iteration of the search algorithm. See the SCORM API Discovery Guidelines. In addition, this article may assist the content developer in writing their discovery algorithm.

For additional information about Course Home and content troubleshooting, take a look at the "See Also" section of the KBA.

See Also

Implementing Structured Content

2734443 - Course Home FAQ

2692689 - Course Home - Unable to start content

2682988 - Who Should Troubleshoot Structured Course Content?

Keywords

window.top.header, course, home, scorm, content, load, item, course, blank, course, home, lms, bizx, integrated , KBA , LOD-SF-LMS , Learning Management System , LOD-SF-LMS-ADM , System Admin, Global Variables, References , LOD-SF-LMS-ITE , Items , LOD-SF-LMS-CNT , Content , LOD-SF-LMS-CHM , Course Home , Problem

Product

SAP SuccessFactors Learning all versions