# 流程操作说明 {docsify-ignore-all}
> 流程操作服务主要包括创建、打开、提交、退回等一系列流程流转操作

** 流程操作所涉及的类型 **

| 操作标识            | 操作类型  | 操作说明                                        |
|-----------------|-------|---------------------------------------------|
| submit          | 提交    | 提交到下一节点                                     |
| freesubmit      | 自由提交  | 自由提交                                        |
| innersubmit     | 内部提交  | 在多人顺序/循环节点提交，不会提交到下一个节点                     |
| subflow         | 启动子流程 | 启动子流程                                       |
| jiaqianBefore   | 前加签   | 增加办理人                                       |
| jiaqian         | 加签    | 增加办理人                                       |
| reduceAuthor    | 减签    | 减少已设置的办理人                                   |
| urge            | 催办    | 给办理人发送办理通知                                  |
| cancel          | 撤办    | 撤销办理                                        |
| addSecondauthor | 增加协办  | 增加协助办理人员                                    |
| secondSubmit    | 协办提交  | 协办人员进行提交操作                                  |
| reissue         | 补发    | 对已经办理过的多人顺序/多人并行追加办理人                       |
| reissuerouter   | 分支补发  | 已办理的分支节点可以对其他分支节点设置办理人                      |
| replace         | 替换办理人 | 替换已有的待办人员                                   |
| huiqian         | 会签    | 指定流程会签人员                                    |
| huiqianSubmit   | 会签提交  | 会签人员进行提交                                    |
| save            | 保存    | 保存流程实例                                      |
| addreader       | 阅知    | 增加流程待阅人员                                    |
| readed          | 已阅    | 将流程实例标记为已阅                                  |
| reject          | 退回    | 将流程实例退回到上一次提交                               |
| jumpreject      | 任意退回  | 将流程实例退回到之前已经提交的节点                           |
| innerreject     | 内部退回  | 对多人顺序/循环节点的提交进行退回                           |
| rejectSubmit    | 退回提交  | 对退回状态的流程执行退回确认                              |
| getback         | 拿回    | 办理人对自己提交的操作进行回退                             |
| goto            | 跳转    | 流程从当前节点跳转到其他节点                              |
| stop            | 终止    | 终止流程，终止后不可恢复,待办变更为待阅                        |
| pause           | 暂停    | 流程暂停办理，可恢复                                  |
| move            | 转办    | 当前办理人将流程委托给其他人办理                            |
| claim           | 撤办    | 当流程节点办理人为组织机构（部门、岗位、群组）<br>时，部门下的人员需要认领才能办理 |
| close           | 关闭    | 关闭流程，流程在内存中不再是活跃状态                          |

在已办、待办的接口中查看已有的实例信息，或者创建流程实例之后，打开流程，查看流程状态
和返回的可操作按钮，对流程进行操作。
![流程操作](../../assets/img/rest/flowaction/flow.png)

**流程操作涉及的交互**

![流程操作](../../assets/img/rest/flowaction/submit.png)

> 除流程的创建和打开操作之外，其他流程操作主要通过json数据对象actionData进行交互

```
{
  "accessToken": "",
  "workId": "HZ28858f8137db820181383ef2a300a1",
  "trackId": "HZ28858f8137db820181383ef2a300a2",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "nextNodes": [
      {
        "selectId": "Line2~Node2",
        "isSelect": "true",
        "nodeKey": "Line2",
        "nodeId": "Node2"
      }
    ]
  }
}
```
> 使用者可在js中做全局变量json对象进行控制，在调用提交等操作后，返回json可赋值给actionData,进行选择路由或选择办理人后，给actionData对象进行赋值，然后再调用流程操作接口

*如下，通过浏览器控制台获取需要提交的数据信息*

![流程操作](../../assets/img/rest/flowaction/console.png)

> 使用者也可以把actionData操作对象按之后rest接口文档说明，对actionData进行赋值，再调用流程操作接口

**流程操作返回结果统一说明:**
```
{
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateText": "提交",
  "operateFlag": "0",
  "operateMsg": "提交成功",
  "reOpen": "false",
  "workId": "HZ2886865c0ec540015c0fb3103700da",
  "trackId": "HZ2886865c0ec540015c0fb3103800db",
  "nodeId": "Node1",
  "nodeName": "任务1",
  "subjection": "",
  "authorKey": "Author",
  "operateStatus": "success",
  “status": 0,
  "alert": "",
  "messageType": "",
  "nextNodes": [],
  "subFlows": []
}
```
| 参数            | 参数类型   | 描述                                                                                                                                                                                                                                        |
|---------------|--------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| alert         | String | 是否弹出操作成功信息，可忽略                                                                                                                                                                                                                            |
| operate       | String | 流程操作标识                                                                                                                                                                                                                                    |
| operateClazz  | String | 流程操作类路径                                                                                                                                                                                                                                   |
| operateText   | String | 流程操作名称                                                                                                                                                                                                                                    |
| operateFlag   | String | 流程操作标记 -1：显示关闭，0、1正常提交                                                                                                                                                                                                                    |
| operateMsg    | String | 流程操作返回操作信息                                                                                                                                                                                                                                |
| reOpen        | String | 是否重新打开(是否在内存中活跃状态)，可忽略                                                                                                                                                                                                                    |
| workId        | String | 流程实例id                                                                                                                                                                                                                                    |
| trackId       | String | 流程实例路径id                                                                                                                                                                                                                                  |
| nodeId        | String | 当前节点id                                                                                                                                                                                                                                    |
| nodeName      | String | 当前节点name                                                                                                                                                                                                                                  |
| subjection    | String | 操作者所在的组织机构id                                                                                                                                                                                                                              |
| authorKey     | String | 操作者身份标识id                                                                                                                                                                                                                                 |
| operateStatus | String | 流程操作结果<br>success：操作成功<br>error：操作失败<br>selectsubflow：需要选择子流程<br>showSubflow：已经启动过子流程,不允许启动多个                                                                                                                                             |
| status        | int    | 流程操作返回状态<br>0：操作成功<br>2：选择节点<br>3：缺少办理人<br>4：请选择办理人<br>其他值均为操作错误<br>1：流程未能找到下一节点，请检查路由<br>9：其他参数错误<br>14：已经启动过子流程,不允许启动多个<br>15：需要选择子流程<br>17：不符合离开规则,不能离开当前节点<br>120：被他人锁定<br>130：实例正在其他引擎中流转<br>140：流程暂停<br> 200：license验证失败<br>210：无权限 |
| messageType   | String | 消息发送类型                                                                                                                                                                                                                                    |
| nextNodes     | List   | 节点列表                                                                                                                                                                                                                                      |
| subFlows      | List   | 子流程列表                                                                                                                                                                                                                                     |