BPMN / Geschäftsprozess

Über BPMN-Diagramme

Ein BPMN-Diagramm dokumentiert einen Geschäftsprozess — die Aktivitäten, Entscheidungen, Ereignisse und Nachrichtenaustausche, die über Rollen, Abteilungen und Systeme hinweg stattfinden. Es ist die dominierende Notation in Enterprise-BPM, ISO-9001 / SOX-Audits und Process-Mining-Werkzeugen. Die einzige offizielle Serialisierung ist BPMN 2.0 XML, das ausführlich und für die LLM-Generierung ungeeignet ist; Schematex bietet einen kompakten Text-DSL, der eine konforme visuelle Teilmenge erzeugt.

Schematex implementiert OMG BPMN 2.0.2 / ISO/IEC 19510:2013 für die Elemente, die Business-Analysten in der Praxis tatsächlich zeichnen: Pools, Lanes, Ereignisse (Start / Zwischen / End mit Keine / Nachricht / Timer-Auslösern), Aktivitäten (Aufgaben mit Markierungen + eingeklappten Teilprozessen), Gateways (XOR / OR / AND / ereignisbasiert) und Sequenz- / Bedingungs- / Standard- / Nachrichtenflüsse.

Hinweis — Schematex ist eine Rendering-Bibliothek, keine Prozessausführungs-Engine. Es gibt keine Token-Simulation, keinen XML-Roundtrip und keine DI (Diagram Interchange)-Schicht. v0.1 deckt die visuelle Teilmenge ab, die die meisten Teams verwenden; Boundary-Ereignisse, erweiterte Teilprozesse und die seltenen Auslösertypen (Abbruch / Kompensation / Eskalation / Signal / Link) sind auf v0.2+ verschoben.

bpmn·§
↘ preview
100%
Loan Application Approval BPMN LR — 1 pool(s), 8 flow object(s). Bank Clerk Underwriter yes no approve reject Application received Check completeness Complete? Risk score Underwriter review Decision Approved Rejected
UTF-8 · LF · 28 lines · 469 chars✓ parsed·4.7 ms·8.2 KB SVG

1. Ihr erstes BPMN-Diagramm

Drei Abschnitte: ein einzeiliger bpmn-Header, ein oder mehrere pool { … }-Blöcke und ein flows-Block. Innerhalb jedes Pools fügen Sie lane { … }-Blöcke ein, und innerhalb jeder Lane listen Sie Flow-Objekte als id: kind "label" auf.

bpmn·§
↘ preview
100%
BPMN diagram BPMN LR — 1 pool(s), 3 flow object(s). Service Worker Request Process Done
UTF-8 · LF · 12 lines · 129 chars✓ parsed·0.8 ms·3.3 KB SVG

Jedes Flow-Objekt beginnt mit einer id, einem Doppelpunkt, der Art, einem optionalen Unter-Schlüsselwort (Auslöser / Markierung / Gateway-Typ) und einem zitierten Label. IDs werden von Flusslinien referenziert.


2. Pools und Lanes

Ein Pool repräsentiert einen Teilnehmer — eine Organisation, eine Abteilung oder ein System. Eine Lane unterteilt einen Pool in Rollen. Das Pool-Label wird um 90° gedreht am linken Rand eines horizontalen Pools gerendert.

pool "Customer" blackbox          // Black-Box-Pool — kein interner Fluss
pool "Bank" {
  lane "Clerk" { … }
  lane "Underwriter" { … }
}

Ein Black-Box-Pool ist ein Teilnehmer, dessen internen Prozess Sie nicht modellieren — typischerweise ein externer Kunde oder Partner. Black-Box-Pools dürfen keine Flow-Objekte enthalten (Schematex erzwingt dies im Parser).

Sequenzfluss (-->) darf nicht Pool-Grenzen überqueren. Verwenden Sie einen Nachrichtenfluss (~~>) für die Pool-übergreifende Kommunikation.


3. Ereignisse

Ereignisse sind Kreise. Die Strichstärke kodiert die Lebenszyklusrolle:

ArtStrichDSL
Startdünn (1px)start
Zwischendünner Doppelringintermediate
Endedick (3px)end

Das optionale Auslöser-Schlüsselwort fügt eine innere Glyphe hinzu. v0.1 unterstützt die drei häufigsten Auslöser — none (keine Glyphe), message (Umschlag) und timer (Zifferblatt):

