..there, I said it! |
Approvals are a vital business control process, the most common area being around the approval for purchases and expenditure.
Dynamics 365 Business Central (D365BC) has a built-in approval workflow engine and can also tap into Power Automate Approvals.
Approvals via Power Automate have a few really great positives, but this post is not about those. Here I'd like share some tips on using BC's built-in approval engine for some complex scenarios.
For really complex approvals, Power Automate gets tricky quickly. While the build-in approval can scale stably in my experience.
To illustrate my view, here is a complex approval scenario that the BC engine handles fairly easily.
Multi-Approval Example & How-to
Business Requirements
- Level 1 - approval by PM up to £10k
- Level 2 - further approval by a named Senior Manager up to £50k
- Level 3 - further approval by a named Head of Team up to £100k
- Level 4 - further approval by a named Director up to £250k
- Level 5 - further approval by the CEO for over £250k
Workflow Solution
- Level 1 - the Project Manager are all created as Purchasers, so the PA who could be working across multiple projects can select the appropriate project manager, i.e., they drive the initial step by selecting who to send the document to.
- Level 2..5 - These will be managed with the standard Workflow User Groups, the department global dimension is used to help route the approvals.
- We will create 1 workflow per department using the "Send Another Approval" approach that I explain below.
Technical Setup
Muti-approval for the Admin department |
Line 1 - Initial Step
- Add record restriction
- Set document status Pending Approval
- Create an approval for the record using approver type Salesperson/Purchaser and approver limit type Direct Approver
- Send approval request for the record and create a notification
Line 2 - Level 1 Approval
- Remove record restriction
- Release the document
Line 3 - Level 2 Approval - Sending a further approval
..for example "Reopen the document" |
The Then Responses for line 3 that trigger the next approval for documents with an amount of 10,000.01..50,000 are as follows
- Approve the approval request for the record
- Reopen the document.
- Set document status to Pending Approval.
- Create an approval request for the record using approver type Workflow User Group and workflow user group code ADMIN-L2.
- Send approval request for the record and create a notification.
- Show message "Sent for Level 2 approval (10k-50k)".
- Next then "<The last Then Response of Line 1>"
- Handy: When setting up complex workflows, always include a simple message. Because when you are testing, it is super handy to know where things are routing. This is a huge help when debugging the config.
- Vital: The flux capacitor for multi-approval workflows is the use of the <(Optional) Select Next Step>. This is available from the last step of the Then responses. To make multi-approvals work you need to set the next step to the last Then response of line 1.
Click the last step, then click the link, which if not set shows as "<(Optional) Select Next Step>" |
This line is the 'Last Then Response' line of the 1st main workflow config line |
Lines 9 & 11 - Send to next approver or Release the Doc
Lines 9 and 11 |
- Send approval request for the record and create a notification.
- Show message "Sent for further approval".
- >Next then "<the last Then Response of line 1>"
- Remove record restriction.
- Release the document.
- Show message "Fully approved".
- Create a notification for <Sender>.
Other departments?
General workflow tips
Next time
Another complex approval requirement that D365 BC workflows can manage, fairly easily! |
What do you think?
Please let me know your thoughts in the comments
Connect or follow me on LinkedIn to get all my updates Andrew Wingate | LinkedIn