Designing a Controlled Purchase Approval Workflow in Microsoft Dynamics 365 Business Central
In a recent implementation, we were asked to redesign the purchase process for a client who needed tighter financial control. The requirement was not just about adding approvals. It was about enforcing structure, visibility, and responsibility at every stage of the purchase lifecycle.
The client wanted:
- a. Multi-level approvals
- b. Clear separation between compliance validation and financial authorization
- c. Controlled posting rights
- d. Visibility into the exact stage of the document
- e Restricted access to approval actions
To achieve this, we implemented a structured workflow in Microsoft Dynamics 365 Business Central, supported by document stage flags and user-based permission control.
The Core Challenge
Standard approval workflows can handle basic approval logic. However, they do not always provide:
- a. Clear stage identification
- b. Granular control over who can send or cancel approvals
- c. Proper segregation between compliance and financial approval
We needed a solution that was both technically controlled and functionally transparent.
Our Approach
We structured the solution around three pillars:
- Multi-level approval workflow
- Stage tracking using custom flags
- User-based action control through User Setup
1. Multi-Level Purchase Order Workflow
We divided the Purchase Order process into distinct stages:
- – Release Approval
- – Compliance Approval
- – Posting Approval
Each stage had a different approver and responsibility.
Roles configured:
- – Purchase Agent – TestUser1
- – Accountant – TestUser2
- – Managing Director – TestUser3
This ensured segregation of duties throughout the process.
2. Stage Identification Using Flags
One important improvement we implemented was the use of stage flags on the document.
We introduced boolean fields such as:
- – Compliance Approval Required
- – Compliance Approved
- – Posting Approval Required
- – Posting Approved
These flags helped us clearly identify:
- – Whether the document is in compliance stage
- – Whether it has moved to financial approval stage
- – Whether it is eligible for posting
Instead of relying only on the document Status (Open, Released, Pending Approval), we created logical control using these flags.
Why was this important?
Because standard document status alone cannot differentiate between:
- – A document waiting for compliance approval
- – A document waiting for posting approval
By using flags, we achieved:
- – Clear stage visibility
- – Controlled action enabling/disabling
- – Prevention of incorrect posting
The system logic checked these flags before allowing the Post action.
If the required flags were not set, posting was blocked.
3. Restricting Approval Actions via User Setup
Another major requirement was controlling who can:
- – Send approval request
- – Cancel approval request
- – Approve at specific stages
To implement this, we extended the User Setup configuration.
We added permission indicators such as:
- – Can Send Compliance Approval
- – Can Cancel Compliance Approval
- – Can Send Posting Approval
- – Can Cancel Posting Approval
In our page action logic, we validated User Setup before enabling the action.
If the logged-in user did not have the required permission flag, the action was either:
- – Disabled
or - – Blocked with validation error
This ensured that only authorized users could trigger workflow transitions.
For example:
- – Only TestUser2 could send Compliance Approval
- – Only TestUser1 could approve Compliance
- – Only TestUser1 could send Posting Approval
- – Only TestUser3 could approve Posting
This removed ambiguity and prevented unauthorized workflow manipulation.
Handling Rejections and Cancellations
We carefully handled rejection scenarios.
When a request was:
- – Cancelled by the sender
- – Rejected by the approver
We did not reset the document to Open status.
Instead:
- – The document remained Released
- – Stage flags were reset appropriately
- – The action became available again
This design prevented document inconsistency and ensured clean reprocessing.
Direct Purchase Invoice Workflow
For direct Purchase Invoices (without PO), we implemented the same structure:
- – Release Approval by Purchase Agent
- – Posting Approval by Managing Director
- – Stage tracking via flags
- – User-based action restriction
This ensured that direct invoices did not bypass financial control.
How This Resolved the Client’s Concerns
Before implementation, the client faced:
- – Unrestricted posting
- – Lack of stage visibility
- – Weak audit traceability
- – No control over who triggers approvals
After implementing:
- – Multi-stage approval
- – Document-level flags
- – User Setup-based permission control
The system now enforces:
- – Structured financial governance
- – Clear accountability
- – Clean workflow transitions
- – Controlled document posting
Most importantly, the solution aligned system behavior with real business hierarchy.
Key Takeaways
A strong approval workflow is not just about enabling the Approval feature in Business Central.
It requires:
- a. Logical stage tracking
- b. Controlled action access
- c. Proper exception handling
- d. Segregation of duties
- e. Technical enforcement of posting rules
By combining workflow configuration, document flags, and user-based permission validation, we created a robust and audit-ready purchase control mechanism.
Final Thoughts
When designing approval workflows, always think beyond basic approval entries. Consider:
- – What stage is the document in?
- – Who is allowed to move it forward?
- – What prevents unauthorized posting?
- – What happens after rejection?
A well-designed workflow does not slow down operations. It protects them.
If you are working on a similar purchase control requirement in Business Central, implementing stage flags along with User Setup-based access control can significantly strengthen your solution.
I hope you found this blog useful, and if you would like to discuss anything, you can reach out to us at transform@cloudfronts.com.