Files
OpenAuth.Net/docs/core/flowinstance.md
2025-04-09 21:33:05 +08:00

82 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作流介绍
OpenAuth.Net工作流基于国际标准的BPMN2.0规范,并在此基础上做了一些扩展,以满足国内各种需求。系统工作流分为两个大类:
1. 无业务关联流程,如请假、报销等。
![无业务关联流程](http://img.openauth.net.cn/2025-04-06-22-35-35.png)
2. 有业务关联流程,如采购、销售等。
![订单送审](http://img.openauth.net.cn/2025-04-06-22-34-34.png)
这两种流程的差异有以下几点:
| 对比维度 | 无业务关联流程 | 有业务关联流程 |
|---------|--------------|--------------|
| 适用场景 | 请假、报销等日常办公 | 采购、销售、入库等业务操作 |
| 发起方式 | 流程中心 -> 我的流程 -> 新的申请 | 直接在业务模块中发起(如:仓储中心 -> 入库订单 -> 送审) |
| 表单类型 | 简单表单,适用拖拽表单设计器 | 复杂表单需要自定义表单或URL表单 |
| 审批结束处理 | 仅更新流程状态 | 需要修改业务数据状态 |
表中提到的表单类型差异可以查看:[表单设计](./form.md)
# 基本操作
一个完整的工作流从设计到发起,到审批,需要经过:
1. 表单设计:【基础配置/表单设计】中添加一个用于流程的表单;
2. 流程设计:【基础配置/流程设计】中添加一个流程模版,流程模版选择刚刚建的表单;
3. 流程发起:【流程中心/我的流程】中【新的申请】创建一个流程实例,或在业务系统中直接【送审】发起;
4. 流程审批:【流程中心/待处理流程】中进行审批;
这里只介绍开源版本的操作流程vue版本操作流程请参考[操作手册](/pro/startflow.md)
# 流程审批逻辑
当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理:
@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