# 3. 流程模块
# 3.1. 概述
流程建模、流程配置、流程数据交互、流程实例管理及干预是整个工作流系统的核心部分。红迅JSAAS流程基于Spring与有着10多年开源流程引擎Activiti 5.X的基础上构建,它支行于JAVA EE应用服务器,而又不需要依赖特定的中间件或服务器,可以在业务处理、数据持久化等各个方面与应用系统进行灵活集成;引擎采用组件化设计,为开发者灵活选择流程引擎的功能、自定义已有功能和拓展新功能提供了无限可能;流程引擎的轻量级化大幅度降低了部署的复杂度,使系统更加容易设计实现。用户可以将流程引擎作为业务流程管理的基础,在此基础上实现业务流程的电子化以及业务流程统一管理。
# 3.2. 流程功能模块
# 3.3. 企业流程管理理念
企业的流程管理是需要一套完善、科学的管理过程,通过基于企业的业务分析、设计、运行、优化以达到高质量的管理效率,平台提供一套完整的管理手段,让流程管理轻松、快捷与方便。
# 3.4. 流程建模
# 3.4.1. 在线建模工具
提供在线的bpmn设计工具,也可基于线下的bpmn设计工具设计完成后,上传导入在线的设计文件 bpmn editor,如下所示:
企业的业务流程建模一般由企业的业务人员进行设计,设计完成后上传发布至系统即可。而流程业务的组装即由IT运维或开发人员来完成。平台使用了Activiti的流程引擎,Activiti是BPMN2的实现标准,基于这种标准的实现,它已经实现了以下的常规的流程需求:
- 人工任务
- 自动节点
- 脚本节点
- WebService节点
- 串行流程
- 并行流程
- 条件并行流程
- 分支流程
- 按泳道角色的流程
- 内部子流程
- 外部子流程
- 多实例的任务实现的会签
- 多实例的子流程
# 3.4.2. 流程模型导入、导出
实现流程模型的线下导入与导出功能,满足运维的不同的环境的数据迁移的需要,如下图为下载与上传流程文件界面。
# 3.5. 流程业务组装
运维人员或IT开发人员根据业务流程的需求,需要对流程的每个环节处理的事项与交互的细节进行组装与设计,以使得其满足企业业务处理的需要,一般包括考虑的需求有:
- 审批环节中的业务表单与单据的数据编辑权限
- 审批环节的审批人员
- 审批环节中的通知事项
- 审批环节的条件分支等
在平台内只需要新建流程业务表单方案即可:
平台还提供更多的节点环节的事项,包括通知、催办、运算、会签、加签,审批按钮,审批环节与外部事项的交互等。
# 3.5.1. 挂接流程定义
流程方案是一个组装流程的总体解决方案,它是通过流程建模的定义来实现流程的流转的,因此第一步就需要挂接上流程定义。如下所示:
# 3.5.2. 定义节点单据及权限
为审批环节配置一张或多张有关联或没关联的业务单据,并且为不同节点的单据提供字段与按钮级别的权限配置。
平台可以简化用户对表单的配置,对于节点比较多的流程,只需要配置一个全局节点,对于节点间的表单有个性化的需求的,可直接在节点上配置差异化的即可,包括表单的字段权限。如下图:
# 3.5.3. 定义流程变量
流程变量相当流程的运行参数,在流程执行过程中,可影响流程的流转,流程数据的交互,流程节点的人员计算,甚至通知模板 ;
流程变量的定义,即定义了流程在运行过程中需要的参数变量,可定义于流程级的变量,也可定义流程变量的值来自表单字段值。当流程在执行过程中,可根据定义的流程变量值实现其值计算,最终服务于流程的全生命周期中。
# 3.5.4. 定义流程节点人员
流程节点在执行过程中,可实现节点的人员定义,平台提供多种节点的人员查找算法,可允许在节点上配置不同的人员查找策略,最终形成每个节点的人员集合。多个人员集合可进行与、或、非的人员计算,以实现复杂的人员运算需要。如下所示:
平台已经提供的人员运算策略有:
- 发起人
- 扩展属性
- 实例用户
- 用户
- 用户组
- 用户来自其他节点的审批人
- 用户或组来自流程变量
- 用户或组来自表单数据
- 用户或组来自脚本运算
- 人员脚本运算
- 用户来自用户关系运算
- 用户组来自用户与组关系运算
- 用户来自用户与组关系运算
- 用户来自发起人所在部门往上查找符合等级的部门的关系用户
- 查找某部门下的拥有某种用户组(角色、职务)的人
平台同时支持开发级的用户进行人员策略的扩展,以支持更复杂的人员计算。
# 3.5.5. 定义流程外部数据交互
流程在执行过程中,需要与外部系统实现数据交互时,可在流程以下事件:
- 流程启动
- 流程结束
- 流程任务创建
- 流程任务结束
执行以下流程数据交互的配置:
- 执行动态(Groovy)脚本
- 执行外部WebService接口,包括(RESTful API)
- 执行SQL(含外部数据源)
- 发送MQ消息
- 执行ProcessCall接口
- 启动外部子流程
# 3.5.6. 定义流程催办
系统产生的流程事项,若用户没有在规定时间内完成,平台提供了事项的催办办理,用户可在平台内配置节点的逾期办理事项,以实现事项的催办处理。
# 3.5.7. 节点会签配置
对于某些任务需要进行并行或串行办理时,我们需要把该审批节点设置为多实例节点,同时可在平台上设置该节点的会签配置方案。
** 会签投标规则设置**
系统支持会签投票的规则:
按票数投票
按百分比投票
支持特权的投票比重设置
支持加签权限的设置
# 3.5.8. 定义节点属性
流程还支持在节点上进行各种属性扩展定义,可根据审批任务节点配置该节点的开关参数或其他参数,如:
- 如审批节点的按钮
- 通知模板
- 通知消息类型
- 执行路径开关
- 人员配置开关
- 子表权限等
同时也支持在节点上扩展更多 的一些业务与流程绑定的参数。
# 3.5.9. 定义流程通知模板
可针对流程定义或流程任务的触发事件中,对任务执行人、相关负责人或主管实现消息的推送,包括邮件、短信、IM消息,系统提供在线的模板配置等。
# 3.6. 中国式流程业务
平台支持中国国情的流程处理,因此加上了比较多符合国人类似OA业务协同的流程业务支持,以满足企业的流程标准化与非标准化的操作处理,如:
- 流程变更及多版本
- 自由流程
- 任务办理
- 流程回退及原路返回、追回
- 流程催办(基于工作日)及过期动作设置
- 流程任务的人员更改
- 流程会签、加签、投票
- 流程表单权限配置及模板打印
- 流程的串行、并行、多路分发、汇总、自动脚本执行
- 流程的撤办、转办、传阅、提交、暂存、复制
- 流程异常挂起、无人员跳过或相同人员跳过
- 支持流程的沟通、协办
- 流程导入、导出
- 流程任务的代理
# 3.7. 流程监控
系统提供对流程实例、流程任务实体的监控,可查看平台、机构、部门下按分类或流程定义的流程实例,可查看流程运行的执行过程、审批历史、超时办理。
# 3.8. 流程干预
系统提供了强大的流程干预运算,可实现对流程的以下属性进行干预:
- 流程流转方向
- 流程回退、驳回
- 流程节点人员
- 流程变量更改
- 流程单据数据
- 流程转办、抄送
- 流程复活
# 3.9. 流程归档
在运行一段时间后,特别是流程实例数增长比较快时,系统平台提供了一段运维管理手段就是进行流程数据的归档。
用户只需要在一定的时间内,执行一次手工归档的指令配置即可。
# 3.10. 流程服务接口
- 根据用户账号获取待办列表
- 启动流程
- 审批任务
- 获取有权限发起的流程方案
- 根据任务ID获取后续节点
- 根据流程实例ID获取流程相关任务
- 根据流程实例ID获取审批意见
- 创建沟通任务
- 回复沟通接口
- 撤销沟通
- 根据任务ID获取表单数据
- 根据流程实例ID获取表单数据
- 获取我发起的流程实例
- 撤销任务接口
- 获取代理给我的任务
- 根据流程实例ID获取流程实例明细
- 返回我已审批的流程实例列表
- 删除流程实例
- 保存流程草稿
- 从草稿中启动流程
- 获取我的草稿列表
- 根据任务ID获取任务信息详细信息
- 根据任务ID获取后续执行人信息