我有一个主要过程“compensateProcess”,它将一个活动称为"someProcess":

其中someProcess是:

如果我从REST启动主进程,并将成功的varible设置为false,则会引发补偿事件。
{"processDefinitionKey":"compensateProcess", "variables":[{"name": "successful", "value": false}]}我得到了以下输出:
First task
second task
hello
compensate second task
compensate first task因此,“compensate”任务没有执行。这可能是正常的,因为没有边界事件链接到调用活动。是否可以将补偿事件转发到被调用的活动?目标是避免不得不重新实现“补偿hello”任务,这将导致重复的代码。
请注意,如果我用嵌入式子进程替换callActivity,补偿将按预期执行。
发布于 2014-05-05 13:00:19
如果您确实需要触发Compensate Hello,那么您也应该在您的主进程中复制它。
来自Activiti用户指南(目前为5.15):
Compensation is not propagated to sub process instances spawned by call activities.您可以在用户指南查看它,请看下面的Current limitations部分。
https://stackoverflow.com/questions/19399312
复制相似问题