我正在开发一个 SCORM 包,在交付活动之前,我会根据目标评估排序规则中定义的规则条件。据我了解,
sequencingRulesCheckSubProcess
处理基于目标跟踪模型的规则条件评估。然而,我在这个过程中面临一些挑战,希望得到一些指导。
<item identifier="etuqiette_item" identifierref="etiquette_resource">
<title>Etiquette</title>
<adlcp:data>
<adlcp:map targetID="com.scorm.golfsamples.sequencing.forcedsequential.notesStorage" readSharedData="true" writeSharedData="true"/>
</adlcp:data>
<adlcp:completionThreshold progressWeight="0.3"/>
<imsss:sequencing IDRef="content_seq_rules">
<imsss:sequencingRules>
<!-- Check it out, we can sequence off completion in 4th Edition-->
<imsss:preConditionRule>
<imsss:ruleConditions conditionCombination="any">
<imsss:ruleCondition referencedObjective="previous_sco_completed" operator="not" condition="completed"/>
<imsss:ruleCondition referencedObjective="previous_sco_completed" operator="not" condition="activityProgressKnown"/>
</imsss:ruleConditions>
<imsss:ruleAction action="disabled"/>
</imsss:preConditionRule>
</imsss:sequencingRules>
<imsss:objectives>
<imsss:primaryObjective objectiveID="ettiquette_completed"/>
<imsss:objective objectiveID="previous_sco_completed"/>
</imsss:objectives>
<adlseq:objectives>
<adlseq:objective objectiveID="ettiquette_completed">
<adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.ettiquette_completed" readCompletionStatus="true" writeCompletionStatus="true"/>
</adlseq:objective>
<adlseq:objective objectiveID="previous_sco_completed">
<adlseq:mapInfo targetObjectiveID="com.scorm.golfsamples.sequencing.forcedsequential.playing_completed" readCompletionStatus="true" writeCompletionStatus="false"/>
</adlseq:objective>
</adlseq:objectives>
</imsss:sequencing>
</item>
以上是我的第二个SCO。在完成第一个 SCO 时,我触发了一个导航请求来检查第二个 SCO 是否可交付。
在交付已识别的活动之前,我会评估排序规则条件。这些条件根据目标进行评估,目标跟踪信息是根据 CMI 值初始化的,例如:
cmi.objectives.n.success_status
cmi.objectives.n.score.scaled
但是,我在运行时没有收到这些 CMI 值。没有它们,我无法正确初始化跟踪模型,因此规则条件的评估会失败。我需要明白:
运行时何时传输 CMI 值(
success_status
、score.scaled
)?我什么时候可以使用这些值?
我应该如何使用这些 CMI 值针对跟踪模型评估规则条件?处理接收到的 CMI 数据并使用它来评估与目标相关的规则条件的正确流程是什么?
如果您能深入了解 SCORM 中 CMI 数据的正确排序和处理,尤其是在交付活动之前评估规则条件,我们将不胜感激!
(警告:我不是 SCORM 2004 测序模型的用户[或粉丝],所以我可能完全错误。)
TL:DR; 这两个是独立的过程,你不会使用CMI数据来影响测序。
CMI 数据存储在 LMS 的数据库中,并在 LMS 启动 SCO 后通过基于 JavaScript 的 SCORM API 提供给 SCO(通常是 HTML 文件)。
作为课程开发者,您可以查询 CMI 数据(例如
cmi.objectives.n.success_status
)的唯一地方是来自当前开放的 SCO,因为它是唯一向您提供 SCORM API 的地方。
排序规则以 XML 形式编写,并由 LMS 进行评估,以确定在 LMS 的 SCORM 播放器中打开哪个 SCO。 LMS 负责查询完成数据并在后台处理排序规则。对于 LMS 如何处理 XML 没有指定的标准,唯一的要求是处理/排序的结果符合 SCORM 2004 规范中定义的期望。
作为课程开发人员,您没有对此流程的脚本访问权限,您只能使用基于 XML 的清单中可用的选项。
有关 SCORM 2004 测序和导航的更多详细信息,请访问 scorm.com https://scorm.com/scorm-explained/technical-scorm/sequencing/