The BPM definition describes a process in simple terms, in a way that is convenient for bridging between a BPM tool and process execution. It is different from the process definition, which is an executable version of the process, and which has more detail on it.
The BPM definition has the following structure.
|reference||Reference for the process. Use a reference of 'start' for the first step in the process.|
|name||Name of the process.|
|properties||Properties for the process.|
|steps||Array of steps.|
|steps.reference||Reference of a step.|
|steps.name||Name for the step.|
|steps.role||role that perform the step. The default is "owner", which means that the step is performed by the process owner.|
Reference to step type. A reference of null indicates that this is a placeholder step. This can be used to generate status rules, and as a target to generate flow rules from other steps, but will not generate a process step.
This can also be set using the property stepType.
|steps.properties||Name:value pairs for the properties for the step.|
Properties of flows that start at this step and end at the step identified by target.
Any properties are allowed, but some have specific meanings.
It is important not to confuse the state and status properties. State is about the automated system execution of the process, what steps the system will do next. Status is about the manual user execution of the process, what steps are offered to the user next. A flow with both state and status is possible - it is used to present the next step in the process immediately to the user, but in a way that allows them to cancel out of the step and return to it later.