我不清楚在BPMN 2.0模型中是否允许将定时器作为事件子流程的起始事件,例如下面的简化示例:
第174页的BPMN 2.0 documentation(版本2.0.1日期为2013-09-02)(第10.3.5节,事件子流程)表明这是不允许的:
事件子流程的开始事件必须具有已定义的触发器。开始事件触发器(
EventDefinition
)必须来自以下类型:消息,错误, 升级,补偿,条件,信号和多个(有关详细信息,请参阅第259页)
在页241(第10.5.2节,开始事件),规范声明允许Timer作为开始事件:
“开始事件”还可以启动内联事件子流程(p.174)。在这种情况下,允许使用与边界事件相同的事件类型(见表10.86),即:消息,定时器,升级,错误,补偿,条件,信号,多个和并行。
在上述示例的情况下,哪些部分适用?
答案 0 :(得分:3)
不是BPMN专家,但有一些使用BPMN 2.0的经验,所以我会给这个。
您发布的示例看起来并不像完全经过规范批准的方式,但我无法完全确定。我看到了一些应该在范围内的不同方法。
以下是我的两条建议:
除非您想为“缺货”这样的第三个事件建模,否则我更倾向于使用选项A.
另外,我想通过推荐“BPMN Method and Style,2nd ed。”布鲁斯·西尔弗
答案 1 :(得分:3)
我将得出结论,这几乎肯定是规范§10.5.2中的错误,并且允许将计时器作为事件子流程中的启动事件。
2010年向OMG报告了该问题(Issue 15532),但未采取进一步行动。
同样的原则适用于Parallel Multiple事件,它们在§10.5.2中的相同列表中同样省略,但在其他部分中允许使用。
答案 2 :(得分:0)
我现在不记得这个术语了,但是我想做什么来实现你想要的是将购买零件+解包零件放在子流程(或子任务?)中并在其上有一个计时器。这看起来更容易,更清晰,可以做你想要的。
关于文档:我想说一部分讨论触发器,另一部分讨论事件子流程的 start 。因此,计时器不能触发事件子流程,但事件子流程的启动事件可以是计时器。