Scenario Overview
Using the North52 business rules engine for Microsoft Dynamics 365 we show how to enforce validation rules whenever an Account is being updated or created.
Validation Rules
| Rule # | Description | 
|---|---|
| 1 | 
			 Whenever the Account is a Preferred Customer or whenever the Credit Limit is greater than 100,000, display a validation message if the Address fields have not been filled in.  | 
		
This can be done easily by making a Decision Table that triggers when an Account is created or when an Account's Address fields are changed.
North52 Decision Suite Solution
The North52 Decision Suite solution works like this:
- A Formula of type Validation for the Account entity
	
- Each time an Account is created, the Formula triggers
 - Also, whenever any of  following address fields are changed the formula triggers: 
		
- Category, Credit Limit,Street 1, Street 2, Street 3, State/Province, Zip/Postal Code, City
 
 - The Formula will check to see if the Account is a Preferred Customer or if the Credit Limit is greater than 100,000
		
- If either of those conditions are met, the Decision Table will then check if the Address fields contain data
			
- A error message will show and display all Address fields that do not contain data
 
 
 - If either of those conditions are met, the Decision Table will then check if the Address fields contain data
			
 
 
North52 Decision Suite Steps
- Create a new Formula, setting the following values in the Formula Guide
	
- Source Entity set to Account
 - Set Formula Type to Validation 
		
- Note that choosing this type will change Deployment Settings > Pipeline Stage to Pre-Validation (Synchronous)
 
 - Select the Decision Table editor
 
 - Change the Name of the formula to Account Conditional Address Validation
 - Expand the Source & Target section
	
- Control-click to multi-select the following fields: Category, Credit Limit, Address 1: Street 1, Address 1: Street 2, Address 1: Street 3, Address 1: City, Address 1: State/Province, Address 1: ZIP/Postal Code
 
 - Click Save
 - Highlight columns B to I
 - Right-click and select Insert > Insert Condition
	
- This will insert Condition columns for all the selected columns
		
- Note if you have a North52 BPA version less than 562 you will need to manually add the columns one by one
 
 
 - This will insert Condition columns for all the selected columns
		
 - Select column I, then right-click and select Insert > Insert SetVarConcat Calculation (*-)
 - Replace SetName with ValidationFields
 - Right-click the sheet Hit Policy > Exit this Decision Table on First Match and uncheck the checkbox
 - Select column J, then right-click and select Insert > Insert Inline Calculation (==)
 - Replace SetName with FinalValidationMessage
 - Right click and select Operations > Toggle Advanced Mode
 - In cell I3, paste ContainsData(GetVar('ValidationFields'))
 - Select cell A2
	
- Go to the Source tab and and expand Source
 - Find and click Category (Value)
 
 - Select cell A4 
	
- Go back to the Source tab and expand Category (Value)
 - Click on Preferred Customer
 
 - Select cell B2
	
- Go back to the Source tab, find and click Credit Limit
 
 - In cell B4 and type >100000
 - Select columns A and B
	
- Right-click and select Set Condition Column Options > Condition-Or
 
 - Select cell C2
	
- Go to the Source tab and click on Address 1 : Street 1
 
 - Select cell C4 and then go to the Functions tab
	
- Search for doesnot and ctrl+click the DoesNotContainData function
 
 - Select cell I4 and type 'Required Field: Address1 Street1' including the quotes
 - Repeat this for each address field in columns D, E , F, G and H like the image above
 - In cell I10, paste TRUE
 - Click Save
 
The Decision table will now check
- If Category is set to Preferred Customer OR if the Credit Limit is greater than 100000
 - If any of Address fields are empty
 
Whenever these conditions are met, the FinalValidationMessage is updated with the relevant message and an error message will be shown to the user.
		
 

