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).

business-rule-conflict-decision-table2

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).

Business-rule-conflicts

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: https://resource.flexrule.com/knowledge-base/expression/#decision-table-expressions

To find more details about Validation, please visit https://resource.flexrule.com/knowledge-base/validating-a-document/

Last updated September 22nd, 2020 at 11:34 am, Published April 29th, 2015 at 11:34 am