Custom process nodes
In Chapter 5, BPMN Constructs, we introduced the jBPM feature that lets you bind specific Java class implementations to the execution of a specific process task node type: send/receive tasks, service tasks, and ad hoc tasks.
These kinds of extensible task nodes are often called custom workitems, and the implementing classes that perform the horse work behind the process curtains are called workitem handlers. This architecture makes jBPM more flexible when it comes to adapting the engine to a particular domain, both in terms of features and tools UI. Let's start by reviewing the basics of the jBPM workitem and handlers.
Workitem and handlers
jBPM defines a work item as a unit of work that is defined inside the scope of a process but can be executed outside the engine; in particular:
It accepts a set of parameters
It performs some action
It optionally returns a result
The workitem is just an abstract definition of a work unit and has several concrete, practical implementations...