2

我有一个主进程“compensateProcess”,它正在调用一个活动“someProcess”:

补偿过程

someProcess 在哪里:

一些过程

如果我从 REST api 启动主进程并将成功变量设置为 false,则会引发补偿事件。

{"processDefinitionKey":"compensateProcess", "variables":[{"name": "successful", "value": false}]}

我得到以下输出:

First task
second task
hello
compensate second task
compensate first task

所以“补偿你好”任务没有被执行。这可能是正常的,因为没有与呼叫活动相关联的边界事件。是否可以将补偿事件转发给被调用的活动?目标是避免重新实现“补偿你好”任务,这会导致重复代码。

请注意,如果我将 callActivity 替换为嵌入式子流程,则补偿将按预期执行。

4

1 回答 1

0

如果你真的需要Compensate Hello被触发,那么你也应该在你的主进程中复制它。

来自 Activiti 用户指南(目前为 5.15):

Compensation is not propagated to sub process instances spawned by call activities.

您可以在用户指南中查看它,请看Current limitations下面的部分。

于 2014-05-05T13:00:19.327 回答