A Workflow is not just any Flow!
We have talked about Flow orchestration in previous posts. This is an approach to automates various steps of a process flow using different activities i.e. Database call, Decision Table execution, Decision Requirement Diagram, and etc. A Flow puts all of these steps together to implement a fully automated scenario. This type of flow is given different names based on its context: activity flow, rule flow, decision flow, data flow, or simply flow, but none of these are necessarily a Workflow. We get asked a lot:
So what is a Workflow then? How is it different from other types of flows?
A Workflow is a special type of Flow that orchestrates the interaction between people and software systems. The Workflow engine must be able to continue running a process for a long time (i.e. until it is completed). It may span a couple of days, or even months or years! This is called a long-running business transition or process.
A Workflow defines the timing of (when) an actor (who) can be involved to take care of a task (what) using a tool (how) by providing necessary information to the actor.
Each node that involves the actor (human or system) can be modeled as a Task. These tasks may be automated (computerized) or not!
Let me give you an example. As part of a product offering, when customers sign a contract, then we have to post them back the counter signed version of the contract. In this process, someone should go to the post office and post the signed physical contract. This is an example of a non-computerized task. But workflow must be able to handle these types of tasks as well as computerized ones (e.g., retrieving customer information from the company’s CRM system and sending them an email).
Other types of task is when engine at some stage waits until it receives an incoming message from an external source. For example, it may wait until a specific email comes to the inbox of a user. Workflow responds by automatically sending a welcome email and then waits until the user completes his or her profile, at which point the workflow will be completed. If the user doesn’t complete the profile in two days, the workflow engine sends reminder emails until this task is completed.
FlexRule Workflow enables handling of these complex and rich interactions using:
1. Receive Tasks: waiting for an event to occur
2. Human Tasks: asking a user to take care of a work (this will be introduced in v7 of FlexRule)
3. Timeout: will be activated after a certain amount of time.
Workflow enables complex interaction of human or external systems interaction (i.e., an actor) on a process that might take a long time to complete. A workflow manages when an actor needs to take an action in order to complete a task by defining the specifics of the task and the required outcomes.
We will discuss each of these nodes in more detail later.