Skip to Content

Nachrichten und Signale senden

Mit EventHttpClient löst du ein BPMN-Message- oder Signal-Event aus. Der Name muss zur im Modell definierten Message oder zum Signal passen. Der Payload enthält deine Prozessdaten; die Engine legt dessen Fachfelder nicht global fest.

1. Wartendes Event finden

import { DataModels, EngineClient } from '@5minds/processcube_engine_client'; const client = new EngineClient('http://localhost:10560'); const { events, totalCount } = await client.events.query({ processInstanceId: 'pi-1042', state: DataModels.FlowNodeInstances.FlowNodeInstanceState.suspended, }); const waitingEvent = events[0];

EventList enthält events und totalCount. Eine EventInstance hat neben den gemeinsamen Instanzdaten ein eventName; triggerValue ist optional. Das Beispiel filtert nach einer Instanz, die Anzahl der Treffer solltest du trotzdem prüfen.

2. Message gezielt senden

await client.events.triggerMessageEvent('ZahlungBestaetigt', { processInstanceId: 'pi-1042', payload: { betrag: 99.9 }, });

processInstanceId grenzt die Zustellung auf eine Prozessinstanz ein. payload enthält die Werte der Nachricht. Der Aufruf liefert Promise<void>, also keine Event-Instanz und keinen Antwort-Payload. Wenn du den Prozesszustand brauchst, frage ihn anschließend über processInstances.query ab.

3. Signal senden

await client.events.triggerSignalEvent('BestellungEingegangen', { payload: { bestellnummer: 'B-1042' }, });

Ein Signal adressiert passende Empfänger unter seinem Namen; mit processInstanceId kannst du auch hier eine Instanz eingrenzen. customCorrelationId ist für Message und Signal ab Engine v19.2.0 verfügbar. Verwende diese Option nur, wenn deine Engine-Version sie unterstützt.

Wichtig: eventName einer wartenden EventInstance ist ein Laufzeitwert. Die Definition des Events im BPMN-Modell und dessen messageRef oder signalRef findest du in der Modellreferenz.

Sprachspezifische Aufrufe: TypeScript, Python, .NET.