Aller au contenu
← Tous les articlesGuide pratique

Progression SCORM perdue : les causes et comment la retrouver

« J'ai fait tout le module hier, et ce matin il repart du début. » Ce message d'apprenant arrive toujours au mauvais moment : la veille d'une échéance réglementaire, ou quand une direction demande les taux d'achèvement.

Le premier réflexe est d'accuser le LMS. Le plus souvent, la cause est dans le module. Pour la trouver, il faut savoir ce que le cours est censé envoyer, et à quel moment.

Ce qui doit se passer, dans l'ordre

Quand tout va bien, la conversation entre le cours et le LMS suit toujours le même fil. En SCORM 1.2 :

  1. Le cours s'annonce (LMSInitialize).
  2. Il demande au LMS s'il existe une position et des données de reprise.
  3. Pendant la lecture, il écrit la position (cmi.core.lesson_location), l'état du cours (cmi.suspend_data), le statut (cmi.core.lesson_status) et le score.
  4. Il demande régulièrement au LMS d'enregistrer (LMSCommit).
  5. À la sortie, il indique s'il s'agit d'une pause (cmi.core.exit = suspend), puis il termine (LMSFinish).

Une progression perdue, c'est une de ces étapes qui manque. Les notions de base sont dans le guide SCORM du responsable formation.

Cause 1 : le cours n'enregistre aucune position

Certains modules n'écrivent ni position ni données de reprise. Chaque ouverture repart du premier écran. C'est fréquent sur des modules simples ou générés par une IA : le suivi du statut a été prévu, pas la reprise.

À vérifier. Avancez de quelques écrans, quittez, relancez. Si vous revenez au début, regardez si une position a été envoyée avant la sortie.

Cause 2 : la sortie n'est pas signalée comme une pause

Le cours enregistre bien sa position, mais ne dit pas au LMS que l'apprenant fait une pause. Sans cette indication, certains LMS considèrent la tentative comme close et en ouvrent une nouvelle au lancement suivant. Les données existent, mais elles appartiennent à l'ancienne tentative.

À vérifier. Dans le journal des échanges, cherchez l'écriture de cmi.core.exit avec la valeur suspend juste avant la fin.

Cause 3 : aucun enregistrement intermédiaire

Le cours n'envoie ses données qu'à la fermeture. Si l'apprenant ferme l'onglet brutalement, si son ordinateur se met en veille ou si sa session expire, rien n'est parti.

À vérifier. Comptez les LMSCommit pendant la lecture. S'il n'y en a qu'un, à la toute fin, le risque est réel sur un module long.

Cause 4 : les données de reprise débordent

En SCORM 1.2, les données de reprise sont limitées à 4 096 caractères. En SCORM 2004, à partir de la troisième édition, cette limite passe à 64 000 caractères, comme le rappelle le comparatif de scorm.com.

Un cours long, avec beaucoup d'interactions, remplit vite 4 096 caractères. Le symptôme est typique : la reprise fonctionne au début du module, puis échoue à partir d'un certain écran.

Corrections possibles.

  • Découper le cours en plusieurs modules plus courts. Chaque module a ses propres données de reprise.
  • Publier en SCORM 2004, si votre LMS le prend en charge. Attention : ce n'est pas le cas de Moodle. Voir SCORM 1.2 ou SCORM 2004.
  • Dans l'outil auteur, limiter ce qui est mémorisé (par exemple l'état de chaque écran).

Cause 5 : le statut ne passe jamais à « terminé »

L'apprenant a tout vu, mais le LMS affiche « incomplet ». Trois explications :

  • La condition d'achèvement n'est pas remplie. Le module attend que tous les écrans soient vus, ou qu'un quiz soit réussi, et un écran caché ou facultatif n'a pas été ouvert.
  • Le seuil de réussite joue contre vous. Quand un seuil est déclaré dans le manifeste, le LMS peut requalifier un statut en « échoué » si le score est inférieur. La documentation de Moodle décrit ce comportement.
  • Le statut est envoyé, mais pas enregistré. Retour à la cause 3.

Cause 6 : le score n'arrive pas dans le carnet de notes

Le module envoie un statut, mais pas de note. Si l'activité est configurée pour reporter une note, le carnet reste vide. La correction se fait côté LMS : choisissez un mode de notation fondé sur l'achèvement, ou vérifiez que le module envoie un score avec son minimum et son maximum.

Trouver la cause en dix minutes

SymptômeRegardez d'abord
Retour au début à chaque ouvertureCauses 1 et 2
Retour au début seulement après une fermeture brutaleCause 3
Reprise correcte au début, perdue vers la finCause 4
Tout est vu, statut « incomplet »Cause 5
Statut correct, note absenteCause 6

La méthode est toujours la même : jouer le module dans un environnement qui affiche les échanges, quitter, relancer, et lire le journal. Sans journal, vous ne faites que des suppositions. La recette complète est dans Tester un SCORM avant de le livrer.

Questions fréquentes

Le problème peut-il venir du LMS ?

Oui, mais c'est plus rare : une session qui expire trop vite, ou un réglage de tentatives qui force une nouvelle tentative à chaque lancement. Vérifiez les réglages de l'activité après avoir écarté les causes côté module.

Peut-on récupérer la progression déjà perdue ?

Non. Ce qui n'a pas été enregistré n'existe pas dans le LMS. La correction évite la perte suivante.

Pourquoi le problème ne touche-t-il que certains apprenants ?

Parce qu'il dépend de leur façon de quitter le module (bouton de sortie ou fermeture de l'onglet) et de la distance parcourue dans le cours.

Voir les échanges de votre module

Le correcteur SCORM contient un lecteur qui se comporte comme un LMS et affiche chaque échange en direct : position, statut, score, données de reprise. Le diagnostic signale l'absence de reprise, l'absence d'enregistrement intermédiaire, la sortie non signalée et le risque de dépassement. Le bouton « Relancer » teste la reprise. C'est gratuit.