# 获取提交节点
> 提交流程之前，应先获取能提交的节点

![流程操作](../../assets/img/rest/flowaction/presubmit.png)
## 获取提交节点-返回单节点时
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf <br>
**post数据说明：**
```
{
  "accessToken": "",
  "workId": "HZ28858f8137db82018137ebd76b0032",
  "trackId": "HZ28858f8137db82018137ebd76b0033",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit"
  }
}
```
请求参数说明:

| 参数          | 是否必须 | 描述            |
|-------------|------|---------------|
| accessToken | 是    | 调用接口凭证，唯一用户标识 |
| workId      | 是    | 流程实例id        |
| trackId     | 是    | 流程路径id        |
actionData 数据参数:

| 参数           | 是否必须 | 描述               |
|--------------|------|------------------|
| operate      | 是    | 提交操作标识，固定值submit |
| operateClazz | 是    | 提交操作类路径          |
**返回结果示例：**
```
{
  "nextNodeId": "Line2~Node2",
  "nextNodes": [
    {
      "authors": {
        "SecondAuthor": {
          "authorFlowVar": "",
          "authorId": "SecondAuthor",
          "authorName": "协办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Reader": {
          "authorFlowVar": "",
          "authorId": "Reader",
          "authorName": "读者",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Author": {
          "authorFlowVar": "",
          "authorId": "Author",
          "authorName": "主办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "radio"
        }
      },
      "isDone": "false",
      "isSelect": "true",
      "memo": "",
      "nodeGroup": "",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "任务2",
      "nodeStatus": "4",
      "selectId": "Line2~Node2",
      "selectName": "路由2(任务2)",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "0",
  "operateMsg": "请选择办理人",
  "status": 4,
  "workId": "HZ28858f8137db82018137ebd76b0032"
}
```
**结果参数说明:**

| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                    |
|-------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| nextNodeId  | String | 下一节点id                                                                                                                                                                                                                                |
| nextNodes   | List   | 需要选择的节点列表                                                                                                                                                                                                                             |
| operate     | String | 提交操作标识                                                                                                                                                                                                                                |
| operateText | String | 操作显示名称                                                                                                                                                                                                                                |
| operateFlag | String | 操作标记 -1：显示关闭，0、1：正常提交                                                                                                                                                                                                                 |
| operateMsg  | String | 返回操作信息                                                                                                                                                                                                                                |
| status      | int    | 流程操作状态码<br>0:成功<br>1:无法获取下一节点<br>2:提示选择节点<br>3:办理人为空<br>4:需要选择人员<br>5:流程结束<br>6:子流程未结束<br>7:流程暂停<br>8:流程异常终止<br>9:其他错误提示<br>16:协办人提交<br>17:不满足合并节点的离开规则<br>22:进入规则调用错误<br>23:离开规则调用错误<br>24:该节点类型不支持相应的操作<br>25:启用规则调用错误<br>26:节点激活失败 |
| workId      | String | 流程实例id                                                                                                                                                                                                                                |
*nextNodes参数说明：*

| 参数            | 参数类型   | 描述                                                                                |
|---------------|--------|-----------------------------------------------------------------------------------|
| authors       | Map    | 下节点办理人map中key为SecondAuthor、<br>Reader和Author，value为Author/SecondAuthor/Reader对象参数 |
| isDone        | String | 是否已经走过                                                                            |
| isSelect      | String | 是否已选择                                                                             |
| memo          | String | 备注信息                                                                              |
| nodeGroup     | String | 节点分组，单节点时无值，当前节点有分支节点时，值为上一节点id                                                   |
| nodeId        | String | 节点id                                                                              |
| nodeKey       | String | 节点主键                                                                              |
| nodeName      | String | 节点名称                                                                              |
| nodeStatus    | String | 节点状态，限定值<br>0.成功<br>1.选择办理人<br>2.选择节点<br>3.未找到办理人<br>4.未找到下一节点                    |
| selectId      | String | 需要选择的节点id                                                                         |
| selectName    | String | 需要选择的节点名称                                                                         |
| timeLimit     | String | 节点办理时限                                                                            |
| timeLimitType | String | 办理时限类型，限定值<br>0：自然日<br>1：工作日                                                      |
*authors中Author/SecondAuthor/Reader参数说明：*

| 参数               | 参数类型   | 描述                                    |
|------------------|--------|---------------------------------------|
| authorFlowVar    | String | 流程变量                                  |
| authorId         | String | 办理人id固定值Author/SecondAuthor/Reader    |
| authorName       | String | 办理人名称：主办，协办，读者                        |
| freeArea         | String | 自由选择时的范围                              |
| isDefUser        | String | 流程定义列表中选择                             |
| isFree           | String | 是否自由选择                                |
| isSelect         | String | 是否允许选择办理人                             |
| isUser           | String | 是否只允许选择人员                             |
| selectAuthor     | String | 节点已选择办理人id                            |
| selectAuthorName | String | 节点已选择办理人名称                            |
| selectType       | String | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |

