# Example 1

• Updated

Creating a decision table from the logic of a matrix or company document is another excellent way to use this type of rule construct within your rule application. Scenario:

Financial institution “ABC Lending” is using a mortgage matrix to determine if a home mortgage loan would be approved or denied, based on data points from a borrower(s) loan application (loan amount, credit score, income, etc).

Problem:

The lending guideline matrix that represents the business logic contains a number of different combinations of expressions that need to be evaluated to arrive at a certain decision. The combinations of expressions are derived from evaluating several different fields for numerous different values. If each row of the matrix was evaluated using syntax or language rules, it would result in series of expressions joined by AND or OR statements as depicted in figure 2. Adding another row of the matrix to this rule would increase the complexity of the rule resulting in maintenance and validation difficulties.

Solution:

Using a decision table, each column in the original business logic matrix can be mapped as a similar column in the rule application. Each unique cell value in all rows of the original matrix are added as condition or action values for the corresponding columns in the decision tables. Finally, after building condition and action columns and their values, the rows of the original matrix can be recreated in the decision table. The end result is an exact match of the original business logic table in one InRule rule authoring construct. Changes or additions to the business logic over time are easily made to the decision table control by business users.

Example:

This rule was authored using the business language editor from the first row in the mortgage matrix; the result is a rule with many nested-IF statements and associated actions. Figure 2

Using the same logic and creating a decision table as pictured in figure 3, you would have eight (8) conditions and one (1) associated action. Figure 3

0 out of 0 found this helpful

<% if (previousArticle || nextArticle) { %>
<% if (previousArticle) { %>
<% if (previousTitle) { %>

#### <%= previousTitle %>

<% } %> <%= previousArticle.title %>
<% } %> <% if (nextArticle) { %>
<% if (nextTitle) { %>

#### <%= nextTitle %>

<% } %> <%= nextArticle.title %>
<% } %>
<% } %>
<% if (items.length > 1) { %>

<% items.forEach(function(item) { %>
1. <%= item.name %> <%= partial('partial-table-of-contents', { items: item.children, partial: partial }) %>
2. <% }); %>
<% } %>
<% if (items.length) { %>
<% items.forEach(function(item) { %>
1. <%= item.name %> <%= partial('partial-table-of-contents', { items: item.children, partial: partial }) %>
2. <% }); %>
<% } %>
<% if (children.length) { %>
<% children.forEach(function(child, index) { %>
<%= child.innerHTML %>
<% }); %>
<% } %>