-
基礎設置
-
表單設計
表單以json形式單獨存儲到數(shù)據(jù)庫
存儲表單的數(shù)據(jù)庫表以 f_ 開頭
-
流程設計
表單和流程一對一
流程設計完成痘煤,以json形式存儲到表單定義表, 以 wf_ 開頭
流程分支條件來源于表單中的某個屬性根蟹,以參數(shù)形式存儲在流程json中
-
高級設計
將設計好的流程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)回退等功能笋粟。