【问题标题】:What is the distinction between "error" and "compensation" events in BPMN?BPMN 中的“错误”和“补偿”事件有什么区别?
【发布时间】:2013-05-29 12:51:03
【问题描述】:

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

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

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

【问题讨论】:

    标签: diagram modeling bpmn diagramming


    【解决方案1】:

    添加到以下答案...

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

    错误有它的文学意义和 第 235 页 "错误触发器很关键,在抛出的位置暂停执行。

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-12
        • 2011-02-11
        相关资源
        最近更新 更多