概述:
本工作流以一套金融軟件業(yè)務(wù)處理流程為例,實(shí)現功能包括:流程自定義、步驟自定義、步驟重復次數、步驟類(lèi)型(順序/并行)、定義排序功能,完全使用數據庫實(shí)現,本文將詳細分析業(yè)務(wù)流程、系統設計及實(shí)現細節。
術(shù)語(yǔ):
工作流(Workflow) [1],是對工作流程及其各操作步驟之間業(yè)務(wù)規則的抽象、概括、描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規則在計算機中以恰當的模型進(jìn)行表示并對其實(shí)施計算。工作流要解決的主要問(wèn)題是:為實(shí)現某個(gè)業(yè)務(wù)目標,在多個(gè)參與者之間,利用計算機,按某種預定規則自動(dòng)傳遞文檔、信息或者任務(wù)。工作流管理系統(Workflow Management System, WfMS)的主要功能是通過(guò)計算機技術(shù)的支持去定義、執行和管理工作流,協(xié)調工作流執行過(guò)程中工作之間以及群體成員之間的信息交互。工作流需要依靠工作流管理系統來(lái)實(shí)現。
流程:工作流包含多個(gè)工作流程,處理時(shí)可任選一種流程進(jìn)行處理,其包含步驟信息;
步驟:流程中每一環(huán)節的名稱(chēng),某一流程將包含多個(gè)步驟(其他工作流中也稱(chēng)為節點(diǎn))。
正文:
第一部分、業(yè)務(wù)邏輯分析
1、自定義工作流是指工作流各個(gè)環(huán)節及其參數完全自定義,常用于公文處理、業(yè)務(wù)流程簽批處理等。本系統來(lái)源于本人參與開(kāi)發(fā)的一套金融管理軟件,業(yè)務(wù)處理人分不同角色擁有不同權限進(jìn)行業(yè)務(wù)處理,將貸款數據庫從貸款調查一直到貸款簽批的完整流程。其中由于軟件功能要求,需要將貸款調查固定置為第一步驟,將貸款簽批置為最后一步驟。
其中數字表示當前步驟重復次數。
2、用戶(hù)業(yè)務(wù)處理部分包括:
1)、通過(guò):當前步驟處理通過(guò),(選擇下一處理人)進(jìn)入當前流程中下一步驟,若為末步驟,則流程完成;
2)、退回:將步驟退回至上一步驟,即返回至上一處理人處,若為首步驟,則不可進(jìn)行退回;
3)、否決:將步驟直接結束,不可再進(jìn)行操作,或者回退至第一步驟;本系統中采用第二種方式;
4)、撤回:若當前步驟已處理,且在下一處理人未進(jìn)行處理的情況下可進(jìn)行撤回操作。
3、順序與并行
順序是指上一處理人指定某一處理人時(shí),其他擁有此步驟權限的操作員不可進(jìn)行查看和操作,必須當前處理人處理完畢后,流程才能繼續;并行是由上一處理人指定固定多個(gè)處理人時(shí),由任一員工處理即可,不分前后順序,全部處理完成,進(jìn)入下一步驟,此處理人數目由當前步驟重復次數確定。
兩者之間對應關(guān)系如下。
第二部分、系統設計
數據庫設計如下:
1)、流程信息表:S_flow_info(flow_id,flow_name)
2)、步驟信息表:S_action_info(action_id,action_name)
3)、流程-步驟信息表:S_step_info(step_id,action_id,flow_id,step_repeat_no,step_order_no,step_type)
(其中step_repeat_no為重復次數,step_order_no為排序號,step_type為類(lèi)型:0為順序,1為并行)
4)、流程處理明細表:L_tranct_proc(proc_id,loan_id,step_id,step_action,step_emp_id)
(其中loan_id為數據主表主鍵,step_id關(guān)聯(lián)S_action_info,step_action
存儲處理結果:0--不通過(guò),1--通過(guò),2--退回,3--否決,4--撤回,step_emp_id為當前處理員工編號)
其中流程表、步驟表、流程步驟關(guān)系表為核心數據表,它們三者確定工作流的完全自定義。流程處理明細表為重要數據表,查詢(xún)數據主要通過(guò)此表進(jìn)行連接查詢(xún)。
其他相關(guān)表包括:
1)、數據主表L_loan_info(loan_id,loan_name,flow_id,step_id,...)
(flow_id為流程編號,step_id關(guān)聯(lián)S_action_info)
2)、操作員工表E_emp_info(emp_id,emp_name,..)
3)、角色信息表E_role_info(role_id,role_name)
4)、員工-角色關(guān)系表E_emp_role(emp_role_id,emp_id,role_id)
原文轉自:http://kb.cnblogs.com/page/70376/