SCORM 2004 Rollup with single sco

398 views Asked by At

I'm having issues rolling up a completion from a completed item.

I'm running this on SABA and I can successfully set the completion_status and success_status on the item but having issues rolling it up to the next level on the LMS, both satisfied and notSatisfied.

I find these rules utterly confusing. I do mostly work in SCORM 1.2.

This is my chunk to-date. Any assistance is really, really appreciated.

<organizations default="ORG-487461">
    <organization identifier="ORG-487461">
        <title>STATUS TESTING - 1d</title>
        <item identifier="ACT-687940" identifierref="RES-123054">
            <title>Launch</title>
            <imsss:sequencing>
                <imsss:deliveryControls completionSetByContent="true" objectiveSetByContent="true" />
            </imsss:sequencing>
        </item>
        <imsss:sequencing>

            <imsss:controlMode choice="true" flow="true"/>

            <imsss:rollupRules>
                <imsss:rollupRule childActivitySet="any">
                    <imsss:rollupConditions>
                        <imsss:rollupCondition condition="satisfied"/>
                    </imsss:rollupConditions>
                    <imsss:rollupAction action="satisfied"/>
                </imsss:rollupRule>
                <imsss:rollupRule childActivitySet="all">
                    <imsss:rollupConditions conditionCombination="any">
                        <imsss:rollupCondition operator="not" condition="satisfied" />
                    </imsss:rollupConditions>
                    <imsss:rollupAction action="notSatisfied" />
                </imsss:rollupRule>
            </imsss:rollupRules>
           <imsss:rollupRules rollupObjectiveSatisfied="true" rollupProgressCompletion="true" />
        </imsss:sequencing>

    </organization>
</organizations>
1

There are 1 answers

1
Mark On

I was deep in this a few years back but I'll try to assist based on some of my prior examples.

  1. I think you need to set a primary objective. Else - I don't believe there is anything to roll up to. I don't however know that for a fact, as it would require going back and doing a deeper dive in to the SCORM 2004 3rd/4th edition spec and covering the IMSS Sequencing section.

Small example for an activity:

        <!-- Activity 1 -->
        <title>ims_sequencing_objectives</title>
        <item identifier="ACT-001" identifierref="RES-001">
            <title>SCOBot-QUnit1</title>
            <imsss:sequencing IDRef="COMMON_SEQ_RULES">
                <imsss:sequencingRules>
                    <!-- If you also wanted to limit the number of attempts -->
                    <imsss:preConditionRule>
                        <imsss:ruleConditions>
                            <imsss:ruleCondition condition="attemptLimitExceeded" />
                        </imsss:ruleConditions>
                        <!-- Can not choose -->
                        <imsss:ruleAction action="disabled" />
                    </imsss:preConditionRule>
                </imsss:sequencingRules>

                <imsss:limitConditions attemptLimit="1" /> <!-- attemptAbsoluteDurationLimit="" set if max_time_allowed -->
                <imsss:rollupRules objectiveMeasureWeight="0" />

                <imsss:objectives>
                    <!-- My Understanding is SCO1_SATISFIED will assume the scoring of the SCO, then you can continue to SCO 2 after the preCondition is met.  This SCO is just a "intro" no score reported.  Removed satisfiedByMeasure -->
                    <imsss:primaryObjective objectiveID="SCO1_SATISFIED">
                        <imsss:mapInfo targetObjectiveID="com.cybercussion.SCOBot.ACT-001" readSatisfiedStatus="true" writeSatisfiedStatus="true" readNormalizedMeasure="true" writeNormalizedMeasure="true" />
                    </imsss:primaryObjective>
                </imsss:objectives>

            </imsss:sequencing>
  1. Then a subsequent activity would allow the LMS Player the opportunity to decide whether it should allow the navigation/show it using pre/post rules. And I would agree this gets confusing. Further more its even harder to unit test unless you have some rules engine that can parse this realtime to validate your intent. This below sample would be like Activity/SCO 3...

                     <imsss:preConditionRule>
                         <imsss:ruleConditions>
                             <imsss:ruleCondition referencedObjective="SCO2_SATISFIED" condition="satisfied" />
                         </imsss:ruleConditions>
                         <imsss:ruleAction action="disabled" />
                     </imsss:preConditionRule>
    

You can also control how the content controls the LMS. As some parts of SCORM like completion and success status could be based on progress_measure and scoring if completion thresholds are set (for example).

<!-- Sequence Collection used by SCOs -->
<imsss:sequencingCollection>
    <imsss:sequencing ID="COMMON_SEQ_RULES">
        <!-- Rollup: set to 0 if you don't want these scored. -->
        <!--imsss:rollupRules objectiveMeasureWeight="1" /-->
        <!-- prevent from accidentally being quto-completed/satisfied -->
        <imsss:deliveryControls completionSetByContent="true" objectiveSetByContent="true" />
        <!-- Attempt limit here had no effect -->
    </imsss:sequencing>
</imsss:sequencingCollection>

I have a one page progression example here: https://github.com/cybercussion/SCOBot/wiki/Single-Pages-Managed-by-LMS-Navigation There may be something to glean off it. I always thought this was an area/gap the community would eventually fill with some builder/tool but since we are talking about 14 years almost now! I started to attempt to address some of this with my Packager app but there simply isn't enough customer request/demand to spend the time on it.

Good Luck.