Files
OpenAuth.Net/docs/core/flowinstance.md
2025-04-06 02:02:30 +08:00

2.8 KiB
Raw Blame History

工作流介绍

OpenAuth.Net工作流基于国际标准的BPMN2.0规范,并在此基础上做了一些扩展,以满足国内各种需求。系统工作流分为两个大类:

  1. 无业务关联流程,如请假、报销等。

  2. 有业务关联流程,如采购、销售等。

这两种流程的差异有以下几点:

对比维度 无业务关联流程 有业务关联流程
适用场景 请假、报销等日常办公 采购、销售、入库等业务操作
发起方式 流程中心 -> 我的流程 -> 新的申请 直接在业务模块中发起(如:仓储中心 -> 入库订单 -> 送审)
表单类型 简单表单,适用拖拽表单设计器 复杂表单需要自定义表单或URL表单
审批结束处理 仅更新流程状态 需要修改业务数据状态

表中提到的表单类型差异可以查看:表单设计

基本操作

一个完整的工作流包括流程设计及流程实例处理。分别对应系统中【基础配置/流程设计】及【流程中心】两个板块。具体包含以下几个步骤:

  1. 在【基础配置/表单设计】中添加一个用于流程的表单开源版可使用动态表单企业版支持拖动表单及自定义的vue组件表单

  2. 在【基础配置/流程设计】中添加一个流程模版,流程模版选择刚刚建的表单。建好流程模版,拥有该模版权限的用户就可以基于改模版创建流程实例了;

  3. 在【流程中心/我的流程】中【新的申请】创建一个流程实例。创建成功后就可以在列表中看到该流程。流程节点对应的执行用户会在【流程中心/待处理流程】中看到该流程,选中需要审批的流程,点击【处理】按钮即可进行审批操作;

流程审批逻辑

当最终用户在【待处理流程】中审批一个流程实例时,流程实例会经过下面步骤进行处理:

@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