Activiti 6.0中更新處于流程中的數(shù)據(jù)到最新流程定義

用activiti 做的流程,由于后期業(yè)務(wù)更改等導(dǎo)致后期流程需要修改,此時,如果有正處于流程中的那些數(shù)據(jù)(已經(jīng)開始流程,但是還沒結(jié)束流程的)。就只能按照就流程的定義去跑,而不能用新流程定義。比如我在新流程中新增了個駁回的功能,對于已經(jīng)發(fā)起流程但是還沒結(jié)束的老流程,這個功能就不能用。讓這個功能可用,目前官方?jīng)]有提供直接的接口,但是可以直接修改后臺數(shù)據(jù)庫。

1、查找要升級到最近版本流程的單子對應(yīng)的PROC_INST_ID,比如值為:PROC_INST_ID=1000,
2、再到act_hi_procinst表中查詢:

SELECT * FROM act_hi_procinst WHERE PROC_INST_ID_=1000

得到PROC_DEF_ID_,即老的流程定義ID,比如值為:appl_process:2:22570;
3、再到act_re_procdef表中查詢:

SELECT * FROM act_re_procdef WHERE KEY_ = 'fund_appl_process'

得到最新的流程定義ID,比如值為:appl_process:6:145358;
4、最后更新如下兩個表:

UPDATE act_ru_execution SET PROC_DEF_ID_ = 'appl_process:6:145358' WHERE PROC_DEF_ID_ = 'appl_process:2:22570' AND PROC_INST_ID_ =1000;
UPDATE act_ru_task SET PROC_DEF_ID_ = 'appl_process:6:145358' WHERE PROC_DEF_ID_ = 'appl_process:2:22570' AND PROC_INST_ID_ =1000;

5、剩下的事情就是交給業(yè)務(wù)方去跑流程就可以了。
6、注意點:如果重新部署的新流程中用到了一些新的變量,而這些新的變量在后期流程中無法自動加入到流程中去時就不能用這種方式,此時可以修改程序邏輯加入或者直接再加到變量表。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容