补偿边界事件
定义
元素定义
节点边界的中间捕获补偿, 或简称为补偿边界事件, 可以用来设置一个节点的补偿处理器。
补偿边界事件必须使用直接引用设置唯一的补偿处理器。
补偿边界事件与其他边界事件的策略不同。 其他边界事件(比如信号边界事件)当到达关联的节点就会被激活。 离开节点时,就会挂起,对应的事件订阅也会取消。 补偿边界事件则不同。补偿边界事件在关联的节点成功完成时激活。 当补偿事件触发或对应流程实例结束时,事件订阅才会删除。 它遵循如下规则:
- 补偿触发时,补偿边界事件对应的补偿处理器会调用相同次数,根据它对应的节点的成功次数。
- 如果补偿边界事件关联到多实例节点, 补偿事件会订阅每个实例。
- 如果补偿边界事件关联的节点中包含循环, 补偿事件会在每次节点执行时进行订阅。
- 如果流程实例结束,订阅的补偿事件都会结束。
注意:补偿边界事件不支持内嵌子流程。
图标说明
使用说明
1.补偿事件必须使用直接引用设置唯一的补偿处理器(用例1) 2.补偿边界事件在关联的节点成功完成时被激活(用例2) 3.补偿边界事件不支持内嵌子流程(用例3)
元素验证
验证用例
验证项目 | 用例描述 | 输入条件 | 期望结果 | 实际结果 | 结果 | |
---|---|---|---|---|---|---|
1 | 验证补偿边界事件使用的补偿处理器是唯一的 | 通过测试流程,验证补偿边界事件元素能够正常使用,用户输入的条件1. 用户下达订单,卖家确认订单确认:不同意2.下达订单任务指派用户laura |
验证用户: laura susan 订单确认:不同意 |
启动流程后 用户laura 第一步会得到下达订单任务,当用户确认订单后,银行会直接从卡上扣除订单对应金额,2.卖家确认订单为不同意时,执行退还扣款任务,3退还扣款任务完成后邮件下单用户,流程完 |
未验证 IDE暂无事务子流程功能 |
|
2 | 验证补偿边界事件在无其他节点成功时不能被激活 | 通过测试流程,验证补偿边界事件元素在无取消边界事件时不会被触发,用户输入的条件1. 用户下达订单,卖家确认订单确认:同意2.下达订单任务指派用户laura |
验证用户: laura 订单确认:同意 |
启动流程后, 用户laura 第一步会得到下达订单任务,当用户确认订单后,银行会直接从卡上扣除订单对应金额,2.卖家确认订单为同意时,流程结束。 |
未验证 IDE暂无事务子流程功能 |
|
3 | 验证补偿边界事件在内嵌子流程中不能应用 | 通过测试流程,验证补偿边界事件在内嵌子流程中不能应用 | 流程为内嵌子流程,设计完成,点击调试 | 提示流程不符合规则 | 提示流程不符合规则 |
验证流程
第一步 启动流程
用户laura
下达订单,
第二步 银行扣款
第三步 卖家确认订单
填写表单数据
第四步 银行执行退还扣款
任务,退还用户金额
第五步用户laura收到退款邮件通知
用例2
第一步 启动流程
用户laura
下达订单,
第二步 银行扣款
第三步 卖家确认订单
填写表单数据
用例3
流程完毕