I have an approval process that is set up in state machine. There are three branches to the state machine. In the first branch there is a single flexitask with a single person approval.
In the second branch there are two flexitasks in parallel and each flexitask can have multiple people approving. Thus, I'm waiting for an all approve or a deny from each flexitask before changing the state and moving on in the workflow or returning back to the original state. The requirement in this second branch is to allow for parallel approval. If any one person on any of the flexitasks rejects then the approval must restart at the beginning. Once the first branch approver, approves again, then the approval process only needs to be re-approved by the flexitask branch that rejected.
I'm wondering how I can wait for both branches to complete their approval process before implementing the logic that will change to the correct state.
Thanks for your help
Solved! Go to Solution.
You should play with "run if" actions, + adding a variable to collect the actual approval State after each Task approval.
Then you put some "Run If" conditions whenever your status doesn't meet the correct value.
You just need to create the logic with this variable.
Would it work or I'm missing a point?
I don’t think a run-if would stop and wait. If the condition is not met, then the workflow would hop the run-if.
I’m toying with wait for item update and creating a field to update as soon as both responses are ready.
Hello Robert Sieloff -
Rather than creating two flexi tasks and running in parallel, why not create one task and how both groups assigned to it. Given that for both groups, all need to approve OR one reject, this can be consolidated down to one action. I would capture who rejected it (what group) and then once it circles back to the second level of approval, create a task for that group.
For this example, you would need 4 states:
First level of approval, second level (both groups), third level for group A, and third level for group B.
Hope this helps!
That is an excellent idea. One thing I hate is that in the flexiTask as soon as one person hits reject all others are abandoned. So all the other recipients then receive a please approve message and as soon as someone hits reject everyone that did not do anything yet gets a no reply needed message.
I went low tech to solve this issue. Instead of using state machine, like I would have liked, I used a loop, tracked the approves and set variables incase there was a reject. This allowed everyone the opportunity to reply before the loop kicked in and everything started again. All the tasks were in a 'run if' block statement that would only run if in the past the signatory rejected.