Search This Blog

Friday, March 5, 2010

LMS Quirks, Issues, and Work- Arounds : LRN Learning System (part 2)

Now that we have the SCORM 1.2 package running on the LMS there has been another issues that has popped up. The issue is that the single SCO SCORM package automatically "completes with no score" in the LMS when the student launches the course. The SCORM data is clearly NOT sending cmi.core.lesson_status [see below ---SCORM DEBUG REPORT ---].

Now here is the FUN part. In this particular LMS (LRN Learning System) if you do not set the lesson status at all as soon as the course launches then the LMS ASSUMES THAT YOU WANT IT MARKED COMPLETED !!!

This kind of stuff is what makes me rant on this blog :)...

There is even a comment in the LMS javascript to this effect [see the bold text below]:
IN FILE: wrapperEscape.js
Method:persistData:

if (this.isInitialized) {
            /*set the lesson status to completed if the SCO doesn't set the lesson_status*/
            if(!this.isSCOSetStatus){
                if(!this.prevStatus){
                    this.prevStatus = this.CMIDataModel["cmi.core.lesson_status"].cache;
                }
                this.CMIDataModel["cmi.core.lesson_status"].cache = "completed";
            }          
            this.persistData();
            this.isInitialized = false;
        } else {
            this.errorCode = SCORM12_ERR.NOT_INIT;
            message += "failed!";
            SCORM12_UTL.logAPI(message,this);
            return "false";
        }

--- One possible solution ---
        isInitialized = doLMSInitialize();
        v = doLMSGetValue("cmi.core.lesson_status");
        if(v == "not attempted" || v == "" || v == "incomplete")
        {
            //every session you have to set the lesson_status = incomplete, failing to do this will cause the course to automatically be merked completed by the LMS            doLMSSetValue("cmi.core.lesson_status","incomplete");
        }


This debug report can be generated by adding ?debug=true to the end of the sco launch file name OR issuing the following command in the IE8 debugger:
top.location.href="http:/LMS_URL/lrn_start.html?debug=true&aicc_sid=xxxxxxxx&aicc_url=http://LMS_URL/app/a
icc/xscorm_handler&mode=preview&media=off&mode=preview";

---SCORM DEBUG REPORT ---
11:35:30 DEBUG - debug starting...
11:35:32 DEBUG - LMSInitialize()--succeed!
11:35:32 DEBUG - result:0--No error
11:35:32 DEBUG - LMSGetValue(cmi.core.lesson_status)--incomplete!
11:35:32 DEBUG - result:0--No error
11:35:32 DEBUG - LMSGetLastError()--0
11:35:32 DEBUG - LMSGetValue(cmi.suspend_data)--0,0,0,0!
11:35:32 DEBUG - result:0--No error
11:35:32 DEBUG - LMSGetLastError()--0
11:35:32 DEBUG - LMSGetValue(cmi.suspend_data)--0,0,0,0!
11:35:32 DEBUG - result:0--No error
11:35:32 DEBUG - LMSGetLastError()--0
11:40:09 DEBUG - LMSSetValue(cmi.core.session_time,0000:04:37.41)--succeed!
11:40:09 DEBUG - result:0--No error
11:40:09 DEBUG - LMSCommit()--succeed!
11:40:09 DEBUG - result:0--No error

Wednesday, February 24, 2010

ADL Test Suite 1.2.7 Bug cmi.core.score

Leaving off the .raw from cmi.core.score.raw does not result in an error in the ADL Test Suite 1.2.7. The operation LMSSetValue('cmi.core.score','100'); should returnthe following errors.

LMSSetValue('cmi.core.score', '100') returned 'false'
LMSGetLastError() returned '201'
LMSGetErrorString('201') returned 'Invalid argument error'

But instead in the ADL Test Suite 1.2.7 it returns:

LMSSetValue(cmi.core.score,100) has been invoked
LMSSetValue() finished successfully

Package is SCORM Version 1.2 ADLCP-PIF1 Conformant

Sunday, February 7, 2010

Mantis Bug Tracker IE 8 Accelerator

I just took a few minutes and wrote an IE 8 accelerator that post data to Mantis. It is fairly rudimentary, but it is a good example and it gets the job done. To make it better I think it would be good to add a PHP page to the Mantis install that asks for a little more information like project, assign to, and maybe a more descriptive summary.

NOTE: This accelerator does not contain a login script so for seamless execution you should already be logged into Mantis.

Below is the code to create a link to install the accelerator:
<button id="myButton"
onclick="window.external.AddService('http://www.jcasolutions.com/bugtracker/mantis_ie_accelerator.xml')">
Post bug to mantis</button>



Below is the XML for the accelerator:
[file name: mantis_ie_accelerator]

<os:openservicedescription xmlns:os="http://www.microsoft.com/schemas/openservicedescription/1.0">
<os:homepageurl>http://www.your_site.com/bugtracker</os:homepageurl>
<os:display>
<os:name>Post Issue to Mantis</os:name>
<os:icon>http://www.your_site.com/bugtracker/images/favicon.ico</os:icon>
<os:description>Quick way to post an issue to Mantis.</os:description>
</os:display>
<os:activity category="Bug Tracker">
<os:activityaction context="selection">
<os:execute action="http://www.your_site.com/bugtracker/bug_report_advanced_page.php" method="post">
<os:parameter name="summary" type="text" value="{selection}">
<os:parameter name="description" type="text" value="{selection}">
</os:parameter>
</os:parameter>
</os:execute>
</os:activityaction></os:activity></os:openservicedescription>

