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: boolean – true, 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: boolean – true, 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:
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | Ja | SCORM-Datenmodell-Schlüssel (z. B. "cmi.core.lesson_status") |
value | string | Ja | Der 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:
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
key | string | Ja | SCORM-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:
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
hook | string | Ja | Name des Hooks |
params | unknown | Ja | Parameter für den Hook |
Rückgabe: void
RAGAI.SCORM.scormHook("onComplete", { score: 85 });
Gängige SCORM-Schlüssel
| Schlüssel | Beschreibung |
|---|---|
cmi.core.lesson_status | Lektionsstatus ("not attempted", "incomplete", "completed", "passed", "failed") |
cmi.core.score.raw | Rohe Punktzahl |
cmi.core.score.min | Minimale Punktzahl |
cmi.core.score.max | Maximale Punktzahl |
cmi.core.student_name | Name des Lernenden |
cmi.core.student_id | ID des Lernenden |
cmi.core.lesson_location | Letzte Position im Kurs (Lesezeichen) |
cmi.suspend_data | Frei 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.