Container für einen Prozess. Ein Teilnehmer an einer Interaktion. Pools tauschen Daten ausschließlich über Message Flows aus. Kann eingeklappt werden, um Details zu verbergen.
Ein Band innerhalb eines Pools, das zeigt, wer die Aufgaben ausführt (eine Funktion, Rolle, Abteilung oder ein IT-System).
Der Typ ist nicht festgelegt. Wird in der frühen Modellierung verwendet, wenn die Ausführungsart noch nicht entschieden oder für das Ziel des Diagramms unerheblich ist. Im Grunde ein Platzhalter, der später zu einem konkreten Typ verfeinert wird.
Wird von einem Menschen über eine Softwareoberfläche ausgeführt: ein CRM-Formular, ein Bildschirm in einer Web-App, ein Eintrag in einem Task-Manager. Der wesentliche Unterschied zu einer manuellen Aufgabe ist, dass die Person innerhalb des Systems arbeitet, das den Status der Aufgabe verfolgt.
Wird von einem Menschen ohne Beteiligung der BPM-Engine ausgeführt. Das System kann nicht automatisch erkennen, wann diese Arbeit beginnt oder endet.
Wird automatisch von einem Programm oder Dienst ausgeführt. Kein Mensch ist beteiligt. Der häufigste Task-Typ in ausführbaren Prozessen.
Sendet eine Nachricht an einen bestimmten externen Teilnehmer (einen anderen Prozess oder ein anderes System) und endet sofort, ohne auf eine Antwort zu warten. Ein Fire-and-Forget-Muster.
Wartet auf eine eingehende Nachricht von einem externen Teilnehmer. Der Prozess pausiert an dieser Aufgabe, bis die Nachricht eintrifft.
Eine besondere Variante ist der instanziierende Receive: Ist eine solche Aufgabe der erste Schritt eines Prozesses, erzeugt bereits der Empfang der Nachricht eine neue Prozessinstanz (eine Alternative zum Nachrichten-Startereignis).
Führt ein eingebettetes Skript (Code) aus, das direkt im Prozessmodell definiert ist. Anders als ein Service Task ruft der Code kein externes System auf — er läuft innerhalb der BPM-Engine.
Ruft eine Entscheidungs-Engine auf (z. B. eine DMN-Tabelle). Eingaben werden an ein Regelwerk übergeben und eine Entscheidung zurückgeliefert.
Kleine Symbole mittig am unteren Rand eines Task-Rechtecks. Sie zeigen das Verhalten der Aufgabe an — nicht ihren Typ.
| Marker | Bedeutung | Beispiel |
|---|---|---|
| ↻ Loop | Die Aufgabe wiederholt sich, solange eine Bedingung gilt (eine Instanz, mehrere Iterationen) | Ein Dokument überarbeiten → einreichen → bei Ablehnung wiederholen |
| ∥ Parallele Multi-Instanz | N Instanzen starten gleichzeitig — eine pro Element der Sammlung | Die Benachrichtigung an alle Genehmiger gleichzeitig senden |
| ≡ Sequenzielle Multi-Instanz | Dieselben N Instanzen, aber eine nach der anderen | Jeden Kandidaten nacheinander interviewen |
| ⏪ Compensation | Eine Rollback-Aufgabe: läuft nur, wenn eine Kompensation ausgelöst wird, um eine bereits abgeschlossene Aktion rückgängig zu machen | „Buchung stornieren“, nachdem „Hotel buchen“ bereits abgeschlossen wurde |
| ~ Ad-hoc | Aufgaben im Subprozess laufen in beliebiger Reihenfolge, können wiederholt oder übersprungen werden; Start- und Endereignisse sind darin nicht erlaubt | Freie Auswahl der Schritte während einer Kundenberatung |
| + Subprozess | Eine zusammengesetzte Aktivität mit verborgener innerer Sequenz; Flüsse dürfen ihre Grenze nicht überschreiten | „Auftragsabwicklung“ verbirgt 10 interne Schritte |
Eine zusammengesetzte Aktivität, markiert mit „+“. Enthält eine eigene Schrittfolge. Flüsse dürfen ihre Grenze nicht überschreiten. Zwischenereignisse docken an die Grenze an.
Dicke Umrandung. Verweist auf einen globalen Subprozess (z. B. „Beschaffung“), der prozessübergreifend wiederverwendet wird.
Marker „~“. Aktivitäten darin können in beliebiger Reihenfolge laufen, sich wiederholen oder übersprungen werden. Start-/Endereignisse sind darin nicht erlaubt.
Gestrichelte Umrandung innerhalb eines Prozesses. Wird durch ein Startereignis ausgelöst, während der übergeordnete Prozess aktiv ist. Unterbrechend — bricht den übergeordneten Prozess ab. Nicht unterbrechend — läuft parallel.
Steuern Verzweigung und Zusammenführung. Ein Gateway ist keine Aufgabe! Die Entscheidung fällt vor dem Gateway.
Das häufigste Gateway. Beim Verzweigen aktiviert es genau einen ausgehenden Pfad — denjenigen, dessen Bedingung zuerst zutrifft. Ist keine Bedingung erfüllt, schlägt der Prozess mit einem Fehler fehl (daher ist es gute Praxis, immer einen „Default“-Zweig zu definieren). Beim Zusammenführen lässt es jedes eintreffende Token sofort durch, ohne auf die übrigen zu warten.
Analogie: eine Weggabelung, an der man nur in eine Richtung fährt.
Beim Verzweigen aktiviert es alle ausgehenden Pfade gleichzeitig, bedingungslos — ohne Prüfung. Beim Zusammenführen wartet es auf Tokens auf allen eingehenden Pfaden und gibt erst, wenn alle eingetroffen sind, ein einziges Token weiter.
Analogie: ein Vorgesetzter verteilt Aufgaben an fünf Mitarbeiter und wartet, bis alle fünf fertig sind.
Eine Mischung aus XOR und AND. Beim Verzweigen aktiviert es einen oder mehrere Pfade je nach Bedingungen — jede Bedingung wird unabhängig ausgewertet. Beim Zusammenführen wartet es nur auf Tokens der tatsächlich aktivierten Pfade (nicht auf alle, wie es AND tut).
Analogie: ein Buffet — man nimmt ein Gericht, zwei oder alle, aber nie null.
Grundlegend anders als die übrigen: Es leitet nicht anhand von Daten weiter, sondern anhand des Ereignisses, das zuerst eintritt. Nach dem Gateway platziert man wartende Zwischenereignisse (Timer, Message, Conditional, Signal). Sobald eines auslöst, werden die anderen abgebrochen.
Analogie: Sie haben eine Pizza bestellt — ist sie nach 60 Minuten nicht da, rufen Sie die Pizzeria an; kommt sie früher, essen Sie.
Wird verwendet, wenn sich die Verzweigungslogik nicht mit Standard-Gateways ausdrücken lässt. Die Zusammenführungsbedingung wird durch einen Ausdruck definiert (zum Beispiel „fortfahren, wenn 3 von 5 Zweigen abgeschlossen sind“ oder „wenn die erste Antwort eingetroffen ist und 10 Minuten vergangen sind“).
Eine Raute ohne Marker. Semantisch gleichbedeutend mit einem exklusiven (XOR) Gateway — der BPMN-Standard erlaubt das Weglassen des Kreuzes. Manche Methodiker halten das für schlechte Praxis, weil es die Lesbarkeit beeinträchtigt: Es ist unklar, ob der Autor den Marker vergessen oder bewusst XOR gewählt hat.
Ein Ereignis ist etwas, das geschieht (eine Tatsache), im Gegensatz zu einer Aufgabe (einer aktiven Handlung). Als Kreise dargestellt.
Catching (ungefüllter Marker) — warten. Throwing (gefüllt) — auslösen. Boundary-Ereignisse: unterbrechend (durchgezogen) und nicht unterbrechend (gestrichelt).
Symbole aus bpmn-font (Camunda). „—“ = im Standard nicht definiert.
| Typ | Start | Intermediate | End | |||||
|---|---|---|---|---|---|---|---|---|
| Normal | Event-Subpr. | Nicht unterbr. | Catch | Boundary | Boundary nicht unterbr. | Throw | ||
| Kein | — | — | — | — | — | |||
| ✉ Message | ||||||||
| ⏱ Timer | — | — | ||||||
| ⚡ Error | — | — | — | — | — | |||
| ▲ Signal | ||||||||
| 📋 Conditional | — | — | ||||||
| ↗ Escalation | — | — | ||||||
| ⬤ Terminate | — | — | — | — | — | — | — | |
| ⏪ Compensation | — | — | — | — | ||||
| ✖ Cancel | — | — | — | — | — | — | ||
| ➡ Link | — | — | — | — | — | — | ||
| ⬠ Multiple | ||||||||
| ➕ Parallel mult. | — | — | ||||||
Austausch mit einem bestimmten Empfänger: E-Mail, Anruf, HTTP, push. In jeder Position verfügbar.
Datum/Uhrzeit, Intervall, Countdown (Frist). Nur Catching.
Ein schwerwiegender Fehler. Catching — nur an einer Boundary. Throwing — nur am Ende.
Warten auf eine externe Bedingung („der Ofen ist heiß“). Nur Catching.
Broadcast (im Gegensatz zu einer adressierten Nachricht). Jeder Abonnent reagiert.
Stoppt sofort die gesamte Prozessinstanz. Nur am Ende.
Was, wenn es keinen Sinn mehr ergibt, Aufgabe 2 nach Abschluss von Aufgabe 3 fortzusetzen? Dann wird das folgende Muster verwendet:
Ein „Teleport“ für den Fluss. Ein Paar aus Throw + Catch ersetzt einen langen Pfeil. Nur als Zwischenereignis.
Macht eine zuvor abgeschlossene Aktion rückgängig. Die kompensierende Aufgabe ist über eine Assoziation verknüpft.
Wird von einem Subprozess an den übergeordneten Prozess gesendet — kein Fehler. Kann nicht unterbrechend sein.
Nur im Kontext von Transaktionen. Am Ende — Rollback. An der Boundary — Catch.
Ein „Blatt Papier“ mit umgeknickter Ecke. Steht für Informationen, die innerhalb einer Prozessinstanz erzeugt, verbraucht oder weitergegeben werden. Es existiert nur, solange die Instanz lebt.
Ein Zylinder. Dauerhafter Speicher, der die Prozessinstanz überdauert: eine Datenbank, ein Register, ein Dateispeicher. Aufgaben lesen daraus und schreiben hinein.
Parameter eines Prozesses oder Subprozesses an dessen Grenze. Input — was von außen bereitgestellt wird; Output — was zurückgegeben wird. Pfeil mit offenem/gefülltem Dreieck.
Ein Kommentar, der über eine gestrichelte Linie an ein beliebiges Element angehängt wird. Beeinflusst die Ausführung nicht — er dient nur der Klärung für den Leser des Diagramms.
Ein gestricheltes, abgerundetes Rechteck. Eine visuelle Gruppierung von Elementen (z. B. „alle Logistikaufgaben“). Es hat keine Ausführungssemantik; Flüsse dürfen seine Grenze frei überschreiten.
Ein durchgezogener Pfeil mit gefüllter Spitze. Legt die Ausführungsreihenfolge innerhalb eines einzelnen Pools fest. Kann Pool-Grenzen nicht überschreiten.
Ein bedingter Fluss (mit kleiner Raute am Ursprung) — wird nur ausgelöst, wenn seine Bedingung wahr ist. Wird an ausgehenden Pfeilen einer Aufgabe ohne Gateway verwendet.
Ein Standardfluss (mit Häkchen am Ursprung) — der Ausweichpfad eines XOR-/OR-Gateways oder einer bedingten Verzweigung, der genommen wird, wenn keine andere Bedingung zutrifft.
Ein gestrichelter Pfeil mit offener Spitze. Verbindet verschiedene Pools — eine zwischen unabhängigen Teilnehmern ausgetauschte Nachricht. Wird nicht innerhalb eines einzelnen Pools verwendet.
Ein Subprozess mit doppelter Umrandung. ACID-Semantik: entweder werden alle inneren Aktionen erfolgreich committet, oder die gesamte Transaktion wird über ein Cancel-Ereignis (mit Kompensationen) zurückgerollt. Wird für Konsistenz bei verteilten Operationen verwendet.
Erstellen Sie Ihr erstes BPMN-Diagramm kostenlos — ohne Registrierung oder Kreditkarte.
BPMN-Flussdiagramme mit KI generieren