现在的位置: 首页 > 综合 > 正文

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

2013年08月11日 ⁄ 综合 ⁄ 共 925字 ⁄ 字号 评论关闭

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

 

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

 

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

 

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

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

 

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

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

 

 

 

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

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

 

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

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

接下来出场的是实现代码

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

 

 

后记:

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

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

 

 

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

 

 

 

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

 

 

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

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

 

 

 

 

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

抱歉!评论已关闭.