Extension Sample
Das Sample zeigt eine simple Extension für die Engine unter Verwendung des SDKs.
Installation und Start
Die Extension lässt sich folgendermaßen starten:
# Verzeichnis wechseln
cd extension/sample-extension/
# Installieren der abhängigen Pakete
npm ci
# Starten einer Engine, die als extensionsDir den sample-Ordner verwendet
npm run startIm Log lässt sich nachvollziehen, dass die Extension erfolgreich geladen wurde:
Loading extension...
Finished loading.
"time":"2024-12-18T13:46:29.853Z","levelName":"info","namespace":"extension","message":"Loaded extension sample_extension version 1.0.0.Funktionsweise
Die Sample-Extension registriert eine Event-Middleware auf dem Engine-Objekt, die den Event-Typen von empfangenen Events auf der Konsole ausgibt.
Beispiel-Code
import { Engine } from '@5minds/processcube_engine_sdk';
export function onLoad(engineObject: Engine): void {
console.log('Loading extension...');
engineObject.registerEventMiddleware((event) => {
console.log(`Received event ${event.eventType}`);
});
console.log('Finished loading.');
}Das Feld event.eventType enthält den Event-Typ als Wert der Enums
EngineEventType bzw. LogEventType (beide aus @5minds/processcube_engine_sdk).
Um gezielt auf bestimmte Ereignisse zu reagieren, vergleicht man event.eventType
mit den jeweiligen Enum-Membern, z.B.:
import { EngineEventType } from '@5minds/processcube_engine_sdk';
engineObject.registerEventMiddleware((event) => {
if (event.eventType === EngineEventType.OnProcessFinished) {
// ...
}
});Ausgabe
Wenn z.B. ein Prozess auf der Engine unter localhost:8000 gestartet wird, sollte im Log folgendes zu sehen sein:
Received event OnFlowNodeEntered
Received event OnFlowNodeExited
Received event OnProcessFinishedWeiterführende Informationen
Mit dem Engine SDK können Sie:
- Event-Middlewares registrieren
- User Task Assignment Resolver implementieren
- Custom Service Tasks definieren
- Notifications verarbeiten
- Eigene Logging-Mechanismen integrieren
Weitere Informationen finden Sie in der Engine SDK Dokumentation .