Every nontrivial business process needs to make complex decisions. A rule engine is the ideal place for these decisions to happen. However, it is impractical to invoke a rule engine from a standard workflow engine. Instead, if we take a rule engine and add workflow capabilities, we have an ideal tool such as jBPM to model complex business processes.
The basics of jBPM were already covered in the jBPM section of Chapter 5, Creating Human-readable Rules. We've learned about methods for managing rules execution order; basic components/nodes of a process – start, end, action, ruleflow group, split (diverging gateway), and join (converging gateway).
In this chapter we'll look in more detail at jBPM. We'll build a loan approval process and cover the following advanced concepts of a process: work items, human tasks, faults, subprocesses, events, and others.