Search code examples
scormscorm2004

SCORM manifest: Selective tracking / completion?


In a SCORM organization, I have an item with 2 child items, accompanied by their respective resources. I want both items to be viewable, but only one of them shall be sufficient to mark the parent item as completed. (Not any one, but a certain one.) Can I achieve this by modifying the manifest alone or does the tracking backend have to implement something?

I tried two things in various combinations, but no success:

  • Changed the resource's adlcp:scormType from "sco" to "asset".
  • Played around with adlcp:completionThreshold in the organization and organization items.

The LMS (I used https://cloud.scorm.com/ for testing) doesn't seem to care and always returns the same results in the debug output and marks the course as incomplete/failed.

I am aware of ins:trackable, but unfortunately this is only available for SAVE1.0. Is there anything else I could do?

Also: From the documentation I'm not exactly sure how to use adlcp:completionThreshold properly. Is the parent or the child supposed to have this property? Do I need to propagate this property through the organization's hierarchy? Can someone give an example?


Solution

  • If you use SCORM 2004, you can achieve selective score and completion tracking with the attributes of the imsss:rollupRules element. Rollup in SCORM speak refers to how the results are propagated upwards in the organization hierarchy.

    I don't know the difference between satisfaction and completion of an object, so I always set rollupObjectiveSatisfied and rollupProgressCompletion to the same value, which works for my purposes. objectiveMeasureWeight determines how the score of each item is propagated upwards. It appears the weight is relative to other siblings, not to the total score of the parent item. That makes it easier to use by setting it to either 0.0 or 1.0, if you don't want to mess with the score.

    Here's an example organization as it would appear in imsmanifest.xml:

    <organizations default="org">
        <organization identifier="org">
            <title>Selective Tracking Demo</title>
            <item isvisible="true" identifier="parent">
                <title>Parent item</title>
                <item isvisible="true" identifier="item1" identifierref="item1_res">
                    <title>No score, no completion</title>
                    <imsss:sequencing>
                        <imsss:rollupRules objectiveMeasureWeight="0.0" rollupObjectiveSatisfied="false" rollupProgressCompletion="false"/>
                    </imsss:sequencing>
                </item>
                <item isvisible="true" identifier="item2" identifierref="item2_res">
                    <title>No score, but completion</title>
                    <imsss:sequencing>
                        <imsss:rollupRules objectiveMeasureWeight="0.0" rollupObjectiveSatisfied="true" rollupProgressCompletion="true"/>
                    </imsss:sequencing>
                </item>
                <item isvisible="true" identifier="item3" identifierref="item3_res">
                    <title>Score and completion</title>
                    <imsss:sequencing>
                        <imsss:rollupRules objectiveMeasureWeight="1.0" rollupObjectiveSatisfied="true" rollupProgressCompletion="true"/>
                    </imsss:sequencing>
                </item>
            </item>
        </organization>
    </organizations>
    

    I haven't found any alternative for SCORM 1.2 and for SAVE 1.0 I keep using the ins:trackable and adlcp:masteryscore elements.