常常有人會問業務系統如何集成工作流系統,在最初接觸工作流系統的時候,確實會有些困惑,下面就從幾個方面說明集成的過程。
業務表的准備:
流程的每個節點上辦理的業務,通常是用業務表來記錄辦理的數據,先按業務表新建業務字段。
額外增加一個流程實例id字段(wf_id),存流程實例id,用於和建模好的業務流程關聯上。
額外增加流程軌跡id字段(trace_id),存流程運行的軌跡id,這個字段是可選增加的,有需要顯示流程的每個執行步驟上辦理的業務記錄才需要增加這個字段。
主業務表的界定:
通常一個業務流程會有一個主要辦理的事項,然后下面的所有流轉步驟都是針對這個主要事項來處理,為這個主要事項創建的業務表通常就是主業務表,我們的新創建的流程實例id字段就需要增加到主業務表中。
如:請假申請流程,請假單就是主業務表,流程實例id就需要創建到請假單主表中。
用車申請流程,用車申請單就是主業務表,需要增加流程實例id字段。
費用報銷流程,費用報銷單通常是一個主子關聯的表,主表是報銷單主體信息,子表是報銷明細項,流程實例id字段需要建立到報銷單主表中。
業務流程的創建:
在流程設計器中將業務按照流轉的順序建模好,如一個需要二級審核的采購流程:
采購單申請《--》一審--》二審--》結束

業務模塊的創建:
根據業務表創建業務表單,將業務辦理的過程數據記錄下來。如采購申請單,就需要創建一個能填寫采購申請的業務表單,供用戶填寫,表單可以通過自定義的表單工具來做,也可以是定制的模塊(如表單頁面aspx或jsp等)。
不論是定制的模塊,還是可視化的表單工具,都需要將啟動流程,執行流程的流轉等過程集成到表單中,通常是調用流程引擎提供的api來達到啟動流程和執行流程的流轉。
用可視化的自定義表單工具,集成工作流引擎api的過程通常是已經集成好了,只需要可視化的設置一下按鈕功能等就能完成。
如果集成定制的表單頁面如aspx或jsp,就需要在定制模塊中去調用流程引擎的api來達到啟動指定的業務流程或執行指定流程的流轉。
將創建好的業務模塊掛接到業務流程的節點上,就完成了流程和業務模塊的關聯了。
業務的辦理過程:
沒有掛接工作流系統的業務系統,通常是做好一個一個的模塊,掛接到菜單上,供用戶點擊打開辦理業務,業務數據的流轉用狀態標志來控制。
如創建一審狀態標志字段,二審狀態標志字段;
一審模塊掛接到菜單上,列出一審狀態標志為未審核的記錄,做一審通過或拒絕操作;
二審模塊掛接到菜單上,列出二審狀態標志為未審核的記錄,做二審通過或拒絕操作;
當集成了工作流系統后,啟動業務流程,可以放到一個菜單模塊中,例如,在制定采購單,填寫完成后,點擊提交,就啟動了采購流程。
下一步的流轉則通過我的待辦任務列表,辦理任務來執行。
如:一審是采購主任來審核的,那么采購主任的待辦任務列表中,就有審核采購員提交來的采購單的任務列表了。采購主任通過辦理任務,審核完成后,就提交二審了。
二審人員也是通過辦理任務來完成二審的過程。
這樣就不需要為每級的審核增加一個菜單,當流程的步驟發生變化后,也不需要調整菜單了。
業務過程的監督:
通過列出流程運行軌跡,可以監督到每個流程的流轉執行情況。集成了工作流系統后,每條業務的辦理過程變的有跡可尋,工作流系統會記錄每個流程的運行軌跡,可以列表或圖形的方式將這個運行軌跡展現出來。這是用狀態位來控制流程的流轉辦不到的。

每個運行軌跡上辦理的業務,也可以通過業務表和流程的關聯展現出來,前面說的業務表中增加軌跡id字段,就是用於將業務表的記錄和軌跡更緊密的關聯在一起的。
通過上面這些過程,就能將業務系統集成工作流系統了。
