簡易OA漫談之工作流設計(DB)


1、流程圖。

工作流可以做得很復雜,也可以設計的很簡單。看下圖

 

看這個圖,一個流程圖最基礎的三部分:流程,步驟,操作。

2、流程模板。

流程圖的程序描述就叫流程模板。一個流程模板大概需要的一些屬性如下圖:

 

三個表從上到下都是一對多的關系。flow表是一個流程整體的一些信息,flowstep是每個步驟,即圖中每個結點的信息,flowaction就是每個操作,具體到圖上我們可以看作是每條線。這三個表就構成了流程最基本的配置,也叫流程模板。當然如果繼續豐富可以分拆出規則表,這里的設計隱含了一些規則的設計,即Params字段,這是一個xml字段,可以存儲規則表達式,有了規則表達式,就可以完整代表操作指向,即當滿足什么條件時提交會到哪一個步驟。

 

3、流程實例。

有了流程模板(就象我們程序中的 class),我們發起一個流程時和提交一個流程時就知道流程扭轉的方法,每個流程發起后就是一個流程“實例”,實例要保存一些什么信息呢,看下圖:

flowinstance是流程實例記錄的一些信息,包括流程當事人,如請假人,流程模板信息,發起人、結束人、流程狀態、相關時間等,這是公用表,每種流程一般還有個性化表單。

flowactiontrace是每個審批人待辦和已辦的日志信息,即誰的任務,什么時候到達,誰審批(代)了,什么時候審批的。

flowactiontracedata是flowactiontrace表的擴展,記錄一些表單填寫的數據。

4、常用操作

4.1、發起流程

    A.插入flowinstance一條數據,插入flowactiontrace一條已經完成(submit為自己)了的數據

    B.插入flowactiontrace一條或多條數據,owner為下一步處理人,submit字段為NULL,表示待辦。

4.2、提交流程

   A.讀取flowactiontrace表,發現如果owner是當前登錄人並且submit字段為NULL,表示有待辦。

   B.以上待辦可以打開並提交,提交后更改flowinstance表狀態字段,flowationactiontrace submit字段

   C.保存表單數據進flowactiontracedata表

 

4.3、駁回

4.4、取消

 

以上就是本人理解的最簡單的流程引擎,如果加上流程圖、流程作圖工具、流程監控、引擎接口,就比較完整了。

前三項不是必須的,接下來利用這個設計我會實現簡單的引擎接口,並通過一個實例調用這個接口來完成最簡單的流程圖。

本實例可以讓我們了解一些基本的流程原理及概念。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM