BPM 2.0并行网关等待/独占网关新迭代

时间:2014-10-20 15:23:45

标签: parallel-processing gateway bpm bpmn bpms

Picture of the Problem

这是我的问题:必须单独检查fork之后的所有三个序列流,如果它们是否定的,我想要启动不同的进程P2。 P2完成后我想回到从P1开始的过程,我想在分叉后再次检查所有三个序列流。

也许一个例子有助于理解:我们假设C1& C2是正的,C3在第一次迭代中是负的,因此系统在合并网关处等待C3,而在过程P2之后开始另一次迭代。现在在第二次检查C1& C3为阳性,C2为阴性。这就是问题所在:独占网关将加入序列流,就像所有检查都是正数一样,即使C2在第二次迭代中是负数。我希望它只在所有检查在SAME迭代中为正时加入它们。

1 个答案:

答案 0 :(得分:2)

使用合并网关加入并行分支,然后仅使用一个专用网关检查条件。这更容易理解和维护,因为它使用更少的网关。

join branches


如果C1,C2和C3应尽快终止,您可以将三个分支提取到一个子过程中。如果一个分支失败,子进程会抛出一个信号,周围的进程会捕获它。

sub process


如果没有子流程,您需要为每个分支中的每个活动提供额外的专用网关和与合并网关的连接。如果C1,C2和C3不是简单的活动而是序列,那么这会很快加起来,但对于简单的工作流程来说可能没问题。

P2之后的合并网关可以防止竞争条件。例如,如果P2在C3之前完成,那么第二次迭代将在第一次结束之前开始。

(最后,在分支中的每个活动之后,您需要一个额外的并行网关来分割路径。)

without sub process