Follow

How to Send Dynamic Parameters to AICC Content Using Engine

Avatar

Q: What if I need to send dynamic parameters to my AICC content?

A: If you're using Engine, you're in luck.

You will need to write a little bit of code. In your integration layer, you can do something like this:

        public override void CustomizeRegistration(Registration reg, ExternalConfiguration externalConfig)
        {
            if (reg.Package != null)
            {
                if (reg.Package.LearningStandard.IsAICC())
                {
                    if (reg.Package.LearningObjects.Length > 0 && reg.Package.LearningObjects[0].Children.Length > 0)
                    {
                        reg.Package.LearningObjects[0].Children[0].Parameters = "&foo=bar";
                    }
                }
            }
        }

 

Here, we're first checking to see if the learning standard of the launched package is AICC. Then we're modifying the registration (basically, the tracked launch of AICC content) at launch by dynamically merging with the WEB_LAUNCH parameters from the Assignable Unit (.au) file that are used to construct the content URL.

You can add as many parameters as you want in the format of a query string. E.g., "&foo=bar&baz=ola".

If the original content would have been something like:

http://enginecustomer.com/courses/AICC%20Basic%20Run-time%20Calls/scormdriver/indexAPI.html?AICC_SID=53ad7d90-dfa5-4773-a5cd-c7dd854f3ccd&AICC_URL=http%3A//localhost/Engine-2013.2.x/ProcessAiccRequest.aspx

Then using the above code, it would be something like this:

http://enginecustomer.com/courses/AICC%20Basic%20Run-time%20Calls/scormdriver/indexAPI.html?foo=bar&AICC_SID=53ad7d90-dfa5-4773-a5cd-c7dd854f3ccd&AICC_URL=http%3A//localhost/Engine-2013.2.x/ProcessAiccRequest.aspx

Also, you have an ExternalConfiguration available for anything you need to do dynamically beyond just checking to make sure the learning standard is AICC.

I've thrown in some null checks that should protect against some real-world corner cases, but note that this is only sample code.

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request
Powered by Zendesk