Views:

Overview

North52's business rules engine for Microsoft Dynamics 365 is excellent for eligibility rules. In this scenario, we show how to quickly and easily extend an existing Decision Table to add in new Conditions and Actions as business requirements changes.

For this article it is assumed that you have at least basic familiarity with Decision Tables and/or have read the following articles:

We will extend the Credit Card Decision Table that was created in a previous article.

Additional Eligibility Rules

The following requirements must be added to the Decision Table:

Rule # Description
1

The customer must be over 18 to be eligible for a Credit Card

2

If the customer's Annual Income is over €200,000 then we want to trigger an existing workflow
to send them extra paperwork

Note: it is presumed that the workflow to be executed has already been configured and is called SendPaperwork 

Extending the Existing Decision Table

Adding the Age Condition

Open the existing Decision Table and right-click Operations > Toggle advanced mode to reveal the Global Calculations and Action sheets.

Change to the Calculations table by clicking on the Calculations tab at the base of the Decision Table.

In cell A2 we set the Calculation Name as Age (you can call this whatever you like, but make sure it is meaningful for someone reading the Decision Table).

The calculation formula is entered in cell B2

  • Click on the Functions tab
  • Expand the Date node
  • Click on the DateDiff() function  

This will put the DateDiff function template into cell B2:  

Click on cell B2 again and the function will display in the command editing bar:

  • Delete the 'fromdate' from the function until you are left with DateDiff( , 'todate', 'interval')
  • Place the cursor before the the comma, click on the Source tab, expand the Source node and select the Birthday field

This will place [contact.birthday] into the formula:

Repeat the procedure for the 'todate' and replace it with the function Utcdate() and finally replace 'interval' with 'y' 

This function will now return the age in years of the Primary Contact on the Account record.

To add this as a Condition on the Decision Table:

  • Click back to the Decision Table, by clicking the Decision Table tab at the bottom of the editor
  • Add a new Condition column if needed
  • Select the yellow cell (row 2) under Condition
  • Click on the Source tab on from the configuration pane
  • Expand the Calculations node and Age will be displayed (or whatever you named your calculation)
  • Click Age

Age should now appear in bold text for the Condition.

The requirement is that everyone must be over 18 before they can be eligible for the Platinum card.  We therefore enter >18 into cell A4 and then drag the value down to copy it to all the other cells in that column:

Adding the extra Action

Next, we need to add the requirement to send additional paperwork to customers if their Annual Income is greater than €200,000.

To do this we open the Actions table by clicking on the Actions tab at the base of the Decision Table. Similar to the Conditions table we will need to set an Action Name and an Action Value.

Again it is always a good idea to make your Action name meaningful to other people who may be reading your Decision Table.

We will use SendHighIncomePaperwork as the name in cell A2.

In cell B3 we will define the formula. This time we will use the ExecuteWorkflow() function to trigger an already existing workflow that will send the paperwork to the customer via email.

  • Click on the Functions tab on the configuration panel
  • Expand the Platform Operations node
  • Click on ExecuteWorkflow and the function template will be copied to cell B2:

  • Delete 'workflowname' from B2 
  • Click on the Source tab, expand the Processes node, and then the Workflows sub-node
  • Click on the name of the required workflow to add it to the function:

  • Next delete 'recordid
  • Replace it with [contact.contactid] by expanding the Source node and clicking on Contact:

To add this as a Action on the Decision Table:

  • Click back to the Decision Table, by clicking the DecisionTable tab at the bottom of the editor
  • Add a new Action column
  • Select cell F13
  • Click on the Source tab on the configuration pane
  • Expand the Actions node and SendHighIncomePaperwork will be displayed (or whatever you named your Action)
  • Click SendHighIncomePaperwork which will be copied to cell F13 

The requirement was to send the additional paperwork to all customers who qualify for the Platinum Credit Card if their Annual Income is over €200,000 so we can drag down to copy the {SendHighIncomePaperwork} value into cells F14 and F15:

The Decision Table has now been extended to make sure the customers are over 18 years of age and to send the additional paperwork to customers with an annual income over €200,000.

Note: for this Decision Table Exit on First Match is enabled.

Did you know?

xCache helps you manage environment specific configuration

North52's Decision Suite component xCache allows you to set up environment specific data to allow you to use different values for different instances. Your advanced business rules logic could be the same, however you need to use specific reference values for a particular instance.

For example, credentials for a web service used in your Formula - you will likely use different keys/URLs for your Dev, Test and Production instances. Store these in xCache and let the North52 business rules engine apply the correct ones at runtime! 

Learn more and see examples of xCache