This TechNote discusses the process of posting to a remote URL when implementing CMI (Computer Managed Instructions) commands inside an Authorware piece.
The Pathware 4 Authoring Guide and the section on HTTP tracking commands (chapter 8) explain the commands used in Pathware and define the few commands that are Pathware specific and not AICC-compliant. The documentation also shows the format of the AICC data that is sent to Pathware and the output for successful sending of data. When using Pathware 3, you can refer to an example file included on the Pathware 3 CD that uses PostURL to send AICC data. Analyzing and comparing your piece against the sample provided is a good troubleshooting approach.
There are basically only seven commands to send to the Pathware server:
- GetParam
- PutParam
- PutComments
- PutInteractions
- Signon
- NextAU
- ExitAU
The last three commands in the list above are typically related to independent tracking functions (logging on and tracking without having to go through the Pathware interface) which is not a required AICC feature. You would use PostURL for everything except GetParam. The GetParam command would usually use ReadExtFile.
The basic format for a PostURL command would be:
PostURL([URL to the CGI script or ASP page], "command=[command]&version=2.0&session_id=[SID]&course_id=[course id]&aicc_data=...")
The key is to be able to get the location of the CMI's CGI script or ASP page, the session id and the course id. Without these components, the CMI functions or PostURL function does not know where to write tracking data. Pathware does this by tacking that information on as part of the filename when launching from Pathware (For example, http://myserver.com/mylesson.aam?aicc_sid=1234%2D101&aicc_url=http...).
If the other CMI's do not (or cannot) add this information as a parameter onto the end of the Authorware filename, the CMI functions will not work. Authorware needs to be able to parse that information out of FileName. This might be a good area to start troubleshooting.
CMILogon: This is a Pathware specific command that doesn't work with any other CI, unless they happen to recognize the command "signon".
CMIAddinteraction: This uses the PutInteractions command. See the Authoring guide for the details on the format of aicc_data.
CMISetObj, CMISetData, CMISetFailed, CMISetPassed, CMISetScore, CMISetLocation, CMISetStatus,CMISetStarted, and CMISetTime: These are all sent using the PutParam command. Again the Pathware 4 Authoring guide will have an example of the data that is passed.
CMIGetData, CMIGetObjCount, CMIGetObjID: These would use the GetParam command.

