
In his recent post on LinkedIn one of the IBM ODM architects, Guilhem Molines, introduced some updates to Decision Composer, which provides you with a way to express business rules and decision tables via a diagram based on the Decision Modeling Notation (DMN) standard.
Along with some neat changes to the user interface, the update addresses three key areas:
- direct REST invocation
- predefined policies for what to do when more than one rule gets a “hit”
- improvements to the rule language
Direct REST invocation
Previously, to execute the decisions you authored in Decision Composer you needed to set up a business rule service, then create a ruleapp and deploy it to the service, which you called from your application, providing the appropriate credentials and so on.
Now it’s much simpler. In Decision Composer you generate a REST API (and your authentication), which you can invoke from your application or via the command line with a few lines of cURL (that Decision Composer generates for you).
Hit policies
This update of Decision Composer introduces the possibility for you to define how your model handles the case where more than one rule matches the input data.
For example, if a customer qualifies for more than one kind of discount — they spent over $100 ($10 off), they bought sports equipment ($5 off) and they live in one of the target areas for the latest marketing campaign ($15 off) — you can choose how to apply the rules:
- apply the rules in sequence (you can set the order too)
- just apply the first rule
- choose the smallest value
- choose the greatest value
In our example, you could apply the rules in sequence and give the customer a $15 discount, apply the first rule for a $10 discount, choose the smallest value for a $5 discount, or the greatest value for a $15 discount.
Language improvements
You can now use set decision to for assigning the decision of a node, which is clearer than setting the output with the name of the variable.
And you can write rules that have no conditions — that is, without the then part. For example, the decision logic for the Time Delay node could be “set decision to 30”; the output of this node is always 30.
The way you write rules has also been made easier with a “Smart” mode for menus that show candidate words based on your context.
Further reading
If you’d like to find out more: