Skip to Content

Dynamic Assignment of rules in a Workflow task, multiple approvers

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,


Add a comment
10|10000 characters needed characters exceeded

Related questions

7 Answers

  • Best Answer
    Posted on Dec 04, 2014 at 09:29 PM

    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.

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 04, 2014 at 06:25 AM

    Hi Andy

    Why not Implement Deadline Monitoring with a Sub Workflow?

    1. In the main WF, call a sub workflow (the way we call a task), In Tab Miscellaneous, give the multiline tab containing the departments, say DEPARTMENTS_TAB (in binding from Main WF to Sub WF use &DEPARTMENTS_TAB[&_WF_PARFOREACH_INDEX&]& --> pass to a singe DEPARTMENT in Sub WF
    2. Create a Sub workflow which gets the agents of one department and sends decision item to all agents of that department (DEPARTMENT). The decision ends whenever any one approves/rejects
    3. Control comes back to the main workflow
    4. The main workflow waits till we have a decision from ALL departments whereas individual department need only one approval amongst many approvers.



    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 03, 2014 at 09:48 PM


    A 6-from-6 fork, does that not work?


    Rick Bakker

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 04, 2014 at 10:31 AM


    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

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 04, 2014 at 08:48 PM

    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.,


    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 05, 2014 at 02:24 PM

    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.


    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 05, 2014 at 10:16 PM

    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


    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.