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

Parallel processing BPM 2.0并行网关等待/独占网关新迭代,parallel-processing,gateway,bpmn,business-process-management,Parallel Processing,Gateway,Bpmn,Business Process Management,这是我的问题:fork之后的所有三个序列流都必须单独检查,如果它们是负数,我希望启动一个不同的进程P2。在P2完成之后,我想回到从P1开始的过程,我想在分叉之后再次检查所有三个序列流 也许有一个例子有助于理解:我们假设C1和C2为正,C3在第一次迭代中为负,因此系统在合并网关等待C3,而另一次迭代在流程P2之后开始。现在在第二次检查中,C1和C3为正极,C2为负极。问题是:独占网关将加入序列流,就好像所有检查都是正的一样,即使C2在第二次迭代中是负的。我只想在同一次迭代中所有检查都为正时将它们连

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


也许有一个例子有助于理解:我们假设C1和C2为正,C3在第一次迭代中为负,因此系统在合并网关等待C3,而另一次迭代在流程P2之后开始。现在在第二次检查中,C1和C3为正极,C2为负极。问题是:独占网关将加入序列流,就好像所有检查都是正的一样,即使C2在第二次迭代中是负的。我只想在同一次迭代中所有检查都为正时将它们连接起来。

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


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


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

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

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


谢谢你的回答。确实需要尽快终止C1、C2和C3,我希望尽量避免将它们放入子流程。你认为还有另一种可能性吗?@DEls:是的,没有子进程也有可能,但这是一个大混乱,因为你需要为每个活动提供一个额外的网关。如果C1、C2和C2不是单一的活动,而是快速相加的序列。我不会在生产代码中以这种方式实现它。我会用一个例子更新我的答案直到明天(Ascii不能这样做)。谢谢你的解释。您使用什么编辑器创建模型?它看起来既漂亮又简单。@DEls:我用过。它是免费的。