BPMN Fundamentals: Process Modeling, Events, Gateways & Tasks
This article explains Business Process Model Notation (BPMN) with practical examples and relevance to professional certifications.
In a Nutshell
BPMN is the graphical notation for modeling business processes, providing a common language across business analysts, developers, and management.
Technical Overview
Business Process Model Notation (BPMN) is an international standard for graphically representing business processes. Developed by the Object Management Group (OMG), version 2.0 has been available since 2011.
Core Objectives:
- Standardization: Unified notation for all stakeholders
- Communication: Improved understanding between business and IT teams
- Automation: Foundation for process automation and workflow engines
- Optimization: Visual representation for process analysis and improvement
Key Elements:
- Events: Start, intermediate, and end events
- Activities: Tasks and sub-processes
- Gateways: Decisions and branching logic
- Connections: Sequence and message flows
- Pools & Lanes: Organizational units and responsibilities
BPMN supports complete process lifecycles from analysis through implementation, monitoring, and optimization.
Exam Essentials
- Standard notation for business process modeling
- Events: Start, Intermediate, End Events with various types
- Gateways: Exclusive, Parallel, Inclusive for process control
- Tasks: User, Service, Script, Manual Tasks
- Pools & Lanes: Organization and assignment of responsibilities
- Sequence Flow: Order of process steps
- Message Flow: Communication between pools
- Certification-relevant for process management and optimization
Core Components
- Events: Circular symbols representing process events
- Activities: Rectangular symbols for tasks
- Gateways: Diamond-shaped symbols for decisions
- Connections: Arrows indicating process and message flows
- Pools: Containers for complete processes
- Lanes: Divisions within pools by responsibility
- Artifacts: Documents, data, and groupings
- Data Objects: Information elements in the process
Practical Examples
1. Order Processing (Basic Example)
<!-- BPMN 2.0 XML Structure -->
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
<!-- Pool for the overall process -->
<process id="bestellprozess" name="Bestellprozess">
<!-- Start Event -->
<startEvent id="start" name="Bestellung eingegangen"/>
<!-- Task: Review order -->
<userTask id="pruefen" name="Bestellung prüfen">
<documentation>Verfügbarkeit und Kundendaten prüfen</documentation>
</userTask>
<!-- Exclusive Gateway: Decision -->
<exclusiveGateway id="entscheidung" name="Verfügbarkeit prüfen"/>
<!-- Task: Reject order -->
<userTask id="ablehnen" name="Bestellung ablehnen">
<documentation>Kunde über Nichtverfügbarkeit informieren</documentation>
</userTask>
<!-- Task: Process order -->
<serviceTask id="bearbeiten" name="Bestellung bearbeiten">
<documentation>Automatische Verarbeitung im System</documentation>
</serviceTask>
<!-- End Events -->
<endEvent id="ende_ablehnung" name="Bestellung abgelehnt"/>
<endEvent id="ende_erfolg" name="Bestellung bearbeitet"/>
<!-- Sequence Flows -->
<sequenceFlow sourceRef="start" targetRef="pruefen"/>
<sequenceFlow sourceRef="pruefen" targetRef="entscheidung"/>
<sequenceFlow sourceRef="entscheidung" targetRef="ablehnen">
<conditionExpression xsi:type="tFormalExpression">${nichtVerfuegbar}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="entscheidung" targetRef="bearbeiten">
<conditionExpression xsi:type="tFormalExpression">${verfuegbar}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="ablehnen" targetRef="ende_ablehnung"/>
<sequenceFlow sourceRef="bearbeiten" targetRef="ende_erfolg"/>
</process>
</definitions>
2. Approval Process with Parallel Steps
<process id="genehmigungsprozess" name="Genehmigungsprozess">
<!-- Start Event -->
<startEvent id="start" name="Antrag eingegangen"/>
<!-- User Task: Review request -->
<userTask id="antragPruefen" name="Antrag prüfen">
<potentialOwner>
<resourceAssignmentExpression>${manager}</resourceAssignmentExpression>
</potentialOwner>
</userTask>
<!-- Parallel Gateway -->
<parallelGateway id="parallelStart" name="Parallelprüfung beginnen"/>
<!-- Parallel Tasks -->
<serviceTask id="finanzPruefung" name="Finanzprüfung">
<documentation>Budget und Kosten prüfen</documentation>
</serviceTask>
<userTask id="rechtlichePruefung" name="Rechtliche Prüfung">
<documentation>Rechtliche Aspekte prüfen</documentation>
</userTask>
<!-- Parallel Gateway Merge -->
<parallelGateway id="parallelEnd" name="Ergebnisse zusammenführen"/>
<!-- Exclusive Gateway: Decision -->
<exclusiveGateway id="genehmigungsEntscheidung" name="Genehmigung"/>
<!-- Tasks -->
<userTask id="genehmigen" name="Antrag genehmigen">
<documentation>Genehmigung erteilen und umsetzen</documentation>
</userTask>
<userTask id="ablehnen" name="Antrag ablehnen">
<documentation>Ablehnung begründen und kommunizieren</documentation>
</userTask>
<!-- End Events -->
<endEvent id="genehmigt" name="Antrag genehmigt"/>
<endEvent id="abgelehnt" name="Antrag abgelehnt"/>
<!-- Sequence Flows -->
<sequenceFlow sourceRef="start" targetRef="antragPruefen"/>
<sequenceFlow sourceRef="antragPruefen" targetRef="parallelStart"/>
<!-- Parallel branches -->
<sequenceFlow sourceRef="parallelStart" targetRef="finanzPruefung"/>
<sequenceFlow sourceRef="parallelStart" targetRef="rechtlichePruefung"/>
<sequenceFlow sourceRef="finanzPruefung" targetRef="parallelEnd"/>
<sequenceFlow sourceRef="rechtlichePruefung" targetRef="parallelEnd"/>
<sequenceFlow sourceRef="parallelEnd" targetRef="genehmigungsEntscheidung"/>
<!-- Decision -->
<sequenceFlow sourceRef="genehmigungsEntscheidung" targetRef="genehmigen">
<conditionExpression>${genehmigt}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="genehmigungsEntscheidung" targetRef="ablehnen">
<conditionExpression>${abgelehnt}</conditionExpression>
</sequenceFlow>
<sequenceFlow sourceRef="genehmigen" targetRef="genehmigt"/>
<sequenceFlow sourceRef="ablehnen" targetRef="abgelehnt"/>
</process>
3. Multi-Pool Process (Cross-Department)
<!-- Pool 1: Sales -->
<pool id="vertrieb" name="Vertrieb">
<lane id="vertriebLane" name="Vertriebsmitarbeiter">
<startEvent id="angebotErstellen" name="Angebot erstellen"/>
<userTask id="angebotErstellenTask" name="Angebot ausarbeiten"/>
<endEvent id="angebotGesendet" name="Angebot gesendet"/>
<sequenceFlow sourceRef="angebotErstellen" targetRef="angebotErstellenTask"/>
<sequenceFlow sourceRef="angebotErstellenTask" targetRef="angebotGesendet"/>
</lane>
</pool>
<!-- Pool 2: Management -->
<pool id="management" name="Management">
<lane id="managementLane" name="Manager">
<intermediateCatchEvent id="angebotErhalten" name="Angebot erhalten"/>
<userTask id="angebotPruefen" name="Angebot prüfen"/>
<exclusiveGateway id="genehmigungsGateway" name="Genehmigung"/>
<sequenceFlow sourceRef="angebotErhalten" targetRef="angebotPruefen"/>
<sequenceFlow sourceRef="angebotPruefen" targetRef="genehmigungsGateway"/>
</lane>
</pool>
<!-- Message Flow between Pools -->
<messageFlow id="angebotFlow" sourceRef="angebotGesendet" targetRef="angebotErhalten"/>
BPMN Elements in Detail
Events
○ Start Event ○ Intermediate Event ● End Event
(empty circle) (circle with symbol) (thick line)
Types:
- Timer Event (⏰)
- Message Event (✉)
- Error Event (❌)
- Signal Event (📡)
- Terminate Event (⏹)
Tasks
□ User Task ◇ Service Task ◈ Script Task
(user) (automatic) (script)
Types:
- Manual Task (manual)
- Receive Task (receive)
- Send Task (send)
- Business Rule Task (rules)
Gateways
◇ Exclusive Gateway + Parallel Gateway ○ Inclusive Gateway
(exclusive OR) (parallel AND) (inclusive OR)
Types:
- Complex Gateway (complex)
- Event Gateway (event-driven)
Pools & Lanes
┌─────────────────────────────────────┐
│ Pool (organizational unit) │
├─────────────────────────────────────┤
│ Lane (area of responsibility) │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Task │ │GW │ │Task │ │End │ │
│ └─────┘ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────────┘
Advantages and Disadvantages
BPMN Advantages
- Standardization: Consistent notation for all stakeholders
- Visualization: Intuitive representation of complex processes
- Automation: Direct implementation in workflow engines
- Documentation: Living process documentation
- Analysis: Foundation for process optimization
Disadvantages
- Complexity: Large processes can become difficult to read
- Learning Curve: Requires familiarity with the notation
- Over-Engineering: Excessive detail in modeling can be counterproductive
- Maintenance: Changes require model updates
BPMN in Practice
Process Optimization
- As-Is Analysis: Model the current process
- Identify Bottlenecks: Find inefficiencies and redundancies
- To-Be Design: Design the optimized process
- Implementation: Deploy the new processes
- Monitoring: Measure results and make adjustments
Automation
// Camunda BPM Engine Example
import org.camunda.bpm.engine.*;
@Service
public class BestellService {
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
public void starteBestellprozess(Bestellung bestellung) {
// Start process
Map<String, Object> variables = new HashMap<>();
variables.put("bestellung", bestellung);
variables.put("kundenId", bestellung.getKundenId());
ProcessInstance process = runtimeService.startProcessInstanceByKey(
"bestellprozess", variables);
System.out.println("Prozess gestartet: " + process.getId());
}
public void bearbeiteAufgabe(String taskId, Map<String, Object> variables) {
// Complete user task
taskService.complete(taskId, variables);
}
}
Common Exam Questions
-
What is the difference between a pool and a lane? A pool represents an organizational unit, while a lane subdivides a pool by areas of responsibility.
-
Explain the different gateway types! Exclusive Gateway (exclusive OR), Parallel Gateway (parallel AND), Inclusive Gateway (inclusive OR).
-
When do you use message flow instead of sequence flow? Message flow communicates between pools, while sequence flow occurs within a pool.
-
What is the purpose of BPMN in software development? It serves as the foundation for workflow automation and process implementation.
Key Resources
- https://www.omg.org/spec/BPMN/2.0/
- https://de.wikipedia.org/wiki/Business_Process_Model_and_Notation
- https://www.bpmn.io/
More on BPMN
BPMN is the standard for business process modeling. The following articles help you understand and apply all aspects of BPMN in practice.
Foundations and Concepts
- BPMN Business Process Model and Notation - Comprehensive introduction to BPMN and process modeling
- BPMN Fundamentals Process Modeling - Detailed explanation of BPMN elements including pools and lanes



