小P的专栏

入门资料,图文教程

原创 用工作流引擎实现工作管理项目(Shark+JaWE+Tomcat)收藏

新一篇: Shark流程跳转的设计 | 旧一篇: Shark中xml-object映射的设计

阅读本文,你必须已经使用过工作流引擎作过纯流程的例子,并且拥有java,jsp,html的基础,而且知道如何阅读相关javadoc/chm查阅编程所需的api

 

我们以一个简单的请假流程来介绍如何实现一个工作流项目:

 

流程很简单,程序员向部门经理提交一张请假单,部门经理收到后,根据主观意识决定是否批准(黑暗吧,哈哈…)

 

既然要填写一张请假单,因此我们必须知道请假申请活动对应的请假单的路径,在b/s程序中,就是请假单的超链接,因此我们要给请假申请活动添加一个扩展属性来记录超链接,如下:

同样,经理审批活动也要一个,后两个活动不重要,略了。

 

因为需要在审批的时候看到申请单的信息,所以需要知道是哪一条申请记录,最直接的方法,就是储存申请单的主键值在流程中,本例假设该表是单主键,所以我们在流程定义中添加一个工作流相关数据集id

而审批需要根据审批结果是通过/失败决定流程的走向,因此我们还需要一个工作流数据集auditResult(Boolean)

 

 

 

然后要设定表达式,这样才能决定走向

另一条路径就不设了,引擎会自动判断。

 

下面是各步骤程序功能的说明:

拜CSDN所赐,此图丢失,狂怒中...

接下来出场的是实现代码

你想的美咧,自己整去~~

 

 

后记:

本文写得挺郁闷的,因为开始时不想画流程,后来发现不画流程不好解释引擎和业务系统间的关系。


接着又发现不容易描述在流程进行时每一步程序该做些什么,于是又画了张描述图,但是这图不知道属于哪种图,而且也不知道别人看不看得懂。流程活动步骤程序伪码图?--这么长的名字有够拉风的。

 

 

就这样吧。工作流的初学者可以看看这篇文章。

 

 

 

将工作流引擎与业务系统结合使用,就是在其中一处储存另外一处的一些信息,我上面使用的是在引擎中储存业务信息的方法,当然也可以反过来,在业务表存流程序号和活动序号。

 

 

目前任一个开源工作流引擎,都是可以应用到项目的。关键是看自身的技术路线合适哪个引擎,市场考量等等。

但是一般一开始使用某个引擎,以后就很难换掉,因为在不断的扩展引擎的功能,而且要保证历史项目的兼容性,再转移这些代码到另一个引擎就是浩大的工程。

 

 

 

 

本人原创文档版权归本人所有,如欲转载,请注明作者及出处。

发表于 @ 2005年12月05日 21:32:00|评论(loading...)|编辑

新一篇: Shark流程跳转的设计 | 旧一篇: Shark中xml-object映射的设计

评论

#天恆 发表于2005-12-06 18:01:00  IP: 221.226.116.*
還行
不過也是最基本的了
權限角色和工作流結合沒有重點點出
工作流原理都差不多
#cm4ever 发表于2005-12-06 22:40:00  IP: 218.19.3.*
谢谢 天恆。

加上权限教程就有点肥了,正如我blog的副标题所说:
入门资料,图文教程

我只写些给初学者看的文章。
#oilinsea 发表于2005-12-07 10:47:00  IP: 222.60.128.*
学习ing,工作流指的是什么?有什么特殊的含义?
#cm4ever 发表于2005-12-07 11:35:00  IP: 219.136.106.*
楼上的,你狠。

还是用教程中的例子,假设你病了,要请假,先写请假单,交到经理手里。经理确认后叫给人事部登记。这一系列的步骤组成一个请假流程。

在企业管理中,工作流程无处不在。
#source520 发表于2005-12-07 13:07:00  IP: 219.134.0.*
好,帮顶



--------签名档---------------------------

比肩国内顶尖源码下载站点 -> 源码我爱你

http://www.source520.com
http://www.source520.net

80G源码电子书免费免注册下载,大量精辟技术文档库随时更新
******************************************************************
附:为了站点持续发展,现有本站近年来收藏的大量大型商业源码低价出售,
详情请进入以下链接查看:
http://www.source520.com/building_delphi.htm

浏览商业代码请从如下URL进入查看实物:
1.商业源码库1: ftp://source520see3:browse@61.152.199.245/
2.商业源码库2: ftp://source520see2:browse@61.152.199.245/
#Lily_Shi 发表于2006-01-12 16:27:00  IP: 218.94.68.*
这个流程一改代码不就得跟着改了?
#tomy 发表于2006-01-13 10:24:00  IP: 220.248.37.*
正好用上了
#cm4ever 发表于2006-01-14 22:29:00  IP: 218.19.161.*
就算我在工作流引擎核心扩展了业务功能,再加上和工作流结合紧密、动态配置的表单开发框架,但是做了6个以上工作流项目,还没见过改流程不改代码的。
#Lily_Shi 发表于2006-01-16 15:53:00  IP: 218.94.68.*
用户自定义流程不能实现的话,使用工作流还有意义么?
#pressmana 发表于2006-01-25 10:49:00  IP: 222.92.92.*
我想问个问题,流程/活动的扩展属性的值能不能在运行时动态改变的?
也就是我在流程定义是定义了一个初始值,但当我启动某个流程实例时,根据用户作的某个动作能否动态改变它的值?
#cm4ever 发表于2006-01-28 16:55:00  IP: 218.19.5.*
to Lily_Shi:
1.你觉得用户能够自己配置出一套特殊业务的应用系统吗?
2.你觉得企业的管理流程会经常变动吗?

to pressmana:
1.如果你想改变某个值,应该用流程相关数据集而不是扩展属性。

2.你实在要想改变的话,自己扩展 :)))
#新手 发表于2006-03-22 22:21:00  IP: 61.242.215.*
为什么,不把代码也与出来?

再是全一点,。。。。多谢呀
#cm4ever 发表于2006-03-24 00:27:00  IP: 218.19.4.*
正在筹划自己的个人网站,到时候会补全,但至少也要1个月以后了。
#刚研究 发表于2006-06-17 15:29:00  IP: 218.81.233.*
如何设置某个活动的提交期限啊 请教 谢谢
#yyaivera 发表于2007-11-23 09:59:47  IP: 125.33.5.*
谢谢分享
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © cm4ever