Skip to main content

ScormManagerService

Der ScormManagerService ermöglicht dir die Integration mit SCORM-kompatiblen Lernmanagementsystemen (LMS). Du kannst damit den SCORM-Status prüfen, Werte lesen und schreiben sowie den SCORM-Lebenszyklus verwalten.

Zugriff

const scorm = RAGAI.SCORM;

Methoden

runsInLms()

Prüft, ob die Anwendung innerhalb eines Lernmanagementsystems (LMS) ausgeführt wird.

Rückgabe: booleantrue, wenn ein LMS erkannt wurde.

if (RAGAI.SCORM.runsInLms()) {
console.log("Läuft im LMS");
} else {
console.log("Kein LMS erkannt");
}

isFakeScorm()

Prüft, ob eine simulierte SCORM-Umgebung verwendet wird (z. B. für Testzwecke außerhalb eines echten LMS).

Rückgabe: booleantrue, wenn eine Fake-SCORM-Umgebung erkannt wurde.

if (RAGAI.SCORM.isFakeScorm()) {
console.log("Fake-SCORM-Umgebung (Testmodus)");
}

LMSInitialize()

Initialisiert die SCORM-Verbindung zum LMS. Muss vor allen anderen SCORM-Operationen aufgerufen werden.

Rückgabe: string – Status der Initialisierung.

const status = RAGAI.SCORM.LMSInitialize();
console.log("Initialisierung:", status);

LMSIsInitialized()

Prüft, ob die SCORM-Verbindung bereits initialisiert wurde.

Rückgabe: string – Initialisierungsstatus.

const init = RAGAI.SCORM.LMSIsInitialized();
console.log("Ist initialisiert:", init);

LMSSetValue(key, value)

Setzt einen SCORM-Wert im LMS.

Parameter:

ParameterTypPflichtBeschreibung
keystringJaSCORM-Datenmodell-Schlüssel (z. B. "cmi.core.lesson_status")
valuestringJaDer zu setzende Wert

Rückgabe: void

// Lektionsstatus auf "completed" setzen
RAGAI.SCORM.LMSSetValue("cmi.core.lesson_status", "completed");

// Punktzahl setzen
RAGAI.SCORM.LMSSetValue("cmi.core.score.raw", "85");

LMSGetValue(key)

Liest einen SCORM-Wert aus dem LMS.

Parameter:

ParameterTypPflichtBeschreibung
keystringJaSCORM-Datenmodell-Schlüssel

Rückgabe: string | undefined – Der gespeicherte Wert oder undefined.

const status = RAGAI.SCORM.LMSGetValue("cmi.core.lesson_status");
console.log("Aktueller Status:", status);

const name = RAGAI.SCORM.LMSGetValue("cmi.core.student_name");
console.log("Lernender:", name);

LMSCommit()

Speichert alle geänderten SCORM-Werte dauerhaft im LMS.

Rückgabe: string – Status des Commits.

RAGAI.SCORM.LMSSetValue("cmi.core.score.raw", "90");
RAGAI.SCORM.LMSCommit(); // Änderungen speichern

LMSFinish()

Beendet die SCORM-Sitzung und gibt die Verbindung zum LMS frei.

Rückgabe: string – Status des Abschlusses.

RAGAI.SCORM.LMSFinish();

scormHook(hook, params)

Führt einen SCORM-Hook aus. Hooks ermöglichen dir, auf bestimmte SCORM-Ereignisse zu reagieren oder benutzerdefinierte Logik einzubinden.

Parameter:

ParameterTypPflichtBeschreibung
hookstringJaName des Hooks
paramsunknownJaParameter für den Hook

Rückgabe: void

RAGAI.SCORM.scormHook("onComplete", { score: 85 });

Gängige SCORM-Schlüssel

SchlüsselBeschreibung
cmi.core.lesson_statusLektionsstatus ("not attempted", "incomplete", "completed", "passed", "failed")
cmi.core.score.rawRohe Punktzahl
cmi.core.score.minMinimale Punktzahl
cmi.core.score.maxMaximale Punktzahl
cmi.core.student_nameName des Lernenden
cmi.core.student_idID des Lernenden
cmi.core.lesson_locationLetzte Position im Kurs (Lesezeichen)
cmi.suspend_dataFrei verwendbare Daten zur Wiederaufnahme

Vollständiges Beispiel

function scormWorkflow() {
// 1. Prüfen, ob SCORM verfügbar ist
if (!RAGAI.SCORM.runsInLms()) {
console.log("Kein LMS erkannt – SCORM-Funktionen deaktiviert.");
return;
}

// 2. SCORM initialisieren
RAGAI.SCORM.LMSInitialize();

// 3. Lernenden begrüßen
const name = RAGAI.SCORM.LMSGetValue("cmi.core.student_name");
if (name) {
RAGAI.MSG.botMessage("Willkommen zurück, " + name + "!");
}

// 4. Letzte Position laden
const letztePosition = RAGAI.SCORM.LMSGetValue("cmi.core.lesson_location");
if (letztePosition) {
RAGAI.MSG.botMessage("Du warst zuletzt bei: " + letztePosition);
}
}

function scormFortschrittSpeichern(position, punkte) {
if (!RAGAI.SCORM.runsInLms()) return;

// Position und Punkte speichern
RAGAI.SCORM.LMSSetValue("cmi.core.lesson_location", position);
RAGAI.SCORM.LMSSetValue("cmi.core.score.raw", String(punkte));

// Status aktualisieren
if (punkte >= 80) {
RAGAI.SCORM.LMSSetValue("cmi.core.lesson_status", "passed");
} else {
RAGAI.SCORM.LMSSetValue("cmi.core.lesson_status", "incomplete");
}

// Änderungen speichern
RAGAI.SCORM.LMSCommit();
}

function scormAbschliessen() {
if (!RAGAI.SCORM.runsInLms()) return;

RAGAI.SCORM.LMSSetValue("cmi.core.lesson_status", "completed");
RAGAI.SCORM.LMSCommit();
RAGAI.SCORM.LMSFinish();
}

Hinweise

  • Rufe LMSInitialize() immer vor anderen SCORM-Operationen auf.
  • Verwende LMSCommit() nach Änderungen, um sicherzustellen, dass Daten im LMS gespeichert werden.
  • Rufe LMSFinish() am Ende der Sitzung auf, um die Verbindung sauber zu beenden.
  • Mit isFakeScorm() kannst du prüfen, ob du in einer Testumgebung arbeitest, und ggf. alternative Logik verwenden.
  • Die Schlüssel im SCORM-Datenmodell sind standardisiert – verwende die Tabelle oben als Referenz.