# 边界事件

补偿边界事件可为所依附的流程活动附加补偿处理器,补偿处理器通过单项关联补偿边界事件。 补偿边界事件在流程活动 完成后根据实际情况出发,当补偿边界事件被触发时,执行它所连接的补偿处理器。
补偿边界事件必须通过直接引用设置唯一的补偿处理器
补偿边界事件与其他边界事件的行为策略不同,其他边界事件(如信号事件)在流程流转到所依附的活动时被激活,在流程活动结束时结束, 并且对应的事件订阅也会被取消,而补偿边界事件在所依附的活动结束后才被激活,并且创建相应的事件边界订阅,在补偿边界触发或对应流程 实例结束时,事件定于才会被删除。

TIP

补偿边界事件一般在两种情况下被触发:

  • 由补偿中间抛出事件触发补偿边界事件。
  • 事务子流程被取消,导致依附在事务子流程上的补偿边界事件被触发

WARNING

补偿边界事件所产生的订阅数据(ACT_RU_EVENT_SUBSCR)不会被删除(直到补偿边界事件触发或流程实例结束)。因为即使流程活动完成了,所依附的补偿 边界事件仍有可能被触发。

  • 当补偿被触发时,所有已完成的活动所依附的补偿边界事件对应的补偿处理器将被吊用,如果补偿边界事件所依附的活动尚未产生历史任务,则不会被触发
  • 如果补偿边界的活动完成N次,则补偿边界触发后,这些补偿边界的执行次数与活动完成次数想等。
  • 如果补偿事件依附在多实例活动上,则会为每个实例创建补偿事件订阅,补偿边界事件被触发的次数与所所依附活动的循环多实例的成功完成次数想等。
  • 如果流程实例结束,订阅的补偿事件都会结束
  • 边界补偿事件不支持依附在内嵌的子流程中