How to specify which trigger event should be called from BPMN callActivity

From http://www.omg.org/spec/BPMN/2.0.2/PDF on page 238:

If a process is used as a global process (a called process that can be called from Call Activities of other processes), and there is multiple None Start events, then when a thread is transferred from the parent process to the global process, only one of the global processes Events start. The targetRef attribute of the Stream stream included in the Call Activity object can be extended to identify the corresponding start event.

How can I extend the targetRef attribute? Shouldn't it be a valid IDREF? Maybe they mean that the sequenceFlow element needs to be extended with a custom attribute?

Are there any examples of such an extension? Do existing BPMN tools support?

Here is a BPMN snippet that I manually edited to illustrate the question:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">
  <process id="p1" name="Process 1" isExecutable="false" processType="Private">
    <sequenceFlow id="startAflow" sourceRef="start" targetRef="A"/>
    <sequenceFlow id="callActivityFlow" sourceRef="A" targetRef=" !? WHAT_GOES_HERE ?! "/>
    <startEvent id="start" name="Start">
      <outgoing>startAflow</outgoing>
    </startEvent>
    <task id="A">
      <incoming>startAflow</incoming>
      <outgoing>callActivityFlow</outgoing>
    </task>
    <callActivity id="call" calledElement="p2">
      <incoming>callActivityFlow</incoming>
    </task>
  </process>
  <process id="p2" name="Process 2" isExecutable="false" processType="Private">
    <sequenceFlow id="start2Aflow" sourceRef="start1" targetRef="2A"/>
    <sequenceFlow id="start2Bflow" sourceRef="start2" targetRef="2B"/>
    <startEvent id="start1" name="Start">
      <outgoing>start2Aflow</outgoing>
    </startEvent>
    <task id="2A">
      <incoming>start2Aflow</incoming>
    </task>
    <startEvent id="start2" name="Start in middle of process">
      <outgoing>start2Bflow</outgoing>
    </startEvent>
    <task id="2B">
      <incoming>start2Bflow</incoming>
    </task>
  </process>
</definitions>
+4
source share
2 answers

We really discussed this issue within the camunda, but decided not to support it (status quo). We do not yet see the real need for this design in real life. This is quite complicated, and I do not consider it the best practice.

" proicess instancess camunda" , , - , . https://network.camunda.org/whitepaper/5

+5

, , , . BPMN , . , , , . , IDREF . , -, , , , , callActivity, ( ). , , . , . , BPMN.

+1

All Articles