Alright guys,
I've been trying to figure this one out and had no luck.
Context:
I have a PowerApp where users submit a report (the data from which is uploaded to a Sharepoint list).
When a new list item is added - this triggers an approval flow to the managers.
I have a field in the list called "Branch" that is either East or West.
I want to assign the approval to manager Bob if Branch = East OR manager Ted if Branch = West.
Note that this is a chain approval, so once Bob/Ted approves it, it gets approved down the line by several others.
Issue:
Is there any way to implement a switch case within the "Assigned to" field of the approval process, or do I have to run parallel branches all the way down based off whether Branch = East/West? I would like to not have to replicate long approval chain branches (this is both tedious and leaves room for error).
**I have tried playing with the if statements/dynamic content in this field to no avail.
Documentation:
Here is an image that shows what is going on - notice how I have to put the switch case before, then replicate the parallel chains all the way down because of having to split into two seperate approvals. Is there anyway I can have a single approval in which the "assigned to" field can be either Bob or Ted based off of the Branch field of the sharepoint list?
Any help would be appreciated.
Solved! Go to Solution.
Hi @ITguy
I was trying some ideas for your scenario and this is what I was able to get. Hopefully this will either give you what you are looking for or get you close enough.
Below is a screenshot of the complete Flow. Please check it out and let me know if it works for you.
Regards,
Fausto Capellan, Jr
Hi @ITguy
I was trying some ideas for your scenario and this is what I was able to get. Hopefully this will either give you what you are looking for or get you close enough.
Below is a screenshot of the complete Flow. Please check it out and let me know if it works for you.
Regards,
Fausto Capellan, Jr
Hi @ITguy,
Could you please share a bit more about your SharePoint list?
Which date type of your Branch column in your SharePoint list?
Do you want to add a single "Start an approval" action within your flow?
I agree with @faustocapellanj's thought almost, you could also consider take a try with the following workaround:
if(equals(triggerBody()?['Branch']?['Value'],'East'),'Test1@xxxxxx.xxxxxxxxxxx.com','Test3@xxxxxx.xxxxxxxxxxx.com')
Note: The Branch column is a Choice type column in my SharePoint list and the value of it is East or West. The "Test1@xxxxxx.xxxxxxxxxxx.com" email address represents the email address of manager Bob, the "Test3@xxxxxx.xxxxxxxxxxx.com" email address represents the email address of manager Ted.
Image reference:
The flow works successfully as below:
Best regards,
Kris
Hi @v-xida-msft,
A different approach with less steps? I like it. Good job!
Regards,
Fausto Capellan, Jr
I ended up using your approach because it came first - it worked very well and I never thought to deliniate the variable in this manner...
This is much more efficent than what I was doing before - basically cut my process creation time in half.
As for your approach @v-xida-msft, I am going to try it on my next Flow and see which works better.
Thanks again to you both.
****For anybody referencing this in the future... you can use both approaches.
In the triggerBody, is that the display name of the column or the Field name?
Hi @Anonymous
That is the column name. You can see it is a dropdown since the expression has ['Value'] right after ['Branch'].
Regards,
Fausto Capellan, Jr
Hi @v-xida-msft,
This scenario is very similar to the case I have right now. I have already developed a mulit approval flow that is connected to a SharePoint list. Each approver so far is "hardcoded" as the assignee.
I have a new requirement now to add some simple logic that determines the correct approval assignee on one of the approval steps based on classification of the SharePoint list item. The classification is a mandatory field in the sharepoint list and can be Platform, Vehicle or Architecture. Depending on which is selected, a different Project Manager needs to be assigned as the approver.
The case in this thread talks only about two conditions, and to be honest I have not dabbled with the expressions in flow before and a little lost in the syntax. I have written the same logic in an excel formula as follows that works as I need, but need a little help is writing this using the correct syntax required using the expression in flow.
=IF(A2="Platform","test1@outlook.com",(IF(A2="Vehicle","test2@outlook.com","test3@outlook.com")))
where A2 = Classification Field
Your expression is shown as follows, but I am not sure what is triggerBody() and how you build the expression. Do you build using dynamic content or type in manually? The logic structure is the same as my excel formula, just need a little assistance.
if(equals(triggerBody()?['Branch']?['Value'],'East'),'Test1@xxxxxx.xxxxxxxxxxx.com','Test3@xxxxxx.xxxxxxxxxxx.com')
OK,
I have got this to work:-
if(equals(body('Set_Item_to_Review_and_capture_timestamp')?['Platform_x0020__x002f__x0020_Veh']?['Value'],'Platform'),'test1@outlook.com','test2@outlook.com')
But struggling to nest the second if(equals statement in the false logic state. With the error expression is invald.
I have used the following:
if(equals(body('Set_Item_to_Review_and_capture_timestamp')?['Platform_x0020__x002f__x0020_Veh']?['Value'],'Platform'),'test1@outlook.com,if(equals(body('Set_Item_to_Review_and_capture_timestamp')?['Platform_x0020__x002f__x0020_Veh']?['Value'],'Vehicle')'test2@outlook.com',test3@outlook.com')
I am sure its just a syntax thing, but can't find a solution. Thanks
Hi @AlanPilz
I haven't tried nested IF statements, but your expression is missing a comma before 'test2@outlook.com' and a parenthesis at the end to close the first IF statement. I updated the expression with the missing elements, so please check it out and compare.
if(equals(body('Set_Item_to_Review_and_capture_timestamp')?['Platform_x0020__x002f__x0020_Veh']?['Value'],'Platform'),'test1@outlook.com,if(equals(body('Set_Item_to_Review_and_capture_timestamp')?['Platform_x0020__x002f__x0020_Veh']?['Value'],'Vehicle'),'test2@outlook.com',test3@outlook.com'))
Regards,
Fausto Capellan, Jr
Thanks for the feedback. I tried your suggestion and still have the same issue.
I raised a service request with Microsoft on this particular issue after posting this, after a one hour skype meeting explaining my use case the support team came back yesterday and told me that it isn't possible to nest two if statements as I am trying. The only approach provided is to use switch cases and repeat all the follow on approvals and actions multiple times.
I will put this forward as an enhancement / idea and hope it gets votes!
Alan
Hi @AlanPilz
I was able to do a Nested IF Statement and here's how I tested it:
I created a Flow with a Manually trigger a flow trigger. I set the input name to Vehicle Type and set it as a dropdown list with the values: Platform, Vehicle, Other.
I then added a Data Operations - Compose and created the following expression:
if(equals(triggerBody()['text'],'Platform'),concat(triggerBody()['text'],' was selected'),if(equals(triggerBody()['text'],'Vehicle'),concat(triggerBody()['text'],' was selected'), concat(triggerBody()['text'],' was selected')))
Here's the expression breakdown:
First IF Statement and the value to check if it's equals to: if(equals(triggerBody()['text'],'Platform')
Value If True: concat(triggerBody()['text'],' was selected'),
Value If False: if(equals(triggerBody()['text'],'Vehicle'),concat(triggerBody()['text'],' was selected'), concat(triggerBody()['text'],' was selected')))
Of course, the second IF Statement contains it's own Value If True and Value If False. The screenshots below show the output after the successful run for each selected option in the dropdown menu:
Platform selected
Vehicle selected
Other selected
Please give that a shot and let me know.
Regards,
Fausto Capellan, Jr
it works
Join digitally, March 2โ4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!
Power Platform release plan for the 2021 release wave 1 describes all new features releasing from April through September 2021.
User | Count |
---|---|
89 | |
56 | |
39 | |
38 | |
35 |
User | Count |
---|---|
79 | |
65 | |
57 | |
52 | |
42 |