238 ページのhttp://www.omg.org/spec/BPMN/2.0.2/PDFから:
プロセスがグローバル プロセス (他のプロセスの呼び出しアクティビティから呼び出すことができる呼び出し可能なプロセス) として使用され、複数の [なし] 開始イベントがある場合、フローが親プロセスからグローバル プロセスに転送されるときに、グローバル プロセスの開始イベントがトリガーされます。コール アクティビティ オブジェクトに着信するシーケンス フローの targetRef 属性を拡張して、適切な開始イベントを識別することができます。
targetRef 属性を拡張するにはどうすればよいでしょうか? 有効な IDREF である必要はありませんか? おそらく、sequenceFlow 要素をカスタム属性で拡張する必要があるということでしょうか?
そのような拡張の例はありますか? 既存の BPMN ツールはそれをサポートしていますか?
これは、質問を説明するために手動で編集した BPMN スニペットです。
<?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>