我应该指定一个引人入胜的任务来创建网关,还是仅由网关来完成?

问题描述

我对BPMN有疑问。我应该指定一个引人入胜的任务来创建网关,还是仅由网关来完成?假设我有一个客户,如果他/她在最近7天内购买了产品,则可以更改产品。我将提供图片。哪个是正确的?

enter image description here

解决方法

简单的答案是:取决于。

这两种表示都是正确的,只是在不同的上下文中使用。

在项目会议上介绍流程时,第二个代表足以传达信息。额外的简单步骤只会使图片混乱。

在某些工作流引擎中构建解决方案时,它可能取决于引擎本身。可能必须添加此附加步骤才能执行计算。

,

就像@Ister一样,我同意两者在语法上都符合BPMN,并且在某些情况下可能需要第二个图表的简单性。但是,您应该问自己在语义上是否相同。

与活动不同,网关不代表工作。在您的第一个图表中,任务Check when it was bought告诉我,一个演员(也许是在线商店,也许是店员)正在做一些工作来进行此评估。这项工作可能需要几秒钟,几分钟,几小时甚至几周的时间……一旦完成工作,我们就转到TaskTask2

但是,在第二张图中,在客户退货决定与Task3Task4之间没有进行任何工作。客户决策与两项任务之一之间的过渡是瞬时的。如果后续任务是由另一个演员执行的,我将不知道他/她/它将如何知道应遵循的顺序。

简而言之,如果没有涉及确定控制流顺序的工作或者与您的听众无关的话,我建议您不要执行Check when it was bought任务。