jBPM4工作流引擎在办公自动化系统中的应用

时间:2022-05-20 12:22:14

jBPM4工作流引擎在办公自动化系统中的应用

摘要:本文对校园网和虚拟机技术做了详细的分析,使用VMware Workstation6.0在同一台物理机器上建立了多台虚拟机,在虚拟机上实现了校园网中SAMBA、DHCP等应用服务器的功能并对其做了相关测试,达到了预期的效果。

关键词:校园网;虚拟机;服务器

1 引言

随着信息时代的发展,传统的通过电子表格、电子邮件等方式实现的信息化办公已渐渐成为各行各业提高效率的瓶颈,实现办公自动化、协同化已成为国内外众多企业、政府、服务性行业谋求发展的必经之路。办公自动化(OA)系统中,典型的应用便是公文的流转、各种申请的逐层审批等。这种类似工业中流水线的应用形式使得工作流的思想应运而生。

2 jBPM4工作流引擎

jBPM是一个基于Java的、可扩展的工作流引擎,使用流程引擎作为调用各种服务及查询的唯一入口。流程引擎负责解析配置文件及流程定义,获得各种服务来完成流程定义文件的、流程实例的驱动流转、流程变量的传递等,并提供了丰富的查询接口。

jBPM4与OA系统的集成如下:

(1)与现有OA系统的嵌入式集成

jBPM提供的身份认证组件功能有限,若是与已有OA系统集成,最好的办法是能够直接使用OA系统中的身份认证模块。在jBPM4中使用其他身份认证组件,需删除配置文件jbpm.cfg.xml中的一行代码:

然后在同一个文件中添加如下部分:

MyIdentity类需要实现IdentitySession接口,尤其是findGroupsByUser和findUserById两个方法。

(2)历史流程变量

jBPM4.3中没有对已结束流程实例的流程变量进行持久化,故该功能是一个必须完善的功能。这个功能的设计实现,借鉴了对模板方法进行挂钩的设计模式,即将流程定义看做是一个由各种节点组成的模板,在每个节点的任务完成之后,离开这个节点流转到下一个节点之前,对这个节点产生的变量及其对原有流程变量的改变进行持久化。充当钩子的是一个实现了EventListener接口的类BeforeEnd,在这个类的notify方法中完成对流程变量的储存。

3 工作流管理系统具体实现

(1)流程背景

员工购买物品前,需要填写购买申请,由上级领导逐层审批,审批通过后才可进行采购。申请首先交由申请人所在部门主要负责人进行会签,有一人不同意申请即被驳回申请人,全部同意后将申请转交上级部门负责人进行审批,上级部门负责人不能够决定的继续转交上级部门负责人,审批通过后由具体部门负责办理,最后转交申请人签收。

(2)物品申请流程

物品申请流程图

从上图中可见,在jBPM4中定义的流程主要由一些节点和转移组成。jBPM4.3提供的18种节点都可以对节点的start、end、take事件及自定义事件进行响应。对历史流程变量功能的完善就是借助这一特性实现的。

(3)具体实现

物品申请流程中填写申请表单、部门审批等人工任务使用task节点进行实现,其中,assignee属性用于指定任务的经办人,经办人通过jPDL表达式从流程变量中动态获得。task节点中的on标签是对节点事件的设置,在这里指定BeforeEnd类作为task节点end事件的监听类。在BeforeEnd类中获取流程变量,修改后再通过setVariables等方法完成流程变量的变更,并进行持久化操作,以此来对历史流程变量功能进行完善。

科室确认步骤中,需要申请人所在部门的所有主要负责人共同会签进行审批,参加会签的人都投了赞成票,申请才能够审批通过。jBPM4.3在流程设计层面没有提供会签功能,可以利用其提供的API来完成会签。

由于参加会签的执行者是在流程流转时动态确定的,故需为每个人动态生成一个任务实例。可以在custom节点中委派处理类,实现动态生成多个任务。

流程实例流转到custom节点后会调用在接口中定义的execute方法。实现时首先创建一个父任务,并将父任务设置为等待状态,代表整个会签任务,随后根据流程中具体产生的参与会签的人员,动态创建多个子任务,每个用户分配一个子任务,由所有人员并行审批。每个子任务完成后判断是否所有子任务都已经完成,如果不是则继续让父任务处于等待状态。

在custom节点中还设置了一个strategy属性,用以作为会签的策略。在这里选用的AllAgree策略代表的是当所有会签人都审批通过时申请才能通过审批。

当所有的会签子任务都完成后,将会签结果以流程变量的形式传递给后续的decision节点,该节点用以根据会签结果自行判断流程走向。

4 总结

本文从多方面对jBPM4工作流引擎进行了研究分析,详细论述了jBPM4与OA系统的嵌入式集成,并通过具体实例来说明如何扩展jBPM4引擎,设计开发了一个工作流管理系统并成功将其运用在OA系统中。

参考文献

[1]Workflow definition. www.wfmc.or

g/.

[2]jBPM Developers Guide.docs.jbo

/jbpm/v4/devguide/html_single/.

上一篇:网管世界:无线网络信号衰弱因素 下一篇:从黑白到彩屏:电子书迎接全新时代?