"错误"之间有什么区别?和"补偿" BPMN中的事件?

时间:2013-05-29 12:51:04

标签: diagram modeling bpmn diagramming

我正在尝试使用BPMN为某些软件的部署过程建模。部署的各个部分可能出错,我想在图中指出在每种情况下应该采取哪些步骤。

起初,似乎我应该为此使用“补偿”事件,但我最终使用了“错误”事件。我一直无法在这两者之间找到明确的区别,但我提出的最好的是“错误”表示如果任务产生错误会立即发生什么,而“补偿”则表明如果,有时候需要发生什么之后,这个过程需要逆转。

我所看到的补偿的例子是旅行社接受酒店预订的事情:取消预订的任务将是预订任务的补偿事件。我无法找到许多适当的“错误”示例:在我的案例中使用“错误”是否正确?

2 个答案:

答案 0 :(得分:5)

添加以下答案......

截至 BPMN specification 第302页 “补偿涉及撤销已经成功完成的步骤,因为他们的结果和可能的副作用已经不再需要,需要逆转。”

错误拥有其文学意义和 第235页 “错误触发器至关重要,并在抛出位置暂停执行。

答案 1 :(得分:3)

我能想到的最好,但可能不是真的。

补偿允许您修复某些内容,以便该过程仍然可以完成。 取消是指放弃活动的时间。 错误是指进程失败并且触发了不能修复进程的活动。

旅行社示例: 如果旅行社流程被取消,则可能仍然存在实时预订(因为它尚未撤消),因此需要进行补偿活动。 如果旅行社未能正确预订房间,则需要进行错误处理步骤以向旅行社提供通知,但系统不会立即激活补偿。
由旅行社负责处理补偿活动。

比萨订单示例: 如果通过电话或互联网的披萨订单被放弃(取消),则不需要补偿活动。 如果支付系统出现故障(错误),则需要通知用户,不会自动产生补偿。 补偿将允许进行替代安排,如其他卡或COD或标签。

因此,如果某个流程无法在标准路径上完成,则可能需要进行错误或补偿。如果调用此备用路径,但不需要进一步的工作(补偿活动),则会发生错误。取消通常不需要备用路径。