SCORM package sets not attempted instead of incomplete in SABA Cloud LMS

Fredrik_Jonsson
Fredrik_Jonsson Community Member Posts: 1 ☆ Roadie ☆

Hi,

I've built a SCORM package in Lectora online. When I'm running it in SABA Cloud LMS it sometimes report "cmi.core.lesson_status = not attempted" and sometimes "cmi.core.lesson_status = incomplete" (see communication logs below)

Since I don't have (and don't want to have) a graded test in the SCORM package the problem I have is that the LMS interprets the status "not attempted" as completed and then sets the course to completed even though the learner has just viewed the first page.

I can't see any logic in when the status is set to "not attempted" and when it's set to "incomplete". It seams random to me.

Is there any way to force Lectora to always set the status to incomplete as long as the course is not completed? Or do you see any other solution to my problem.

I've added an action to the head structure that sets cmi.core.lesson_status=incomplete if cmi.core.lesson_status is not equal to completed. It seams that there are much fewer errors with this solution but I'm not sure it's 100% accurate.

SETS NOT ATTEMPTED

February 28, 2023 at 7:41:43 AM UTC

Kommandot mottaget = LMSInitialize

Innehållspunkt: Completed (name of the course)


February 28, 2023 at 7:41:43 AM UTC Svarsdata (data sent by Cornerstone SBX LMS to content) =

cmi.core.student_id = XXXXXX

cmi.core.student_name = XXXXXXX, XXXXX

cmi.core.credit = credit

cmi.core.entry = ab-initio

cmi.core.lesson_mode = normal

cmi.launch_data = 

cmi.suspend_data = 

cmi.core.lesson_location = 

cmi.core.lesson_status = not attempted

cmi.core.score.raw = 

cmi.core.score.min = 

cmi.core.score.max = 

cmi.core.total_time = 00:00:00

cmi.comments = 

cmi.comments_from_lms = 

cmi.student_data.mastery_score = 

cmi.student_data.max_time_allowed = 

cmi.student_data.time_limit_action = continue,no message

cmi.student_preference.audio = 0

cmi.student_preference.text = 

cmi.student_preference.language = 0

cmi.student_preference.speed = 0




February 28, 2023 at 7:41:47 AM UTC

Kommandot mottaget = LMSFinish


February 28, 2023 at 7:41:47 AM UTC

sendBeacon=false,rollupwithCommitData=false

Data sent by content to Cornerstone SBX LMS when finishing:

cmi.core.lesson_status = not attempted

cmi.core.lesson_location = completed_sida_1.html

cmi.core.exit = 

cmi.core.score.raw = 

cmi.core.score.max = 

cmi.core.score.min = 

cmi.core.session_time = 

cmi.suspend_data = 

cmi.student_preference.audio = 0

cmi.student_preference.language = 0

cmi.student_preference.speed = 0

cmi.student_preference.text = 0

cmi.comments = 


February 28, 2023 at 7:41:47 AM UTC Svarsdata =

error=0

-------------------------------------------------------------------------------------------------

SETS INCOMPLETE

February 28, 2023 at 7:44:16 AM UTC

Kommandot mottaget = LMSInitialize

Innehållspunkt: Completed (the name of the Scorm package)


February 28, 2023 at 7:44:16 AM UTC Svarsdata (data sent by Cornerstone SBX LMS to content) =

cmi.core.student_id = XXXXX

cmi.core.student_name = XXXXXXXXX, XXXXXXX 

cmi.core.credit = credit

cmi.core.entry = ab-initio

cmi.core.lesson_mode = normal

cmi.launch_data = 

cmi.suspend_data = 

cmi.core.lesson_location = 

cmi.core.lesson_status = not attempted

cmi.core.score.raw = 

cmi.core.score.min = 

cmi.core.score.max = 

cmi.core.total_time = 00:00:00

cmi.comments = 

cmi.comments_from_lms = 

cmi.student_data.mastery_score = 

cmi.student_data.max_time_allowed = 

cmi.student_data.time_limit_action = continue,no message

cmi.student_preference.audio = 0

cmi.student_preference.text = 

cmi.student_preference.language = 0

cmi.student_preference.speed = 0




February 28, 2023 at 7:44:19 AM UTC

Kommandot mottaget = LMSCommit


February 28, 2023 at 7:44:19 AM UTC

sendBeacon=false,rollupwithCommitData=false

Data sent by content to Cornerstone SBX LMS:

cmi.core.lesson_status = incomplete

cmi.core.lesson_location = completed_sida_1.html

cmi.core.exit = 

cmi.core.score.raw = 

cmi.core.score.max = 

cmi.core.score.min = 

cmi.core.session_time = 

cmi.suspend_data = 

cmi.student_preference.audio = 0

cmi.student_preference.language = 0

cmi.student_preference.speed = 0

cmi.student_preference.text = 0

cmi.comments = 


February 28, 2023 at 7:44:19 AM UTC Svarsdata =

error=0

Answers

  • wheels
    wheels Community Member, Administrator, Moderator, Rockstar Manager Posts: 685 eLearning ROCKSTAR Admin Team

    That's weird. Lectora sets it to "incomplete" right after initialization.

    On page load...

    LMSInitialize();
    var status = String(LMSGetValue("cmi.core.lesson_status"));
    status = status.toLowerCase();
    if (status == "not attempted")
    {
       MySetValue("cmi.core.lesson_status", "incomplete");
       LMSCommit();
    

    There are some debugging options you can select when you publish your Lectora Project. One of them is to show the LMS Communication. Maybe publish with that option on and see if that gives you any more information.

    If I was guessing what's going on with your LMS ... I'd bet that the LMSInitialize() is implemented asynchronously, and on it's callback it's setting the lesson_status to "not attempted". Thus creating a race condition between the LMSInitialize() callback and the code that is running after it. A good LMS would check on the LMSInitialize() callback if the course was set to incomplete (or any status at all) and not update it. But I'm just guessing.

    If my guess is right then you could add a 5 second delay to the Modify Variable Lectora Action that you use to set AICC_Lesson_Status to incomplete and it would be much more reliable.