A: start                       // Kein Auslöser
A: start message "Inbound"     // Nachrichten-Empfang (ungefüllter Umschlag)
T: intermediate timer "60 min" // Timer (Zifferblatt)
F: end "Done"

Gefüllte Glyphe = senden, ungefüllte Glyphe = empfangen. Schematex wählt die richtige Füllung automatisch basierend auf der Ereignisart.


4. Aktivitäten — Aufgaben und Teilprozesse

Aktivitäten sind abgerundete Rechtecke. Die zwei v0.1-Formen sind task und ein eingeklappter Teilprozess (die +-Markierung zeigt erweiterbare Details an):

B: task "Generic abstract task"
U: task user "User decides"
S: task service "API call"
SE: task send "Send email"
RE: task receive "Wait for reply"
M: task manual "Hand-stamp the form"
SC: task script "Run rule engine"

X: subprocess "Verify identity" collapsed

Die Aufgabenmarkierung (kleines Symbol oben links) kommuniziert, wer oder was die Arbeit ausführt — eine Person (user), ein Softwaredienst (service), eine ausgehende Nachricht (send), ein eingehender Wartemodus (receive), ein manueller Schritt außerhalb des Systems (manual) oder ein automatisiertes Skript (script). Wenn Sie unsicher sind, lassen Sie die Markierung weg — sie ist standardmäßig abstrakt.


5. Gateways

Gateways sind Rauten. Die innere Glyphe kodiert die Verzweigungssemantik:

ArtGlypheBedeutungDSL
Exklusiv (XOR)XGenau einen ausgehenden Zweig wählen (datenbasiert)gateway xor
Inklusiv (OR)OEinen oder mehrere ausgehende Zweige wählengateway or
Parallel (AND)+Alle ausgehenden Zweige gleichzeitig wählengateway and
EreignisbasiertPentagon-in-KreisDen Zweig wählen, dessen Ereignis zuerst eintrittgateway event

Schematex verwendet Bruce Silvers X-Glyphe für XOR standardmäßig — das ist die Konvention, die echte BPMN-Audits erwarten. Die meisten Diagramme verwenden XOR (Datenverzweigung) und AND (parallele Aufteilung / Zusammenführung); OR ist selten und ereignisbasiert taucht hauptsächlich in Race-Condition-Modellen auf.


6. Verbinder

Vier Verbindertypen. Drei davon bleiben innerhalb eines Pools; nur der Nachrichtenfluss darf Pool-Grenzen überqueren.

A --> B                  // Sequenzfluss (Standard)
G --? "yes" --> C        // Bedingter Sequenz (Label ist eine Bedingung)
G --* "default" --> D    // Standardfluss (einer pro Gateway, maximal)
"Customer" ~~> A : "Submit application"   // Nachrichtenfluss
E ~~> "Customer" : "Notify approval"      // Nachrichtenfluss zurück
  • --> ist das Arbeitstier — durchgehende Linie + gefüllter Dreieck-Pfeilkopf.
  • --? "label" --> fügt an der Quelle eine kleine ungefüllte Raute hinzu. Verwenden Sie es, wenn Sie eine Aktivität direkt bei einem gesicherten Ergebnis verlassen. (Bei einem Gateway reicht das Bedingungslabel; die Rauten-Glyphe wird nicht gezeichnet.)
  • --* "label" --> fügt an der Quelle eine Schrägstrich-Markierung hinzu. Ein Standardfluss maximal pro Gateway — Schematex erzwingt dies.
  • ~~> ist gestrichelt mit einem offenen Pfeilkopf und einem kleinen ungefüllten Kreis an der Quelle. Quelle oder Ziel kann ein zitierter Pool-Name (für Black-Box-Teilnehmer) oder eine Objekt-ID sein.

7. Validierung

Der Parser lehnt Diagramme ab, die BPMN-Semantik verletzen, mit zeilennummerierten Fehlern:

RegelFehler
Sequenzfluss überquert Poolsequence flow 'A --> B' crosses pool boundary — use message flow (~~>)
Nachrichtenfluss innerhalb eines Poolsmessage flow 'A ~~> B' must cross pool boundaries
Black-Box-Pool hat Inhalteblack-box pool "X" cannot contain lanes
Zwei Standardflüsse vom selben Gatewaygateway 'G' has 2 default flows (max 1)
Doppelte ID innerhalb eines Poolsduplicate id 'A'
Unbekannte Quelle / Zielunknown source 'X' in sequence flow

