Compiere 工作流引擎用於管理 Compiere 的核心事務處理。並且 CompIEre 中所有的流程都自動啟用了工作流,使流程易於擴展和修改。
具體看一下引擎的類圖。
MWorkflow類負責定義工作流;WMFProcess類負責定義工作流的流程;WMFNode類負責定義工作流的節點點;MWFActivity類負責定義工作流的活動,即工作項;MWFNextCondition類負責定義下一工作節點的觸發條件;StateEngine類負責定義工作流的狀態及狀態轉換;DocAction接口定義單據的處理標准,參與流程處理的文檔Model需要實現此接口;其它的一些輔助類沒有在圖中給出如:WMFAccess類負責工作流的訪問權限;WorkflowValidate類為負責工作流合法性驗證;
了解類的職能後,再來看一個典型的工作流程:
CompIEre工作流由ProcessCtl類的startWorkflow()方法啟動,這個方法需要參數AD_Workflow_ID。接下來startWorkflow()方法調用了MWorkflow類的start()方法,start()方法調用了MWFProcess類的startWork()方法,在個方法中得到工作流的節點,並通過這個節點ID調用MWFActivity類的run()方法。run()方法又調用了本類的performWork()方法來執行一個工作任務(工作項)。