面向部门岗位的工作流引擎研究与实现

2017-06-20 20:41刘恩海徐琳杰李甜刘茜孔瑞平
软件导刊 2017年4期
关键词:工作流

刘恩海+徐琳杰+李甜+刘茜+孔瑞平

摘要:工作流是指业务过程的部分或整体在计算机应用环境下的自动化,工作流引擎是整个工作流的核心。工作流在最初发展阶段缺乏统一的标准,导致不同公司的工作流管理系统在功能、所采用的支撑技术和接口上均不同。在当今先进制造战略背景下,工作流引擎与企业核心利益息息相关,需要支持跨企业的工作流管理技术。为此,借鉴传统的工作流模型,总结出一套适用于不同部门岗位的工作流引擎。阐述通过数据表解决整个审核流程,从而实现业务目标,在多个参与者之间按某种预定规则自动传递文档、信息或者任务。

关键词:工作流;工作流引擎;部门岗位

中图分类号:TP319

文献标识码:A

文章编号:16727800(2017)004007604

0引言 随着企业规模不断扩大,信息资源正以惊人的速度不断增长,单一、集中的信息处理方式不能完全满足实际需求[13]。由于在工作流管理系统开发的最初阶段缺乏统一的标准和受计算机水平的限制,不同公司的工作流管理系统在功能、所采用的支撑技术和接口上都呈现出非常大的不同[47]。此外,由于工作流实现关系到企业的核心运行机制和工作效率,所以工作流实现往往是保密的。为此,通过借鉴传统的工作流模型,总结出一套适用于不同部门岗位的工作流引擎。该工作流引擎支持跨部门使用,而且通过对数据表的总结,详细介绍审核流程实现。用户可以根据同功能需求的审核流程,对该工作流引擎进行二次开发,设计出更适合自身需求的工作流。

1可行性分析

1.1性能可行性分析

面向部门岗位工作流引擎实现的目标包括:缩短审批时间,同时节省申请人和审批人的时间;规范、严格审核流程,规避不按章办事,使信息和审批意见公开化;实现审核流程可定制,针对自身实际需求提前设置审核流程[2,4,89]。

1.2非性能可行性分析

一个好的工作流引擎除了实现应有的功能外,还应该考虑到用户体验。使用该模型设计的系统更贴近实现的审核流程,操作简便。并且有很好的可配置性、可扩展性、可维护性、可移植性。

1.3经济可行性分析

系统完成后可直接部署在政府机构和企业内部服务器上,加强政府与企业和公众之间的互动。同时减少纸质文件传递。

2工作流引擎设计与实现

本工作流引擎审核流程为:申请人登录后,填写申请信息;选择已有审核流程,如果有多人符合要求,选择具体下一审核人,最后提交项目申请。项目提交后,被选择审核人可以对提交的申请进行审批,并给出意见。如果同意则继续执行审核流程,如果不同意则返回给申请人。项目未被审核时,申请人可以选择撤回或者删除项目,如图1所示。在审核流程中有两个必要条件:①根据自身实际需求设置好相应的审核流程,要让申请人提交项目时能选择到适合自己的审核流程;②根据统一的查找算法能准确定位下一审核人。

2.1工作流引擎模型E-R图

本文所研究的工作流引擎模型主要由9张表组成,包括:审核表、审核链路表、用户表、部门表、岗位表、部门-岗位表、用户-部门岗位表、工作流表、工作流日志表,如图2所示。 其中,部门-岗位表和用户-部门岗位表作为中间表,是为了减少请求次数,方便操作。用户表可根据实际需求设置字段(图2中的用户表的属性只是举例,根据实际需求设置属性即可)。

2.2准确查找下一审核人

