flowable 启动流程到完成所有任务之间的数据库变化
先給出流程圖,很簡單的流程,就是3個UserTask
或者
ProcessInstance procIns = runtimeService.startProcessInstanceByKey(procDefKey, businessTable+":"+businessId, vars);以上代碼是部署這個流程,部署完畢后。
act_re_deployment 表中會有一條部署記錄,記錄這次部署的基本信息,然后是act_ge_bytearray表中有兩條記錄,記錄的是本次上傳的bpmn文件和對應的圖片文件,每條記錄都有act_re_deployment表的外鍵關聯,然后是act_re_procdef表中有一條記錄,記錄的是該bpmn文件包含的基本信息,包含act_re_deployment表外鍵。
注意看這個9e010fc1-1a65-11ea-83ef-f8a2d6bfea5a就是act_re_deployment表外鍵
以上代碼是搜索此次部署對應的流程定義信息,也就是act_re_procdef表的信息查詢。然后啟動這個流程。
首先向act_ru_execution表中插入一條記錄,記錄的是這個流程定義的執行實例,其中id和proc_inst_id相同都是流程執行實例id,也就是本次執行這個流程定義的id,包含流程定義的id外鍵(leave:1:9f51f9c4-1a65-11ea-83ef-f8a2d6bfea5a)。
然后向act_ru_task插入一條記錄,記錄的是第一個任務的信息,也就是開始執行第一個任務。包括act_ru_execution表中的execution_id外鍵和proc_inst_id外鍵,也就是本次執行實例id。
然后向act_hi_procinst表和act_hi_taskinst表中各插入一條記錄,記錄的是本次執行實例和任務的歷史記錄:
以上代碼是查詢流程本次執行實例下名為task1的任務,然后給任務設置全局變量,如果調用的是taskService.setVariableLocal方法,則任務執行完畢后,相關變量數據就會刪除,然后再完成任務。
首先向act_ru_variable表中插入變量信息,包含本次流程執行實例的兩個id外鍵,但不包括任務的id,因為setVariable方法設置的是全局變量,也就是整個流程都會有效的變量:
簽收前:
執行完task1辦理后,act_ru_task表中task1的記錄被刪除,新插入task2的記錄:
同時向act_hi_var_inst和act_hi_taskinst插入歷史記錄
以上代碼是查詢本流程執行實例下的task2并完成task2。
此時整個流程執行完畢,act_ru_task,act_ru_execution和act_ru_variable表全被清空
其實全程有一個表一直在記錄所有動作,就是act_hi_actinst表
以上這段代碼是查詢act_hi_varinst表中變量歷史記錄的。因為流程執行完畢act_ru_variable表被清空。
總結
以上是生活随笔為你收集整理的flowable 启动流程到完成所有任务之间的数据库变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HttpClient4.5 简单入门实例
- 下一篇: 3行代码实现ftp 上传、下载、删除操作