---
order: 3
navTitle: 绘制工作流
---
# 绘制工作流

工作流描述了一个工作流程的内部过程，图中的每个节点都代表一个工作任务（除了开始节点和结束节点），一个典型的工作流示例如下：

![绘制流程图](./images/2021-08-24-12-13-15.png)

绘制工作流主要分为以下几个步骤：

\[\[toc]]

## 添加流程节点{#add-node}

当新建一个工作流时，系统会自动添加一个开始和结束节点，此时只需要添加工作流中的其他工作节点即可。添加节点有两种方法：

1. **直接点击加号添加**：鼠标悬停或选中节点，移动到边框上的小圆点，会变成+号，点击+号，可直接添加任务节点
2. **右键弹出菜单添加**：在节点边框上的+号处右键弹出菜单，可添加节点。也可右键空白地方添加节点，右键空白处新增的节点未与其他节点进行连接，需要手动添加连接线

选中某个节点并右键节点上的+号以及右键空白处，在菜单列表中提供了流程节点的选择，有五种类型，如任务节点、网关节点等，如下所示：

![添加流程节点](./images/2021-08-31-09-13-25.gif)

:::tip
当鼠标悬停在节点上时，每条边框上会出现一个小圆点，鼠标悬停变成+号，为当前作用的接口。
:::

### 任务节点{#task-node}

任务节点是需要有业务人员参与的流程节点，需要指定处理人。制定流程的过程就是设置每个节点的属性，如节点数据权限、节点处理人等，通过这些属性将每一个节点连接起来，实现所定义流程的流转以及流程控制的目的。可参考文档[节点处理人设置](./candidate.md)、[节点数据权限设置](./datapermissions.md)。

:::tip
任务节点的高级设置中，可以查看该节点的**节点ID**，**节点ID**不可手动修改，通过SuperPage[执行流程](../superpage/design/action/execute-flow.md)时，退回到指定节点需要用到此处的**节点ID**信息，详情可参考[执行流程](../superpage/design/action/execute-flow.md#node)文档。
:::

### 网关节点{#gateway-node}

网关节点用于条件判断，使用菱形框表示。当流转条件比较复杂、需要分步或者维护时可以使用网关，帮助理清流程图结构，表示此处会根据不同条件，流转到不同的节点。网关没有节点属性，是通过[连线上的条件](#branch-condition)执行不同分支。

### 程序流节点{#actionflow-node}

程序流节点用于无人操作的批处理，能自动化处理一系列业务流程，程序流节点的上一个节点执行完成后，则会自动处理当前程序流。如报销中财务审批通过后自动打款，则可以添加程序流节点，并在该节点的程序流属性中选择程序流文件即可。更多程序流内容可查看文档[程序流](../actionflow/README.md)。

### 脚本节点{#scripts-node}

脚本节点类似于程序流节点，当流程流转到该节点的时候，能自动进行批处理，无需处理人操作。更多脚本内容可查看文档[脚本开发](https://docs.succapp.com/v5/app/script)。

### 结束节点{#end-node}

每一条工作流中，都至少有一个结束节点。新建报表填报应用时，系统会自动添加一对开始和结束节点，将最后一个任务节点与结束节点进行连线即可。当流程中任务可能因为其他条件而需要结束流程，可根据需要自定义添加结束节点。

## 流程线条{#line}

流程线条用来连接2个节点，以及在连线上设置分支的流转条件，如下所示：

![连接节点](./images/2021-08-31-09-31-27.gif)

### 连接节点{#link-two-nodes}

鼠标移动到节点边框上的小圆点时，会变成一个+号，点击后引出连线，到下一节点时，根据线头的位置，能自动连接最近的接点。如果要重新调整连线，可选中连线，连线的起点、终点以及中间会出现圆点，选中圆点可拖动连接至其他节点或调整连线的大小。

### 流程分支条件{#branch-condition}

将节点进行连线，如果该节点有两个及以上线条流出时，一般会设置分支条件，流程依据条件决定下一步到达的节点。也可勾选**默认分支**属性，勾选后不可设置分支条件。
如请假申请后，研发工程师需要项目经理审批，选中两个节点之间的连线，在**属性栏**>**连线**>**分支条件**中设置连线条件`USER_PROPERTY([请假申请表].[申请人ID],'DEPT_ID')='dev'`。

## 删除节点或线条{#delete}

当不需要节点或线条时，可以将其删除。选中节点或线条，鼠标右键，在弹出的菜单中点击**删除**即可。在删除节点时，同时会将连接该节点的线条都删除，如下所示：

![连接节点](./images/2021-08-31-10-54-32.gif)

:::tip
当需要同时删除多个节点或线条时，可以使用鼠标框选多个，或者按住ctrl，鼠标点击选中多个，选中的颜色会变成橙色，进行批量删除。
:::
