0
votes

I've got a question about Scorm 2004 4th edition CM-04b test. I don't understand why in Activity 15 the previous button should be disabled. There is a flow set to true on the parent of Activity 15, so the buttons continue and previous should be enabled. Could someone explain to me why it should be disabled ?

This is the manifest of Scorm 2004 4th Edition Test Suit - Test LMS Test Content Package CM-04b.

<?xml version="1.0"?>

-<manifest xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd     http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:imsss="http://www.imsglobal.org/xsd/imsss" xmlns:adlseq="http://www.adlnet.org/xsd/adlseq_v1p3" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3" xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" version="1.1.1" identifier="LMSTestPackage_CM-04b">


-<metadata>

<schema>ADL SCORM</schema>

<schemaversion>2004 4th Edition</schemaversion>

</metadata>


-<organizations default="CM-04b">


-<organization identifier="CM-04b">

<title>LMS Test Content Package CM-04b </title>


-<item identifier="activity_1">

<title>Activity 1</title>


-<item identifier="activity_2" parameters="?tc=CM-04b&act=2" identifierref="SEQ01">

<title>Activity 2</title>

</item>


-<item identifier="activity_3" parameters="?tc=CM-04b&act=3" identifierref="SEQ01">

<title>Activity 3</title>

</item>


-<imsss:sequencing>

<imsss:controlMode flow="true"/>

</imsss:sequencing>

</item>


-<item identifier="activity_4">

<title>Activity 4</title>


-<item identifier="activity_5" parameters="?tc=CM-04b&act=5" identifierref="SEQ01">

<title>Activity 5</title>

</item>


-<item identifier="activity_6" parameters="?tc=CM-04b&act=6" identifierref="SEQ01">

<title>Activity 6</title>

</item>


-<item identifier="activity_7" parameters="?tc=CM-04b&act=7" identifierref="SEQ01">

<title>Activity 7</title>

</item>

</item>


-<item identifier="activity_8">

<title>Activity 8</title>


-<item identifier="activity_9" parameters="?tc=CM-04b&act=9" identifierref="SEQ01">

<title>Activity 9</title>

</item>


-<item identifier="activity_10">

<title>Activity 10</title>


-<item identifier="activity_11">

<title>Activity 11</title>


-<item identifier="activity_12" parameters="?tc=CM-04b&act=12" identifierref="SEQ01">

<title>Activity 12</title>

</item>


-<item identifier="activity_13" parameters="?tc=CM-04b&act=13" identifierref="SEQ01">

<title>Activity 13</title>

</item>


-<imsss:sequencing>

<imsss:controlMode flow="true"/>


-<imsss:sequencingRules>


-<imsss:preConditionRule>


-<imsss:ruleConditions>

<imsss:ruleCondition condition="attempted"/>

</imsss:ruleConditions>

<imsss:ruleAction action="skip"/>

</imsss:preConditionRule>

</imsss:sequencingRules>

</imsss:sequencing>

</item>


-<item identifier="activity_14" parameters="?tc=CM-04b&act=14" identifierref="SEQ01">

<title>Activity 14</title>

</item>


-<imsss:sequencing>

<imsss:controlMode flow="true"/>

</imsss:sequencing>

</item>

</item>


-<item identifier="activity_15" parameters="?tc=CM-04b&act=15" identifierref="SEQ01">

<title>Activity 15</title>

</item>


-<imsss:sequencing>

<imsss:controlMode flow="true"/>

</imsss:sequencing>

</organization>

</organizations>


-<resources>


-<resource identifier="SEQ01" xml:base="resources/" href="SequencingTest.htm"     adlcp:scormType="sco" type="webcontent">

<file href="SequencingTest.htm"/>

<dependency identifierref="LMSFNCTS01"/>

<dependency identifierref="JAR01"/>

<dependency identifierref="ABOUT01"/>

<dependency identifierref="EMULATION01"/>

<dependency identifierref="LMSINCLUDE"/>

</resource>


-<resource identifier="LMSFNCTS01" adlcp:scormType="asset" type="webcontent">

