引言
工作流技术的发展为企业流程性建设提供了全新的手段和思路。工作流是业务流程的完全或部分自动化运行,是现实世界中各种业务工作过程在信息世界中的映像。现代企业日常管理中存在大量流程性的业务,如计划审批、物资采购、设备检修等,这些工作分为不同环节,由不同人员协调完成,同时,企业可能需要根据各种内部及外部情况变化来调整其工作流程,这就要求工作流信息技术也应该具有动态调整的能力,即具有柔性。
针对柔性工作流技术,已经有不少文献从理论角度对它们进行了研究和探讨。本文结合实际企业管理信息系统,在参考传统工作流模型的基础上,对动态柔性工作流技术进行了研究,并设计和实现了一个通用的、可扩展的工作流管理系统。该系统可以实现流转前和流转过程中的动态配置,在企业内部实现更好的业务过程控制和业务监督机制,较好地满足企业流程性业务的管理需求。
一、柔性工作流相关理论
工作流管理联盟(Workflow Management Coalition,WfMC)对工作流的定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,使文档、信息或者任务能够在不同的执行者之间进行传递与执行。工作流包含了若干个任务(亦称为活动)和它们之间的联系,即任务的起始和终止条件、任务的相关描述、任务的调度规则以及其他相关信息,如参与者的角色、权限等等。如果将它们对应到企业的经营过程,那么任务代表的是经营过程中的活动,它反映经营过程中的执行动作和操作;任务之间的联系代表的是经营过程的规则和业务流程。
所谓柔性工作流泛指工作流运行方面具有柔性,柔性体现在流程管理领域是指“流程无需被完整替换即可进行改变”,以及“流程在面对可预知和不可预知变化的时候能够调整受影响的部分,同时保持不受影响的部分的基本形式”,是一种动态特性。柔性工作流的主要目的是在不损失对用户完成实际业务工作的支持能力的同时尽可能提高灵活性,以便用户更好地应对现实工作中可能遇到的各种变化、异常和不确定性问题。
二、柔性工作流的设计
2.1 工作流元模型定义
元模型用来定义语义模型的构造和规则,流程元模型用于描述流程内部的各个元素、元素之间关系及元素属性。在对流程分析的基础和实际应用中,流程元模型可以抽象归纳为以下四部分:过程元模型、活动元模型、组织元模型、数据元模型,其中过程元模型和活动元模型是流程元模型的核心组成部分。四个元模型之间的关系如图1所示。
2.2 柔性工作流模型设计
柔性工作流模型要求能处理工作流可能发生的变化和异常情况,并可以使工作流过程模型重用并容易修改,从而提高其可用性和可扩展性。对流程元模型的分析发现,过程元模型相对固定,可以通过扩展活动元模型来实现工作流柔性的需求。一方面,可以通过对活动引入路由配置,由工作流引擎动态读取,确定实例运行路径,并对活动赋予类型属性,用来区分一般活动和不确定活动,不确定活动又可以分多个并行活动和子流程。不确定活动之间通过定义父子关系来规约并行活动和子流程。可以在实例运行前配置或者运行过程中配置;另一方面,引入活动交互列表机制,当实例中每个活动结束后,由工作流引擎根据上一个活动的执行结果和组织结构配置更新活动交互列表,并触发下一个活动。工作流引擎推送待办活动交互列表给实例处理人,并将处理结果推送给路由,从而继续触发下一个活动,实现实例活动的正常流转。柔性工作流模型如图2所示
三、柔性工作流在企业管理系统中的应用
3.1柔性工作流原型设计
根据柔性工作流模型,以下简要说明柔性工作流原型的设计。
a.工作流活动建模定义。通常,实际的工作流会根据相关规则划分为若干活动,活动是工作流运行的基本单位。工作流活动建模过程中,通过活动路径及相关属性参数结合路由信息,增加、删除、修改活动节点,并更新数据库中的工作流信息记录,实现工作流的单个或多个活动的动态控制,从而实现工作流的柔性化定义。工作流活动建模定义如表1所示。
表1 柔性工作流活动建模定义
元素和角色描述及其相关规则,这些规则决定了工作流实例在运行过程中活动的状态及路由选择,过程建模主要包含以下元素。(1)过程:一个过程由若干活动节点及相关控制流数据流构成的,在实际过程中可以表示一个工作流程。(2)活动:过程模型中的一个节点元素表示一个活动,它代表执行某个动作的具体步骤,是参考活动模型定义来创建一个活动实例的。(3)控制流:控制流是指一个过程相关活动节点执行顺序的控制信息,对活动执行起到导向作用,一个过程的所有活动及活动之间的控制流实现了工作流程的路由选择功能。(4)数据流:数据流是指两个活动之间的输人输出的相关信息,一个活动的输出信息由引擎处理后影响后续活动节点,从而实现数据流的传递。
3.2 柔性工作流的具体实例应用
下面以工程投资项目立项审批流程为例说明柔性工作流的具体应用。工程投资立项流程如图3所示。
该流程比较简单,以一般活动为主,其中涉及多部门会审为不确定活动节点,且多部门会审为并行活动节点,对于需要参与会审的部门在流程实例运转过程中并不确定。该流程在工作流中的具体配置参数如表2所示。
表2 工作流流程活动参数配置
为了更清楚地说明工作流的应用,下面给出工作流引擎对工程投资立项流程处理过程。当立项申请提交后,工作流引擎会生成流程实例,并读取配置参数,配置参数除前面表2列出的参数,还有角色权限配置参数。工作流引擎根据排序码确定流程路由,更新每个节点处理后的信息及交互列表信息到数据库中,并推送待办事项给相应的用户,用户只需处理待办事项,完成当前节点的操作,从而实现流程的正常流转,如立项一部门申报提交后,工作流引擎会推送一条待办任务到管办的操作员界面。
如果节点操作遇到重审、撤销、否决,工作流引擎会根据操作结果更新当前节点,重置流程实例状态。另外对于流程需要增删节点的情况,管理员可以对参数进行配置,如增加“44立项—会审一技术中心”节点,配置父节点为40,工作流引擎会按新的参数进行自适应处理;如果对运行中的流程实例进行参数修改,工作流引擎会挂起当期节点,对新配置参数处理后,按照新的流程运行实例,当然这里的修改需要遵循一定的规则。
四、结束语
本文在对工作流理论和元模型分析的基础上,设计并实现了一种柔性工作流,该工作流具有灵活、动态地处理变更和异常的能力,可以应用到企业管理系统中以满足企业业务流程不断变更的需求。当然工作流柔性是个复杂的问题,目前还没有比较全面的理论和解决方案,本来介绍的工作流也难免存在局限性,但其实现思路和方法仍具有一定的参考价值。
CIO之家 www.ciozj.com 公众号:imciow