Views:

Overview

A Decision Table represents a collection of related business rules with condition rows, rules, and actions presented in a tabular form that is easy to understand. Business users can review cells and their values at a glance and can use Decision Table rule building features by clicking icons and selecting values in the Decisions Table builder.

Decision Tables allow us to create and use business rules in an easy to understand format that provides an alternative to the IF/THEN rule format. The spreadsheet nature of a Decision Table ensures that business analysts, functional consultants, etc. who are familiar with spreadsheets find them easy to construct, read and modify.

The compressed nature of business rules presented in the form of decision table make them fast to understand, clean and readable. The simple visualization of a compact and structured table format aims to mimic real world business problems with many tables breaking down complex problems into simple steps.



Example of a Simple Decision Table to Calculate a Contacts eligibility for a Credit Card

Why use Decision Tables? 

Automating business processes using software such as Dynamics CRM has become a key return on investment (ROI) factor when conducting benefit analysis for new software deployments.    

Businesses today are trying to make use of all their resources so this means not relying solely of software developers for implementing business rules. When software can empower business analysts/functional consultants to work together with software developers this leads to CRM projects being delivered on time, to specification and within budget. We believe that Decision Tables enables a synergy between business analysts, functional consultants and software developers when delivering projects.

In addition, many organisations are experiencing an increasing burden to make software systems more responsive to business changes, so allowing trained business users to change business rules is becoming increasingly important.

What makes up a Decision Table?

Decision tables are rules composed of rows and columns. They are used to display in table form all possible situations that a business decision might encounter, and to specify which action to take in each of these situations. A decision table expresses sets of related conditions and actions in a spreadsheet like view. Each row is in effect a single rule in the table made up of many rules. Each column is the definition of a Condition or Action.

Decision tables are composed of rows and columns. As shown in the following table, each row corresponds to a single rule [4], with the columns defining the conditions [1] and actions [3] of the rules. The second row [2] of the table contains the column header, where we have the column names.

A condition is a test that must evaluate to true for the associated action to be executed. If a decision table rule uses multiple conditions, all conditions for a row must evaluate to true for the action to execute. Condition tests might be looking to match the exact value of a fields value, or might be comparing values against a greater than or less than value. In more complicated situations functions may be used for this comparison test so for example using a function ‘StartsWith’ to check does the first 4 characters of an input value match a certain string.

To help understand the make-up of a Decision Table, consider a set of IF/THEN rules that determine if a Contact is eligible for a Gold or Platinum credit card, and an equivalent Decision Table.

The IF/THEN rules follow:

if Contact.Category = {Preferred Customer} and Contact.Credit Limit > 2,000,000 
     then Contact.Credit Card Type = {Platinum}
if Contact.Category = {Standard Customer} and Contact.Credit Limit > 1,000,000 
     then Contact.Credit Card Type = {Gold}

Corresponding Decision Table

What happens when a Decision Table Executes?

When a Decision Table executes each row of the Decision Table is processed one by one. The Conditions are evaluated column by column from left-to-right in an ‘AND’ or  ‘OR’  fashion depending on the configuration. Then any Action commands associated with a row (i.e. whose conditions evaluate to true) are executed. 

Taking the decision table above,

For each row in the decision table, the Contact.Category column value is evaluated first followed by Contact.Credit Limit in an AND manner. If the conditions both equate to True then Contact.Credit Card Type is set to Gold or Platinum.