Search code examples
moodlescormscorm1.2

Kenexa LCMS 8.2 content to Moodle LMS via AICC URL


Before I begin, I'd like to appologise for any improper terminology. I am in a jack-of-all-trades position right now and LCMS/LMS systems are not my primary focus typically.

Goal:

Create content that is stored and edited in Kenexa (Formerly Outstart) LCMS and is accessed via AICC URL in the Moodle LMS. This is important to us because we'd like to have the content in a central repository (the LCMS), where changes can be made to the content and instantly applied to the LMS(s).

Problem:

Unable to connect to LCMS content using an AICC URL (generated by the LCMS) using Moodle LMS. When connecting, I receive this error:

AICC HACP Entry Point Error
AICCException : The callback to the LMS failed with http status code (404)

When creating the AICC URL, the LCMS will present an error if I supply an invalid or unreachable URL for my LMS. In this case, the LCMS can "see" the LMS, as far as I can tell.

Details:

The LCMS uses an editable XML file when publishing the AICC URL and content. That file looks like this:

<publish_configuration>
    <destination>
        <id>{instance_id}</id>
        <label>{instance_label}</label>
        <url>{protocol}://{destination_host}/{pens_context}</url>
        <standard>pens</standard>
        <transport_location>{protocol}://{source_host}/{repository_context}</transport_location>
        <transport_userid>{transport_user}</transport_userid>
        <transport_account>{transport_account}</transport_account>
        <transport_password>{transport_password}</transport_password>
        <system_userid>{system_user}</system_userid>
        <system_password>{system_password}</system_password>
    </destination>
    <destination>
        <id>02</id>
        <label>Moodle_Test</label>
        <url>http://LMS-URL/moodle</url>
        <standard>pens</standard>
        <transport_location>http://LCMS-URL/LCMS/evsfiles/exports</transport_location>
        <transport_userid></transport_userid>
        <transport_account>FIRST_USERID</transport_account>
        <transport_password>FIRST_PASSWORD</transport_password>
        <system_userid>SECOND_USERID</system_userid>
        <system_password>SECOND_PASSWORD</system_password>
    </destination>
</publish_configuration> 

Fiddler shows that a request is sent to the LCMS when the AICC URL is launched and receives a "200 OK" header response.

We've been using the second "destination" option in the XML and it seems to generate the AICC URL correctly, from the LCMS's point of view. When launched, directly in the browser or from the LMS, the error from the beginning of this question pops up.

We have another type of LMS using these AICC URLs and it is working correctly, however we are trying to take this method and apply it to many different sites that are all using moodle.

System Information:

LMS:

  • Moodle: Version 2.3.2 (Build 201220910)
  • Apache2: 5.0.8
  • PHP: 5.3.16
  • MySQL: 5.5.21
  • Enable direct AICC url checked
  • Enable external AICC HACP checked

LCMS:

  • Kenexa LCMS: 8.2.0073
  • Tomcat Application Server: 6.0.32 (Bundled with LCMS)
  • MSSQL Server: 2008 R2

General - Both applications are running on the same server. - No internet connection to server. - Local Address (192.168.1.10) doesn't work correctly in the publish.xml file

Questions:

  1. Is it possible that PHP or Apache are blocking the AICC communication between the LCMS and the LMS?
  2. Could this be a Moodle issue with AICC URLs?

I'm not sure if there are any other questions I should be asking in relation to this. I don't know enough about the inner workings of AICC/MOODLE/Kenexa LCMS to pinpoint the issue here. My usual solution would be to google until I find a similar issue and tailor their solution to fit my issue, but I am having a hard time finding anything like this.

If you need any more information, logs, etc, please let me know!

Thank you in advance!

UPDATE - 15/7/2013

After digging around the "fantastic" Moodle forums, I found a link to this bug report. Now, this didn't sound exactly like my problem, but I was running out of ideas so I gave it a try.

How to fix this issue:

  1. Navigate to the SCORM Lesson Settings
  2. Find "Display course structure in player"
  3. Disable
  4. Save and Display

I'm assuming that the JScript used to populate the "Table of Contents" in the content player is having issues with the AICC URL. As far as I can tell, the AICC URL does not provide any "course structure" so the Jscript fails to build the ToC and thus causes some deeper issues with the AICC content being displayed. (Most of this is assumption, would love for someone else to verify).


Solution

  • Quoting my update from the original question:

    After digging around the "fantastic" Moodle forums, I found a link to this bug report. Now, this didn't sound exactly like my problem, but I was running out of ideas so I gave it a try.

    How to fix this issue:

    1. Navigate to the SCORM Lesson Settings
    2. Find "Display course structure in player"
    3. Disable
    4. Save and Display

    I'm assuming that the JScript used to populate the "Table of Contents" in the content player is having issues with the AICC URL. As far as I can tell, the AICC URL does not provide any "course structure" so the Jscript fails to build the ToC and thus causes some deeper issues with the AICC content being displayed. (Most of this is assumption, would love for someone else to verify).