Views:

Scenario Overview

In this scenario we will demonstrate how to set up a ClientSide Decision Table that you can use to generate an Audit Record ServerSide as well as carry out ClientSide actions.

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

Note: We will not detail step-by-step instructions here on how to set up Conditions or Actions, please read the above articles if you need detailed configuration steps.

For this sample we will are going trigger formulas on the Invoice if someone without the Sales Manager security role opens the form. 

We have created a simple custom entity called an Audit Access Log that we will use to store the unauthorized access attempts.

The Business Rules

If someone opens an Invoice record without the Sales Manager Security Role
  • Hide the Tabs on the Invoice
  • Display a warning message
  • Create an Audit Access Log record

N52 Formula Manager Solution

The Formula Manager solution works like this:

  • Decision Table of type 'ClientSide - Perform Action' is created on the Invoice entity
  • The Source Property is set to the 'OnLoad' event
  • The Event is set to 'Update'
  • Exit on First Match is turned On (checked)

The Decision Table

Note: By naming the Action columns as ClientSide the Decision Table understands that we want to execute a ClientSide formula here against the form rather than against a specific field. When we name a column as ServerSidethe Decision Table will execute that Action on the server instead of ClientSide. You can set the column name by right-clicking within the column to bring out the contextual menu, then select Set Action Column Options > Set ClientSide Action or Set ServerSide Action - see an example here.  

This Decision Table uses a Calculation to check if the user has the Sales Manager security role:

IsSalesManager

If(IsUserInSecurityRoles(WhoAmI(), 'Sales Manager'),
  true,
  false
  )




There is also a ServerSide Action to create the instance of the Audit Access Log record.

CreateAuditRecord

CreateRecord('new_auditaccesslog', 
             SetAttribute('new_name', 'Invoice Access - ' + UtcDateTime()),
             SetAttributeLookup('new_user', 'systemuser' , WhoAmI())

 )




Below is what a user without the Sales Manager Security Role will see:



The Audit Access Log record that was created when the user opened the Invoice


The Invoice when a user that has the Sales Manager security role opens the the Invoice 

Did you know?

North52 Helps with Complex Logic as Part of a Workflow / Power Automate Flow

The North52 Decision Suite provides functionality for you embed complex logic as part of a native Dynamics Process (Workflow/Action) or a Power Automate Flow.  

Imagine if you could do an elibility check with several hundred possible combinations as part of your workflow process? You can do this easily by combining North52's Process Genie functionality with a Decision Table.

Even something as mundane as returning the next working day for your workflow (surprisingly difficult to achieve without code) can be easily done with North52.

Learn more about Process Genie