<file href="common/lmsrtefunctions.js"/>

</resource>


-<resource identifier="JAR01" xml:base="common/" adlcp:scormType="asset"     type="webcontent">

<file href="LMSTest.jar"/>

</resource>


-<resource identifier="ABOUT01" adlcp:scormType="asset" type="webcontent">

<file href="common/About.js"/>

</resource>


-<resource identifier="EMULATION01" adlcp:scormType="asset" type="webcontent">

<file href="common/EmulationCode.js"/>

<dependency identifierref="BROWSERDETECT01"/>

</resource>


-<resource identifier="BROWSERDETECT01" adlcp:scormType="asset" type="webcontent">

<file href="common/BrowserDetect.js"/>

</resource>


-<resource identifier="LMSINCLUDE" adlcp:scormType="asset" type="webcontent">

<file href="includes/LMSTestContentPackages_style.css"/>

</resource>

</resources>

</manifest>

Activity 15 is a leaf, so we look at it's parent which is the root of tree. The root has controlMode flow="true" and controlChoice is not definied so we take default value which is true. So I don't get it why the previous button should be disabled.

And the log.

 Start ADL LMS Test Content Package CM-04b 
 Testing Activity 2 
 Activity 2 was launched as expected 
 All User Interface inspection questions were answered as expected 
 Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.continue") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.previous") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_2}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_3}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_6}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_9}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_12}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_15}") - Expected: "true" - LMS Returned: "true" 
 Evaluating SetValue("cmi.exit", "normal") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Testing Activity 12 
 Activity 12 was launched as expected 
 Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.continue") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.previous") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_2}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_3}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_6}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_9}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_12}") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetValue("adl.nav.request_valid.choice.{target=activity_15}") - Expected: "true" - LMS Returned: "true" 
 Evaluating SetValue("cmi.exit", "normal") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Testing Activity 14 
 Activity 14 was launched as expected 
 Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating SetValue("cmi.exit", "normal") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Testing Activity 2 
 Activity 2 was launched as expected 
 Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating SetValue("cmi.exit", "normal") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Testing Activity 15 
 Activity 15 was launched as expected 
  ERROR: Did the LMS provide an enabled UI device that corresponds to the Previous Navigation Event? - Expected: No - Answered: Yes 
 Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
 Evaluating SetValue("cmi.exit", "normal") - Expected: "true" - LMS Returned: "true" 
 Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
1

1 Answers

0
votes

flow "true" should allow for sequencing requests as you stated. However, if choice is false, that would hide the nav buttons at the LMS level.

I took your example here and modified it so I could find out what was happening. When adding...

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

... in order for this to allow you to advance within each section, you need to place it in the root of that activity. This enabled next/previous to continue thru Activities you have in your tree.

My modified XML w/ comments

<?xml version="1.0"?>
<manifest
xsi:schemaLocation="http://www.imsglobal.org/xsd/imscp_v1p1 imscp_v1p1.xsd     http://www.adlnet.org/xsd/adlcp_v1p3 adlcp_v1p3.xsd http://www.adlnet.org/xsd/adlseq_v1p3 adlseq_v1p3.xsd http://www.imsglobal.org/xsd/imsss imsss_v1p0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:imsss="http://www.imsglobal.org/xsd/imsss"
xmlns:adlseq="http://www.adlnet.org/xsd/adlseq_v1p3"
xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_v1p3"
xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" version="1.1.1"
identifier="LMSTestPackage_CM-04b">

<metadata>
    <schema>ADL SCORM</schema>
    <schemaversion>2004 4th Edition</schemaversion>
</metadata>

