Workflow
Use BPMN 2.0 to define your business processes
With the Workflow module, end-users can define visually their business processes using Activities, Gateways and Events.
This module uses the excellent bpmn.js designer and is BPMN 2.0 compliant allowing you to define workflows with:
- Events: Define the start and end of a workflow.
- Activities: Tasks that humans or machines have to accomplish and take some amount of time.
- Gateways: Define decision points that determine the only path (exclusive) or multiple paths (inclusive or parallel) that will be taken in workflow in the next step.
- Lanes: Group certain activities that are executed by the same user or roles.
- Pools: Group lanes in units or organizations.
Also, the workflows allow some more advanced features like:
- Parallel workflows: Allowing two branches of the workflow to execute in parallel and then wait for both on a Parallel Join Gateway.
- Call Workflow and Decomposition: Allow workflow activities to call other workflows with the same main entity, a part of it, or multiple parts in parallel.
- Reject: Allows end-users to reject activities and bring them back to the previous activity.
- Jump: Allows to define exceptional jumps to alternative activities.
- Script tasks: Create activities that will be finalized by an automatic process and, in case of exception, retried using a custom retry strategy.
- Timeout: Define tasks that should be finalized in a certain amount of time, or will automatically jump to a defined activity.
Also, the workflow system provides a run-time case management story including:
- Notifications: Users will receive custom notifications of activities waiting for their attention. Making possible to keep track of work loads and productivity by user.
- Inbox: A production-oriented UI to prioritize and accomplish tasks, allowing adding remarks and/or tags for easy classification or cases.
- Case flow: Shows directly over the workflow design the different transitions of a particular case.
The workflow system is recommended for cases where flexibility of human-heavy process is required, but it adds some level of complexity that may not be worth for some applications or processes where more control is required.
It makes a lot of sense to use this module together with Dynamic module to define the main entity that will be process through the workflow.