Tuesday, January 19, 2010

LMS Quirks, Issues, and Work- Arounds : LRN Learning System

We just had a conversation with one of our clients regarding the fact that out content package would not launch in the LRN LMS. Well the package passed the ADL Conformance Test Suite 1.2.7 and ran on Mike Rustici's Test Track (www.scorm.com) so I was a bit perplexed. After some discussion and emails it came down to the fact that the LRN system requires a file called csd.txt to be placed at the root of the package ALONG WITH the imsmanifest file. It uses this file to find the launch page for the course. This raises the question, what does it do with the manifest file and what does it do if there are multiple SCOs in the content package?

I will post a sample of the csd.txt file soon.....
Here it is:

Date of this Request
date=[01/11/2010]

Type of Course (enter SCORM or AICC)
type=[SCORM]

LCEC Site Names (enter a comma separated list of sites)
sites=[site name here]

Course Base Catalog Id (limit: 10 characters - see Notes above)
basecatid=[catalog-id-here]

Course Full Catalog Id (limit: 15 characters = see Notes above)
catid=[full-catalog-id-here]

System ID (to be filled in by LRN at installation time)
sysid=[ ]

Course Title
title=[Course Title Here]

Course Language Code (e.g.: zhCN. See LCEC's Administrator's Reference Guide)
language=[en]

Course Description
description=[This course covers XYZ and ABC.]

Course Entry Point (e.g.: index.html)
entry=[index.html]

Course Launch Parameters
parms=[none]

Course Vendor Name
vendor=[JCA Solutions]

Library Course? (enter true or false - Should be true only for licensed 3rd party library courses)
islibrary=[false]

Technical Contact Name
name=[Brian Caudill]

Technical Contact Phone
phone=[Office: 1-800-305-8159 x201; Cell: 407-222-5432]

Technical Contact Email
email=[bcaudill@jcasolutions.com]

Monday, January 11, 2010

LMS Quirks, Issues, and Work- Arounds : SkillPort LMS

The SkillPort LMS by SkillSoft supports AICC, CTT, Dialogue 2.0 and 3.0, e3, LOT Passive, SCORM, SCORM 1.2 RTE 2, SCORM 2004, SkillStudio, LCMS input, and NLO+. This blog entry will be concerned with SCORM 1.2 RTE 2.

First off, SkillPort does not support all of the mandatory and optional RTE data model elements for the SCORM 1.2 package. It only supports a subset listed below:




You will also need to get on the SkillSoft Community site http://community.skillsoft.com/Products/sct/ccps.asp "SCORM 1.2 Authoring Guidelines" AKA(scorm_auth_doc_v_1_2 (2).pdf). This document (pg 9-11) will explain to you what SkillSoft means by completion, passing score, and failing.

Also, you will need to download the SkillSoft Compatability Toolkit (SkillPort_Compatibility_Toolkit.exe) from the SkillSoft community site. Run your content package throuth this application for 2 reasons. 1) to verify that it is compatible with the SkillPort system and 2) to create the appropriate sppub.ini metadata file and the correct SkillPort input file which is a .par file.

A NOTE ABOUT THE SCT:
[edit] Since you will need IE 6 for this task I suggest you go to spoon.net and use the run anywhere browsers http://spoon.net/Browsers/. It will stream the app to your PC so you dont have to install it. That way you can run all the IE versions side by side if you like.

The SCT is only usable in IE 6.0 and is unusable in IE 7, 8 because the use type=file on all of their input boxes so you can not copy and paste the path to your folder into the input area AND if you press the browse button it makes you select a file when the application wants a folder. I tried to get around this by using FireFox, however, when you complete the run-time compatability test the next button never displays so again you are dead in the water.

Create your own sppub.ini file. Name it "sppub.ini":

# [ SP Publishing Settings formatversion="1.0" ]
window top=0
window scrollbars=no
window resizable=no
default ids=no
enable download=no
content version=0.5
course code=001
prerequisites=Unknown
window height=768
target audience=Unknown
course duration=2
publish version=1.0
window toolbar=no
window width=1024
language=enUS
description=BP Alpha Course
company code=regis
vendor=Regis Learning
title=BP Alpha
window left=0

The SkillPort Course Completion Criteria
The issue was that not of our courses were completing and we were sending cmi.core.lesson_status and setting it to completed. Well the answer was in the way courses are administered within SkillPort. More below....


"SkillPort provides a capability that allows the client to set their Course Completion Criteria (CCC)
either globally or on a per-course basis. These settings set the criteria, which determine whether a
course is marked complete.
SCORM 1.2 courses report two different values - a score and a lesson status. The following list of
elements is a setting or checkbox in the SkillPort Administrator page and describes how the SkillPort
CCC uses the two values to determine the completion status of the course:"


This paragraph above is an excerpt from section "Completion Criteria" in the SkillPort document "SCORM Authorizing Guidelines.pdf"

It is a good idea to discuss this with the LMS admin. Also, if you can have them provide a screenshot of the CCC page and what is selected that is always very helpful.

LMS Quirks, Issues, and Work- Arounds : Intro

I am going to begin to post little quirks, issues, and work-arounds that have to be used in order to deploy content on different Learning Management Systems. I will try to keep it so there is one LMS and LMS version per post since some LMS have many different versions in production. I will not be specific about the project or customer, but I will try my best to detail the issue and any resolutions.