Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Prevent Captivate from Sending Score

Community Beginner ,
Aug 10, 2015 Aug 10, 2015

We have several SCORM packages that are not scored - strictly informational.  However, when our learners complete the SCO they are upset to see a score of 0.  We're using Captivate 8 to publish as a SCORM 2004 package, and have the Completion criteria set to 100% slide views, and the Success criteria is not selected.  After playing with all of the possible options, we have decided that the only way to prevent Captivate from sending the score is to hack the code in the .js files.  We've tried this with the SCORM_utilities.js file and the scormdriver.js file, but Captivate still sends a score shortly after initializing the SCORM API.  From the debug logs:  SetValue('cmi.score.raw', '0') returned 'true' in 0 seconds

We have tested SCORM packages using SmartBuilder and can prevent the LMS from showing a score, but Captivate doesn't have the reporting flexibility that SmartBuilder offers.  Is there a way to prevent Captivate from sending a score? 

453
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
People's Champ ,
Aug 10, 2015 Aug 10, 2015

You could try adding the bolded statement in the scormdriver.js to the noted function:

function SCORM2004_SetScore(intScore, intMaxScore, intMinScore)

{

    return true;

var blnResult;

    var fltNormalizedScore;

    WriteToDebug("In SCORM2004_SetScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

    SCORM2004_ClearErrorInfo();

    fltNormalizedScore = intScore / 100;

    RoundToPrecision(fltNormalizedScore, 7);

    blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

    blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltNormalizedScore) && blnResult;

    WriteToDebug("Returning " + blnResult);

    return blnResult;

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
Aug 10, 2015 Aug 10, 2015

Thanks TLCMedia, but that didn't work.  It's still sending a score of 0 to the LMS.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
People's Champ ,
Aug 10, 2015 Aug 10, 2015
LATEST

There are 2 functions that can set a score. If you set the score to 100 would that be OK?

function SCORM2004_SetScore(intScore, intMaxScore, intMinScore)

{

   intScore = 100;

var blnResult;

    var fltNormalizedScore;

    WriteToDebug("In SCORM2004_SetScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

    SCORM2004_ClearErrorInfo();

    fltNormalizedScore = intScore / 100;

    RoundToPrecision(fltNormalizedScore, 7);

    blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

    blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltNormalizedScore) && blnResult;

    WriteToDebug("Returning " + blnResult);

    return blnResult;

}

and

function SCORM2004_SetPointBasedScore(intScore, intMaxScore, intMinScore)

{

intScore = 100;  

var blnResult;

    var fltCalculatedScore;

    WriteToDebug("In SCORM2004_SetPointBasedScore intScore=" + intScore + ", intMaxScore=" + intMaxScore + ", intMinScore=" + intMinScore);

    SCORM2004_ClearErrorInfo();

    if (intScore >= intMinScore)

    {

        fltCalculatedScore = intScore / intMaxScore;

    }

    else

    {

        WriteToDebug("intScore is lower than intMinScore. Overriding score with minscore for cmi.score.scaled");

        fltCalculatedScore = intMinScore / intMaxScore;

    }

    fltCalculatedScore = RoundToPrecision(fltCalculatedScore, 7);

    blnResult = SCORM2004_CallSetValue("cmi.score.raw", intScore);

    blnResult = SCORM2004_CallSetValue("cmi.score.max", intMaxScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.min", intMinScore) && blnResult;

    blnResult = SCORM2004_CallSetValue("cmi.score.scaled", fltCalculatedScore) && blnResult;

    WriteToDebug("Returning " + blnResult);

    return blnResult;

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Help resources