cancel
Showing results for 
Search instead for 
Did you mean: 

Multi-Instance Service Task Parallel Execution

amareshkulkarni
Champ in-the-making
Champ in-the-making
For some reason, even after setting the <multiInstanceLoopCharacteristics isSequential="false">, the service task is executing in serial mode.

Below is my process definition. Not sure if this is a bug:

<process name="testProcess" id="testProcess" isExecutable="false">
      <startEvent id="testStart" name="Start Of Business Process" />
      <sequenceFlow id="testactiviti1" sourceRef="testStart"
         targetRef="testactivitiimpl1" />
      <serviceTask id="testactivitiimpl1"
         name="testactivitiimpl1"
         activiti:class="com.cnsi.semhie.junit.testcases.TestActiviti1" />
      <sequenceFlow sourceRef="testactivitiimpl1" targetRef="test_activiti_connector">
      </sequenceFlow>
      <serviceTask id="test_activiti_connector" name="test_activiti_connector"
         activiti:class="com.cnsi.semhie.junit.testcases.Tester" />
      <sequenceFlow sourceRef="test_activiti_connector" targetRef="testactiviti2">
      </sequenceFlow>
      <!–userTask id="useractiviti1" name="Waiting For Query For Documents Request">
         <documentation>Waiting for the query for documents request </documentation>
         <potentialOwner> <resourceAssignmentExpression> <formalExpression>ExternalGateway</formalExpression>
         </resourceAssignmentExpression> </potentialOwner> </userTask > <sequenceFlow
         sourceRef="useractiviti1" targetRef="testactiviti2" / –>
      <serviceTask id="testactiviti2" name="testactiviti2"
         activiti:class="com.cnsi.semhie.junit.testcases.TestActiviti2">
         <multiInstanceLoopCharacteristics
            isSequential="false" activiti:collection="${nodes}"
            activiti:elementVariable="node">
         </multiInstanceLoopCharacteristics>
      </serviceTask>
      <sequenceFlow sourceRef="testactiviti2" targetRef="testEnd" />
      <endEvent id="testEnd" name="End Of Business Process" />
   </process>
   <process name="testsubProcess" id="testsubProcess"
      isExecutable="false">
   </process>
2 REPLIES 2

trademak
Star Contributor
Star Contributor
Hi,

This works similar as the parallel gateway. So the service task for which you defined the multi instance config are still executed in sequence.
If you have user tasks or other wait state tasks, for example in a sub process with multi instance config, the sequential attribute does actually mean something.

Best regards,

amareshkulkarni
Champ in-the-making
Champ in-the-making
Thank you very much. That helps.