AnsweredAssumed Answered

Problems using parallel gateway together with exclusive gateway

Question asked by risto45 on May 20, 2013
Latest reply on May 22, 2013 by frederikheremans1
I have a process model where after exclusive gateway comes parallel gateway, but when parallel gateway is reached, process doesn't create tasks. Process is automatically ended. No errors are thrown. If I use ONLY parallel gateway or ONLY exclusive gateway, then everything works. But if both are used, then it doesn't work.

Does any one have an idea why such process definition doesn't work or what has to be changed?
Basically this is my process definition:

<startEvent id="theStart"/>

<sequenceFlow id="flow1" sourceRef="theStart" targetRef="task1" />

<userTask id="task1" name="Task 1">
   <extensionElements>
      <activiti:taskListener event="create" delegateExpression="${customTaskListener}" />
   </extensionElements>
</userTask>

<sequenceFlow id="flow2" sourceRef="task1" targetRef="exclusiveGw1" />

<exclusiveGateway id="exclusiveGw1" name="Exclusive Gateway 1" />

<sequenceFlow id="flow2" sourceRef="exclusiveGw1" targetRef="task2">
   <conditionExpression xsi:type="tFormalExpression">${isValid}</conditionExpression>
</sequenceFlow>

<sequenceFlow id="flow3" sourceRef="exclusiveGw1" targetRef="task3"/>

<userTask id="task2" name="Task 2">
   <extensionElements>
      <activiti:taskListener event="create" delegateExpression="${customTaskListener}" />
   </extensionElements>
</userTask>

<sequenceFlow id="flow4" sourceRef="task2" targetRef="fork" />

<serviceTask id="task3" name="Task 3" activiti:expression="#{myService.myMethod(param)}" />

<sequenceFlow id="flow5" sourceRef="task3" targetRef="fork" />

<parallelGateway id="fork" />
<sequenceFlow id="flow6" sourceRef="fork" targetRef="task4" />
<sequenceFlow id="flow7" sourceRef="fork" targetRef="waitTask" />

<userTask id="task4" name="Task 4">
   <extensionElements>
      <activiti:taskListener event="create" delegateExpression="${customTaskListener}" />
   </extensionElements>
</userTask>

<sequenceFlow id="flow8" sourceRef="task4" targetRef="join" />

<receiveTask id="waitTask" name="Wait task"/>

<sequenceFlow id="flow9" sourceRef="waitTask" targetRef="task5" />

<userTask id="task5" name="Task 5">
   <extensionElements>
      <activiti:taskListener event="create" delegateExpression="${customTaskListener}" />
   </extensionElements>
</userTask>

<sequenceFlow id="flow10" sourceRef="task5" targetRef="join" />

<parallelGateway id="join" />

<sequenceFlow id="flow11" sourceRef="join" targetRef="theEnd"/>

<endEvent id="theEnd" />


Rgs,
Risto

Outcomes