Question
One of our clients has a problem with a course and their course provider says that the problem is with the AICC implementation.
From what I can see the ScormEngine launches an exception and it is displayed by the course (a SkillSoft course in this case):
----------
The SkillSoft Course Player has encountered an error while communicating with the Learning Management System. As a result, your session will now be closed.Internal Error: error=1
error_text=Error attempting to save information collected in PutParam: Object reference not set to an instance of an object..: System.NullReferenceException: Object reference not set to an instance of an object.
at RusticiSoftware.ScormContentPlayer.Logic.ActivityRunTime.ToXmlElement(XmlDocument doc, String activityId)
at RusticiSoftware.ScormContentPlayer.Logic.Activity.ToXmlElement(XmlDocument doc)
at RusticiSoftware.ScormContentPlayer.Logic.AiccRequestProcessor.GetXmlForUpdatedActivities(String registrationId, ArrayList updatedActivities)
at RusticiSoftware.ScormContentPlayer.Logic.AiccRequestProcessor.ProcessPutParam(AiccRequest aiccRequest): An invalid AICC Objective was detected, the specific error was: System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
at System.Double.Parse(String s, NumberStyles style, NumberFormatInfo info)
at RusticiSoftware.ScormContentPlayer.Logic.AiccRequestProcessor.ProcessPutParam(AiccRequest aiccRequest).
version=3.5
aicc_data=Object reference not set to an instance of an object.
----------SkillSoft turned off the 'AICC Objectives Status' feature for this client and the problem went away.
Can you explain why there is a crash with the course?
Answer
I talked to Brian about this one and he remembered a ticket from another client who had a similar issue. Here is some of the text from the ticket...the long and short of it is that when objectives are passed, we were receiving something like this:
"...
[Objectives_status]
j_id.17=LCO0106001000000X820001
j_score.17=0.0;-1.0
...
The score is not in the proper format according to the AICC spec. The raw and max/min scores should be separated by a comma and not a semicolon. In addition, this example is showing the max score as '-1.0' (the min is assumed as zero if not provided). These are 2 different errors that could cause the application error response you are getting for this course."
Once we realized that this was the issue, the ticket was kicked back to SkillSoft and they had the fix the issue on their end.