Skip to Content

Engine Nodes

@5minds/node-red-contrib-processcube — Native Engine-Integration mit 23 Nodes für BPMN-Workflows, UserTasks, External Tasks, Events und Queries.

Engine-Konfiguration

processcube-engine-config

Zentraler Konfigurationsnode für die Verbindung zur Engine. Wird von allen anderen Engine-Nodes referenziert.

EigenschaftTypStandardBeschreibung
urlstringhttp://engine:8000Engine-URL
clientIdstringOAuth Client-ID
clientSecretstringOAuth Client-Secret
scopestringengine_etw engine_read engine_write engine_observerOAuth Scopes

Alle Eigenschaften unterstützen Umgebungsvariablen (env-Typ).


Prozess-Nodes

process-start

Startet eine neue Prozessinstanz in der Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
processmodelProzessmodell-ID
starteventStart-Event-ID
correlationIdKorrelations-ID

Input:

FeldTypBeschreibung
msg.payloadObjectInitiales Token für den Prozess
msg.processModelIdstringÜberschreibt konfigurierte Prozessmodell-ID
msg.startEventIdstringÜberschreibt konfiguriertes Start-Event
msg.correlationIdstringÜberschreibt konfigurierte Korrelations-ID

Output:

FeldTypBeschreibung
msg.payload.processInstanceIdstringID der gestarteten Prozessinstanz
msg.payload.correlationIdstringKorrelations-ID

Beispiel:

[Trigger] → [process-start] → [Debug] ProcessModel: "Bestellung_v1" StartEvent: "StartEvent_1"

process-terminate

Beendet eine laufende Prozessinstanz.

Input:

FeldTypBeschreibung
msg.payloadstringProzessinstanz-ID

Output:

FeldTypBeschreibung
msg.payloadstringID der beendeten Prozessinstanz

UserTask-Nodes

usertask-input

Fragt UserTasks aus der Engine ab und sendet sie als Messages.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Objekt (msg oder JSON)
sendtypeErgebnisformat: array, multi oder first

Sendetypen:

  • array — Alle UserTasks als Array in einer Message
  • multi — Separate Message pro UserTask
  • first — Nur den ersten UserTask

Output:

FeldTypBeschreibung
msg.payload.userTasksArrayUserTask-Array (bei array)
msg.payload.userTaskObjectEinzelner UserTask (bei first/multi)

usertask-output

Beendet einen UserTask und sendet das Ergebnis an die Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
resultErgebnis-Objekt (msg oder JSON)

Input:

FeldTypBeschreibung
msg.payload.userTask.flowNodeInstanceIdstringFlowNodeInstance-ID des UserTasks

wait-for-usertask

Wartet auf neue UserTasks der Engine und gibt sie aus.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Filter (msg oder JSON)
only_for_newNur auf neue UserTasks warten (bestehende ignorieren)

Output:

FeldTypBeschreibung
msg.payload.userTaskObjectDer gefundene UserTask

usertask-event-listener

Horcht auf UserTask-Events der Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
usertaskOptional: Filter auf bestimmte UserTask-ID
eventtypeEvent-Typ: new, finished, reserved, reservation-canceled
queryZusätzlicher Query-Filter

Output:

FeldTypBeschreibung
msg.payload.flowNodeInstanceIdstringUserTask-Instanz-ID
msg.payload.userTaskEventObjectEvent-Daten
msg.payload.userTaskObjectUserTask-Objekt
msg.payload.actionstringAusgelöstes Event
msg.payload.typestring"usertask"

Beispiel UserTask-Flow:

[usertask-event-listener] → [usertask-input] → [Dynamic Form] → [usertask-output] (event: new) (sendtype: first) (result: msg.payload)

External Task-Nodes

externaltask-input

Wartet auf External Tasks eines bestimmten Topics.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
topicTopic des External Tasks
workernameOptionaler Worker-Name
workerConfigWorker-Konfiguration (JSON)

Worker-Konfiguration:

FeldTypBeschreibung
workerIdstringWorker-ID
lockDurationnumberLock-Dauer in ms
maxTasksnumberMax. gleichzeitige Tasks
longpollingTimeoutnumberLong-Polling-Timeout
payloadFilterRegexPayload-Filter

Output:

FeldTypBeschreibung
msg.payloadanyTask-Payload
msg.taskObjectExternal Task-Objekt
msg.flowNodeInstanceIdstringFlowNodeInstance-ID
msg.processInstanceIdstringProzessinstanz-ID