本模型支持跨部门应用,作为核心算法,能根据所选审核流程准确查找到下一审核人,数据流如图3所示。(1)申请人选择适合自己的审核流程,系统会获取审核ID(examineId),通过ajax传到控制器,然后获取当前申请人的userid。(2)通过examineid获取审核链路信息。审核链路储存管理员所设置的所有审核流程,把每一条记录串起来。审核链路表会记录下“我是本审核流程的开始,我现在的岗位是postid1,我的下一个审核流程的岗位是postid2,最后一个审核流程的岗位是postid3”。通过获取的审核链路信息,就可以得到当前岗位信息和下一审核信息。然后把获取的userid、postid1、postid2传到用户部门岗位模型进行处理。

(3)根据当前用户(userid)和当前用户岗位(postid1)获取对应的本部门列表。需要注意的是,如果申请人属于多个部门,获取到的可能是多个部门的相同岗位,所以是一个二维数组。(4)再根据获取到的部门信息,根据pre_id获取该部门的上级部门。把获取到的这些信息处理成树状结构,方便后续处理。(5)分别获取部门列表下的下一审核岗位信息。根据已经获取的树状结构和岗位信息,获取当前部门下有哪些岗位和下一审核岗位(postid2)相同。(6)获取下一审核流程的部门岗位信息,就可以根据已有信息获取当前部门、岗位下的人员,如果有则直接返回第一个部门下的列表。(7)去除重复用户。假设A、B两人均兼任两个部门的两个岗位,并且岗位相同时,就会触发该方法。

2.3工作流的待办、在办、已办、搁置

审核流程包括待办工作、在办工作、已办工作、搁置工作4部分,如表1所示。

2.4工作流取回

申请人提交项目后,如果发现有需要修改的地方,可以执行取回操作,数据流图如图4所示。 当申请人执行取回操作后,执行顺序如下:(1)判断当前流程当前申请人是否有权限取回。(2)获取当前工作流日志表对应的信息。(3)获取工作流日志表中当前工作流的待办信息,也就是“is_commited”为“0”的信息。(4)重置工作流日志本条数据为待办信息,也就是把“is_commited”和“is_clicked”都置為“0”。(5)删除下一条工作流日志信息。(6)获取对应的当前审核流程的工作流表信息。(7)获取对应的当前审核链路的信息。(8)更新工作流表中的当前链路信息为本审核流程的根节点。

2.5工作流删除

如果申请人发现提交项目问题比较大,可以进行删除,流程图如图5所示。具体步骤如下:

(1)获取当前用户信息;(2)获取当前工作流日志信息;(3)判断工作流日志表的当前审核节点是否为当前用户,如果不是就显示异常;(4)判断用户在当前用户下是否未提交,也就是判断“is_commited”是否为“0”;(5)获取工作流日志表中对应的当前工作流表中的信息;(6)判断工作流表中的审核链路节点是否为根节点,否则,显示异常;(7)获取所有相关的项目信息,并进行删除。此步骤可以针对不同的系统进行操作,只要删除与审核流程关联的项目信息即可。(8)删除本条审核流程中的所有工作流信息;(9)删除本条审核流程中所有的工作流日志信息。

2.6工作流审批

审核流程中最复杂的操作属于审批,整个审核流程中,无论审核到哪一步,审核人都要进行此项操作。工作流的审批操作包括同意申请、退回申请人、搁置项目、取消搁置4种类型,流程图如图6所示。具体步骤为:Step1:获取操作类型type和工作流日志ID,并判断参数是否正确,不正确则显示异常;Step2:获取用户信息和工作流日志信息;Step3:进行权限判断,判断用户是否有权限对该审核节点进行操作,即工作流日志中的userid和获取当前用户信息中的userid是否相同。 以上是统一的判断,根据获取的类型(type)的不同,执行不同的操作。(1)如果用户进行同意或者办结操作,步骤如下:①获取工作流日志表中对应的工作流信息;②获取工作流表中对应的审核链路信息;③判断是否为终节点,分两种情况:如果是终节点,进行如下操作:保存当前工作流表中的信息,即“is_finished”为“1”;保存当前工作流日志表中的信息,即“is_commited”为“1”。如果不是终节点,进行如下操作:获取当前审核链路信息;获取本审核流程的用户审核列表,并判断当前用户是否在用户审核列表中,如果不在则显示异常;保存工作流表的链路信息为下一链路节点;保存工作流日志信息,即工作流ID,下一审核人的userid。(2)如果用户进行退回操作,步骤如下:①根据工作流日志表中的上级ID字段,获取本审核流程中的第一个申请人的userid;②获取本审核流程中工作流日志信息;③获取工作流日志对应的工作流信息;④获取工作流對应的审核链路根节点的信息;⑤更新工作流日志信息,即“is_commited”为“1”;⑥保存下一条工作流日志信息,即userid为第一申请人;⑦更新对应的工作流信息,即当前对应的审核链路节点的信息。

