Hello! @Expiscornovus you helped earlier with this flow. I am stuck yet again with a multi level approval flow I am working on.
I have a 3 level parallel branch approval that go to 3 different groups in my organization for approval based on the criteria. I'm having issues with the third option below (#3):
1. If less than $25k - route directly to Accounting (this condition flow works fine)
2. If greater than $25k - route to the Executive VP then based on approval route to Accounting (this condition flow works fine - but maybe I need to modify it to say "Greater than $25k, less than $100k?")
3. If greater than $100k - route to the Executive COO & VP; then based on approval route to Accounting (having issues with this condition flow. The approval of both the COO and VP are triggering; however, when approved it is not routing to Accounting)
I'm sure that I don't have the flow correctly set up. As of right now, this 3rd option should only trigger when the Project Budget Amount is greater or equal to $100k. It should then route to both the Executive VP and the Executive COO. I currently have these two flows in separate conditions. The approval emails trigger, but once approved it should route to Accounting and I am getting an error. Possibly because I cannot have two condition flows run at the same time and routed in the same way (???)
Ideally, I need 3 condition flows for my Project Budget Amount:
1. Less than $25k - send approval to Accounting
2. Greater or equal to $25k - send approval to Executive VP - once approved, send to Accounting (how do I prevent this condition from triggering when greater than $100k?)
3. Greater or equal to $100k - send approval to Executive VP and COO - once approved, send to Accounting (how do I add the Executive VP to this condition?)
The approvals are a linked...meaning, I want to capture the Responses for each approval and they are updated on the SharePoint list.
Please help!! Not sure what is the best way to account for this.
3 parallel branch conditions
Greater than $25k Exec VP condition approval routing
25k Exec VP approval leads to accounting approval routing
Greater than $100k Exec COO condition approval routing (pretty much same setup as 25k Exec VP)
$100k Exec COO approval accounting routing
Error I am getting when the above flow runs. Project Budget Amount was greater than 100k. Both the 25k & 100k condition flows ran. The approvals triggered fine. When it got to the accounting routing for each, the flow failed. Think it might be that I cannot have the same accounting routing run simultaneously under two separate conditions. What is the best way to get this to work?
BadRequest. The request failed. Error code: 'InvalidApprovalCreateRequestAssignedToMissing'. Error Message: 'Required field 'assignedTo' is missing or empty.'.
25k accounting routing fail
100k accounting routing fail
Solved! Go to Solution.
So the issue is with empty value of the AccountingApproval variable, i see that you are assigned value to the variable in switch case, for a specific flow run is the flow executing any of switch case and assigning value to the variable. Also I see you have added Compose action before the switch case, please add it after the switch case, exactly before approval action. Also it would be a good idea to assign a value in initialize variable, like some default value and see what happens.
@knandez05 , sorry for the confusion, please do following:
1. Select the checkbox for below shown conditions, then click on three dots beside the condition where you will see Make Group option click on that.
Select Or for the main condition and keep and for subconditions, as highlighted in below screenshot, also your final condition will look like below in terms of structure
@knandez05 in your expression a quote ( ' ) is missing after 'body/rc5fa423dceaf456393218ec3e3796cf1]. Please use below expression
if(empty(outputs('Get_item')?['body/rc5fa423dceaf456393218ec3e3796cf1']), 0, int(outputs('Get_item')?['body/rc5fa423dceaf456393218ec3e3796cf1']))
@knandez05 , so the error occurs in accounting approval action, and it looks like you are using variable in the assigned to property of accounting approval, does that variable have a value when this flow failed, from error it looks like the variable using in assigned to field of accounting approval has empty value that is why it is resulting into error.
Hello @annajhaveri
Thank you for your response. See below for breakdown of setup. Let me know if I'm not understanding or setting it up correctly.
Initialize variable for Accounting
Set variable for Accounting variable. Value = email
Accounting approval email set to variable
Thank you in advance for your help and attention to this.
@annajhaveri I would also like to use an expression for the Executive Approval 25k condition. It should trigger if the Project Budget Amount is greater or equal to 25,000 and less than 100,000. What expression can use in the Executive 25k condition value?
Can you add a compose action just before accounting approval action and assign it Accounting Approval variable value from Dynamic Content, just to make sure that variable has value or not?
You can use below expression, replace Amount with your variable name in the expression.
and(greaterOrEquals(variables('Amount'),25000),less(variables('Amount'),100000))
Use expression as below in condition
Thanks @annajhaveri
Seems as thought the expression worked great! However, now my 100k Accounting Approval condition is giving me an error. I have set it up in the same way as the 25k Accounting Approval Condition so not sure what is wrong. I have reset the variables and still getting the following error.
100k Accounting setup
Initialize Accounting Approval variable - type: String
100k accounting approval has Compose prior to triggering. Also, Set Variable is set to Accounting Approval. In the Accounting Approval email, Assigned to is set to the Accounting Variable.
Error:
BadRequest. The request failed. Error code: 'InvalidApprovalCreateRequestAssignedToMissing'. Error Message: 'Required field 'assignedTo' is missing or empty.'.
The compose section is empty.
Bad Request error so the 100k accounting approval is not triggering the approval email.
So the issue is with empty value of the AccountingApproval variable, i see that you are assigned value to the variable in switch case, for a specific flow run is the flow executing any of switch case and assigning value to the variable. Also I see you have added Compose action before the switch case, please add it after the switch case, exactly before approval action. Also it would be a good idea to assign a value in initialize variable, like some default value and see what happens.
Hi @annajhaveri I have used this same logic to account for 'Increase Budget on Existing Project ID' in my process and it does not seem to be working. I think it may have something to do with the way I have the Condition setup.
Basically, when a request is submitted, I am looking at the Type of Request. Is the request a 'New Project ID' or 'Increase Budget on Existing Project ID.'
If 'New Project ID,' the Project Budget Amount should trigger the condition
If 'Increase Budget on Existing Project ID,' the Budget Increase Amount should trigger the condition.
- Condition 1: 'New Project ID' or 'Increase Budget on Existing Project ID' is less than $25k - route to Accounting
- Condition 2: 'New Project ID' or 'Increase Budget on Existing Project ID' is greater than $25k and less than $100k - route to Executive VP
- Condition 3: 'New Project ID' or 'Increase Budget on Existing Project ID' is greater than $100k - route to Executive COO
I was able to get Condition 1 to work but then the flow failed when I tested Condition 2. This example is an Increase Budget for $60k.
Below is my setup for Condition 2: 'Increase Budget on Existing Project ID' is greater than $25k and less than $100k - it should route to the Executive VP.
The expressions I used for the New Project for Condition 2. The flow should trigger based on the Type of Request.
Type of Request = New Project ID
and(greaterOrEquals(variables('Project Budget Amount'),25000),less(variables('Project Budget Amount'),100000))
Type of Request = Increase Budget on Existing Project ID
and(greaterOrEquals(variables('Budget Increase Amount'),25000),less(variables('Budget Increase Amount'),100000))
My test of 'Increase Budget on Existing Project ID' with Budget Increase Amount of $60k did not process.
Any help is much appreciated. Thank you.
@knandez05 , please change the highlighed And in screenshot below to Or, to make the 25K condition working
@knandez05 , sorry for the confusion, please do following:
1. Select the checkbox for below shown conditions, then click on three dots beside the condition where you will see Make Group option click on that.
Select Or for the main condition and keep and for subconditions, as highlighted in below screenshot, also your final condition will look like below in terms of structure
Thank you @annajhaveri for all of your help! My approval flow is finally working! You are the absolute best!
Hi @annajhaveri Sorry to go back to this. I tested a New Project ID option and I got an error on the 'Set variable Budget Increase Amt.'
Below is the error.
Here is the setup for the variables set.
@knandez05 so i see that error is occurring in the Set variable Budget Increase Amt, can you please share the expression that you re using in the value?
Sure @annajhaveri . See below.
int(outputs('Get_response_details')?['body/rc5fa423dceaf456393218ec3e3796cf1'])
@knandez05 What will be value of outputs('Get_response_details')?['body/rc5fa423dceaf456393218ec3e3796cf1'], why are you converting it to Int?
@annajhaveri I need a way to identify the Type of Request. Is the request 'New Budget ID' or 'Increase Budget on Existing Project ID.'
If the request is 'New Budget ID' then we must look at 'Project Budget Amount.'
If the request is an 'Increase Budget on Existing Project ID,' we must look at the 'Budget Increase Amount' field.
Both fields will trigger a condition to respective approvers if 'Project Budget Amount' or 'Budget Increase Amount:'
- Condition 1: is less than $25k - route to Accounting
- Condition 2: is greater than $25k and less than $100k
- Condition 3: is greater than $100k
I have Initialize variables for both of these instances. And the Set variables follow.
Maybe I need to move the Set variables down to the conditions (before)?
@knandez05 understood your requirements, but the error that you are getting is because of mismatch of type of value, the value that you are convert to int in the Budget Increase Amt doesnt seems to be number or the format is different, that is why i asked you what is the actual value that you are trying to convert to int?
User | Count |
---|---|
95 | |
46 | |
21 | |
18 | |
16 |
User | Count |
---|---|
139 | |
50 | |
42 | |
39 | |
29 |