jBPM WorkFlow Component
Start Event
It is the starting node of the process. Every Process has only one Start Node. This node contains only one outgoing connection without any incoming connection. It has the following properties:
Id: Id of the node. It should be unique also.
Name: Name of the node.
End Event
It is the End Node of the process. A process can contain more than one End events. This node contains only one incoming connection and no outgoing connection. It has the following properties:
Id: Id of the node. It should be unique also.
Name: Name of the node.
Terminate: Terminates an entire process or just a path.
Rule Task
A Rule Task create a set of rules that need to be evaluated in our process. Every Rule Task has one incoming connection and one outgoing connection. The Rule Task is defined by using a Drools rule format in a separate file. It has the following properties:
Id: Id of the node and is unique.
Name: Name of the node.
RuleFlowGroup: It represents the set of rules.
Gateway [diverge]
It allows us to create a new path in the process. It contains one incoming connection and two or more outgoing connections. It has the following properties:
Id: Id of the node. It should be unique also.
Name: Name of the node.
Type: AND, XOR, or OR
Constraints: They are linked to the every outgoing connection.
There are three different types of Diverge Gateway node:
- AND: The control flow of the process will continue to all outgoing connections at the same time.
- XOR: It selects exactly one outgoing path. This decision is made by some predefined constraints in the workflow.
- OR: It selects only that path from all outgoing connections whose condition evaluates to true.
Gateway[converge]
It synchronizes multiple paths into one. There are only one outgoing connection and two or more incoming connections. It has the following properties:
Id: Id of the node. It should be unique also.
Name: Name of the node.
Type: AND, XOR, or OR
There are three types of Convergent Gateway:
- AND: The control flow continues after completion of all incoming branches otherwise wait for completing of incoming branches to continue.
- XOR: The control flow continues when at least one of its incoming branches has been completed.
- OR: The control flow continues when all direct active path of incoming branches has been completed.
Reusable Sub-Process
It calls another process from within the process. A sub-process has one incoming connection and one outgoing connection. It has the following properties:
Id: Id of the node. It should be unique also.
Name: Name of the node.
ProcessId: Id of the process that will be executed.
Wait for completion: By default it is true. The sub process will continue if the child process that was started is terminated its execution. Otherwise, it will continue after starting the sub process.
Independent: By default, it is true. In this case, the child process will not be terminated if its parent process is completed. It is false only when “Wait for completion” is set to true.
On-entry and On-exit action: It is executed on the entry and exit of the node.
Parameter In/Out mapping: Sub-process node define in and out-mapping for variables.
Script Task
It is a node which executes a simple piece of code. It has one incoming connection and one outgoing connection. It has the following properties: Id, Name and Action.
Timer Event
This node sets the timer for the process. It triggers certain logic for a specified period of time or repeat an action at regular interval of time.
Error Event
It is used to throw an exception occur in the process. It has one incoming connection and no outgoing connection. It has the following properties: Id, Name, FaultName and FaultVariable.
Signal Event
It is used to respond to the event during the execution of the process. It has one incoming and one outgoing connection. It has the following properties: Id, Name, EventType, VariableName etc.
User Task
It is used to create a human task and is executed by the human actors to complete the process activity. It has one incoming connection and one outgoing connection. It has the following properties: Id, Name, TaskName, Priority, ActorId, GroupId, Content, On-entry and On-exit action, Parameter mapping, Result mapping etc.
Embaded Sub-Process
It is used to create a child process within a parent process. It is very useful for the larger process. A sub-process has one incoming and one outgoing connections. It has the following properties: Id, Name and Variable.
Multiple Instances
It allows us to execute the instance of a process segment multiple times, and at least one time for each element in a collection. It has one incoming and one outgoing connection. It has the following properties: Id, Name, CollectionExpression, VariableName, CollectionOutput, OutputVariableName, CompletionCondition etc.