Scorm 2004第4版全部暂停-全部恢复



我有一个关于Scorm 2004第4版的问题。我真的不明白如何暂停所有然后恢复所有工作。通过阅读有关Scorm的文档书,我得出结论,当我将导航请求设置为"全部挂起"时,我应该记住(在数据库中)所有SCO的所有ScoData,还应该记住请求"全部挂起来"的活动。据我所知,当我再次运行该课程时,我应该从数据库中恢复所有SCO的ScoData,并运行发出"全部挂起"请求的SCO。当我在Scorm测试套件中测试它时,我发现了一个问题,这让我确信我的理解并不完整。我一直在文档中寻找答案,但找不到。这就是我请求帮助的原因。

例如,我将展示Scorm Test CM-09ba和CM09 ca

CM-09ba 清单

<organizations default="CM-09ba">
<organization identifier="CM-09ba">
<title>LMS Test Content Package CM-09ba </title>
<item identifier="activity_1" parameters="?tc=CM-09ba&act=1" identifierref="SEQ01">
<title>Activity 1</title>
</item>
<item identifier="activity_2" parameters="?tc=CM-09ba&act=2" identifierref="SEQ01">
<title>Activity 2</title>
</item>
<item identifier="activity_3" parameters="?tc=CM-09ba&act=3" identifierref="SEQ01">
<title>Activity 3</title>
</item>
<item identifier="activity_4" parameters="?tc=CM-09ba&act=4" identifierref="SEQ01">
<title>Activity 4</title>
</item>
<imsss:sequencing>
<imsss:controlMode flow="true"/>
</imsss:sequencing>
</organization>
</organizations>

清单CM-09ca

<organizations default="CM-09ca">
<organization identifier="CM-09ca">
<title>LMS Test Content Package CM-09ca </title>
<item identifier="activity_1" parameters="?tc=CM-09ca&act=1" identifierref="SEQ01">
<title>Activity 1</title> 
</item>
<item identifier="activity_2" parameters="?tc=CM-09ca&act=2" identifierref="SEQ01">
<title>Activity 2</title>
</item>
<item identifier="activity_3" parameters="?tc=CM-09ca&act=3" identifierref="SEQ01">
<title>Activity 3</title>
<imsss:sequencing>
<imsss:sequencingRules>
<imsss:postConditionRule>
<imsss:ruleConditions>
<imsss:ruleCondition condition="always"/>
</imsss:ruleConditions>
<imsss:ruleAction action="continue"/>
</imsss:postConditionRule>
</imsss:sequencingRules>
</imsss:sequencing>
</item>
<item identifier="activity_4" parameters="?tc=CM-09ca&act=4" identifierref="SEQ01">
<title>Activity 4</title>
</item>
<imsss:sequencing>
<imsss:controlMode flow="true"/>
</imsss:sequencing>
</organization>
</organizations>

CM-09ba 测试结果

Start ADL LMS Test Content Package CM-09ba 
Testing Activity 1 
Activity 1 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("adl.nav.request", "previous") - Expected: "true" - LMS Returned:   "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Testing Activity 3 
Activity 3 was launched as expected 
Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Evaluating SetValue("adl.nav.request", "suspendAll") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Testing Activity 1 
ERROR: Expected Activity 1 - LMS Launched Activity 3 

测试结果CM-09ca启动ADL LMS测试内容包CM-09ca

Testing Activity 1 
Activity 1 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 3 
Activity 3 was launched as expected 
Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Evaluating SetValue("adl.nav.request", "previous") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Testing Activity 4 
Activity 4 was launched as expected 
Evaluating Initialize("") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Evaluating SetValue("adl.nav.request", "previous") - Expected: "true" - LMS Returned: "true" 
Evaluating GetLastError("") - Expected: "0" - LMS Returned: "0" 
Testing Activity 4 
Activity 4 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" 
ADL LMS Test Content Package CM-09ca passed all tests 

在测试CM-09ca中,我们开始测试,然后要求我们以树中的"活动3"为目标,然后以"活动1"为目标。在"活动4"中,我们被要求触发"全部挂起"按钮。

我不知道为什么在测试CM-09ba中我应该恢复活动1。我应该找到第一个没有以cmi.exit设置为"正常"结束的活动,然后终止它吗?在CM-09ba中,第一个将是活动2,由于要终止,我将检查之前的adl.nav.request,以便恢复活动1。在CM-09ca中,第一个没有以cmi.exit设置为"正常"结束的"活动"将是"活动3",并且由于终止它,将触发后续操作继续?这是正确的吗?

提前感谢您的回答。

这与第二次输入内容的过程有关。CM-09ba发出启动导航请求,启动对内容的新尝试(所有数据已擦除,cmi.entry是从头开始的)。CM-09ca发出恢复所有导航请求,该请求应在上次尝试后停止的位置继续。

这在附录A下的一致性(测试)要求文档中列出。以下是第三版一致性要求的链接:http://www.adlnet.gov/wp-content/uploads/2011/07/scorm.2004.3ed.confreq.v1.0.pdf

只是为了记录,步骤是:

CM-09ba

  1. 处理启动导航请求>>识别活动1
  2. 处理活动2的选择>>识别酸度2
  3. 将adl.nav.request设置为上一个,处理继续导航请求>>识别活动3
  4. 将adl.nav.request设置为suspendAll,处理ExitAll请求>>结束排序会话
  5. 处理开始导航请求>>识别活动1

CM-09ca

  1. 处理开始导航请求>>识别活动1
  2. 处理活动3的选择>>识别活动3
  3. 将adl.nav.request设置为上一个,将Choice处理为Activity 1>>标识Activity 4
  4. 将adl.nav.request设置为上一个,处理全部挂起>>结束排序会话
  5. 处理恢复所有请求>>识别酸4

最新更新