<organizations default="CM-04b">
    <organization identifier="CM-04b">
        <title>LMS Test Content Package CM-04b </title>
        <item identifier="activity_1">
            <title>Activity 1</title>
            <item identifier="activity_2" parameters="?tc=CM-04b&amp;act=2" identifierref="SEQ01">
                <title>Activity 2</title>
            </item>
            <item identifier="activity_3" parameters="?tc=CM-04b&amp;act=3" identifierref="SEQ01">
                <title>Activity 3</title>
            </item>
            <!-- This enabled the flow thru activity 1 (2,3) -->
            <imsss:sequencing>
                <imsss:controlMode flow="true"/>
            </imsss:sequencing>
        </item>
        <item identifier="activity_4">
            <title>Activity 4</title>
            <item identifier="activity_5" parameters="?tc=CM-04b&amp;act=5" identifierref="SEQ01">
                <title>Activity 5</title>
            </item>
            <item identifier="activity_6" parameters="?tc=CM-04b&amp;act=6" identifierref="SEQ01">
                <title>Activity 6</title>
            </item>
            <item identifier="activity_7" parameters="?tc=CM-04b&amp;act=7" identifierref="SEQ01">
                <title>Activity 7</title>
            </item>
            <!-- This enabled the flow thru activity 4 (5,6,7) -->
            <imsss:sequencing>
                <imsss:controlMode flow="true"/>
            </imsss:sequencing>
        </item>
        <item identifier="activity_8">
            <title>Activity 8</title>
            <item identifier="activity_9" parameters="?tc=CM-04b&amp;act=9" identifierref="SEQ01">
                <title>Activity 9</title>
            </item>
            <item identifier="activity_10">
                <title>Activity 10</title>
                <item identifier="activity_11">
                    <title>Activity 11</title>
                    <item identifier="activity_12" parameters="?tc=CM-04b&amp;act=12"
                        identifierref="SEQ01">
                        <title>Activity 12</title>
                    </item>
                    <item identifier="activity_13" parameters="?tc=CM-04b&amp;act=13"
                        identifierref="SEQ01">
                        <title>Activity 13</title>
                    </item>
                    <imsss:sequencing>
                        <!-- This enabled the flow thru activity 10 (11,12,13) -->
                        <imsss:controlMode flow="true"/>
                        <imsss:sequencingRules>
                            <imsss:preConditionRule>
                                <imsss:ruleConditions>
                                    <imsss:ruleCondition condition="attempted"/>
                                </imsss:ruleConditions>
                                <imsss:ruleAction action="skip"/>
                            </imsss:preConditionRule>
                        </imsss:sequencingRules>
                    </imsss:sequencing>
                </item>
                <item identifier="activity_14" parameters="?tc=CM-04b&amp;act=14" identifierref="SEQ01">
                    <title>Activity 14</title>
                </item>
                <!-- This enabled the flow thru activity 10,14 -->
                <imsss:sequencing>
                    <imsss:controlMode flow="true"/>
                </imsss:sequencing>
            </item>
            <!-- This enabled the flow thru activity 8, (9, 10) -->
            <imsss:sequencing>
                <imsss:controlMode flow="true"/>
            </imsss:sequencing>
        </item>
        <item identifier="activity_15" parameters="?tc=CM-04b&amp;act=15" identifierref="SEQ01">
            <title>Activity 15</title>
        </item>
        <!-- This enabled the flow thru activity 1, 4, 8, 15 -->
        <imsss:sequencing>
            <imsss:controlMode flow="true"/>
        </imsss:sequencing>
    </organization>
</organizations>
<resources>
    <resource identifier="SEQ01" type="webcontent" adlcp:scormType="sco" xml:base="QUnit-Tests/" href="qunit_SCOBot_prod.html">
        <metadata />
        <!--****** FILES ******-->
        <file href="qunit_SCOBot_prod.html" />
        <file href="js/scorm.bot.pack.js" />
        <file href="js/test/scobot.js" />
        <dependency identifierref="common_files" />
    </resource>
    <!-- Shared Assets (optional deployment capability) -->
    <resource identifier="common_files" type="webcontent" xml:base="QUnit-Tests/" adlcp:scormType="asset">
        <file href="css/qunit-1.12.0.css" />
        <file href="js/util/json2.js" />
        <file href="js/jquery/jquery-1.10.2.js"/>
        <file href="js/jquery/jquery-1.10.2.min.js"/>
        <file href="js/jquery/plugins/qunit-1.12.0.js" />
    </resource>
</resources>