Use Decision Builder with Flow Designer to pick Approvers

Community Alums
Not applicable

Hello ServiceNow friends,

I'm trying to utilize a decision table to pick out up-to 5 approvers. There are potentially 50+ approvers across 50+ conditions. Some approvers repeat across the conditions. Some conditions are repeated to accommodate multiple approvers. Execution is set: "Run all decisions that match".

I can see that the decision table record results are grabbing my 5 approvers, but when I try to use a 'for each' logic in flow designer to parse out approvals, it only generates 1 approval record, and the other 4 are never generated, even after I approve the 1st record, no other approvals get generated. I would like these approvals to be generated all at once, and then only require 1 approver to approve in order to move it to approved. 

Is there a way I can get it to generate all the approvals at once without grouping the users into a group and then using a group approval process? The grouping method would require more work to accomplish, but I was able to get this way to work the way I wanted. 

1 ACCEPTED SOLUTION

Muralidharan BS
Mega Sage
Mega Sage

Hi Dustin Taber,

Yes, there is an option for that, you have to use the flow variable for that. 

And before trying, I tried the for each as you did and requested for approval, the approval is triggered one by one for me, which means after the first user approved the second approval is triggered. If this is the end behaviour you need then debug your flow. 

If you would like to trigger all approvals at one and make any one approve it, then try this. 

1. create a flow variable with string type,

2. add the sysid to the flow variable in the for loop. 

3. ask an approval outside the for loop and use return statement instead of data picker.

My decision table

find_real_file.png

Assign the sysid of the user to the flow variable

flow variable = flow variable + result record's user's sysid

find_real_file.png

Ask for approval 

find_real_file.png

result

find_real_file.png

 

 

View solution in original post

8 REPLIES 8

Muralidharan BS
Mega Sage
Mega Sage

Hi Dustin Taber,

Yes, there is an option for that, you have to use the flow variable for that. 

And before trying, I tried the for each as you did and requested for approval, the approval is triggered one by one for me, which means after the first user approved the second approval is triggered. If this is the end behaviour you need then debug your flow. 

If you would like to trigger all approvals at one and make any one approve it, then try this. 

1. create a flow variable with string type,

2. add the sysid to the flow variable in the for loop. 

3. ask an approval outside the for loop and use return statement instead of data picker.

My decision table

find_real_file.png

Assign the sysid of the user to the flow variable

flow variable = flow variable + result record's user's sysid

find_real_file.png

Ask for approval 

find_real_file.png

result

find_real_file.png

 

 

@Muralidharan BS thank you very much for this tutorial! Unfortunately, when I test the flow this aks for approval action is completed instead of being in state waiting. Do you have any ideas what could be wrong? I really need to wait till all approvals are processed here (approved or rejected) and only then the flow can continue.

If you are using script to populate the approvals then make sure the formatting is correct - ApprovesAnyU['sysidofapprover']. if the sysidofapprover is empty or if the formatting is incorrect then the approvals will not trigger as expected

 

Hey Muralidharan,

 

I've created a decision builder also for a requirement that will produce multiple approvals/decisions that match. I'm not using Flow Designer yet and was wondering is there a way to add the decision builder in Workflow Editor? Any help will be appreciated.