Process modelling
We are going to describe the elements which define a jBPM process. A process is composed by:
- Nodes
- Transitions
To create a process definition in a graphical way, you can use jBPM Graphical Process Designer. This tool is packaged as a Eclipse plugin.
Nodes
The define the states of the process definition. They are connected by transitions. Both define the different path which can be followed in a running process definition. A running process definition is called process instance.
There are several types of nodes:
Start node
The start node defined the process entry point. Only one start node is permitted.
End node
End nodes define the end of the process execution. A process may have several end nodes. In this case the process finish when the process arrives to any of these end nodes.
Task node
A task node represents one or more tasks that are to be performed by humans.
Node node
You can define the behaviour using a Action element, which will be executed when the process arrives to the node.
State node
A state is a bare-bones wait state. The difference with a task node is that no task instances will be created in any task list. This can be usefull if the process should wait for an external system.
Decision node
There are 2 ways to model a decision. The distinction between the two is based on *who* is making the decision.
- When the decision is to be taken by the process, a decision node should be used.
- When the decision is taken by an external party, you should use multiple transitions leaving a state or wait state node.
Fork node
A fork node splits one path of execution into multiple concurrent paths of execution.
Join node
The join node take all these concurrent executions before continue with the process execution.