Skip to Content
EngineBPMN-Modellstruktur

BPMN-Modellstruktur der Engine

Diese Seite beschreibt das geparste BPMN-Modell. Es legt fest, welche Activities, Events und Gateways die Engine ausführt. Wenn du eine Anwendung entwickelst, beginne mit Engine-Daten für Clients: Dort stehen die tatsächlichen Aufrufe, Antworten und Laufzeitinstanzen.

Vom Modell zur laufenden Instanz

BPMN-XML im Studio ↓ Parser Prozessmodell mit FlowNodes ↓ Ausführung ProcessInstance und FlowNodeInstance ↓ Client-Abfrage Antwort für deine Anwendung

Eine UserTask im Prozessmodell und eine UserTaskInstance in einer Client-Antwort sind verschiedene Daten. Die erste beschreibt die modellierte Aufgabe. Die zweite beschreibt eine konkrete Aufgabe, die gerade auf Eingaben wartet; siehe User Tasks anzeigen und abschließen.

Gemeinsame Modellstruktur

BaseElement (id, documentation, extensionElements) └─ FlowNode (bpmnType, name, incoming, outgoing) ├─ Activity (z. B. UserTask, ServiceTask, SubProcess) ├─ Event (Start, Ende, Catch, Throw, Boundary) └─ Gateway (Exclusive, Parallel, Inclusive, Event-Based)

bpmnType stammt vom BPMN-Element, beispielsweise bpmn:UserTask. incoming und outgoing enthalten die IDs der Sequence Flows; fehlen sie im XML, setzt der Parser leere Listen. extensionElements enthält zusätzliche Modellangaben. Diese Eigenschaften werden beim Lesen des BPMN-Modells benötigt, nicht beim Ausfüllen einer User Task.

Bei Events sind Position und Ereignisart getrennt: bpmnType kann bpmn:IntermediateCatchEvent sein, während eventType messageEvent bezeichnet. Die BPMN-Elemente erklären das Verhalten der unterstützten Kombinationen.

Beispiel: Message-Start-Event

<bpmn:message id="Message_Order" name="BestellungEingegangen" /> <bpmn:startEvent id="Start_Order" name="Bestellung empfangen"> <bpmn:messageEventDefinition messageRef="Message_Order" /> </bpmn:startEvent>

Der Parser erzeugt daraus einen FlowNode mit bpmnType: 'bpmn:StartEvent', eventType: 'messageEvent' und einer messageEventDefinition für die referenzierte Message. Für das Auslösen einer Nachricht im Client ist dagegen Nachrichten und Signale senden relevant.

Typdefinitionen im Quellcode

Die vollständigen Modelltypen liegen im Engine-SDK unter ProcessModel/Model. Der Parser  bestimmt, welche Werte tatsächlich aus dem XML übernommen oder ergänzt werden. Für API-Antworten und Laufzeitdaten gelten die DataModels .