我有一个主进程“compensateProcess”正在调用一个活动“someProcess”:
其中someProcess是:
如果我从REST api启动主进程并将成功的varible设置为false,则抛出补偿事件。
{"processDefinitionKey":"compensateProcess", "variables":[{"name": "successful", "value": false}]}
我得到以下输出:
First task
second task
hello
compensate second task
compensate first task
因此不执行“补偿问候”任务。这可能是正常的,因为没有与呼叫活动相关联的边界事件。是否可以将补偿事件转发给被叫活动?目标是避免重新实现“补偿问候”任务,这将导致重复的代码。
请注意,如果我将callActivity替换为嵌入式子流程,则会按预期执行补偿。
答案 0 :(得分:0)
如果您确实需要触发Compensate Hello
,那么您也应该在主过程中复制它。
来自Activiti用户指南(当前为5.15):
Compensation is not propagated to sub process instances spawned by call activities.
您可以在Userguide查看,请查看Current limitations
部分,如下所示。