Choose your path Increase your proficiency with the Dynamics 365 applications that you already use and learn more about the apps that interest you. Up your game with a learning path tailored to today's Dynamics 365 masterminds and designed to prepare you for industry-recognized Microsoft certifications.
Visit Microsoft Learn
2020 release wave 1 Discover the latest updates and new features to Dynamics 365 planned through September 2020
Release overview guides and videos Release Plan | Preview 2020 Release Wave 1 Timeline
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Upcoming TechTalks
I want a setup where any one of the approvers in an approval group can approve a document instead of all of them, in a single level.
If you want to know the exact user who approved it, do the following:
You need to create a new 'userIDapproved' field in your base table.
You can create a new function in a codeunit with Event: Subscriber, EventPublisherObject: Codeunit Approvals Mgmt. and event function 'OnApproveApprovalRequest and add the following code to populate the new field created:
If BaseTable.userIDapproved<>'' then begin
BaseTable.userIDapproved := USERID;
So only the first user who approved the document will be reflected in the 'userIDapproved' field of your base table, after that it will not be modified.
So it will be populated with the user who approved the document at that time.
My answer was your question where even if one approver user approves the document, the document must be approved and must be reflected in the status of the document.
If you want to identify which user has approved your document, you will have to create a field 'Last modifed by' and assign it to USERID in the OnModify trigger of you record.
Thanks for the suggestion. Would it be possible to accomplish this without code?
If I added the "Approver ID" field to the table, could i use an "Apply the new values" response and set the "Approver ID" field to the value of the person who did the approval?
"Apply the new values" response will update the field every time a user approves it. It will not reflect only the first user who approved the document but update it every time. So a more preferrable way to get the result that you want to accomplish will be to do it using the coding approach that I suggested above.
Many thanks Tina. What if the user reopens the document to make further changes and then resubmits for approval?
In this instance, the previous approver should be cleared so that the new approver id is saved.
Welcome Royce. So on the OnModify() trigger of the base table, You can write code to make the 'userIDapproved' field blank which I suggested above that you should be creating in your base table.
Rec.userIDapproved := '';
Note: They are two single quotes which I have mentioned above.
So if the field becomes blank, it will again populate the field which the next approver with the code approach I have suggested above.
I am trying to configure it on NAV 2016 but it ain't work for me.
I followed your steps but after the first approval user accepted document is still pending for approval.
Did you find some another solutions?
There is a way, but only a one sequence level in each workflow.
If this has not been answered, know this is an old query, then let me know and will explain
One can be his/her approver...
It means when he/she clicks on Approve icon (in document) then it will self approve the document... No need to get approved from someone else...
You can do that.
Create your workflow from template.
You must do 2 modifications to do your requirements.
1. Delete event line: "An approval request is approved." with condition Pending Approvals: >0
2. Modify response "Create an approval request for the record using ....": Approver Type=Workflow User Group, Workflow User Group=<Your Workflow User Group Code>.
3. On member of Your Workflow User Group, Please LET "Sequence No." is same for all User ID members.
You can use workflow user group and enter your users in it.
Follow the below steps.
1. Set the Pending Approval to >1 and add response to it
2. on the next line, Increase Indent and set the condition to Pending approval: 1 and set the response to it as release.
3.On the next line, Decrease Indent and set the condition to Pending approval : 1 and set the response
This will approve the document even if one of the user approves it
Business Applications communities