【问题标题】:How can I model a parallel flow that branches back into a regular flow?如何对分支回常规流的并行流进行建模?
【发布时间】:2015-10-02 16:36:28
【问题描述】:

我有一个 BPMN 流程应该处理 2 个替代方案:

TaskA -> TaskB -> 最后一个任务

TaskA -> TaskX -> (TaskY 和 TaskB 并行) -> Last Task

我找不到加入并行任务的正确方法。

我已经设计了这个解决方案,但我觉得它不太好:
对于第一种情况,并行网关看起来像一个 fork 而不是一个 join。

我应该如何设计这个案例(无需重复任务)?

【问题讨论】:

  • "(TaskY and TaskX in parallel)" 你的意思是“TaskY and TaskB in parallel”吗?我认为您不能这样做;您可能必须复制任务 B 或在任务 Y 之前放置另一个守卫。此外,在 B 之前执行 X 是否重要?您可以使用包含或使 X 和 Y 都与 B 平行
  • Oups,是的,你是对的,有一个错误,我会在问题中解决它。我想避免重复,顺序很重要 :) 关于守卫条件,最好在任务 B 之后?
  • 图表中的问题是“任务 B”仅在两个传入转换都处于活动状态时才可用。由于使用永远不会发生的独占,因此只有其中一个会被激活。

标签: bpmn


【解决方案1】:

我认为下图正是您想要的:

我使用一个包容性网关,该网关将始终进行转到“任务 B”的转换,并根据条件并行执行“任务 Y”。 同样的条件也用于包含或跳过“任务 X”。

我为 Bonita BPM 创建了一个 runnable version of this process,它的行为似乎符合您的预期。

【讨论】:

  • 我喜欢这个解决方案,因为它同时非常有创意和干净。问题中“避免重复任务”的要求通常不是我喜欢将其视为流程图的要求,因为可读性对我来说是第一位的……但当然,只要可以避免重复就很好它不会损害可读性。竖起大拇指! (顺便说一句,我倾向于相信如果不复制任何东西就无法解决 - 比如在你的情况下,“复制”条件表达式)
  • 嗨 Antoine,这是一个很好的解决方案。你用什么设计师来画你的流程?
  • 嗨 Guillaume,我使用 Bonita BPM Community Edition 创建了这个过程
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多