---
order: 8
navTitle: 审批流程
---
# 审批流程

报表填报应用内置了易用的流程设计器，可以帮助用户绘制审批流程。搭配表单的填写可呈现一个完整的业务流程，比如在进行销售数据管理时市级单位填报后，经过层层审批后上报集团总公司。

![审批流程](./images/2024-06-19-14-24-15.png)

示例地址：[层层审批](https://demo.succbi.com/v5/ci/%E5%B1%82%E5%B1%82%E5%AE%A1%E6%89%B9)

## 流程设计器 {#designer}

流程设计器是用来绘制流程的可视化工具，提供图形化的界面，可以方便直观地定义整个流程。报表填报应用在绘制流程之前需要在设计器的**设置**>**上报管理**中**启用审批**。[启用审批](./settings/submit-management.md#data-examine)后报表填报设计器导航栏会新增一个流程的标签页，在此页面可绘制填报流程。关于流程设计器的详细介绍可见[工作流设计器](../../app/workflow/new.md#designer)。与低代码的工作流不同的是，报表填报应用内置的流程设计器与填报工作表共用数据源。

## 设计业务流程 {#design}

设计业务流程不仅仅是指流程图的绘制，还包括对每个任务节点处理人、可执行的操作、数据权限、消息通知等整个审批完整的业务流程设置，具体内容可见下方章节。

### 绘制流程图 {#draw}

绘制流程图是指使用流程设计器中的节点与分支呈现一个工作流程或业务流程的过程。流程图中每个节点都代表一个工作任务（除了开始节点和结束节点）。关于如何绘制流程图以及流程节点、流程线条的介绍具体可见文档[绘制工作流](../../app/workflow/design.md)。表单除了可以自己绘制流程外还可以[直接引用外部流程](./settings/submit-management.md#data-examine)，引用的外部流程会同步在流程设计器中，但在流程设计器中外部流程不可编辑修改。

### 节点处理人设置 {#candidate}

节点处理人是在流程流转到节点时，能查看流程数据并进行数据填写、审批、任务分配等处理操作的用户。比如请假流程中，能审批请假单的用户就是审批节点的处理人。对于节点处理人的设置具体可见文档[节点处理人设置](../../app/workflow/candidate.md)。

### 流程操作 {#operate}

不同的任务节点根据业务流程可以指定不同的操作。工作流支持提交、批准、否决、退回等多种操作。如在请假申请中，用户申请时的任务节点操作为提交，在管理员审批时的任务节点操作为批准和退回。关于流程操作的设置具体可见文档[流程操作](../../app/workflow/operate.md)。流程操作常搭配不同的操作按钮进行，比如退回操作搭配退回按钮等。与低代码不同的是表单会自动根据流程节点上的操作来显示按钮，无需人为控制按钮的显示隐藏或禁用。

### 节点数据和权限设置 {#datapermissions}

节点数据权限设置用于控制不同的流程节点中表单输入项的权限，比如请假申请时可以输入请假原因、请假类型等，但是部门经理审批请假单时却只能查看而不能修改请假原因、请假类型等内容。更多详情可见文档[节点数据和权限设置](../../app/workflow/datapermissions.md)。

### 消息通知 {#notice}

消息通知是指流程流转时，系统能自动给相关负责人发送通知消息。比如张三发起请假申请，其组长李四会收到一条待办任务的通知。通过消息中携带的链接，能直接打开对应的处理页面，提升流程处理效率。更多详情可见文档[消息通知](../../app/workflow/notice.md)。

## 自定义流程状态 {#custom}

报表填报应用发布后会自动创建一张流程实例表的索引表，同时系统在索引表中提供了默认的流程字段，报表填报应用依据索引表中的流程字段可自定义单位列表中的流程状态，以下图在[单位列表](./settings/interface.md#datalist)中自定义处理人字段为例：

![索引表](./images/2024-06-20-18-03-33.gif)

1. **新增字段**：在**导航栏**>**设置**>**界面外观**>**填报单位列表**中点击添加按钮。
2. **设置字段信息**：在按钮的**字段**属性处设置需要显示的内容，如`数据索引表.当前流程处理人`；在**标题**属性处设置其对应的标题，如`处理人`。

::: tip
除了简单的添加流程状态外，报表填报应用还支持在单位列表中查看对应的流程进度，具体内容可参考文档[显示流程进度](./settings/interface.md#flow-schedule)。
:::

### 扩充索引表的流程字段 {#expand}

除了[数据索引表](./data-storage.md)中默认的流程字段外，可以根据流程实例表中的字段扩展索引表中的流程状态字段。只需在索引表中创建一个对应的新字段，其物理字段名格式为`FLOW_`加上`流程实例表中对应字段的物理字段名`。如想在索引表中增加**流程描述**字段，流程实例表中**流程描述**对应的物理字段为`INSTANCE_DESC`，在索引表中新增字段时对应的物理字段应为`FLOW_INSTANCE_DESC`。关于索引更多的内容可查看[索引管理](data-gov/model-index/)。系统默认的数据索引表以及索引表中默认的流程状态字段如下：

![索引表](./images/2024-06-20-15-30-41.png)

| 字段 | 物理字段名 |
| :---------| :-------- |
| 流程实例代码 | FLOW\_INSTANCE\_ID |
| 流程实例状态 | FLOW\_INSTANCE\_STATE |
| 流程结果 | FLOW\_INSTANCE\_RESULT |
| 当前流程处理人 | FLOW\_CURRENT\_USERS |
| 当前流程节点 | FLOW\_CURRENT\_NODES |
| 最近流程处理人 | FLOW\_UPDATE\_USER |
| 最近流程处理时间 | FLOW\_UPDATE\_TIME |
| 最近流程处理结果| FLOW\_LAST\_TASK\_RESULT |
| 最近处理意见 | FLOW\_LAST\_COMMENT |

::: tip 查询流程系统表与扩充索引表流程字段的区别

扩充索引表流程字段可以在一定程度上提升数据查询的性能。表单的数据列表在查询时以索引表为主，如要查询的字段信息索引表中不存在时，需要关联查询流程的系统表，此过程可能会性能造成影响。因此在索引表中特意默认带上一些常用的流程状态字段，在写入索引表数据时可以同步流程信息，表单在进行查询时可以直接查询到索引表中的数据，从而避免频繁的关联查询，提升查询效率。

:::
