如何配置补偿形状

如果在业务流程中使用嵌套事务,则可以在补偿块或事务范围的异常块中添加 补偿 形状。 这样可以使您的业务流程能够明确地对嵌套事务执行补偿操作。 指定要在 “补偿 ”形状中得到补偿的事务,并且嵌套事务中的任何补偿代码都将运行(前提是事务已成功提交)。

注意

Compensation 属性是指事务范围的唯一标识符;它不引用范围的名称。

如果要补偿多个嵌套事务,请为每个事务添加额外的 补偿 形状。

如果外部事务中没有其他补偿代码,则不需要 补偿形状; 任何嵌套事务的补偿代码将自动运行。 “ 补偿 ”形状允许你确定是否希望对嵌套事务进行补偿,从而控制进程。

配置补偿形状

  • 在属性窗口,从“补偿”下拉列表中选择要调用的补偿块。

    该下拉列表将显示可以对其执行补偿操作的所有事务,其中包括当前事务以及当前事务的任何直接子事务。 如果您没有看到预期的事务,这可能是事务关系的原因导致的。

    注意

    不能在当前事务的事务主体内对其执行补偿操作。 您可以从该事务的补偿模块或事务的异常块对其执行补偿操作。

    如果您选择对当前事务执行补偿操作,这意味着将调用默认处理程序,而不是显式补偿模块(如果有)。 这是一种用于自动补偿已成功完成的直接嵌套的事务的机制。