阅读本文,你必须已经使用过工作流引擎作过纯流程的例子,并且拥有
java,jsp,html
的基础,而且知道如何阅读相关
javadoc/chm
查阅编程所需的
api
。
我们以一个简单的请假流程来介绍如何实现一个工作流项目:
流程很简单,程序员向部门经理提交一张请假单,部门经理收到后,根据主观意识决定是否批准
(
黑暗吧,哈哈
…)
既然要填写一张请假单,因此我们必须知道
”
请假申请
”
活动对应的请假单的路径,在
b/s
程序中,就是请假单的超链接,因此我们要给请假申请活动添加一个扩展属性来记录超链接,如下:
同样,
”
经理审批
”
活动也要一个,后两个活动不重要,略了。
因为需要在审批的时候看到申请单的信息,所以需要知道是哪一条申请记录,最直接的方法,就是储存申请单的主键值在流程中,本例假设该表是单主键,所以我们在流程定义中添加一个工作流相关数据集
id
。
而审批需要根据审批结果是通过
/
失败决定流程的走向,因此我们还需要一个工作流数据集
auditResult(Boolean)
然后要设定表达式,这样才能决定走向
另一条路径就不设了,引擎会自动判断。
下面是各步骤程序功能的说明:
接下来出场的是实现代码
…
…
…
你想的美咧,自己整去
~~
后记:
本文写得挺郁闷的,因为开始时不想画流程,后来发现不画流程不好解释引擎和业务系统间的关系。
接着又发现不容易描述在流程进行时每一步程序该做些什么,于是又画了张描述图,但是这图不知道属于哪种图,而且也不知道别人看不看得懂。流程活动步骤程序伪码图?--这么长的名字有够拉风的。
就这样吧。工作流的初学者可以看看这篇文章。
将工作流引擎与业务系统结合使用,就是在其中一处储存另外一处的一些信息,我上面使用的是在引擎中储存业务信息的方法,当然也可以反过来,在业务表存流程序号和活动序号。
目前任一个开源工作流引擎,都是可以应用到项目的。关键是看自身的技术路线合适哪个引擎,市场考量等等。
但是一般一开始使用某个引擎,以后就很难换掉,因为在不断的扩展引擎的功能,而且要保证历史项目的兼容性,再转移这些代码到另一个引擎就是浩大的工程。
本人原创文档版权归本人所有,如欲转载,请注明作者及出处。