下面給出UML圖供大家參考:
其中:
流程類型、流程、活動、流轉條件、外部應用為設計時對象,用于描述流程規則
流程實例、活動實例、活動記錄為運行時對象,用于記錄實際發生的流程運行狀況
需要解決的問題是,如何將我們的應用與此工作流引擎進行結合?我的解決方法是:
1、流程類型約定業務對象類型(即此流程可以與哪種業務對象關聯)
2、業務對象中的屬性或其組合可以定義為流轉條件(即實現業務對象信息影響工作流流轉)
3、活動執行者可以選擇業務系統的組織機構、角色、人員定義(我是通過接口方式進行約定,IOC注入)
4、活動可調用已定義的應用(可多個)
5、業務對象可以通過報批動作啟動工作流實例,之后由工作流按照設計信息與業務信息進行自動流轉或全程提供表單與審批按鈕支持。
由于此工作流系統是出于簡化的目的進行設計的,設計時與運行時信息我都使用數據庫信息來表示,設計器也未提供拖拉界面來進行設計,而是采用順序定義的方式來操作。在實際運作過程中,我覺得它可以滿足一般規模不大(文職人員100人左右)的企業的OA應用。
本人原創文章,歡迎轉載,轉載請注明出處!