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.