發(fā)布完成后想要使用新的工作流程
用activiti 做的流程,由于后期業(yè)務(wù)更改等導(dǎo)致后期流程需要修改额港,此時(shí)饺窿,如果有正處于流程中的那些數(shù)據(jù)(已經(jīng)開(kāi)始流程,但是還沒(méi)結(jié)束流程的)移斩。就只能按照就流程的定義去跑肚医,而不能用新流程定義绢馍。比如我在新流程中新增了個(gè)駁回的功能,對(duì)于已經(jīng)發(fā)起流程但是還沒(méi)結(jié)束的老流程肠套,這個(gè)功能就不能用痕貌。讓這個(gè)功能可用,目前官方?jīng)]有提供直接的接口糠排,但是可以直接修改后臺(tái)數(shù)據(jù)庫(kù)。
1超升、查找要升級(jí)到最近版本流程的單子對(duì)應(yīng)的PROC_INST_ID入宦,比如值為:PROC_INST_ID=1000,
2室琢、再到act_hi_procinst表中查詢(xún):
SELECT * FROM act_hi_procinst WHERE PROC_INST_ID_=1000
得到PROC_DEF_ID_乾闰,即老的流程定義ID,比如值為:appl_process:2:22570;
3盈滴、再到act_re_procdef表中查詢(xún):
SELECT * FROM act_re_procdef WHERE KEY_ = 'fund_appl_process'
得到最新的流程定義ID涯肩,比如值為:appl_process:6:145358;
4、最后更新如下兩個(gè)表:
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、注意點(diǎn):如果重新部署的新流程中用到了一些新的變量症汹,而這些新的變量在后期流程中無(wú)法自動(dòng)加入到流程中去時(shí)就不能用這種方式硫朦,此時(shí)可以修改程序邏輯加入或者直接再加到變量表。
總結(jié):修改act_ru_execution 中的PROC_DEF_ID
修改act_ru_task 中的PROC_DEF_ID