Essentially, if you set the status to 'completed' you are saying 'user has finished the course'.
Standard behaviour (for SCORM 2004) is to also set the value of cmi.exit
to 'normal'
to indicate that the learner is exited the course because they have finished it.
In SCORM 2004, if you set cmi.exit
to anything other than 'suspend'
, the LMS will not restore any of the course suspend_data when the course is next launched.
If the course does not get any suspend_data, it has no way of knowing what the user did in previous sessions, in particular that they have already attempted the assessment and so should be prevented from doing so again.