3

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

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

我见过的补偿示例是旅行社预订酒店:取消预订的任务将是预订任务上的补偿事件。我找不到很多合适的“错误”示例:在我的情况下使用“错误”是否正确?

4

2 回答 2

5

添加到以下答案...

BPMN 规范 第 302 页开始,“补偿与撤消已成功完成的步骤有关,因为它们的结果和可能的副作用不再需要并且需要撤消。”

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

于 2013-09-11T05:57:02.450 回答
4

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

补偿允许您修复某些问题,以便该过程仍然可以完成。取消是指放弃活动。错误是指流程失败并且触发了无法修复流程的活动。

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

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

因此,如果流程未能在标准路径上完成,则可能需要出错或补偿。如果调用此备用路径,但不需要进一步的工作(补偿活动),则会出现错误。取消往往不需要替代路径。

于 2013-09-09T05:52:45.360 回答