## 获取提交节点-返回多节点
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf <br>
**post数据说明：**
```
{
  "accessToken": "",
  "workId": "HZ28858f8137db82018137ebd76b0032",
  "trackId": "HZ28858f8137db82018137ebd76b0033",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit"
  }
}
```
请求参数说明:

| 参数          | 是否必须 | 描述            |
|-------------|------|---------------|
| accessToken | 是    | 调用接口凭证，唯一用户标识 |
| workId      | 是    | 流程实例id        |
| trackId     | 是    | 流程路径id        |
actionData 数据参数:

| 参数           | 是否必须 | 描述                                        |
|--------------|------|-------------------------------------------|
| operate      | 是    | 提交操作标识，固定值submit                          |
| operateClazz | 是    | 提交操作类路径com.horizon.wf.action.ActionSubmit |
**返回结果示例：**
```
{
  "nextNodeId": "",
  "nextNodes": [
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "nodeGroup": "Node1",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "任务2",
      "nodeStatus": "2",
      "selectId": "Line2~Node2",
      "selectName": "路由2(任务2)"
    },
    {
      "authors": {},
      "isDone": "false",
      "isSelect": "false",
      "nodeGroup": "Node1",
      "nodeId": "Subflow8",
      "nodeKey": "Line11",
      "nodeName": "子流程8",
      "nodeStatus": "2",
      "selectId": "Line11~Subflow8",
      "selectName": "路由11(子流程8)"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "1",
  "operateMsg": "请从列表中选择节点",
  "status": 2,
  "workId": "HZ28858f8137db820181383ef2a300a1"
}
```
**结果参数说明:**

| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                    |
|-------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| nextNodeId  | String | 下一节点id                                                                                                                                                                                                                                |
| nextNodes   | List   | 需要选择的节点列表                                                                                                                                                                                                                             |
| operate     | String | 提交操作标识                                                                                                                                                                                                                                |
| operateText | String | 操作显示名称                                                                                                                                                                                                                                |
| operateFlag | String | 操作标记 -1：显示关闭，0、1：正常提交                                                                                                                                                                                                                 |
| operateMsg  | String | 返回操作信息                                                                                                                                                                                                                                |
| status      | int    | 流程操作状态码<br>0:成功<br>1:无法获取下一节点<br>2:提示选择节点<br>3:办理人为空<br>4:需要选择人员<br>5:流程结束<br>6:子流程未结束<br>7:流程暂停<br>8:流程异常终止<br>9:其他错误提示<br>16:协办人提交<br>17:不满足合并节点的离开规则<br>22:进入规则调用错误<br>23:离开规则调用错误<br>24:该节点类型不支持相应的操作<br>25:启用规则调用错误<br>26:节点激活失败 |
| workId      | String | 流程实例id                                                                                                                                                                                                                                |
*nextNodes参数说明：*

| 参数         | 参数类型   | 描述                                                                                |
|------------|--------|-----------------------------------------------------------------------------------|
| authors    | Map    | 下节点办理人map中key为SecondAuthor、<br>Reader和Author，value为Author/SecondAuthor/Reader对象参数 |
| isDone     | String | 是否已经走过                                                                            |
| isSelect   | String | 是否已选择                                                                             |
| nodeGroup  | String | 节点分组，单节点时无值，当前节点有分支节点时，值为上一节点id                                                   |
| nodeId     | String | 节点id                                                                              |
| nodeKey    | String | 节点主键                                                                              |
| nodeName   | String | 节点名称                                                                              |
| nodeStatus | String | 节点状态，限定值<br>0.成功<br>1.选择办理人<br>2.选择节点<br>3.未找到办理人<br>4.未找到下一节点                    |
| selectId   | String | 需要选择的节点id                                                                         |
| selectName | String | 需要选择的节点名称                                                                         |

## 获取提交节点-选取指定节点时
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf <br>
**post数据说明：**
```
{
  "accessToken": "",
  "workId": "HZ28858f8137db820181383ef2a300a1",
  "trackId": "HZ28858f8137db820181383ef2a300a2",
  "actionData": {
    "operate": "submit",
    "operateClazz": "com.horizon.wf.action.ActionSubmit",
    "nextNodes": [
      {
        "isSelect": "true",
        "nodeId": "Node2",
        "nodeKey": "Line2",
        "selectId": "Line2~Node2"
      }
    ]
  }
}
```
请求参数说明:

| 参数          | 是否必须 | 描述            |
|-------------|------|---------------|
| accessToken | 是    | 调用接口凭证，唯一用户标识 |
| workId      | 是    | 流程实例id        |
| trackId     | 是    | 流程路径id        |
actionData 数据参数:

| 参数           | 是否必须 | 描述               |
|--------------|------|------------------|
| operate      | 是    | 提交操作标识，固定值submit |
| operateClazz | 是    | 提交操作类路径          |
| nextNodes    | 是    | 需要选择的节点列表        |
nextNodes参数说明：

