Greetings, We have created an IT change management solution that requires that members of the Change Advisory Board (CAB) all agree on an outcome before the next step in the workflow is executed.
For an Unplanned Request for Change (RFC), we have a Flexi-task that sends a task notification to the 7 members of the CAB asking them to review and either Approve or Reject. The next step in the workflow is to notify the deployment technician that the RFC has been approved and it's okay to proceed. We have the Flexi-task set to "All Must Agree On a Specific Outcome" (Approved). However, this requires that all CAB members are available to vote, which is often not the case.
Here are the requirements I wanted to get help with. We'll need help constructing the associated workflow:
The current workflow is attached. Any assistance is greatly appreciated.
Had a quick read through your requirements .. I guess things would have been simpler if you wanted only the majority to agree on a specific outcome, but I guess in your case even if one person rejects (even if only 4 has responded within 2 hrs) its still a No-Go correct i.e. any reject is a total reject.
One of the methods you could try is -
On the Flexi task - Please try configuring the following
1) Use All must agree on a specific outcome (Approved)
2) Store TaskIDs -> Create a collection variable to store all the taskID's for these tasks
3) Configure escalation -> Escalation type (Complete task) -> Put the Time to Escalate as 2 Hrs ->
Configure the Outcome (In Escalation) as "InComplete" (or anything else you like it to be)
After the Task ends (because of non response within the 2 hrs slot or someone rejecting it)
4) You could now Query List (Workflow Tasks) for each ID that was stored in taskID's collection and see if you have the required number of approvals (or if you had any incomplete - to rule out any rejected ones). Workflow tasks list has quite a few columns you could use and make your task a bit more rich.
Hope using these options could work for you?
Thanks for the speedy reply. Yes, if any CAB member Rejects then the RFC is rejected.
We will give your suggestion a try. However, we are neophytes with Nintex so we will have to figure out how to employ these workflow components.
Created the TaskIDs Collection variable and configured to store Task IDs in the TaskIDs Collection variable.
Not sure how to configure the Query List component. Can you provide some detail on that step?
Thanks for your help.
I am about to leave for the day but will quickly show you the steps you might require. For testing purposes you could put the details in the log file and check the result for troubleshooting.
The list in question is "Workflow tasks" where all the Nintex related workflow tasks are stored. (If you havent changed it in the configuration).
1) create a single text variable call it as txttaskId
2) Create a foreach loop and read it from the collection and store it inside the txttaskid variabale
3) Use the QueryList action and query the workflow tasks list and read the "outCome" of the task . You could then put your logic after processing these and then take the required action to either send it to the deployment technician or not.
Thanks, Shrini. I have created the For Each and Query list steps, as you described.
This raises a few more questions:
Again, we are very new to using Nintex. Thanks for your help.
replies to your question -
<Shrini> Ideally this should go after the FlexiTask and you might have to configure (or click) the "other" branch option in flexi task. Check Flexi task -> Advanced Option
The reason being in case the Task escalates (after 2 hrs) it will go under the "other branch". so you are better of putting your logic after the Assign Task function.
2) How are the votes queried and counted?
<Shrini> This depends on the configuration we have set. i.e "All must agree on a specific outcome"
In your case (which is a bit different and we cant achieve it straightforward out of the box) you will have to do additional computation.
Case 1) Some one rejects -> The Task will exit and go through the reject loop
Case 2) All of the approve -> The Task will go through your approval path (The image you shown above)
Case 3 ) Not all of them approve and after 2 hrs the task completes -> Will go through the other branch.
In the case 3 scenario you will have to query the workflow Tasks (as I shown above) and check if you have atleast 4 approvals.
3) How does the outcome trigger the Approve or Reject branch of the Flexi-task?
<Shrini> This should be answered in our question 2 above.
I believe instead of you creating a fully blown workflow (because you are new to Nintex) you could create a small workflow and test in parts to see if it achieves your desired outcome and then bundle them in the main parent workflow?
Let me know if it helps.