2.8 KiB
工作流介绍
OpenAuth.Net工作流基于国际标准的BPMN2.0规范,并在此基础上做了一些扩展,以满足国内各种需求。系统工作流分为两个大类:
-
无业务关联流程,如请假、报销等。
-
有业务关联流程,如采购、销售等。
这两种流程的差异有以下几点:
对比维度 | 无业务关联流程 | 有业务关联流程 |
---|---|---|
适用场景 | 请假、报销等日常办公 | 采购、销售、入库等业务操作 |
发起方式 | 流程中心 -> 我的流程 -> 新的申请 | 直接在业务模块中发起(如:仓储中心 -> 入库订单 -> 送审) |
表单类型 | 简单表单,适用拖拽表单设计器 | 复杂表单,需要自定义表单或URL表单 |
审批结束处理 | 仅更新流程状态 | 需要修改业务数据状态 |
表中提到的表单类型差异可以查看:表单设计
基本操作
一个完整的工作流包括流程设计及流程实例处理。分别对应系统中【基础配置/流程设计】及【流程中心】两个板块。具体包含以下几个步骤:
-
在【基础配置/表单设计】中添加一个用于流程的表单,开源版可使用动态表单,企业版支持拖动表单及自定义的vue组件表单;
-
在【基础配置/流程设计】中添加一个流程模版,流程模版选择刚刚建的表单。建好流程模版,拥有该模版权限的用户就可以基于改模版创建流程实例了;
-
在【流程中心/我的流程】中【新的申请】创建一个流程实例。创建成功后就可以在列表中看到该流程。流程节点对应的执行用户会在【流程中心/待处理流程】中看到该流程,选中需要审批的流程,点击【处理】按钮即可进行审批操作;
流程审批逻辑
当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理:
@startuml skinparam handwritten true skinparam backgroundColor #EEEBDC
start if (当前活动节点类型为会签) then (yes) :标识当前节点状态; :从所有的分支中找到一个用户可以审批的节点canCheckId; if (没找到?) then (yes) stop endif :标识canCheckId节点状态; #HotPink:进行会签,结果为res; if(res == TagState.No) then (yes) :修改流程最终状态为不同意; else if(res != string.Empty) then (yes) stop else (no) :修改流程最终状态,修改活动节点,修改可执行人; :添加扭转记录; endif
else (no) :标识当前节点状态; if (同意) then (yes) :修改流程最终状态,修改活动节点,修改可执行人; :添加扭转记录; else :修改流程最终状态为不同意; endif :操作记录; endif stop
@enduml