2013-10-16 119 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部分,下面一點。