轉自:
http://www.wwfcn.net/dispbbs.asp?boardID=13&ID=55&page=1
基于JGRAHP的工作流模型設計器

JWFD v0.1
comsci@163.com
QQ: 784092877
簡介
這個工程包中包含是我在jgraph3.0的基礎上實現的一個功能比較簡單的工作流模型設計
器的JAVA代碼,本來我們是在做一個J2EE的電子政務系統,沒有想到要和工作流打交道,但是后來
客戶的要求提高了,對公文處理提出了新的需求,原來的B/S程序沒有辦法實現這些功能,所以只有
考慮使用工作流系統來滿足這些需求,在網上看到大家都在熱情的討論工作流的東西,開始很受鼓
舞,本來以為可以很容易找到合適的對象,了解,學習工作流,但是發現大家都在討論老外的標準
老外的東西不是不好,只是來的太復雜了,很多東西我們在實際使用中用不上,而且還會把我們的
思路引到他們的路上去,被牽著鼻子跑,因此我徘徊了一段時間后決定找一個比較容易的點切入,
自己完成一個工作流系統(也是工作的安排),這樣做的東西可能會和大家的標準不太一樣,比如
我把流程圖保存后,文件格式就是gxl,不是XPDL,而我的數據流基本是在關系數據庫中(和大家討論
的使用xml來處理的主流不一致)這樣方便我寫一些SQL來處理,也方便與我們的業務想結合(數據庫
中的數據結構只是基本的流程圖數據,并不和活動等東西扯上關系)
使用jgraph開發設計器是一個非常好的選擇,JGRAPH的結構清晰,數據結構也設計的非常簡潔
非常適合做流程圖和圖型結構的程序,當然它也有缺點。。。。。,比如JGRAPH包中一些有明顯的
缺點,不能把圖標保存,還原圖的時候不能把坐標還原等。。這些問題我都在自己的程序中通過修改
JGRAPH的源CODE把它們完善了,也許還有一些其它的問題我沒有發現,希望各位朋友能再接再厲
工作流系統實現的的關鍵,通過設計器畫圖,把圖中的節點與邊表示為一個可以處理的圖數據結構,
使用算法對這個圖模型進行自動編歷,在遍歷過程中把活動觸發,活動的代碼處理完成后對節點數據
進行修改,循環繼續遍歷 ,直到最后一個結束點,至于其中的什么并發,串行,匯聚,分流等。。
都是算法設計上需要處理的問題,越簡潔的流程圖數據結構越能方便算法處理這個圖,而過多的數據
會影響算法設計者的思路。。。。有時會陷入死胡同.....所以對于初入這行的朋友來說,把這個門坎
邁過以后,再來看其它的工作流系統,會一通百通。。
我希望我們的項目中使用的工作流軟件都非常優秀,而要做一個非常優秀的工作流系統出來,也許
不是一兩個公司或者組織幾個人就能搞的很好的,因為這里面有很多東西是在不停的變化的,大家在
一起討論,把自己的設計,思路拿出來,共享,會把我們所有人的水平提高的,閉門造車只能把自己
封閉起來,希望大家一起進步。。。。。
基本功能
畫有向圖(節點,連線),保存,提交,圖遍歷算法(目前想設計一個動態的智能流程處理算法出
來。。所以在研究算法。。請高手不要笑話)
類說明
1: workflow_main 主窗體類(無具體功能)
2: workflow_GraphEd 繪制流程圖類
3: workflow_FlowTree 主窗口坐邊的樹型瀏覽區類
4: workflow_DB_connection 連接數據庫類
5: workflow_JGraphGXLCodec 寫GXL文件類
6: workflow_Graph2Gxl 保存GXL文件主類
7: workflow_dom 使用DOM讀取解析GXL文件數據類
8: workflow_client 活動節點處理類
9: workflow_FileImportGxl 還原顯示GXL文件為流程圖類
10:workflow_GxlReader 使用SAX讀取GXL文件,現在已經不使用
11:workflow_IntoSql 寫數據庫類
12:workflow_stepMain 對數據庫中的流程數據進行初步處理的類,供引擎使用
13:workflow_engine 主引擎類(實現流程圖遍歷算法,使用修改過廣度優先算法,可以實現簡單的會簽和并行功能。。。)
14 workflow_AbstractActionDefault 接口方法(內部調用)
15:GraphEd_ChangeCellAttribute_Dialog 修改圖節點屬性類
16:workflow_progressbar 進度條顯示類
17:workflow_RTCView.java 顯示正在運行的流程圖的狀態類
18:workflow_showFlowManager.java 擴展類(保留)
19:workflow_StatusBar.java 窗口欄狀態類
20:workflow_SystemConfig.java 調用數據庫參數配置類
21:workflow_tools.java 工具類
22:workflow_userlist.java 樹型用戶列表顯示類
23:workflow_loginMain.java 系統登錄檢查窗口類
24:workflow_DocTree.java 外部公文錄入窗體類
25:workflow_Document.java 外部公文主窗口類
26:workflow_DcoumentActionContent.java
27:workflow_DocumentNewDoc 創建新公文類
28:workflow_Control.java 客戶端運行控制類
29:workflow_AddStepActive.java 增加活動節點屬性類
擴展說明