52 lines
2.0 KiB
Markdown
Raw Permalink 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.

---
id: approve.process-inst.concept
title: 流程实例 ProcInst 是什么
type: concept
feature: approve
scope: end-user
locale: zh
aliases:
- 流程实例
- 审批单
- ProcInst
- 审批运行
- 一次审批
- 流程 ID
related_tools: []
related_pages: [application]
prerequisites:
- 应用市场已安装 approve 插件
negative:
- 流程实例不可改字段,提交后表单只读
- 一旦后续节点已被任何审批人处理,发起人不能再撤销
- 已结束的实例只有发起人或管理员能删([[approve.doto.howto]]
last_verified: v1.7.90
---
# 流程实例 ProcInst 是什么
## 定义
流程实例ProcInst是「一次具体的审批运行」的对象由发起审批时创建。模板ProcDef是图纸实例是按图纸跑出来的一条具体审批单。每提交一次就生成一个新实例有唯一数字 ID。后端表 `approve_proc_inst`,主程序通过 `approve/process/findById` 取数据。
## 关键属性
- **id**:实例唯一 ID
- **proc_def_name**:模板名(如「请假申请」)
- **start_user_id / start_user_name**:发起人 ID 和昵称
- **start_time**:提交时间
- **state**1 审批中 / 2 已通过 / 3 已拒绝 / 4 已撤回
- **is_finished**是否结束state ≠ 1 即结束)
- **task_id**:当前 task ID处理动作要带
- **candidate**:当前候选审批人 userid 逗号串
- **node_id / node_infos**:当前节点 ID + 所有节点状态数组,用于渲染流程图
- **var**表单字段对象type / start_time / end_time / description / other 等)
- **global_comments**:全文评论数组([[approve.comment.howto]]
## 生命周期
1. **创建**`approve/process/start`state=1
2. **流转**:每次 `approve/task/complete` 推进节点
3. **结束**state 变 2/3/4
4. **清理**:仅结束态可调 `approve/process/delById` 物理删除
## 与历史记录的关系
每次节点流转写一条 [[approve.history.concept]]`approve_proc_inst_history`),实例被删后历史也消失。