Articulate Storyline: Status voltooid naar het LMS sturen

Vraag

Standaard kan de status van een Articulate Storyline module worden gewijzigd in het LMS als er:

  • een X aantal dia's is bekeken;
  • een bepaalde score is behaald op een toets;
  • een "Result slide" is toegevoegd zonder score. Zodra de cursist deze dia bekijkt, dan wordt de status gewijzigd naar voltooid;
  • Door gebruik te maken van de Course Complete trigger.

Maar is het ook mogelijk om Javascript te gebruiken om de status naar voltooid te laten gaan in het LMS?

Oplossing

Via Javascript is het mogelijk om handmatig de status van de cursus te wijzigen naar voltooid in het LMS. De Javascript code kan bijvoorbeeld uitgevoerd worden, zodra de tijdlijn start. Het gaat om de onderstaande acties (specifiek voor een bepaalde SCORM versie):

SCORM 1.2

Action: Execute Javascript
When: Timeline starts

En het gaat om het onderstaande script:


//get LMS API
var lmsAPI = parent;
//set score; the first number is the score
lmsAPI.SetScore(90, 100, 0);
//set status; possible values: "completed","incomplete", "failed", "passed"
//set status; possible values: "completed","passed", "icomplete", "failed"
SCORM_CallLMSSetValue("cmi.core.lesson_status", "complete");

Met het bovenstaande script kan ook de score worden weggeschreven naar het LMS. De waarde 90 dient dan gewijzigd te worden in de gewenste waarde. Ook kan er een andere status worden weggeschreven, denk aan "incomplete", "failed" en "passed".

SCORM 2004

Action: Execute Javascript
When: Timeline starts

En het gaat om het onderstaande script:


//get LMS API
var lmsAPI = parent;
//set score; the first number is the score
lmsAPI.SetScore(90, 100, 0);
//set status; possible values: "completed","incomplete", "failed", "passed"
SCORM2004_CallSetValue("cmi.completion_status", "completed");
SCORM2004_CallSetValue("cmi.success_status", "passed");

LET OP: De bovenstaande code is getest met Articulate Storyline 360. Storyline 2 kan hier anders mee omgaan en zal daarvoor ook een andere Javascript code moeten hebben.

Opmerkingen

  • Avatar
    Sjoerd de Vries

    Interessant artikel Bastiaan. Ik neem aan dat ik nog wel een verborgen result slide moet invoegen met daarin de passing score? Dan komt de passing score ook in de masteryscore te staan in het LMSmanifest bestand toch?

    Als ik dit test in Scorm.cloud dan wordt de score correct weergegeven en de completion komt op "complete" te staan. De waarde voor Success wordt echter niet ingevuld met jouw script. Ik verwacht daar failed/passed (afhankelijk wat je in de status invult. Enig idee hoe dit kan?

  • Avatar
    Sjoerd de Vries

    Heb nu een ; toegevoegd aan de laatste waarde, dan werkt het wel.

    //get LMS API
    var lmsAPI = parent;
    //set score; the first number is the score
    lmsAPI.SetScore(100, 100, 0);
    //set status; possible values: "completed","incomplete", "failed", "passed"
    SetStatus("completed");

  • Avatar
  • Avatar
    Bastiaan Timmer

    Dag Sjoerd,

    Bedankt voor de aanvulling. Er ontbrak inderdaad een ;. Ik heb zojuist de aanpassing verwerkt. De score kan met een harde waarde worden verstuurd naar het LMS, of je kan inderdaad een Resultslide gebruiken. Let er echter wel op dat de variabele voor de Resultslide niet direct gebruikt kan worden in Javascript code. Je dient eerst de variabele van de ResultSlide op te slaan in een eigen variabele. Deze variabele kan je gebruiken in bovenstaand script.

    Ik heb hiervoor een extra pagina aangemaakt in ons Help Center:
    https://helpdesk.courseware.nl/hc/nl/articles/203588041-Articulate-Storyline-Score-naar-het-LMS-sturen

    Mooi artikel op de Community!

Mogelijk gemaakt door Zendesk