2017-11-29 4 views
0

pipwerks SCORM API wrapper을 사용하여 사용자 지정 SCORM 콘텐츠를 시도했습니다. 이 예에서는 SCORM 2004 4th ed 패키지를 사용하고 있습니다.SCORM 클라우드에서 completion_status 값을 얻으려면 어떻게해야합니까?

코스를 시작하고 완료하면 코스가 올바르게 완료된 것으로 표시되며 샌드 박스 등록 상태는 런타임 데이터> cmi.completion_status : completed를 표시합니다. 다음은

Course info

completion_status는 설정된 최종 커밋되고 도시 디버그 로그에서 발췌 한 것이다.

- [14:01:43.632] SetValue('cmi.completion_status', 'completed') returned 'true' in 0 seconds 
[14:01:43.632] CheckForSetValueError (cmi.completion_status, completed, cmi.completion_status, ,) 
[14:01:43.632] Element is: completion_status 
[14:01:43.632] Call is error free. 
[14:01:43.632] StoreValue (cmi.completion_status, completed, cmi.completion_status, ,) 
[14:01:43.632] Element is: completion_status 
- [14:01:43.632] Commit('') returned 'true' in 0.004 seconds 
[14:01:43.632] Checking for Commit Error 
[14:01:43.632] Call is error free. 
[14:01:43.636] CompletedByMeasure is not enabled, using the completion status recorded by the SCO-completed 
[14:01:43.636] Scaled Passing Score is not specified, using the success status recorded by the SCO-unknown 
[14:09:29.134] Close Out Session 
[14:09:29.134] Mode = normal 
[14:09:29.134] Credit = credit 
[14:09:29.134] Recorded CompletionStatus = completed 
[14:09:29.134] Recorded SuccessStatus = unknown 
[14:09:29.134] ScaledPassingScore = null 
[14:09:29.134] Score = null 
[14:09:29.134] CompletedByMeasure = false 
[14:09:29.134] Progress Measure = 1 
[14:09:29.134] Session Time: (0 hundredths) 
[14:09:29.134] Previous Time: PT0H0M0S (0 hundredths) 
[14:09:29.134] New Total Time: PT0H0M0S (0 hundredths) 
[14:09:29.135] New Tracked Total Time: PT8M13.59S 
[14:09:29.135] CompletedByMeasure is not enabled, using the completion status recorded by the SCO-completed 
[14:09:29.135] Scaled Passing Score is not specified, using the success status recorded by the SCO-unknown 

이 시점에서 모든 것이 잘 보입니다. 그러나 두 번째 과정을 시작하면 결과를 알 수 없습니다.

- [14:19:20.067] GetValue('cmi.completion_status') returned 'unknown' in 0.003 seconds 
[14:19:20.069] Checking for GetValue Error 
[14:19:20.069] Element is: completion_status 
[14:19:20.069] Call is error free. 
[14:19:20.070] RetrieveGetValueData (cmi.completion_status, cmi.completion_status, ,) 
[14:19:20.070] Element is: completion_status 
[14:19:20.070] CompletedByMeasure is not enabled, using the completion status recorded by the SCO-unknown 

진행 상태 표시를 올바르게 업데이트하고 등록 상태로 올바르게 표시되는 cmi.progress_measure도 저장하고 있습니다. 코스를 다시 시작할 때이 데이터도 비어 있습니다.

참고로 다음과 같이 완료 상태를 설정합니다.

pipwerks.SCORM.status("set", "completed"); 
pipwerks.SCORM.save(); 

진행률 측정 값은 다음과 같습니다 (여기서 s.progress는 10 진수 0-1입니다).

pipwerks.SCORM.data.set("cmi.progress_measure", s.progress); 
pipwerks.SCORM.save(); 

디버그 로그 및 등록 상태를보고 제대로 역할을 한 것으로 나타났습니다,하지만 난 과정을 다시 시작 할 때 다시이 값을 얻을 수 없습니다입니다.

아무도 무슨 일이 일어나고 있을지 제안 해 줄 수 있습니까?

많은 감사,

맙니 다.

답변

3

실행중인 문제는 "모드"(종료 모드)가 정상으로 설정되어있을 가능성이 높습니다. SCORM 사양에 따라 "정상"모드로 코스를 종료 한 다음 코스를 다시 시작하면 모든 런타임 데이터가 재설정됩니다. SCORM 랩퍼로 들어가서 종료 모드를 "일시 중지"로 변경하면 런타임 데이터가 실행 사이에 보존됩니다.

당신은 여기 pipwerks 사이트에서이 정확한 문제의 토론을 찾을 수

:

https://pipwerks.com/2008/05/10/cmicoreexit-cmiexit/

그리고 pipwerks 래퍼의 종료 상태를 설정하는 방법에 대한 예 (SCORM 2004) :

//the status gets set by your course code 
var courseStatus = "incomplete"; 
function quit(){ 
    if(courseStatus === "completed"){ 
     scorm.set("cmi.exit", "logout"); 
    } else { 
     scorm.set("cmi.exit", "suspend"); 
    } 

    scorm.quit(); 
} 

질문이 있으시면 [email protected]으로 문의하십시오. 그러면 Rustici Software의 누군가와 연락 할 수 있습니다. 우리는 또한 SCORM 클라우드 서비스를 제공하는 사람들입니다.

+0

종료 모드를 설정하면 실제로 세션간에 데이터가 유지되는 것으로 나타납니다. 실제로 pipwerks 래퍼의 terminate 메소드는 1.2와 2004 모두에서이 방법을 다룹니다. Thomas! 감사합니다! – Baps