This afternoon’s first demo session shifts the focus to decision management and DMN.
Decision Modeling Service – Alvin To, Oracle
Oracle Process Cloud as an alternative to their Business Rules, implementing the DMN standard and the FEEL expression language. Exposes decisions as services that can be called from a BPMN process. Create a space (container) to contain all related decision models, then create a DMN decision model in that space. Create test data records in the space, which will be deleted before final deployment. Define decisions using expressions, decision tables, if-then-else constructs and functions. Demo example was a loyalty program, where discounts and points accumulation were decided based on program tier and customer age. The decisions can be manually executed using the test data, and the rules changed and saved to immediately change the decision logic. A second demo example was an order approval decision, where an order number could be fed into the decision and an approval decision returned, including looping through all of the line items in the order and making decisions at that level as well as an overall decision based on the subdecisions. Once created, expose the decisions or subdecisions as services to be called from external systems, such as a step in a BPMN model (or presumably any other application). Good way to introduce standard DMN decision modeling into any application without having an on-premise decision management system.
Dynamic Decision Models: Activation/Deactivation of Business Rules in Real Time – Jacob Feldman, OpenRules
What-If Analyzer for decision modeling, for optimization, to show conflicts between rules, and to enable/disable rules dynamically. Interface shows glossary of decision variables, and a list of business rules with a checkbox to activate/deactivate each. Deactivating rules using the checkboxes updates the values of the decision results to find a desired solution, and can find minimum and maximum values for specified decision variables that will still yield the same decision result. The demo example was a loan approval calculation, where several rules were disabled in order to have the decision result of “approved”, then a maximum value generated for accumulated debt that would still give an “approved” result. Second example was how to build a good burger, optimizing cost for specific health and taste standards by selecting different rules and optimizing the resulting sets of decision variables. Third example was a scheduling problem, optimizing activities when building a house in order to maintain precedence and resulting in the earliest possible move-in date, working within budget and schedule constraints. Interesting analysis tool for gaining a deep understanding of how your rules/decisions interact, far beyond what can be done using decision tables, especially for goal-seeking optimization problems. All open source.
The Dirty Secrete in Process and Decision Management: Integration is Difficult – LarryGoldberg, Sapiens DECISION
Data virtualization to create in-memory logical units of data related to specific business entities. Demo started with a decision model for an insurance policy renewal, with input variables included for each decision and subdecision. Acquiring the data for those input variables can require a great deal of import/export and mapping from source systems containing that data; their InfoHub creates the data model and allows setup of the integration with external sources by connecting data sources and defining mapping and transformation between source and destination data fields. When deployed to the InfoHub server, web service interfaces are created to allow calling from any application; at runtime, InfoHub ensures that the logical unit of data required for a decision is maintained in memory to improve performance and reduce implementation complexity of the calling application. There are various synchronization strategies to update their logical units when the source data changes — effectively, a really smart caching scheme that syncronizes only the data that is required for decisions.