Modeling Business Rules in Decision Table
When modeling business rules, one of the ways of implementing rules is by using Decision Tables. Decision Tables are a compact way of presenting a particular rule’s conditions and actions in tabular form.
In the decision table below, we have organised the conditions, actions and name of the rule in columns. Each row represents a business rule. When a column in the table is empty, it means that condition (in the column) does not participate in the rule (in the row).
Let’s see how we can translate row number 8:
Rule R5: IF Is Car New is false AND Car Age < 6 THEN Auto Premium += 400
In a Decision Table, identifying a business rule conflict is not hard if it is a small table, or expression values are simple, but when these get complex, finding a business rule conflict is not that easy!
Business Rule Conflict
As you can see, we have introduced a new functionality in this update (v5.2). Now in a Decision Table, when validated, FlexRule Designer identifies any conflict of rules. In this example, three rule overlaps have been identified and if you look at the values closely, you will notice for example a ‘car age’ with value of ‘5’ will result from the execution of all these three rules: R5, R6 and R7 (i.e. row number #8 #9 #10).
Validate is now smart enough to find any conflict for values of all types:
- Simple: ‘Compact’, true, 23.5 …
- Partial: =46.3 …
- Range: [34; 67) or (3,45) …
- Multi (array): 3,56,’test value’, bool
To know more about the type of value expressions you can write in a decision table, please visit our wiki site at: http://wiki.flexrule.com/index.php?title=Expression#Decision_Table_Expressions
To find more details about Validation, please visit http://wiki.flexrule.com/index.php?title=Designer:Model_Validation