lms*_*ant 4 jbpm bpmn activiti camunda ibm-bpm
从http://www.omg.org/spec/BPMN/2.0.2/PDF(第238页):
如果Process用作全局Process(可以从其他进程的Call Activities调用的可调用进程)并且有多个None Start Events,那么当flow从父进程转移到全局进程时,只有一个进程将触发全局流程的启动事件.可以扩展传递给Call Activity对象的Sequence Flow的targetRef属性,以识别适当的Start Event.
如何扩展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>
Run Code Online (Sandbox Code Playgroud)
我们实际上在camunda中讨论了这个问题 - 但决定不支持它(现状).到目前为止,我们还没有看到这种构造在真实生活中的真正需要.这是相当无聊的,我不认为这是最好的做法.
对于用例"将现有的proicess instancess从另一个工具迁移到camunda",我们使用另一个构造来启动特定状态的子进程,利用消息启动事件和调用活动的扩展 - 这似乎更容易理解,请参阅https:// network.camunda.org/whitepaper/5
干杯贝恩德
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |