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

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