周彬潇 中航工业航空动力机械研究所 湖南株洲 412002
关于工作流引擎投递规则的探究
周彬潇 中航工业航空动力机械研究所 湖南株洲 412002
【文章摘要】
工作流引擎是工作流系统的核心,一个强大的工作流引擎不但对业务系统的运行,提供高效稳定的平台支撑,而且对软件开发效率的提高,代码利用率、移植性、灵活性、健壮性等的增强,具有重要的作用,而节点的投递规则在工作流引擎中扮演着重要角色,它设计的好坏直接决定了该款工作流引擎的性能强大。本论文结合项目实际,提出几种重要的工作流引擎投递规则,工作流引擎具备这几种投递规则计算,可以显著缩短工作流系统的开发周期。
【关键词】
工作流;工作流引擎;投递规则
众所周知,各级政府机关都存在着很多的业务流程,例如公文的处理、各种审批、请示、汇报等,这些都是流程化的工作,特别是政府审批。政府审批过程是基于国家或部门法律、法规、规则等制定的政务处理流程,在未使用工作流之前,由于人为对工作程序的删减、添加等,使得过程控制难度很大,如超越职权的审批(越过了必须的审核步骤)、人为的刁难(增加审核步骤)、无限期的拖延等。
工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则、文档、信息或任务能够在不同的执行者之间进行传递与执行。通过在企业管理中引入工作流技术,监控、审计和管理业务流程的有序执行,可以有效地约束和控制企业审批过程,避免人为因素的干扰,减少推诿扯皮现象的发生,大大提高企业管理效率;同时,基于工作流技术,通过对企业审批业务的统一管理,可以有效整合企业办公资源,消除信息孤岛的产生,提高企业管理的决策支持能力。
工作流管理系统是一个软件系统,工作流引擎是工作流管理系统的核心部件,它完成工作流的定义和管理,控制业务过程中各种任务发生的先后次序,调度相关的人力或信息资源,按照预定的逻辑次序推进工作流实例的执行,实现业务过程的自动化执行,为企业业务运行提供软件支撑环境。工作流管理系统的主要功能是通过计算机技术的支持去定义、执行和管理工作流,协调工作流执行过程工作之间以及群体成员之间的信息交互。工作流管理系统将业务流程中工作如何组织协调在一起的规则抽象出来,从而分离了具体工作的逻辑和流程组织的逻辑。实现对业务过程的抽象建模、业务过程仿真分析、业务过程优化、业务过程管理与集成,从而最终实现业务过程的流程自动化管理。
工作流引擎投递规则,指下一步工作人员的接受人范围处理的规则。也就是流程从一个节点跳转到下一个节点的处理人计算规则。下面具体介绍几种重要的投递规则:
2.1按执行人所在组织查找岗位计算
节点配置按岗位计算,并设置完成岗位,工作流引擎会自动按照设置的执行人的部门范围计算当前岗位的执行人,如果该执行人部门下没有这个工作岗位人员,工作流引擎会把当前执行人的部门级次提高一个级别,然后按岗位依次计算。
该投递规则就是岗位的权限与部门权限的交叉形成的被投递的人员集合。岗位表示能做什么事情,部门表示能做那里的事情,岗位和部门表示一个执行人能做那里的那些事情。使用按岗位投递规则,只限于前后相连的节点。
2.2按节点绑定的部门计算
节点配置按部门计算,并设置完成部门,工作流引擎会自动按照设置的部门计算当前执行人。如果设置了按部门计算,那么流程会将待办发送给该部门下所有用户作为执行人。
2.3按指定的人员计算
节点配置成指定人员投递规则,并设置指定的人员,那么流程引擎自动查找设置的人员作为节点执行人。该投递规则写死的方法使用于某个业务办理人比较固定的场景,如果人员发生调动,就要重新设置人员。
2.4按指定节点处理人计算
该投递规则的应用场景比较普遍,一个节点要求执行人同它之前某一个节点执行人一致。设置方式只须获取之前节点的节点编号,当流程跳转到该节点,流程引擎根据指定的节点编号查找之前节点执行人。
2.5按指定节点人员岗位计算
该投递规则适用于某个节点要实现其上一个节点之前的某个节点同岗位执行人的场景。两节点之间并无直接关系。
2.6按发送人选择计算
对于无法确认,经常变动或没有规则可循的访问节点,只有采用发送人自动选择的方式。该投递规则对于那种业务复杂,无法确认执行人的流程,是一种最直接、最重要的解决方案。使用了该种投递规则,必须在接收人选择器里对接收人进行范围过滤,同时要求用户必须熟悉业务,一旦选择错误的人员,整个流程将按照违背正确业务的流程在运转,流程引擎也不会报错,流程仍然能够运行办结。
2.7按EL表达式计算
对于这样一类使用场景,业务需要申请人在填写表单时确定后面某一节点执行人,让流程按照申请人指定的执行人执行,这就需要EL表达式投递规则。首先在申请人填写表单时候,填写好后面某一节点执行人;其次在后台编写代码创建变量名,获取表单中的执行人;最后在指定的后面某个节点上的参数配置里选择EL表达式,并将后台编写的变量名作为其参数。当流程运转到指定节点,流程引擎自动识别EL表达式中变量名作为当前节点执行人,达到业务提前由申请人指定,流经该节点无需发送人选择的目的。
2.8按SQL计算
该投递规则是几个流程投递规则里面最灵活的一种,通过写SQL语句来实现计算执行人的目的。这需要设计人员特别熟悉数据库表结构,能熟练的使用SQL语句。
2.9与开始节点处理人相同计算
当前节点处理人与开始节点一致情况下,设置了该节点访问方式,流程引擎会自动按开始节点同一个人处理。
2.10按绑定的岗位和部门交集计算
设置该投递规则,必须配置该节点的岗位和部门,流程引擎会自动计算该部门下具有该岗位的人员,作为该节点执行人。
2.11仅按绑定的岗位计算
按照节点上绑定的岗位来计算接收人,这里去掉了部门维度的过滤,执行人通过绑定的岗位计算。
伴随着信息化的高速发展,越来越多企业利用电子审批流程来替代传统的纸质审批,达到提升企业管理水平的目的,一款具有高效计算节点投递规则的工作流引擎,无不是给企业带来福音的选择。
【参考文献】
[1]蔡昭权,卢庆武,郑宗晖.基于元数据的快速开发平台设计与实现[J].计算机工程, 2009, 35(9):60-62.
[2]Ullman J D, Widom J. A First Course in Database Systems[M].[S.l.]:Prentice Hall,1998.