Every time I demonstrate the built-in approval workflow in Business Central, I get the same question. How can I configure so that the first approver in a group approves all.
Creating a workflow for e.g. credit limit approval, it is possible to set up so that an approval request is sent to a Workflow User group.
Then it is possible to set up, if the approval request should be sent to one first then to the next and so on, until all have approved the request, or to send the request to all at the same time, but then the request is not approved until all have approved the request.
In the following we have created a Credit limit approval flow consisting of three employees:
In Business Central, we have created John, Susan, Pauline and Peter as users in the approval user setup:
And added Susan, Pauline and Peter to a workflow group called “Creditlimit”.
The workflow has been set up to:
- When a customer record is changed
- On condition of the Credit limit (LCY) is increased
Then (+) means that multiple actions will be executed
- Revert the value of the Credit Limit (LCY) field on the record and save the change
- Create an approval request for the record using approver type Workflow User Group and code “Creditlimit”.
- Send approval request(s) for the record and create a notification
- Show message “The customer credit limit change was sent for approval”
The approval requests will be sent according to the sequence in the approval workflow group, so here the requests will be sent one-by-one after each approval.
If the workflow sequence was set to one, the all the approval requests will be sent simultaneously to all approvers.
This is due to the remaining lines in the workflow:
a. If there are more approvers left, then send the approval request to the next approver
b. If there are no more approvers then approve the workflow
But I want the approvals sent to the whole group, but the first to approve will approve the whole workflow. However, I would then need to remove the rest of the approvals from the remaining group.
This can be done by applying three small changes:
- Remove the Condition “Pending Approvals: 0” from the “An approval request is approved” line
- Delete the line “Pending Approvals: > 0” from the “An approval request is approved” line
Now the workflow will be approved on the first approval, but all the other approval requests will remain. They need to be removed. This can be done in the “Apply the new values” response:
This does not seem to be the appropriate action, but it works 😊
Let’s check it:
First, I need to open four clients with different users. This is done with a special trick:
- – Right-Click on the Edge icon
- – Then hold the shift-key and right-click the Microsoft Edge icon at the bottom
- – Wait 5 seconds
- – Now click the “Run as a Different User” item
– Log in the other user credentials
Now the browser will start up in a separate session and it is possible to open the Business Central client with the new credentials:
So, John Smith has opened customer 10000 and wants to change the credit limit to 200.000. However, John does not have approval rights and the approval request is therefor sent for approval:
On the role center of all the workflow User Group, the Approval Request appears:
Pauline approves the request
Now the approval request has been approved and all other approval requests has been removed.
And the Credit limit at customer 10000 has been updated.
The Approvals windows shows the history but the actual approver is in the “Last Modified by” field.