2013-10-16 118 views
2

我有一个主进程“compensateProcess”正在调用一个活动 “someProcess”:补偿一个callActivity

compensateProcess

其中someProcess是:

someProcess

如果我启动主从成功变量设置为false的REST API中过程,抛出补偿事件。

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

,我得到下面的输出:

First task 
second task 
hello 
compensate second task 
compensate first task 

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

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

回答

0

如果您确实需要触发Compensate Hello,那么您也应该在主进程中复制它。

从Activiti的userguide(5.15目前):

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

你可以在Userguide检查出来,请大家看看Current limitations部分,下面一点。