1.1 总体框架
本系统是基于微软.NET环境下开发的,需要SQL Server 2000支持,主要由下图3部分构成:
l 模型工具:提供流程应用的建模工具以及其他辅助支持工具。
l 应用框架+工作流服务引擎:提供流程应用使用执行的运行环境,应用框架提供流程应用管理、监视、访问的界面功能;工作流服务引擎提供工作流实例任务流转的控制处理机制。
l 流程应用:各种工作流应用模块,例如:报销流程、合同审批流程、......等,也包插相关流程应用系统(如:成本管理系统,维修管理系统等)。
在上图结构中,模型工具与应用框架+工作流服务引擎构成工作流的支撑系统,支撑流程应用的模型与模型在运行环境下的实例化应用。
细化的总体框架内部功能模块如下:
图中浅黄色区域的模块提供《工作流系统》流程应用模型的开发工具以及其他支持工具,蓝色区域的模块是流程应用运行环境的主要支撑模块,绿色区域是支撑系统支持的应用流程。
上述体系结构保证了流程应用与系统通用功能的合理组织分离,流程应用的开发人员可以借助强大的模型工具,快速简易地配置开发、或者维护修改、或者调试测试流程应用模型,模型工具可以使流程应用编程量减到最低,以至于流程逻辑基本“0”编程,且流程模型可以灵活调整,调试测试完毕的流程模型可即刻部署上线。在使用环境下的用户通过应用框架“启动任务”功能,启动一个流程实例.
1.2 模型工具
《工作流支撑系统》提供强有力的建模工具,建模工具采用“多文档”模式,能够同时打开多个操作窗口,并在各窗口间进行切换,方便操作,模型工具提供组织机构岗位关系模型、操作用户管理模块的维护工具、系统资源权限配置工具、工作流建模工具、业务表单注册工具。
1.2.1 组织机构岗位关系模型、操作用户管理模块
流程应用的任务是由隶属于特定部门单位与岗位的员工或领导进行操作处理的,例如,电信公司网管中心电路调度岗的员工填写电路调度单,之后提交部门主任审批。
组织机构岗位关系模型,操作用户管理模块维护管理这部分基础数据,用于支持流程建模时,任务处理者配置的实现。
组织机构模型与用户管理模块是一个独立子系统,组织机构模型管理工具维护管理企业的组织机构设置树信息,组织机构树不但包含从企业的各部门分支机构(例如,分公司、部门单位等),还能定义通用的岗位职务,并设置岗位职务在各部门单位,组织机构模型维护单位实体与岗位实体的丰富关系如下:
组织机构(包括组织机构内部)、岗位职务之间的丰富复杂的关系
操作用户管理模块工具维护全体员工的数据记录,并维护这些员工隶属部门以及岗位职务关系。操作用户与组织机构、岗位的关系如下:
由于组织机构(包含岗位)与操作用户数据资源以及它们之间丰富关系的存在,保证了工作流建模时能够灵活定义任何复杂的任务处理者配置机制。
1.2.2 系统资源权限配置
系统资源是指软件系统提供的各种操作功能选项(菜单选项),以及这些选项对应的操作界面,能否访问各种功能选项以及操作界面,是受用户权限控制的,例如,操作用户登录到工作流应用框架窗口(在Web浏览器中称为“网页”或“页面”),如果具备系统管理员权限,则能够看到“系统管理”的菜单选项,而普通用户则不能够看到这个选项,不能访问系统管理操作界面。
《工作流支撑系统》实现了系统资源参数化处理,系统资源权限配置工具负责管理维护这类系统资源。系统资源设置“角色”,并可灵活指派不同角色对系统资源的访问权限,例如,系统管理员角色就可指派全部系统资源资源,不同操作用户绑定不同的角色,就自然继承了“角色”的系统访问权限,用户-角色-资源权限的复杂关系如下图:
上述关系最终实现了不同角色的用户访问工作流支撑系统(包括工作流支撑系统支持的全体应用系统)时只看到自己权限配置的用户界面,实现了一套应用系统,多付“使用面孔”的效果。
1.2.3 工作流建模工具
《工作流支撑系统》提供可视化工作流建模工具,创建与维护流程模型下列数据与数据之间的关系信息。
流程、流程任务、任务流转逻辑的属性与关系
上图的流程模型数据保证了上线流程在使用时的用户操作界面与流程实例的处理流转逻辑。
建模工具方便使用者,完全面向业务,工作流程图、流程模型属性、任务节点属性配置关注的内容术语全部是业务视角看到的世界。
建模工具
流程模型属性配置对话框
任务属性配置对话框
注:上图提供了流程拓扑图、流程模型属性对话框、任务属性对话框样例。
可视化的流程建模工具大大降低流程设计的时间和难度。流程设计工具无需编写一行程序代码就可以解决各种复杂工作流程,建模工具支持如下基本流程逻辑单元:
| 流程逻辑 | 说明 |
1 | 顺序执行 | 从一个任务环节通过有向线段的指向流入另一个任务环节。 |
2 | 回退 | 提供两种方式的回退: l 下一任务环节回退:例如,审批不通过,返回到上一任务节点提交者,任务提交者可以修改回退表单然后再提交,或者废弃。 l 本任务环节抓回:某环节任务提交后,提交者感觉不妥,可用抓回方式回退已经提交的任务。 |
3 1 | 条件判断分支 | 设置条件,根据不同条件,流程走不同的分支,例如:审批“通过”或“不通过”;“大于10万元”金额走流程支路A,“小于等于10万元”金额走流程支路B等。 |
4 | 驻留 | 某一任务节点在没有满足消失条件之前,一直驻留在任务队列中,用户可以不断发起相同任务,对不同单位重复送件。例如,故障派单,派发给故障可能发生的不同局站,最终故障排除后,故障派单任务结束。 |
5 | 并发分流 | 例如,电路调度单可能要同时派发给多个单位。 |
6 | 会签 | 汇聚合流。例如,上报计划的汇总审批。支持条件的“与”“或”分组。 |
7 | 会签分发 | 复杂流程:汇集合流-并发分流。例如,上报计划的汇总审批与分发。 |
8 | 子流程调用 | 流程之间的嵌套调用。 支持两类子流程调用: 同步调用:主流程触发子流程之后,还要等待子流程的结果反馈。 异步调用:主流程触发子流程之后,各自独立执行。 |
上述基本流程逻辑单元可组合成各种复杂流程。
流程建模如下配置功能:
l 时限配置:提供丰富的时限设置,例如:可配置流程的处理时限,流程内各任务的处理时限;配置超时算法,选择计算工时的基准日历(24小时计,正常8小时工作日计、扣除节假日等)。
l 事件通知:提供定义事件类型、事件通知方式。针对流程,或针对任务设置通知事件类型,例如:流程超时预警、流程超时、流程结束;任务超时预警、任务超时事件等;还可设置通知方式:即时消息、Email、小灵通短信等。
l 任务处理者:由于模型工具提供功能强大的组织机构岗位关系模型,操作用户数据,因此,可以灵活配置流程任务处理者,流程任务处理者可以定义为:某部门的全部员工,也看定义为某部门的特定岗位,或者特定人员,可以定义绝对任务处理者,即指定特定部门、或特定部门中的特定岗位、或特定人员;也可定义相对任务处理者,即满足某个条件的任务处理者,例如:流程实例启动者,已提交任务处理者所属部门的领导,或上级部门领导,或没有与单位部门绑定的岗位等,这些相对条件语义在流程实例化时,由流程引擎根据建模时的条件语义再转化为特定绝对的处理者。