
-
基礎設置
Screen Shot 2020-04-11 at 11.54.52 AM.png -
表單設計
表單以json形式單獨存儲到數(shù)據(jù)庫
存儲表單的數(shù)據(jù)庫表以 f_ 開頭
Screen Shot 2020-04-11 at 12.03.42 PM.png -
流程設計
表單和流程一對一
流程設計完成,以json形式存儲到表單定義表, 以 wf_ 開頭
流程分支條件來源于表單中的某個屬性,以參數(shù)形式存儲在流程json中
Screen Shot 2020-04-11 at 12.02.50 PM.png -
高級設計
Screen Shot 2020-04-11 at 12.03.16 PM.png

將設計好的流程JSON保存到WF_PROCESS表中,產(chǎn)生一條記錄。xml文檔里有流程的名字,如果這個名字在WF_PROCESS已經(jīng)存在了,則保存時產(chǎn)生的新的記錄的version字段值會自動加1。processId是唯一的,不重復。

開啟一個流程實例時,WF_ORDER表有個字段PROCESS_ID和流程定義的process_id相關聯(lián),他們是一對多的關系。
從業(yè)務表把條件屬性取出來,直接存到variable里面,例如,請假2天以上需要不同人員審批,先把請幾天假取出來,{condition: "4>2"}。
當開啟一個流程實例WF_ORDER時,在WF_ORDER和WF_HIST_ORDER都新增一條記錄,并且同時產(chǎn)生的那兩條記錄的主鍵id是一樣的。并把這條記錄存到緩存中。
其中WF_HIST_ORDER比WF_ORDER多一個字段ORDER_STATUS 流程實例狀態(tài)(0:結束;1:活動)。
當流程沒跑完時,ORDER_STATUS的值是1;
當整個事件流程跑完了,WF_ORDER表的那條記錄會被刪除,WF_HIST_ORDER表對應的那條記錄的ORDER_STATUS的值變成0,表示流程實例跑完了。


存當前任務的;當流程執(zhí)行完當前任務節(jié)點時,WF_TASK的這條記錄會被剪切到WF_HIST_TASK表中,然后在WF_TASK表中新增下一個任務節(jié)點的信息記錄。新增的下一任務節(jié)點的task有個字段parent_task_id記住上一個任務節(jié)點在WF_HIST_TASK表里的WF_HIST_TASK_ID(上一個任務節(jié)點從WF_TASK表剪切到WF_HIST_TASK了);這樣就可以實現(xiàn)回退等功能。





