This document discusses the challenges of configuring decisions inside workflows and benefits of externalizing decisions to a decision service.
Workflows are part of many enterprise applications. Workflow systems are used to manage and orchestrate long and short running business processes. A typical workflow consists of a start and end step, automated and manual steps and decision steps. A workflow usually has a “document” attached to it. For example, an insurance quote, claims request or a loan application.
A workflow is created for a document to perform a series of tasks. These tasks can be automated or manual. The automated steps invoke services to perform a specific task, for example, sending an email or updating a loan application. The manual steps hold the work items in a queue. Such work items are pulled manually by a user to perform an associated task manually and release the work item back to the workflow. Examples of manual tasks are calling back to the customer, reviewing loan application, etc. Manual tasks are shown in green color and automated tasks are shown in blue color in the sample workflow shown on the right.
The decision steps evaluate work item and route the work item in the workflow. A decision step may have multiple paths. Each decision step path has an associated condition. The condition is evaluated for the work item using document attributes. For example, in a loan application workflow, the decision step conditions could be – If the state code is not PA and the loan amount is less than $10,000, then route the loan application to auto approval route. Loan applications for the state of PA or loan amount greater than $10,000 must be reviewed manually. After reviewing, the loan application must be manually reviewed by a supervisor.
The decision step conditions are usually coded inside the workflow configuration. For the workflow system to evaluate the conditions, the condition attributes must also be configured as part of workflow configuration. The document values (loan amount and state code) must also be stored in the workflow system causing synchronization issues. Further, some document values are too complicated or too big to be stored in workflow systems. Changes in conditions require redeploying workflow configurations and may impact existing work items in the system. It is difficult to view complex decision steps conditions in workflow systems. As the decision step conditions’ complexity grows, it becomes more difficult to manage them. Complex workflows will have duplicate decision steps with similar or same branch conditions. This may result in inconsistent routing decisions. Decision table like metaphors are not available in workflow systems. In summary, workflow systems are suitable for managing workflow, but not for managing routing business rules.
The solution to the above issues is to invoke decision services from workflows for routing decisions and use the decision outcome to route the workflow. Business rules like state code and loan amount conditions need not be coded in the workflow configuration. Externalizing business rules to a decision service simplifies the workflow configuration and make them easy to understand. In the loan application example, an automated step “Determine Next Step” along with a decision step to route the workflow simplifies the implementation. The automated step is configured to invoke a service with the Document ID associated with the workflow. The service loads the document data in real time from the source of record and invokes a decision service. The decision service processes the document data to arrive at a routing decision. The routing decision is passed back to the workflow. The decision step routes the workflow as per the routing decision.
Workflow systems are suitable for managing workflow, but the complex decision steps conditions should not be configured inside workflows. Routing decisions should be externalized and maintained in decision management systems. This results in consistent routing rules. Managing such rules is easier in decision management systems.
Rulesmatix was founded in 2007 to provide decision and business process management consulting. Rulesmatix provides consulting on Sparkling Logic SMARTS ®, FICO Blaze Advisor ®, JBOSS Rules ® and IBM ODM ®. Rulesmatix has implemented decision and business process management solutions for clients in Health Care, Insurance, Finance, Government and Manufacturing industries. Rulesmatix has developed a lightweight fully functional workflow management framework for managing long and short running processes. Rulesmatix also offers testing framework to test web and decision services. For more information send an email to email@example.com or call (484) 686 6000.