Business Process Modeling and the Graphical Process Modeler
Domain 2 tests your ability to read BPML and to build correct processes in the Graphical Process Modeler (GPM). The GPM is an Eclipse-based editor that writes BPML XML; the runtime executes that XML, so understanding the underlying elements matters more than dragging shapes.
Core elements
- process: the container; declares variables, persistence, and fault handling.
- sequence: ordered execution of services.
- choice/rule: conditional branching using XPath expressions over process data.
- assign: sets variables, counters, and document content.
- operation/invoke: calls a service or adapter with configured input/output.
- onFault: catches service faults and routes to recovery or notification.
Rules that matter
Every service call can time out and can fail; design an onFault path. Persistence level controls how much process data is written to the database: full persistence aids recovery but costs I/O; low persistence is faster but harder to debug. Use subprocesses for reusable logic. Test with small sample documents and inspect the process data at each step.
Worked example
An HTTP send fails intermittently. Create an integer variable retryCount, assign 0 before the send, and wrap the send in a sequence with onFault. In onFault, increment retryCount and use a choice: if retryCount < 3, loop back to the send; otherwise notify operations. Show the reasoning: the counter must persist across the loop, and the fault must be caught rather than allowed to terminate the process.
Traps
- Catching a fault but not clearing the failed service state.
- Using XPath that assumes a node exists; missing nodes cause empty results.
- Setting persistence to none and then expecting full audit history.
- Building retry loops without a bound, causing infinite loops.