一种基于工作流引擎的系统设计

关键词: 协力 循序 群组 工作

1 概念简介

工作流就是:“在一个工作群组中, 为了达成某一个共同目的而需要多人协力以循序或平行工作的形式来共同完成的任务”, 为了实现对业务过程的工作流管理, 需要有相应的软件系统的支撑。此种软件系统我们就称之为工作流管理系统。

为了做好工单流转, 我们基于工作流引擎开发了工单系统。该系统功能结构图见图1。

现对工作流引擎做一个简单介绍。

2 流程管理

2.1 子流程嵌套

如图2, 当主流程激活子流程后, 主流程暂停运行, 等待子流程结束后才能继续运行。主流程激活子流程时, 主流程的数据 (流程变量) 必须能够传递到子流程中, 当子流程结束后, 也必须能够将数据 (流程变量) 传递回主流程中 (见图2) 。

2.2 流程回退

如图3所示, 流程回退指的是流程回到起点重新发起的功能。无论流程的当前节点在什么位置, 流程回退总是回到流程的第一个任务节点 (见图3) 。

3 任务管理

3.1 任务新建

任务新建是指用户从权限范围内选择某一流程创建一个任务实体, 并且自动拥有第一步骤的主办权限, 填写处理表单信息和处理意见, 选择后继处理人员后可转派任务。允许用户选择立即办理或者是保存返回。有创建该流程的历史记录, 提供快速创建新任务的功能或者是创建任务的向导。立即办理默认任务认领完成。

3.2 任务认领

任务认领是指用户主动领取系统分配给自己的任务, 任务认领之后方可进行任务处理;未认领的任务状态为“待认领”状态, 已认领的状态为“处理中”;流程管理员可设置任务认领时限及催办动作。

3.3 取消任务认领

取消任务认领是指用户对已认领的不属于自己职责范围的任务或误领的任务进行撤销认领的功能。

3.4 任务委托/代理

任务委托是指用户将日常工作委托给其他用户代理执行的功能。委托分为两种类型: (1) 是流程委托, 即委托人指定待委托的流程模板, 则该流程模板产生的所有需要该用户处理的任务均委托给代理人处理; (2) 任务委托, 即委托人可指定具体流程模板中的部分任务节点进行委托, 除此之外其他任务仍由委托人自己处理。用户可以设置委托的生效时间和失效时间。任务委托的要素有:委托时间、委托人、代理人、目标流程、目标任务、生效时间、失效时间。

3.5 任务转发

任务转发是指用户将系统分配给自己的任务转发给其他用户处理的功能。任务转发的要素有:被转发任务、转发人、转发时间、目标责任人、转发意见、最终处理人。

3.6 任务回退

任务回退分为普通节点回退和分支节点回退, 如下图所示。

(1) 普通节点回退。

如图4, 任务B至任务A有两条有向连接线, 其中蓝色箭头表示正常发送, 红色箭头表示被退回。流程模板中不包含红色箭头引擎提供回退接口实现任务的回退功能 (见图4) 。

(2) 分支节点回退。

如图5, 当任务D回退时, 流程不是回退至任务B和任务C, 而是回退到任务A。另外, 任务B或任务C回退时, 无论另一分支的状态如何, 均回退至任务A (见图5) 。

3.7 任务回收

任务回收是指用户收回已正常发送的任务重新处理的功能。

3.8 任务催办

任务催办是指用户在规定的认领时限或处理时限内未做相应处理时, 系统自动触发催办事件, 并执行相应的催办动作的功能。

3.9 任务抄送

如图6所示, 当任务A执行完毕后, 会继续执行主流程上下一个预定任务B, 同时也会激活另一个任务C的执行, 但是任务C不会对主流程的运转造成影响 (见图6) 。

3.10 任务关注

任务关注是指用户把某项任务加入到自己的“收藏夹”, 用户可以在系统中通过查询的方式快递查看被关注的任务的进展情况和状态等, 并且被关注的任务发生状态的变态时向关注者发送任务变态信息等。任务被关注后系统向任务的主办人和经办人等发送任务被关注的提示信息。

3.11 任务查询

任务查询是指用户选择指定的查询条件后对权限范围内的任务进行查询。对查询出的任务在权限范围内可进行关注和点评操作。通过点评操作, 有权限的用户可以对名状态下的任务进行意见的点评, 并显示在任务处理流程中。

3.12 任务事件管理

系统支持各种常用任务事件触发机制, 用户可添加或删除指定任务的系统事件, 并指定事件触发时处理的动作。任务事件包括任务创建、任务认领、任务完成、任务取消、任务回退、任务催办等。引擎需支持异常处理, 用户可设置事件动作是否屏蔽异常。当执行事件动作产生异常时, 引擎将会将流程状态回滚到触发事件前的状态。比如, 如果响应“任务完成”的动作脚本出现异常时, 对应的任务会保持未完成状态。在某些情况下 (如在任务生成时发送短信或Email通知任务执行人) , 我们并不需要在动作脚本发生错误时回滚流程状态, 此时可以选择屏蔽异常选项, 引擎将忽略脚本产生的异常。

4 业务开发流程

为把业务与工作流引擎剥离开来, 我们设计了典型的开发流程如图7所示。

4.1 过程设计和定义

需求开发人员根据用户需求整理业务过程, 并进行过程分析和建模;通过GUI工具创建业务流程模板。

4.2 流程实例化及控制

流程参与者通过业务系统或管理工具, 向核心引擎发起创建和管理流程的请求, 实现流程的实例化及控制。

4.3 过程修改

业务系统在运行过程中可以对现有流程进行优化修改, 实现流程模板的版本升级功能。

摘要:对工作流引擎的流程设计和管理、任务管理等方面进行详细阐述, 为把业务与工作流引擎剥离开来, 最后设计了包含过程设计和定义、流程实例化及控制、过程修改等方面的典型业务开发流程。

关键词:工作流,流程管理,任务管理,业务开发流程

参考文献

[1] Workflow Management Coalition:The Workflow Reference Model (WFMC-TC00-1003 Issue 1.1) , 1995.

[2] Workflow Management Coalition:Workflow Management Coalition Ter-minology and Glossary (WFMC-TC-1011 Issue 3.0) , 1999.

[3] David Hollingsworth:The Workflow Reference Model:10 Years On, Workflow Handbook, 2004:295~312.

[4] 范玉顺.工作流管理技术基础[M].清华大学出版社, 施普林格出版社, 2001.

[5] Foudation for Intelligent Physical Agents.FIPA Abstract Architecture Specification, 2002.

[6] M Wooldridge.Intelligent Agents:Theory and Practice.Knowledge En-gineering Review, 1995.

[7] 何炎祥, 陈莘萌.Agent和多Agent系统的设计与应用[M].武汉大学出版社, 2001.

[8] 顾君忠.计算机支持的协同工作导论[M].清华大学出版社, 2002.

[9] Zhu Yunlong, Li Hongxin, Xue Jinsong, Wang Hongtao.The Design of Coop-erative Workflow Management Model Based on Agent[J].IEEE, 1999.

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:66553826@qq.com

上一篇:基于客户服务器体系的土地管理信息系统模型研究 下一篇:一种基于B/S教学系统的架构及其应用