1、业务流程管理在设计院绩效考核系统中的应用摘 要 业务流程是绩效考核工作的主线,它决定了绩效考核业务的组织与实施。因此管理好业务流程是一项非常重要的工作。优秀的业务流程管理软件不仅能实现用户的各种业务流程,还能为流程变更、后期维护提供一系列解决方案。在 Java 开发环境中,jBPM 是一款非常优秀的开源业务流程管理工具。本文以设计院绩效考核工作为例,重点讲述了业务流管理系统 jBPM 在软件开发中的应用。 关键词 业务流程;绩效考核;jBPM 中图分类号 F275 文献标识码 A 文章编号 1673 - 0194(2013)13-0048-03 1 引 言 目前我院正采用信息化的管理手段逐步将
2、绩效考核工作改为以网络为平台进行管理,彻底摒弃传统的手工管理方式。绩效考核的核心是工时申报、审批与发放。目前我院的绩效考核方法依然处于不断完善的过程中,这就造成了审批流程会发生一定的修改与变化。对于信息管理系统,最担心发生的事情就是需求变更,而业务流程的变更无疑会对整个应用系统的维护产生巨大影响。为了适应这种变化,更科学地对业务流程进行管理,在对比国内外比较知名的工作流引擎后,决定采用 SSH 为主框架,结合主流的业务流程管理引擎 jBPM,开发“绩效考核管理系统” 。借助 jBPM 技术能够快速部署业务流程,及时响应流程变化,非常好地适应了我院业务管理需要,是一个比较好的解决方案。 2 JB
3、PM 简介 jBPM 是一款非常优秀的工作流管理和业务流程管理(BPM)软件,它具备完善的业务流程处理功能,并且提供有一系列管理机制,让软件开发过程更加简便。将其应用到绩效考核中后,对于整个软件的开发起到了立竿见影的效果。其优势主要有如下几点: (1)jBPM 可以很自如地应对流程变化的情况。由于我院的绩效考核工作会定期进行总结,因此必然会有一些流程发生变动。如果采用常规的流程处理方式,当流程变化后,必然会对整个软件造成很大的冲击。采用 jBPM 后,只需要修改流程定义部分,以及程序中少量代码即可实现此功能。 (2)jBPM 采用图形化的方式定义各种流程,让流程的维护非常直观、高效。目前业界很
4、多工作流管理软件对于流转的定义,都需要非常复杂的的规范逻辑,造成业务流程的定义和维护非常吃力。而 jBPM 可提供相应的图形化工具,让流程的定义更加简单、快捷。 (3)对于 SSH 开发模式的完美支持。绩效考核系统采用 SSH 开发模式进行开发,而 jBPM 的底层数据库采用 Hibernate。正是这种底层的数据管理的一致性,为 jBPM 的应用和改造提供了可能。 尽管 jbpm 本身已经是一款非常优秀的开源业务流程处理引擎,但它也存在一些功能上没有完全覆盖到的地方。此外,有些功能可能会与自身需要有所出入,需要在软件开发过程中进行探索完善,让其充分发挥自身特长,实现动态业务流管理。 3 绩效
5、考核系统功能简介 绩效考核作为人力资源管理的重要组成部分,对激发员工的工作热情,提高工作效率起着非常重要的作用。目前,我院采用工日制设计项目绩效考核,实行“管理部门核定项目各专业工日,专业室所考核分配”两级考核方式。因此,该系统主要围绕着“工时申报”展开。该系统主要的功能如图 1 所示。 其中,绩效考核工作的重中之重就是工时审批。审批环节也是制约我院绩效考核工作效率提升的一个重要瓶颈。如何借助信息化技术提高工时审批流程的流转速度、提高数据报审的效率,是绩效考核工作的核心和重点。工时审批流程往往由于用户业务需要进行一些调整,这就对本系统的开发与后期维护提出了更高的要求。 图 2 为当前我院项目工
6、时审批的主流程图。 4 Jbpm 工作流技术的应用与实践 在本系统中借助 jBPM 实现了对业务流程的管理与维护。但是在开发过程中,由于本系统自身功能需要,发现一些比较特殊的功能无法实现,因此对 jBPM 做了一些功能上的定制与改造。下面对本系统开发过程中,使用 jBPM 碰到的一些主要问题进行重点讲解。 4.1 待办任务的获取 在本系统中,采用 jBPM 的候选任务设计机制将任务与任务的执行人进行关联。用户待办任务的获取是业务流程管理中一项非常重要的工作,用户借此能非常清晰、直观地获取自身需要执行的任务。 jBPM 可提供相应的方法直接获取用户的任务,例如: 这样的方式虽然很简便,但是存在很
7、大的局限性。开发人员无法对获取到的任务进行相关的筛选。当多流程、多任务时,用户同时面对各种各样的任务。 本系统为了能够比较自由地获取待办任务,在研究了 jBPM 的源代码和数据库结构后,对 Task 对象采用 Hibernate 进行继承和封装,开发适合自身特点的获取待办任务的数据模型和功能方法。 主要涉及的数据查询语句如下: 4.2 业务处理日志记录 jBPM 中有相关的日志记录功能,但其日志信息更多的是为了维系jBPM 自身的业务流程管理而建立,并不能翔实地反映出整个业务流程在各个节点的具体业务处理过程。如果用户需要自定义记录相关业务流程流转的日志信息,就需要自身进行二次开发。 在本系统中
8、,为了记录工时审批环节的审批信息、执行动作信息等数据,本系统采用 Struts 2 中的拦截器机制,在 jBPM 进行业务流程环节处理的同时,自动记录符合要求的日志信息。使用拦截器进行开发,可以让程序结构更加清晰,实现业务功能与辅助功能的分离。功能示意图如图 3 所示。 4.3 审批流程的调整 使用业务流程管理技术的优势不仅在于实现业务流程的快速部署与应用,还在于能够灵活应对具体业务流程的变更。信息系统的开发应用,往往由于业务流程变更造成系统无法及时做出响应而被弃用。借助业务流程管理,可以很方便地进行动态调整,对系统代码的主框架影响非常小。 在我院的绩效考核系统程序功能完成后,用户根据试用结果
9、提出了“优化审批流程,精简审批环节”的要求。为了实现用户提出的功能需求,本系统首先对 jBPM 的流程定义进行调整,修改了相应的一系列配置文件,借助我单位自主开发的通用业务审批功能模块,在不影响其他功能代码的情况下,实现了业务流程的变动。 图 4 显示的就是单体数据审批流程变化前后的流程图对比。 4.4 流程图的动态显示 在业务流程处理时,用户非常关心的一个问题就是如何用图形化的方式显示流程图走向以及标注当前节点所处位置。该功能无法直接使用jBPM 动态获取,需要进行在页面前台进行开发。本系统使用 JSP 页面直接生成了图形化的流程图。主要实现步骤如下: (1)需要使用 ZipInputStr
10、eam 的方式发布流程。 (2)编制相应的 JSP 页面,并在其中获取相应的 jBPM 环境以及流程当前所处节点。 (3)使用输入流的方式获取系统对于流程的 ZipInputStream 方式的定义,并循环输出到页面上。 (4)利用流程定义,结合当前流程节点计算坐标,显示当前节点位置的红框。 JSP 页面中的主要实现代码如下: 5 结 语 本系统重点介绍了业务流程管理在开发我院的“绩效考核系统”过程中的应用。jBPM 业务流程管理系统是一款非常不错的开源工具,能够实现业务流程的快速定制与部署。但是在使用过程中,还是发现有很多不尽如人意之处。在认真分析的基础上,我们对其进行定制和二次开发,让 jBPM 的应用更加灵活多样,更符合自身软件开发的需求。使用业务流程管理工具,能够让系统开发人员更加专注于自身业务功能的开发。最为重要的是,在管理流程发生调整的时候,业务流程管理工具会更及时快捷地做出响应。这种变化对软件系统的整体影响很小,避免了大量的重复开发工作。业务流程管理的应用,明显提高了软件开发效率,让应用系统具有更强的适应需求变化的能力 ,因此具有很好的推广价值。 主要参考文献 1胡奇.jBPM 4 工作流应用开发指南M.北京:电子工业出版社,2010. 2侯志松,余周,冯启高.工作流管理系统开发实录基于 JBoss jBPM 实现M.北京:中国铁道出版社,2010.