Conditional Task Assignment with Fork
pradeep.gulla Oct 25, 2009 10:00 AMIs it possible to assign conditional tasks with Fork node in JBPM.
As per my requirement, workflow should allow optional Parallel tasks and a mandatory sequential task.
But I'm getting some issues while conditionally assign tasks with fork.
Process definition:
<?xml version="1.0" encoding="UTF-8"?>
<process name="conditional_task" version="1" xmlns="http://jbpm.org/4.0/jpdl">
<start g="27,32,80,40">
<transition to="Validate Approval Seqence"/>
</start>
<!-- Checks which sequence to initiate ie., Either Parallel or Sequential -->
<decision expr="#{isOptionalTasksExists}" name="Validate Approval Seqence" g="257,31,80,40">
<transition name="true" to="Assign Parallel Tasks" g="-24,2"/>
<transition name="false" to="Sequential Task" g="564,54:-75,-21"/>
</decision>
<!-- Parallel Task Assignment -->
<fork name="Assign Parallel Tasks" g="258,139,80,40">
<transition to="validateFirstParallelTask"/>
<transition to="validateSecondParallelTask"/>
</fork>
<!-- Conditional Task Assignment -->
<decision name="validateFirstParallelTask" g="135,221,80,40">
<transition to="First Parallel Task">
<condition expr="#{firstParallelApprover != null}"/>
</transition>
</decision>
<task assignee="#{firstParallelApprover}" name="First Parallel Task" g="71,325,169,40">
<transition name="Approve" to="wait for other tasks" g="-45,-18"/>
</task>
<decision name="validateSecondParallelTask" g="384,221,80,40">
<transition to="Second Parallel Task">
<condition expr="#{secondParallelApprover != null}"/>
</transition>
</decision>
<task assignee="#{secondParallelApprover}" name="Second Parallel Task" g="308,324,204,40">
<transition name="Approve" to="wait for other tasks" g="-45,-18"/>
</task>
<join name="wait for other tasks" g="270,436,80,40">
<transition to="Sequential Task"/>
</join>
<!-- Sequential Task -->
<task assignee="#{sequentialApprover}" name="Sequential Task" g="494,437,147,40">
<transition name="Approve" to="Finish" g="-45,-18"/>
</task>
<end name="Finish" state="Completed" g="778,431,80,40"/>
</process>This definition forces me to supply either (2 Parallel and 1 Sequential) or (0 Parallel and 1 Sequential) approvers, but not 1 Parallel and 1 Sequential.
Thanks in Advance