Hi everyone,
Could you please help with dynamic rule assignment and multiple group Approvers . I have a requirement as follows: I have done most of the work but struck with the approval and agent assignment.
A work item is to be sent to different departments (6 in total), each group has several approvers but only one approval is required ie the first agent who approves wins. The workflow will be deemed as approved if atleast one approval from each department is received. Ie I need 6 approvals , one from each department. There are different rules with responsibilities for each department (why? Because of authorisations, department wants to maintain their own).
I have modelled this using fork and parallel processing, I have a method which reads the various rules and returns a list of agents. I am able to send the work item to all departments however I am stuck with the split, how can I split the agents into departments and wait for the approval? How can I ensure that only one approval per group is fine? I am processing a block with profach but in this case it is not helping.
Dynamic assignment of rules in the task is not possible as when i select rule the system expects a constant value.
Your suggestions will greatly appreciated.
Thank you,
kind regards,
Andy
Hi Rick,
But that is not happening, the main workflow is moving on to the next step before the fork completes. I guess thats because the other workflow is not a sub workflow within the main. I have created it seprately, I pass it the necessary values from the main workflow to trigger it . I have a task which calls and triggers this workflow. However I am not able to pass back a container value which I could use in a wait step.
Your idea is correct but the workflow is not behaving like that.
Hi Andy
Why not Implement Deadline Monitoring with a Sub Workflow?
Regards,
Modak
Hello,
A 6-from-6 fork, does that not work?
regards
Rick Bakker
Hi,
The solution is a combination of subflows started with a multiline element in a 1:2 fork. In the second fork you wait for an event. This event should be triggered in the subflow whenever someone has accepted/rejected the decision. That way you can control sending approval to X approvers where only 1 approval is needed.
The above solution can be altered to cater for the requirment X amount of approvers with X amount approvals needed for next step OR only 1 rejection for next step.
Kind regards, Rob Dielemans
Hi Guys,
Thank you for the replies,i have combined all your ideas and ended up with two workflows, one main and a secondary workflow processing the departments within a fork of 6. I trigger this workflow within the main workflow within one task. Once the depatments workflow is complet ie all departments have approved control goes back to main workflow.
However this is where I am stuck. In the main workflow, I am not able to wait for processing to complete in the other workflow (departments) . I am failing to put a condition which should say wait until after departments processing is complete. Basically I cannot pass container values between workflow. Do you know how can this be done within the workflow without an external program?
I could set a variable to completed once the fork is complete, then write a program which reads that and update the other workflow but that is outside best practice as we are not supposed to update workflow containers externally.
Your help will be greatly appreciated.
Thank you.,
Andy
Hi Andy,
If I understand the requirement, you need to send the approval item to 6 departments and all 6 department must action the approval in order to complete the workflow. Right? If this is the case, just create the parallel processing (PP) as you have done already. But, use the department as the mulitline element for the PP (block type ParForEach). This way the PP will create as many branches as required, in your case 6. It is in fact an easy way if you distribute the approval items based on the department and not based on the agents. In the decision task, you can implement the agent determination rule as per your requirement. It has the advantage that you can do agent re-determination, if required.
I hope that helps.
Shahram
Many thanks guys, this one is now resolved. I called the subworkflow directly and not through a method and all is well.
Many thanks indeed, all suggestions were right sadly i can only mark one as correct.
Thank you guys
Andy
Add a comment