BPMN elements support in Workflow Engine
We are continuously working on the implementation of BPMN for Workflow Engine, so support will be expanded over time.
Tasks
A Task is always converted into an Activity, with the Task ID recorded in the Activity Name, and the Task Name, if present, recorded in the Activity State. If multiple transitions come out of a Task, they will be converted to parallel transitions.
- Generic Task. A task without a specific designation will be transformed into a standard Activity.
- Service Task. This is supported and will be converted into a specialized Activity that visually resembles a typical Service Task. In
the original task, the implementation will be based on the values of the attributes
"camunda:topic"
,"camunda:delegateExpression"
, or the value of the implementation property. The resulting string is split by commas into substrings, which are then used as Action names in Workflow Engine. - Receive Task. This is supported and will be converted into a standard Activity, with a Transition emerging from it that is triggered by a Command.
- User Task. Not supported yet; support will be added after the release of the plugin integrating Workflow Engine with forms.
- Business Rule Task. Not supported; will be converted into a standard Activity.
- Manual Task. Not supported; will be converted into a standard Activity.
- Script Task. Not supported; will be converted into a standard Activity.
- Send Task. Not supported; will be converted into a standard Activity.
Gateways
- Exclusive Gateway. This is supported and will be converted into a specialized Activity that visually resembles the typical Exclusive Gateway. Both Action-based conditions and expressions are supported.
- Parallel Gateway. This is supported and will be converted into a specialized Activity that visually resembles a typical Parallel Gateway.
- Event-Based Gateway. This is supported and will be converted into a standard Activity with Transitions triggered by corresponding triggers, such as Command or Timer.
- Inclusive Gateway. Not supported due to how Workflow Engine handles subprocess creation. However, support can be added relatively quickly; please contact us if this is critical for you. In the current implementation, it will be converted into a standard Activity.
- Complex Gateway. Not supported; will be converted into a standard Activity.
Intermediate Catch Events
- Message. This is supported and will be converted into a specialized Activity that visually resembles a typical Intermediate Message Catch Event.
- Timer. This is supported and will be converted into a specialized Activity that visually resembles a typical Intermediate Timer Catch Event.
- Signal. Not supported; will be converted into a standard Activity. Support will be added once an Event-type trigger is introduced in Workflow Engine.
- Conditional. Not supported; will be converted into a standard Activity.
- Link. Not supported; will be converted into a standard Activity.
Intermediate Throw Events
This class of elements is not supported; any Intermediate Throw Event will be converted into a standard Activity.
Boundary Events
All Boundary Events are not converted into Activities in the scheme but into corresponding triggers on Transitions.
- Message. Supported; a transition with a Command trigger will be added.
- Timer. Supported; a transition with a Timer trigger will be added.
- Signal. Not supported; an Auto Transition without a trigger will be created. Support will be added once an Event-type trigger is introduced in Workflow Engine.
- Escalation. Not supported; an Auto Transition without a trigger will be created.
- Conditional. Not supported; an Auto Transition without a trigger will be created.
- Error. Not supported; an Auto Transition without a trigger will be created.
- Compensation. Not supported; an Auto Transition without a trigger will be created.
- Non-interrupting Events. Not supported; an Auto Transition without a trigger will be created.
Start Events
- Generic. Supported; an Activity will be created that visually resembles a standard Start Event.
- Message. Partially supported; a Start Event Activity will be created with an outgoing Transition triggered by a Command.
- Timer. Partially supported; a Start Event Activity will be created with an outgoing Transition triggered by a Timer.
- Signal. Not supported; an Initial Activity with an outgoing automatic Transition will be created.
- Conditional. Not supported; an Initial Activity with an outgoing automatic Transition will be created.
If your BPMN diagram contains multiple Start Events, they will be merged into a single Start Event Activity in the Workflow Engine scheme, with corresponding Transitions emerging from it.
End Events
- Generic. Supported; an Activity will be created that visually resembles a standard End Event.
- Terminate End Event. Supported; an Activity will be created that visually resembles a standard Terminate End Event.
- Message End Event. Not supported; a Final Activity will be created.
- Escalation. Not supported; a Final Activity will be created.
- Signal. Not supported; a Final Activity will be created.
- Error. Not supported; a Final Activity will be created.
- Compensation. Not supported; a Final Activity will be created.
Subprocesses
All subprocesses will be converted into Inline Activities. The code of the inlined scheme will be taken from the subprocess element's name if it is provided; otherwise, the subprocess element's ID will be used.
Pools
A Pool will be loaded as a separate process scheme. Only the first scheme will be displayed in the designer. The scheme codes will correspond to the process name if it is provided; otherwise, the process ID will be used.
Lanes
Lanes will be ignored, as there is no equivalent method of grouping elements in Workflow Engine.
Call Activities
Not supported; they will be converted into standard Activities.
Parallelism specifics
As previously discussed, parallelism in BPMN diagrams and Workflow Engine schemes differs. When importing schemes, implicit parallelism will always be converted into explicit parallelism. On the scheme, you will see dashed lines indicating the start of a subprocess and dash-dot lines indicating its completion.