问题描述
我对BPMN有疑问。我应该指定一个引人入胜的任务来创建网关,还是仅由网关来完成?假设我有一个客户,如果他/她在最近7天内购买了产品,则可以更改产品。我将提供图片。哪个是正确的?
解决方法
简单的答案是:取决于。
这两种表示都是正确的,只是在不同的上下文中使用。
在项目会议上介绍流程时,第二个代表足以传达信息。额外的简单步骤只会使图片混乱。
在某些工作流引擎中构建解决方案时,它可能取决于引擎本身。可能必须添加此附加步骤才能执行计算。
,就像@Ister一样,我同意两者在语法上都符合BPMN,并且在某些情况下可能需要第二个图表的简单性。但是,您应该问自己在语义上是否相同。
与活动不同,网关不代表工作。在您的第一个图表中,任务Check when it was bought
告诉我,一个演员(也许是在线商店,也许是店员)正在做一些工作来进行此评估。这项工作可能需要几秒钟,几分钟,几小时甚至几周的时间……一旦完成工作,我们就转到Task
或Task2
。
但是,在第二张图中,在客户退货决定与Task3
或Task4
之间没有进行任何工作。客户决策与两项任务之一之间的过渡是瞬时的。如果后续任务是由另一个演员执行的,我将不知道他/她/它将如何知道应遵循的顺序。
简而言之,如果没有涉及确定控制流顺序的工作或者与您的听众无关的话,我建议您不要执行Check when it was bought
任务。