Hi. I created a flexi task action with 3 assignees. The tasks are all generated at the same time. I would like to be able to update a corresponding field on the list as each approver completes the task (Assignee 1 approved, Assignee 2 approved, Assignee 3 approved). I tried to create a For each task condition on the Approved branch, but the loop only seems to kick in after all 3 tasks as completed. Is there a way to run the logic as each task is completed as opposed to waiting until all tasks are completed?
how about adding a parallel action and 3 separate flexi task actions ? that way you can control what happens after a person rejects or approves. I believe all 3 assignments will happen at the same time
it would be helpful if you could describe how many approvals you need from your three assignees.
Depending on this you should configure the behaviour of your flexy task
Afterwards, once the flexi task has been finished and you got all your approvals, you can use the variable "All Approver comments" in a separate action to log the results of every person to see the approval outcome. The string you get from that variable looks somehow like this:
Approver 1 (Not Required) 3/5/2012 10:38 AM -
Approver 2 (Approve) 3/5/2012 10:38 AM -
Approver 3 (Not Required) 3/5/2012 10:38 AM -
If you really need to extract these to three different columns, which would be a very specific requirement, it becomes more tricky. In this case these links might be helpful.
Hope this helps a bit.
As you have pointed out the flexi-task action doesn’t complete until the responses have been received. So there are 2 options that I see you could go with.
1. Add a parallel action that runs next to the flexi-task. Create a loop to run at a specified time that queries for the tasks and checks to see if they have been completed, and if so updates your field. This one could get a little complicated though. You’d need to capture the ID’s of the tasks that have been created to query for. You’d also have to build in logic for the loop to stop, such as counting the number of completed tasks and checking if It matches the number of tasks created. Plus the updates would not be immediately when the task is completed, only when the query runs.
2. The second option would be to build a workflow on the task list where you are creating the flexi tasks. Set it to run conditionally when the outcome of the task is updated, then query for the corresponding item the task is related to and update the fields you have setup. I like this option better because the updates to your list would happen immediately when the task is updated, and you don’t have to worry about logic to stop the workflow as it is only triggered when a task is updated.
Thanks, Amol. I actually toyed with this idea. The only challenge I am seeing is how to capture all of the approver's comments since these are essentially 3 separate approval workflows. I need all approvers to approve so the moment one rejects, I need to send a rejection notification email with a consolidated comment from all approvers who have reviewed the submission. If all approvers end up approving, I will also need to send an approval email with all of the approvers comments. If there is only one flexi task action, I believe this is captured by the all approver comments variable. Do you have any suggestions on how I can achieve the consolidated approval history as well?
Thanks, Brendan. I like your second idea. So if put 3 assignees (i.e. business approver, finance approver, legal approver) the corresponding task list will have three tasks. However, how do I distinguish if the task completed is for business, finance or legal?
Couple ways I could think of. You could look up the profile information of the person who approved the task and look at their department to see where they are from. That depends on your company maintaining profile information and if the people approving the tasks are from a wide range of departments that could be difficult.
Another option would be if you know who all these approvers are going to be, then you create a list with the approvers name, and a column to indicate if they are from the business, finance or legal. Then you use that list to determine which area the approver is from.