externaltask-output

Beendet einen External Task erfolgreich.

Input:

FeldTypBeschreibung
msg.payloadObjectErgebnis für die Engine
msg.flowNodeInstanceIdstringFlowNodeInstance-ID

externaltask-error

Meldet einen Fehler bei der Verarbeitung eines External Tasks.

Input:

FeldTypBeschreibung
msg.error / msg.errorCodestringFehlercode
msg.errorMessage / msg.error.messagestringFehlermeldung
msg.flowNodeInstanceIdstringFlowNodeInstance-ID

Der Fehlercode wird an Error-Boundary-Events in der Engine weitergeleitet.

externaltask-event-listener

Horcht auf External Task-Events.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
externaltaskOptional: Filter auf bestimmte External Task-ID
eventtypeEvent-Typ: created, locked, unlocked

Output:

FeldTypBeschreibung
msg.payload.flowNodeInstanceIdstringFlowNodeInstance-ID
msg.payload.externalTaskEventObjectEvent-Daten
msg.payload.actionstringAusgelöstes Event
msg.payload.typestring"externaltask"

Beispiel External Task-Flow:

[externaltask-input] → [Function: Verarbeitung] → [externaltask-output] (topic: "email") (result: msg.payload) ↓ (bei Fehler) [externaltask-error] (errorCode: "SEND_FAILED")

Event-Nodes

process-event-listener

Horcht auf Prozess-Events der Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
processmodelOptional: Filter auf Prozessmodell
eventtypeEvent-Typ (siehe unten)
queryZusätzlicher Query-Filter

Verfügbare Event-Typen:

  • starting — Prozess wird gestartet
  • started — Prozess wurde gestartet
  • resumed — Prozess wurde fortgesetzt
  • finished — Prozess wurde beendet
  • terminated — Prozess wurde abgebrochen
  • error — Fehler im Prozess
  • owner-changed — Besitzer geändert
  • instances-deleted — Instanzen gelöscht
  • is-executable-changed — Ausführbarkeit geändert
  • deployed — Prozess deployed
  • undeployed — Prozess undeployed

Output:

FeldTypBeschreibung
msg.payload.processInstanceIdstringProzessinstanz-ID
msg.payload.processModelIdstringProzessmodell-ID
msg.payload.tokenObjectProzess-Token
msg.payload.actionstringAusgelöstes Event
msg.payload.typestring"processInstance" oder "processModel"

endevent-finished-listener

Horcht auf beendete End-Events.

Output:

FeldTypBeschreibung
msg.payload.correlationIdstringKorrelations-ID
msg.payload.processInstanceIdstringProzessinstanz-ID
msg.payload.flowNodeIdstringFlowNode-ID
msg.payload.flowNodeNamestringFlowNode-Name
msg.payload.flowNodeInstanceIdstringFlowNodeInstance-ID
msg.payload.currentTokenObjectAktuelles Token

message-event-trigger

Triggert ein Intermediate Message Event in der Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
messagenameName des Message-Events

Input:

FeldTypBeschreibung
msg.payloadObjectNeues Token für das Message-Event
msg.processinstanceidstringProzessinstanz-ID

signal-event-trigger

Sendet ein Signal-Event an die Engine.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
signalnameName des Signals

Input:

FeldTypBeschreibung
msg.payloadObjectNeues Token für das Signal-Event
msg.processinstanceidstringProzessinstanz-ID

Query-Nodes

processinstance-query

Fragt Prozessinstanzen ab.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Objekt (msg oder JSON)
limitMax. Ergebnisse
offsetStart-Index

Query-Filter:

FeldTypBeschreibung
correlationIdstring/ArrayKorrelations-ID
processInstanceIdstring/ArrayProzessinstanz-ID
processModelIdstring/ArrayProzessmodell-ID
statestring/ArrayStatus
ownerIdstring/ArrayBesitzer
createdBefore/At/AfterstringErstellungsdatum
updatedBefore/At/AfterstringAktualisierungsdatum
finishedBefore/At/AfterstringAbschlussdatum

Output:

FeldTypBeschreibung
msg.payload.processInstancesArrayProzessinstanzen
msg.payload.totalCountnumberGesamtanzahl

processdefinition-query

Fragt Prozessdefinitionen ab.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Objekt
models_onlyNur Modelle statt vollständiger Definitionen

Output:

