AnsweredAssumed Answered

Join multiple (non-interrupting/cancel activitiy=false) message boundary executions

Question asked by mreiterer on Apr 28, 2015
Latest reply on Apr 30, 2015 by martin.grofcik
Hi all,

how do i join multiple (non-interrupting/cancel activitiy=false) message boundary executions, which start an async, non-exclusive task?

Below is my process defintion file.

Thanks in advance.
Markus



<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
  <message id="startSubMessage" name="startSubMessage"></message>
  <message id="testMessage" name="testMessage"></message>
  <process id="test-boundary-parallel" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="receivetask1"></sequenceFlow>
    <scriptTask id="scripttask1" name="Script Task" scriptFormat="groovy" activiti:autoStoreVariables="false">
      <script>println "after join"
  </script>
    </scriptTask>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow3" sourceRef="scripttask1" targetRef="endevent1"></sequenceFlow>
    <receiveTask id="receivetask1" name="Receive Task"></receiveTask>
    <boundaryEvent id="boundarymessage1" name="Message" attachedToRef="receivetask1" cancelActivity="false">
      <messageEventDefinition messageRef="testMessage"></messageEventDefinition>
    </boundaryEvent>
    <serviceTask id="servicetask1" name="Service Task" activiti:async="true" activiti:exclusive="false" activiti:class="com.prepressdigital.genericcrud.activiti.TestTask"></serviceTask>
    <sequenceFlow id="flow12" sourceRef="boundarymessage1" targetRef="servicetask1"></sequenceFlow>
    <sequenceFlow id="flow16" sourceRef="receivetask1" targetRef="scripttask1"></sequenceFlow>
  </process>
  </definitions>

Outcomes