(3)如果用户进行的是搁置操作,步骤如下:①判断当前工作流日志是否提交,即查看流程是否完结,如果完结则不搁置,返回提示信息;②如果未完结,更新当前工作流日志信息,即“is_shelved”为“1”。(4)如果用户进行取消搁置操作,步骤如下:①判断当前工作牛日志信息中是否存在待办,且已经搁置的信息,不存在返回提示信息;②更新当前工作流日志信息,即“is_shelved”为“0”。

4结语

本文根据传统的工作流模型,利用9张数据表实现了面向部门岗位的工作流审核流程,用户可以根据自身需求进行管理,也可以进行二次开发。一个良好的工作流审核机制能促进各部门工作的网络化、电子化、规范化。同时,该工作流技术也改变了各个部门在审批过程中出现的审批时间较长、容易出错、审批流程相对固定等问题,极大地提高工作效率。

参考文献:[1]颜超. 基于工作流技术的税务管理系统的设计与实现[D]. 上海:上海交通大学, 2015.

[2]李欧. 基于工作流的行政审批管理系统的设计与实现 [D]. 长春:吉林大学,2015.

[3]陈洁. 基于工作流的企业批文审批系统设计与实现[D]. 长沙:湖南大学,2013.

[4]张占佳, 齐军, 寇付友, 等. 面向业务工作流的城建档案汇交监管系统之设计与实现[J]. 城建档案, 2014(2):3941. [5]王卫东, 周国祥. 基于Petri网的审核业务工作流层次结构化建模[J]. 合肥工业大学学报:自然科学版,2012,35(10):13411344.

[6]钱会敏. 工作流数据模型的研究与应用[D]. 大连:大连理工大学, 2005.

[7]石晋. 基于工作流的测井数据入库质量控制技术研究[J]. 信息系统工程, 2016(2):41.

[8]林冰. 浅析财政投资评审工作流程与要点[J]. 建材与装饰, 2016(10):232234.

[9]张乐, 潘传江, 路晶. 基于工作流的飞行计划网上申报研究[J]. 科技展望, 2015,25(29):135.

[10]沈满, 赵嵩正, 刘婧. 依据角色权限的审批工作流模型构建[J]. 计算机工程与应用, 2015(4):235239.

(责任编辑:陈福时)

Abstract:Workflow refers to the automation of the business process in the computer application environment, and the workflow engine is the core of the whole workflow. Due to the lack of unified standards in the initial development stage, workflow management systems of different companies have different functions, support technologies and interfaces. And in today's advanced manufacturing strategy of the situation, the workflow engine and enterprise core interests are closely related, and requires support for cross-enterprise workflow management technology. Under this demand, through a reference to the traditional workflow model, summed up a set of different departments for the workflow engine. This paper describes how to solve the entire audit process through nine sheets of data, so as to achieve the goal of using a computer to automatically transfer documents, information or tasks between multiple participants according to a predetermined rule.

Key Words:Workflow;Workflow Engine;Department Position

猜你喜欢
工作流
支持节点协同的工作流模型构建方法研究
基于工作流2.0的智慧教室设计与研究
工作流在电力生产管理信息系统中的设计和应用
基于J2EE的电子政务系统研究与应用
基于J2EE的电子政务系统研究与应用