2017-07-14 95 views
0

我創建了一個使用boundaryEvent來指示某個動作已完成的圖。爲什麼在Activiti中的流程在生命週期中失去了邊界事件

<boundaryEvent id="boundarysignal1" name="cancel" attachedToRef="subprocess3" cancelActivity="true"> 
<signalEventDefinition signalRef="cancelApplication"></signalEventDefinition> 
</boundaryEvent> 

一切工作正常,但在那一刻(我沒抓住還),該進程丟失結合的情況下,所以我不能用這關係到boundaryEvent在所有的流量。發現在運行期間Activiti創建記錄到ACT_RU_EVENT_SUBSCR表中,該表將事件訂閱保存到存儲過程實例數據的ACT_HI_PROCINST表中的適當記錄。在同一時間,我看到該進程未關閉並且處於活動狀態,相應的END_FIELD列爲空。

爲事件不綁定下面的代碼不返回任何內容:

final List<Execution> executionList =runtimeService.createExecutionQuery().processVariableValueEquals("VAR_NAME","VAR_VALUE").signalEventSubscriptionName(SIGNAL_CANCEL_PROCESS).list(); 

同時處理是積極作爲下一個結果是成功的:

final List<ProcessInstance> instances = runtimeService.createProcessInstanceQuery().variableValueEquals("VAR_NAME","VAR_VALUE").active().list(); 

什麼可以的原因,boundaryEvent是從流程中分離出來的?

Env:SpringBoot 1.3.2; Activiti的5.19.0.2

ACT_RU_EVENT_SUBSCR表(工作實施例): enter image description here

ACT_HI_PROCINST表(工作實施例): enter image description here

ACT_RU_EVENT_SUBSCR表(不工作例如,表是空的) : enter image description here

ACT_HI_PROCINST表(不工作實施例): enter image description here

過程定義圖: enter image description here

子流程1,2,3: enter image description here

+0

什麼發送cancelApplication信號?你能發佈整個流程圖嗎?當內部進程到達結束時會發生什麼? – CrazySabbath

+0

我的意思是process.bpmn.xml模式。您是使用activiti建模者還是手工建立這些流程? – CrazySabbath

+0

問題1:「您是使用Activiti建模者還是用手建立這些流程?」 A1:我正在使用Activiti可視化插件創建bpmn.xml shema。 Q2:「什麼是發送cancelApplication信號?「 A2:它是從代碼發送的 Q3:」你能發佈整個流程圖嗎?「 A3:已經添加子流程圖 – Speise

回答

2

其中一個可能性是這裏提到:
https://community.alfresco.com/docs/DOC-4591
發行說明 - Activiti - Versi在5.20.0
...
信號和邊界事件訂閱部署一個新的流程定義版本
時丟失......

這是一個主要的原因,我們升級到5.20

+0

你能否描述一下,當你轉移到新的5.20版本後是什麼動作?你已經損壞了以前的5.19版本的進程,遷移到新版本修復了一切(已經損壞的進程只能通過版本升級修復),或者這個缺陷是不可重現的嗎? – Speise

+0

遷移沒有修復(或改變)任何東西。幸運的是,他們沒有在外部系統中包含任何表單和瞬態數據,允許重新啓動而沒有太多麻煩。 –

+0

非常感謝您分享您的經驗! – Speise

相關問題