Diese Prüfungen erfolgen während des Parse-Vorgangs, damit ein LLM ein nutzbares Signal erhält, bevor der Layout-Pass beginnt.


8. Größeres Beispiel — Pizzabestellung mit Black-Box-Kunde

Ein kanonisches BPMN-Tutorial: ein externer Kunde (dessen Prozess wir nicht modellieren) gibt eine Bestellung bei einer Pizzeria auf, die in Clerk / Chef / Delivery-Lanes aufgeteilt ist, mit einer Nacharbeitsschleife bei der Qualitätsprüfung des Chefs.

bpmn·§
↘ preview
100%
Pizza order BPMN LR — 2 pool(s), 7 flow object(s). Customer Pizzeria Clerk Chef Delivery yes no Place order Pizza delivered Order received Take order Make pizza Pizza ok? Rework Deliver Done
UTF-8 · LF · 32 lines · 485 chars✓ parsed·2.1 ms·9.1 KB SVG

Die Nacharbeitsschleife (D --> C) erzeugt eine Rückkante, die das Layout-Zyklusbrech-System via DFS erkennt — die Longest-Path-Layering fährt dann auf dem Forward-DAG fort, sodass die Spalten sinnvoll bleiben.


9. Einschränkungen von v0.1

Diese sind auf eine spätere Version verschoben. Wenn Ihr Diagramm eines davon benötigt, eröffnen Sie einen Issue mit dem Anwendungsfall:

  • Boundary-Ereignisse — Ereignisse, die an einen Aktivitätsrand angehängt sind (Timer, Fehler, Eskalation, Kompensation). Derzeit müssen Sie das Boundary als frei schwebendes Zwischen-Ereignis mit manuellen Flüssen modellieren.
  • Erweiterte Teilprozesse — eingeklappter subprocess funktioniert; erweiterte Inline-Blöcke (subprocess "X" { … }) sind verschoben.
  • Seltene Ereignisauslöser — Fehler / Eskalation / Abbruch / Kompensation / Signal / Link / Bedingt / Mehrfach / Parallelmehrfach. Verwenden Sie none oder message als Platzhalter.
  • Transaktion / Aufrufaktivitäten — werden für v0.1 als normale Aufgaben gerendert.
  • Schleifen- und Multi-Instanz-Markierungen — untere Mitte Aktivitätsglyphen; verschoben.
  • Artefakte — Datenobjekt / Datenspeicher / Gruppe / Textannotation. Verschoben.
  • BPMN 2.0 XML-Import / -Export — nicht im Umfang. Schematex berechnet das Layout aus dem DSL; keine DI-Schicht für den Roundtrip.

Verwandte Beispiele

Einsatzbereite Szenarien aus der Beispielgalerie:

bpmn·§ OMG BPMN 2.0.2 / ISO/IEC 19510:2013
Pizza order BPMN LR — 2 pool(s), 7 flow object(s). Customer Pizzeria Clerk Chef Delivery yes no Place order Pizza delivered Order received Take order Make pizza Pizza ok? Rework Deliver Done
Pizza order with black-box customer (BPMN)
Two-pool BPMN — external Customer (black-box) and a Pizzeria with Clerk / Chef / Delivery lanes. Exercises message flows across pools, manual / send task markers, and a rework loop on the chef's quality check. Canonical BPMN test case 7.1.
retail
bpmn·§ OMG BPMN 2.0.2 / ISO/IEC 19510:2013
Production incident response BPMN LR — 2 pool(s), 13 flow object(s). Monitoring Engineering On-call L1 On-call L2 Comms P1 P2-P3 info Alert Status Page received Acknowledge Triage Severity? Investigate Root cause Implement fix Deploy patch Status page 30 min Update users Post-mortem Resolved
Production incident response (BPMN)
Three-lane BPMN of an on-call rotation handling a production page — L1 triage, L2 investigation, and a Comms lane that posts status updates. Exercises timer intermediate event, severity-based XOR routing, and a self-loop on the triage gate.
software & it

Found this useful?

Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.