| 参数            | 是否必须 | 描述           |
|---------------|------|--------------|
| isSelect      | 是    | 是否已经选择过      |
| nodeId        | 是    | 节点id         |
| nodeKey       | 是    | 节点路由         |
| selectId      | 是    | 需要选择的节点id和路由 |
**返回结果示例：**
```
{
  "nextNodeId": "Line2~Node2",
  "nextNodes": [
    {
      "authors": {
        "SecondAuthor": {
          "authorFlowVar": "",
          "authorId": "SecondAuthor",
          "authorName": "协办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Reader": {
          "authorFlowVar": "",
          "authorId": "Reader",
          "authorName": "读者",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "checkbox"
        },
        "Author": {
          "authorFlowVar": "",
          "authorId": "Author",
          "authorName": "主办",
          "freeArea": "",
          "isDefUser": "false",
          "isFree": "true",
          "isSelect": "true",
          "isUser": "false",
          "selectType": "radio"
        }
      },
      "isDone": "false",
      "isSelect": "true",
      "memo": "",
      "nodeGroup": "",
      "nodeId": "Node2",
      "nodeKey": "Line2",
      "nodeName": "任务2",
      "nodeStatus": "4",
      "selectId": "Line2~Node2",
      "selectName": "路由2(任务2)",
      "timeLimit": "0",
      "timeLimitType": "1"
    }
  ],
  "operate": "submit",
  "operateClazz": "com.horizon.wf.action.ActionSubmit",
  "operateFlag": "0",
  "operateMsg": "请选择办理人",
  "status": 4,
  "workId": "HZ28858f8137db82018137ebd76b0032"
}
```
**结果参数说明:**

| 参数          | 参数类型   | 描述                                                                                                                                                                                                                                    |
|-------------|--------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| nextNodeId  | String | 下一节点id                                                                                                                                                                                                                                |
| nextNodes   | List   | 需要选择的节点列表                                                                                                                                                                                                                             |
| operate     | String | 提交操作标识                                                                                                                                                                                                                                |
| operateText | String | 操作显示名称                                                                                                                                                                                                                                |
| operateFlag | String | 操作标记 -1：显示关闭，0、1：正常提交                                                                                                                                                                                                                 |
| operateMsg  | String | 返回操作信息                                                                                                                                                                                                                                |
| status      | int    | 流程操作状态码<br>0:成功<br>1:无法获取下一节点<br>2:提示选择节点<br>3:办理人为空<br>4:需要选择人员<br>5:流程结束<br>6:子流程未结束<br>7:流程暂停<br>8:流程异常终止<br>9:其他错误提示<br>16:协办人提交<br>17:不满足合并节点的离开规则<br>22:进入规则调用错误<br>23:离开规则调用错误<br>24:该节点类型不支持相应的操作<br>25:启用规则调用错误<br>26:节点激活失败 |
| workId      | String | 流程实例id                                                                                                                                                                                                                                |
*nextNodes参数说明：*

| 参数            | 参数类型   | 描述                                                                                |
|---------------|--------|-----------------------------------------------------------------------------------|
| authors       | Map    | 下节点办理人map中key为SecondAuthor、<br>Reader和Author，value为Author/SecondAuthor/Reader对象参数 |
| isDone        | String | 是否已经走过                                                                            |
| isSelect      | String | 是否已选择                                                                             |
| memo          | String | 备注信息                                                                              |
| nodeGroup     | String | 节点分组，单节点时无值，当前节点有分支节点时，值为上一节点id                                                   |
| nodeId        | String | 节点id                                                                              |
| nodeKey       | String | 节点主键                                                                              |
| nodeName      | String | 节点名称                                                                              |
| nodeStatus    | String | 节点状态，限定值<br>0.成功<br>1.选择办理人<br>2.选择节点<br>3.未找到办理人<br>4.未找到下一节点                    |
| selectId      | String | 需要选择的节点id                                                                         |
| selectName    | String | 需要选择的节点名称                                                                         |
| timeLimit     | String | 节点办理时限                                                                            |
| timeLimitType | String | 办理时限类型，限定值<br>0：自然日<br>1：工作日                                                      |
*authors中Author/SecondAuthor/Reader参数说明：*

| 参数               | 参数类型   | 描述                                    |
|------------------|--------|---------------------------------------|
| authorFlowVar    | String | 流程变量                                  |
| authorId         | String | 办理人id固定值Author/SecondAuthor/Reader    |
| authorName       | String | 办理人名称：主办，协办，读者                        |
| freeArea         | String | 自由选择时的范围                              |
| isDefUser        | String | 流程定义列表中选择                             |
| isFree           | String | 是否自由选择                                |
| isSelect         | String | 是否允许选择办理人                             |
| isUser           | String | 是否只允许选择人员                             |
| selectAuthor     | String | 节点已选择办理人id                            |
| selectAuthorName | String | 节点已选择办理人名称                            |
| selectType       | String | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |