转自:
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 增加活动节点属性类
扩展说明