Event Queues

Die imc Learning Suite bietet die Möglichkeit, über eine Event Queue Echtzeitinformationen zu bestimmten Events zu erhalten, wodurch Integrationsszenarien mit Drittsystemen ermöglicht werden. Die folgende Dokumentation beschreibt die aktuell verfügbaren Events. Bei On-Premises-Installationen enthält das imc Learning Suite-Paket eine Apache-ActiveMQ-Artemis-Installation (https://artemis.apache.org/components/artemis/documentation/ ). Bei von Scheer IMC gehosteten Cloud-Installationen wird der Azure Service Bus als Event Queue verwendet (https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview ).

Die Nachrichten/Events werden als AMQP-Nachrichten gesendet, wobei die eigentliche Information im JSON-Body enthalten ist. Dieser JSON-Body wird hier für die einzelnen Nachrichten dokumentiert. Die Nachrichten/Events werden an separate Topics für die jeweiligen Event-Typen gesendet. Die folgenden Topics werden für die jeweiligen Event-Typen verwendet:

Topic-Name

Event-Typ

de.imc.ils_login

Login-Events

de.imc.ils_course-changes

Course-Events – Kursänderungen

de.imc.ils_registrations

Registration-Events – alle

de.imc.ils_completions

Registration-Events – nur Abschlüsse

de.imc.ils_cancellations

Registration-Events – nur Stornierungen

de.imc.ils_recert-due-date-changes

Recertification-Due-Date-Events

Login-Events

Die Login-Events werden bei jeder Anmeldung eines Nutzers ausgelöst und liefern zusätzlich Informationen zu vorherigen fehlgeschlagenen Anmeldeversuchen.

Anmeldeversuch (erfolgreich)

JSON
{
"login":"imc_super",
"identifier":2,
"result":"success",
"failedCount":0,
"timestamp":1603666208487,
"summary": "Login attempt for imc_super"
}

Anmeldeversuch (fehlgeschlagen)

JSON
{
"login":"imc_super",
"identifier":2,
"result":"failed",
"failedCount":4,
"timestamp":1603666208487,
"summary": "Login attempt for imc_super"
}

Parameter

Erklärung

login

Für den Anmeldeversuch verwendeter Login-Name

identifier

Interne ID des Nutzers

result

Ergebnis des Anmeldeversuchs, entweder "success" oder "failed"

failedCount

Anzahl fehlgeschlagener Versuche

timestamp

Zeitstempel des Event-Versands in Sekunden seit Epoch

summary

Kurze Zusammenfassung des Events/der Nachricht

Course-Events

Die Course-Events liefern Informationen zu Kursen bei deren Erstellung oder Änderung und enthalten grundlegende Informationen zum Kurs und seinen Inhalten.

Course Change Event

JSON
{
"external-id":"ce77b12d-4119-3390-92e6-000000001517",
"object-id":517282,
"component-id":517281,
"syllabus-link":"https://achievemore.im-c.com/ilp/pages/course.jsf?courseId=517281&pollingMode=on#!/courseroom/course",
"title":"Course Name",
"description":"<strong>Course Description</strong></br> Descriptiontext",
"start-date":"2021-05-19T00:00:00+0200",
"end-date":"2021-05-19T23:59:59+0200",
"duration-of-use":"",
"learning-form":"classroom",
"lastupdated":"2020-10-25T23:50:08+0100",
"lastupdater-external-id":"",
"lastupdater-person-id":0,
"metadata":[],
"contents":[],
"catalog-assignment":[],
"timestamp":1603666208487,
"summary":"Update for course 517281 | 517282 | ce77b12d-4119-3390-92e6-000000001517",
"planning-status":"CANCELLED",
"location-name":"Building A Singapore",
"price":2000.00,
"currency":"EUR"
}

Parameter

Erklärung

external-id

Externe ID des Kurses, falls vorhanden

component-id

Interne versionsspezifische ID des Kurses

object-id

Interne versionsunabhängige ID des Kurses

syllabus-link

Link zum Kursraum/Syllabus im System

title

Name des Kurses

description

Beschreibung des Kurses inklusive HTML-Formatierung

start-date

Startdatum des Kurses, falls datumsabhängig

end-date

Enddatum des Kurses, falls datumsabhängig

duration-of-use

Dauer des Kurses, falls nutzungsdauerabhängig

learning-form

Lernform des Kurses

lastupdated

Datum der letzten Aktualisierung

lastupdater-external-id

Externe ID der Person, die den Kurs zuletzt aktualisiert hat

lastupdater-person-id

Interne ID der Person, die den Kurs zuletzt aktualisiert hat

metadata

Zusätzliche Metadaten für den Kurs (d. h. alle Metatags)

contents

Liste der Inhalte und ihrer Metadaten (Name, Link, Daten, …)

catalog-assignment

Liste der Katalogknoten, denen der Kurs zugewiesen ist

timestamp

Zeitstempel des Event-Versands in Sekunden seit Epoch

summary

Kurze Zusammenfassung des Events/der Nachricht

planning-status

Planungsstatus des Kurses

price

Preis für die Buchung, entweder Kurspreis oder Stornogebühr

currency

Währung für den Preis

Registration-Events

Registration-Events werden bei jeder Änderung an einer Buchung ausgelöst, von der ursprünglichen Buchung über die Stornierung bis zum Abschluss. Für die Registration-Events stehen drei Topics zur Verfügung: eines, das alle Events abdeckt, und zwei, die ausdrücklich Stornierungen bzw. Abschlüsse enthalten.

Registration Change Event

JSON
{
"external-id":"ce77b12d-fa54-3353-8e4d-000000000213",
"identifier":121150,
"course-external-id":"ce77b12d-4119-3390-92e6-0000000004ac",
"course-component-id":555791,
"course-object-id":555792,
"initial-status":"BOOKED",
"status":"CANCELLED",
"due-date":"2020-12-31",
"expiration-of-qualification": "2021-12-31",
"price":0.0,
"currency":"EUR",
"orderer":2,
"cancellation-reason": 1,
"timestamp":1603698662089,
"summary":"Update for registration for course 555791 | 555792 | ce77b12d-4119-3390-92e6-0000000004ac and user 121150 | ce77b12d-fa54-3353-8e4d-000000000213",
"portfolio-id":"12345",
"personal-startdate":"2020-10-25T23:50:08+0100",
"personal-enddate":"2020-10-25T23:50:08+0100",
"client_id":"1234"
}

Parametererklärung

Parameter

Erklärung

external-id

Externe ID des Nutzers, falls vorhanden

identifier

Interne ID des Nutzers

course-external-id

Externe ID des Kurses, falls vorhanden

course-component-id

Interne versionsspezifische ID des Kurses

course-object-id

Interne versionsunabhängige ID des Kurses

initial-status

Buchungsstatus vor der Änderung

status

Buchungsstatus nach der Änderung

due-date

Fälligkeitsdatum für den Kurs

expiration-of-qualification

Ablaufwert der Qualifikation, sofern vom Kurs vorgegeben

price

Preis für die Buchung, entweder Kurspreis oder Stornogebühr

currency

Währung für den Preis

orderer

Nutzer, der die Änderung ausgelöst hat

cancellation-reason

ID des Stornierungsgrundes, falls Status "cancelled"

timestamp

Zeitstempel des Event-Versands in Sekunden seit Epoch

summary

Kurze Zusammenfassung des Events/der Nachricht

portfolio-id

Portfolio-ID

personal-startdate

Startdatum und Zeitstempel des Kurses für den Lernenden

personal-enddate

Enddatum und Zeitstempel des Kurses für den Lernenden

client_id

Mandanten-ID

Status-Mapping für Buchungen

Status für Kurse/Lernpfade:

Status String (Event)

ID

Status

NULL

0

Kein Bezug

SELECTED

1

Auf der Wunschliste

ORDERED

2

Beantragt

AGREED

3

Bestätigt

NOTIFIED

4

Benachrichtigt

REFUSED

4

Nicht bestätigt

WAITING

6

Wartend

CANCELED

7

Storniert

BOOKED

8

Gebucht

STARTED

9

In Bearbeitung

FINISHED

10

Beendet

PASSED

11

Bestanden

FAILED

12

Nicht bestanden

INDIVIDUAL_LEARNING_PLAN

17

Lernvorgabe

RESERVED_ON_PARTICIPANT_LIST

18

Reserviert

RESERVED_ON_WAITING_LIST

19

Auf der Warteliste reserviert

DELETE

13

Gelöscht

Status für Kursvorlagen

Status String (Event)

ID

Status

PREBOOKED

16

Vorgebucht

SUCCESSFULLY_COMPLETED

20

Rezertifizierung: Kurs bestanden

NOT_SUCCESSFULLY_COMPLETED

21

Rezertifizierung: Kurs nicht bestanden

Recertification-Events

Die Recertification-Events liefern zusätzliche Informationen zu Fälligkeitsdaten innerhalb eines Rezertifizierungsprozesses. Immer wenn innerhalb des Rezertifizierungsprozesses ein neues Fälligkeitsdatum berechnet wird, das noch keiner bestimmten Kursbuchung zugeordnet ist, wird ein zusätzliches Event ausgelöst.

Recertification Due Date Change Event

JSON
{
"external-id":"ce77b12d-fa54-3353-8e4d-000000000213",
"identifier":121150,
"template-external-id":"ce77b12d-4119-3390-92e6-0000000004ac",
"template-component-id":555791,
"template-object-id":555792,
"due-date":"2020-12-31",
"timestamp":1603698662089,
"summary":"Update for recertification 555792 | 121150 | 2020-12-31"
}

Parametererklärung

Parameter

Erklärung

external-id

Externe ID des Nutzers, falls vorhanden

identifier

Interne ID des Nutzers

template-external-id

Externe ID der Vorlage, falls vorhanden

template-component-id

Interne versionsspezifische ID der Vorlage

template-object-id

Interne versionsunabhängige ID der Vorlage

due-date

Fälligkeitsdatum für die nächste Rezertifizierung. Dieses wird beim Abschluss eines Kurses der Vorlage gesetzt, bevor der nächste Kurs in einem Rezertifizierungsszenario gebucht wird. Es wird gelöscht, sobald der nächste Kurs verfügbar ist und ein Nutzer dafür angemeldet/gebucht wird. Das Fälligkeitsdatum wird auf den Kurs übertragen und auch im Registration Change Event bereitgestellt.

Skill-Change-Events

Die Skill-Change-Events liefern zusätzliche Informationen zu Änderungen eines Skillwerts für einen Nutzer. Immer wenn der Wert eines Skills neu berechnet oder aktualisiert wird, etwa durch eine Beurteilung, eine manuelle Anpassung oder einen automatisierten Prozess, wird ein Event mit dem vorherigen und dem neuen Wert, der verwendeten Skala (falls vorhanden) sowie dem Zuweisungs- und Ablaufdatum des aktualisierten Werts ausgelöst.

JSON
{
"type":"assessment",
"skill-external-id":null,
"timestamp":1784204759500,
"summary":"Thu Jul 16 14:25:59 CEST 2026skill value event type: assessment - for user:951964 and skill:1171706",
"personId":951964,
"clientId":911366,
"skillId":1171706,
"skillName":"#FC #SuperCONF #Accum",
"initialValue":5,
"initialScaleName":null,
"currentValue":10,
"currentScaleName":null,
"allocationDate":"2026-07-16 14:25:33.019",
"expirationDate":null,
"lastUpdaterId":952014,
"lastUpdaterExternalId":null
}

Parametererklärung

Parameter

Erklärung

type

Event-Typ-Kennung für diese Event-Kategorie, z. B. "assessment" – zeigt an, dass eine Änderung eines Skillwerts erfasst wurde.

skill-external-id

Externe ID des Skills, falls vorhanden (aus einem externen System zugeordnet). Null, falls keine externe ID konfiguriert ist.

timestamp

Unix-Zeitstempel (Millisekunden), zu dem das Event ausgelöst wurde.

summary

Menschenlesbare Zusammenfassung des Events – enthält Event-Typ, Nutzer und Skill zur schnellen Log-Prüfung.

personId

Interne ID des Nutzers, dessen Skillwert sich geändert hat.

clientId

Interne ID des Mandanten, zu dem der Nutzer gehört.

skillId

Interne ID des betroffenen Skills/der betroffenen Kompetenz.

skillName

Anzeigename des Skills.

initialValue

Der Skillwert vor dieser Änderung.

initialScaleName

Name der für den ursprünglichen Wert verwendeten Skala (falls der Skill eine benannte statt einer rein numerischen Skala verwendet). Null, falls nicht zutreffend.

currentValue

Der neue/aktualisierte Skillwert nach dieser Änderung.

currentScaleName

Name der für den aktuellen Wert verwendeten Skala. Null, falls nicht zutreffend.

allocationDate

Datum/Uhrzeit, zu dem der (neue) Skillwert dem Nutzer zugewiesen wurde.

expirationDate

Datum/Uhrzeit, zu dem der Skillwert abläuft, sofern für den Skill ein Ablauf konfiguriert ist. Null, falls der Wert nicht abläuft.

lastUpdaterId

Interne ID des Nutzers (oder Systemkontos), der diese Aktualisierung des Skillwerts ausgelöst hat.

lastUpdaterExternalId

Externe ID des Aktualisierenden, falls vorhanden. Null, falls keine externe ID konfiguriert ist.

https://doc-de.scheer-imc.com/FunkRef/configuration-manager-event-queue