Synchronising tasks finish-to-finish
pojomonkey Feb 15, 2008 12:17 PMI've got a process definition that forks in one branch of a prior fork and then the 3 execution paths eventually join back up through 2 consecutive joins:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="syncproblem"> <start-state name="start-state1"> <transition to="task-node1"></transition> </start-state> <task-node name="task-node1"> <transition to="fork1"></transition> </task-node> <fork name="fork1"> <transition to="task-node3"></transition> <transition to="task-node2" name="to task-node2"></transition> </fork> <task-node name="task-node2" async="true"> <transition to="join2"></transition> </task-node> <task-node name="task-node3"> <transition to="fork2"></transition> </task-node> <fork name="fork2" async="true"> <transition to="task-node4"></transition> <transition to="task-node5" name="to task-node5"></transition> </fork> <task-node name="task-node4" async="true"> <transition to="join1"></transition> </task-node> <task-node name="task-node5" async="true"> <transition to="task-node6"></transition> </task-node> <task-node name="task-node6" async="true"> <transition to="join1"></transition> </task-node> <join name="join1"> <transition to="join2"></transition> </join> <join name="join2"> <transition to="task-node7"></transition> </join> <task-node name="task-node7"> <transition to="end-state1"></transition> </task-node> <end-state name="end-state1"></end-state> </process-definition>
This all works fine, except that I actually want to make sure that task-node4 does not (cannot) end before task-node6 completes, and similarly, I want task-node2 to delay completion until task-node4 has completed.
The process defintion as shown works ok, and I do get up to 3 tasks in the task list of the jbpm-console, but I can then end any of them in any order, whereas I actually need them to sequence as described above.
Apart from an expression/script condition on the leaving transactions, is there a more elegant way to graph this?