SABA LMS: AICC courses not moving to transcript – HACP method

By Syed Amjad Ali

It was the biggest challenge that I have ever faced in making courses compatible with LMS. For one month, I struggled to figure out how to fix this issue. I checked a lot of forums, contacted the SABA team but couldn’t find the solution. Finally, I made a fresh start by taking all the experience of the past month and fixed the issue successfully.

There are lots of things which you should check carefully to fix transcript issue. In this article, I have listed all the tasks that I checked in the course. Through my experience, you may be able to fix such issues in your courses:

Here is what I did to fix the issue in my course:

  • ExitAU is the last command to be passed from the course. I used setInternal in JavaScript because of which the setParam command was being executed after exitAU command. To find out which commands are called from the course, use the tool from “”

Here is the procedure for testing course in Fiddler:

  • Once the software is installed, in Internet Explorer under the Tools dropdown menu, you will find the option Fiddler. Click on Fiddler.
  • Launch the course from the LMS.
  • Run the course and exit it.
  • When you check the Fiddler tool, it will show all the URLs which were executed in the browser.
  • You need to find the URL through which the course sends values to the LMS. Usually such URLs end with “http://…./aicc.php.” Again, it depends on the LMS.
  • Once you find out the URL, double click on it and you will find the results on the right side of the window. By using this tool, you can find out if any other command is executed after the exitAU command.

In my course, I was sending the HACP request via the SWF file which was the main reason for the issue. To get the values from the LMS I was sending the HACP request via the SWF file which was working fine but sending the values to LMS from the course via the SWF was not working. Then I used HTML form for sending the values to the LMS and it worked.

If you find this article helpful, please let me know your comments.

Syed Amjad Ali
Sr. Manager-Technology

AICC Compatibility Issues with Captivate Authoring Tool

One of our Fortune client based in USA raised an issue regarding compatibility of AICC courses on their LMS. The courses were published using Captivate Authoring tool. The client proposed CommLab to fix this issue in the courses. Nearly 100 courses were in queue and the client was not able to launch them because of this issue.

When we took up this assignment, we were a little confused on where to start our research and how to solve this issue. On the other hand it was a very challenging task because we have to work on the coding of an authoring tool to make the courses function properly on the LMS. Earlier, we had the experience of working on coding side of another authoring tool. It was proprietary tool and the courses published by the tool ran on a particular portal. It was really a tough time to work on that tool.

To solve the Captivate issue; we planned a strategy which consists of three stages:

  1. We will search for the solution in search engines with similar issues
  2. We will go through the coding of Captivate course and try to fix the issue
  3. We will implement our own AICC wrapper in-between the coding generated by Captivate

In our first stage, we were able to find out some information regarding AICC compatibility issue with regards to Captivate. Then in the second stage we went through the coding of the course to understand the flow of AICC and we could successfully figure out the reason for this issue.

The actual issue in the course was the AICC URL. The course was not able to get the correct AICC URL. Finally the courses worked fine on the Client LMS.

We worked on this assignment for around 8-10 hours and at the end of the project we were little happy and little disappointed. Happy because the project is closed successfully and disappointed because at the end, what we changed in the coding was just one line!!!

Actual code:
strURLParams = (strURLParams==unescape(strURLParams)?escape(strURLParams):strURLParams);

Modified code:
//strURLParams = (strURLParams==unescape(strURLParams)?escape(strURLParams):strURLParams);

On the other hand, I think we should really cheer for the success because even though it is only one line, the client was not able to launch their courses. And we helped the client to solve his problem and launch his courses.

Hope this article is helpful to you!


Syed Amjad Ali
Manager – Technology