SCORM 2004第4版:完成前置项后如何让First Attempt可选?
SCORM 2004第4版:完成前置SCO后显示考试项的配置方案
问题背景
现有SCORM 2004第4版的imsmanifest部分配置,已实现前置目标preexam_lesson状态未知(未启动)时隐藏First Attempt项,但需要实现:学员完成preexam_lesson后,First Attempt自动变为可选择状态。查阅ADL的CAM和SN手册后,未找到action='enable'的ruleAction,需解决该配置问题。
原配置代码
<item identifier="preexam_lesson" identifierref="lessonItem_resource"> <title>Pre-Exam Information</title> <imsss:sequencing> <imsss:objectives> <imsss:primaryObjective objectiveID="preexam_info"> <imsss:mapInfo targetObjectiveID="preexamItem_status"/> </imsss:primaryObjective> </imsss:objectives> <adlseq:objectives> <adlseq:objective objectiveID="preexam_info" writeCompletionStatus='true' /> </adlseq:objectives> <imsss:deliveryControls completionSetByContent="true" objectiveSetByContent='true' /> </imsss:sequencing> </item> <item identifier="exam_attempt_1" identifierref="graded_exam_resource"> <title>First Attempt</title> <imsss:sequencing> <imsss:sequencingRules> <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="objectiveStatusKnown"/> </imsss:ruleConditions> <imsss:ruleAction action="hiddenFromChoice"/> </imsss:preConditionRule> </imsss:sequencingRules> <imsss:objectives> <imsss:primaryObjective objectiveID="examAttempt1OBJ"> <imsss:minNormalizedMeasure>0.75</imsss:minNormalizedMeasure> </imsss:primaryObjective> <imsss:objective objectiveID="previous_sco_completed" /> </imsss:objectives> <adlseq:objectives> <adlseq:objective objectiveID="examAttempt1OBJ"/> <adlseq:objective objectiveID="previous_sco_completed"> <adlseq:mapInfo targetObjectiveID="preexamItem_status" readCompletionStatus="true"/> </adlseq:objective> </adlseq:objectives> </imsss:sequencing> <imsss:limitConditions attemptLimit="1" /> </item>
解决方案
SCORM 2004的预条件规则逻辑是满足设定条件时执行对应动作,没有直接的"enable"动作,但可以通过调整规则触发条件实现需求:
- 修改
exam_attempt_1的预条件规则,让hiddenFromChoice动作仅在前置目标未完成时触发。当学员完成preexam_lesson后,前置目标状态变为已完成,规则条件不再满足,隐藏动作自动失效,First Attempt项即可选。
修改后的核心配置代码
<imsss:sequencingRules> <imsss:preConditionRule> <imsss:ruleConditions conditionCombination="any"> <!-- 替换原规则条件,仅当前置目标未完成时隐藏 --> <imsss:ruleCondition referencedObjective="previous_sco_completed" operator="not" condition="completed"/> </imsss:ruleConditions> <imsss:ruleAction action="hiddenFromChoice"/> </imsss:preConditionRule> </imsss:sequencingRules>
关键验证点
- 确认
preexam_lesson的completionSetByContent="true"配置正确,确保SCO内容能正确上报完成状态。 - 检查
previous_sco_completed目标的mapInfo映射,确保它能正确读取preexamItem_status的完成状态。
效果验证截图

内容的提问来源于stack exchange,提问作者Energetic Pixels
相关产品推荐
相关产品推荐