FeldTypBeschreibung
msg.payload.processDefinitionsArrayProzessdefinitionen (oder models bei models_only)
msg.payload.totalCountnumberGesamtanzahl

dataobject-instance-query

Fragt Datenobjekt-Instanzen ab.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Objekt
onlyNewestNur neueste Instanz pro DataObject

Query-Filter:

FeldTypBeschreibung
dataObjectIdstring/ArrayDataObject-ID
processInstanceIdstring/ArrayProzessinstanz-ID
processModelIdstring/ArrayProzessmodell-ID
flowNodeInstanceIdstring/ArrayFlowNodeInstance-ID

Output:

FeldTypBeschreibung
msg.payload.dataObjectInstancesArrayDatenobjekt-Instanzen
msg.payload.totalCountnumberGesamtanzahl

DevOps-Nodes

processdefinition-deploy

Deployt eine BPMN-Prozessdefinition in die Engine.

Input:

FeldTypBeschreibung
msg.payloadstringBPMN-XML-Inhalt

processinstance-delete

Löscht alte Prozessinstanzen eines Modells.

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
modelidProzessmodell-ID
durationZeitspanne
time_typeEinheit: hours oder days
batch_sizeBatch-Größe (Standard: 100, max: 1000)

Output:

FeldTypBeschreibung
msg.payload.successfulDeletionsArrayErfolgreich gelöschte IDs
msg.payload.failedDeletionsArrayFehlgeschlagene Löschungen

processinstance-delete-advanced

Erweiterte Löschung von Prozessinstanzen (Engine v19+).

Konfiguration:

EigenschaftBeschreibung
engineEngine-Konfiguration
queryQuery-Objekt
delete_releatedZugehörige Daten mitlöschen

Query-Filter:

FeldTypBeschreibung
processInstanceIdstringProzessinstanz-ID
processModelIdstringProzessmodell-ID
finishedBeforedatetimeBeendet vor Datum
finishedAfterdatetimeBeendet nach Datum

Autorisierung

check-authorization

Prüft, ob ein Benutzer bestimmte Claims besitzt.

Konfiguration:

EigenschaftBeschreibung
optionsListe von Claim-Objekten

Input:

FeldTypBeschreibung
msg._client.user.claimsObjectBenutzer-Claims

Outputs:

  • Output 1 — Benutzer ist autorisiert
  • Output 2 — Benutzer ist nicht autorisiert

Tools

processcube-google-docs-mail-template

Rendert E-Mail-Templates aus Google Drive/Docs. Lädt ein ZIP-Archiv herunter, extrahiert HTML und Bilder, ersetzt Platzhalter und bereitet HTML mit Inline-Attachments vor.

Konfiguration:

EigenschaftBeschreibung
template_linkURL zum ZIP-Archiv oder Google Drive/Docs-Link

Input:

FeldTypBeschreibung
msg.payloadObjectFelder für Platzhalter-Ersetzung ({{feld}} oder ///feld///)

Output:

FeldTypBeschreibung
msg.payloadstringGerendertes HTML mit CID-Referenzen
msg.attachmentsArrayNodemailer-kompatible Attachment-Objekte

Node-Übersicht

KategorieNodeBeschreibung
Prozessprocess-startProzessinstanz starten
process-terminateProzessinstanz beenden
UserTaskusertask-inputUserTasks abfragen
usertask-outputUserTask beenden
wait-for-usertaskAuf UserTask warten
usertask-event-listenerUserTask-Events empfangen
External Taskexternaltask-inputExternal Task empfangen
externaltask-outputExternal Task beenden
externaltask-errorExternal Task-Fehler melden
externaltask-event-listenerExternal Task-Events empfangen
Eventsprocess-event-listenerProzess-Events empfangen
endevent-finished-listenerEnd-Events empfangen
message-event-triggerMessage-Event auslösen
signal-event-triggerSignal-Event auslösen
Queriesprocessinstance-queryProzessinstanzen abfragen
processdefinition-queryProzessdefinitionen abfragen
dataobject-instance-queryDatenobjekte abfragen
DevOpsprocessdefinition-deployProzessdefinition deployen
processinstance-deleteProzessinstanzen löschen
processinstance-delete-advancedErweiterte Löschung (v19+)
Authcheck-authorizationClaims prüfen
Toolsgoogle-docs-mail-templateE-Mail-Template rendern
Configprocesscube-engine-configEngine-Verbindung

Nächste Schritte