# 启动子流程
> 获取子流程列表、启动子流程

![流程操作](../../assets/img/rest/flowaction/subflow.png)
## 获取子流程列表
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf <br>
**post数据说明：**
```
{
  "accessToken": "",
  "trackId": "HZ28858f8113f08b0181197e34a204ea",
  "workId": "HZ28858f8113f08b0181197e34a204e9",
  "actionData": {
    "operate": "subflow",
    "operateClazz": "com.horizon.wf.action.ActionStartMultiSubFlow"
  }
}
```
请求参数说明:

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

| 参数           | 是否必须 | 描述                |
|--------------|------|-------------------|
| operate      | 是    | 提交操作标识，固定值subflow |
| operateClazz | 是    | 启动子流程操作类路径        |

**返回结果示例：**
```
{
  "operate": "subflow",
  "operateClazz": "com.horizon.wf.action.ActionStartMultiSubFlow",
  "operateFlag": "0",
  "operateMsg": "需要选择子流程",
  "operateStatus": "selectSubflow",
  "status": 15,
  "subFlows": [
    {
      "authors": {
        "authorId": "Author",
        "authorName": "主办",
        "isDefUser": "false",
        "isFree": "true",
        "isSelect": "true",
        "isUser": "false",
        "selectType": "radio"
      },
      "isSelect": "false",
      "isStarted": "false",
      "selectType": "radio",
      "subFlowId": "subFlow",
      "subFlowName": "子流程"
    }
  ],
  "trackId": "HZ28858f8113f08b0181197e34a204ea",
  "workId": "HZ28858f8113f08b0181197e34a204e9"
}
```
**结果参数说明:**

| 参数            | 参数类型   | 描述                    |
|---------------|--------|-----------------------|
| operateFlag   | String | 操作标记 -1：显示关闭，0、1：正常提交 |
| operateMsg    | String | 流程操作返回信息              |
| operateStatus | String | 流程操作结果                |
| reOpen        | String | 是否重新打开，可忽略            |
| status        | int    | 流程操作状态码               |
| operate       | String | 启动子流程操作标识             |
| operateClazz  | String | 启动子流程操作类路径            |
| workId        | String | 流程实例id                |
| subFlows      | List   | 子流程参数                 |
subFlows参数说明：

| 参数          | 参数类型   | 描述                                     |
|-------------|--------|----------------------------------------|
| subFlowId   | String | 子流程id                                  |
| subFlowName | String | 子流程名称                                  |
| isStarted   | String | 是否已经启动                                 |
| authors     | Object | 流程办理人authors参数                         |
| isSelect    | String | 是否选中                                   |
| selectType  | String | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选  |
authors 参数说明：

| 参数         | 参数类型   | 描述                                    |
|------------|--------|---------------------------------------|
| authorId   | String | 办理人类型i                                |
| authorName | String | 办理人名称，限定值：主办，协办，读者                    |
| selectType | String | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |
| isFree     | String | 是否自由选择                                |
| isUser     | String | 是否只允许选择人员                             |
| isDefUser  | String | 流程定义列表中选择                             |
| isSelect   | String | 是否允许选择办理人                             |

## 启动子流程
接口请求调用说明 <br>
http请求方式: POST <br>
请求地址: http://127.0.0.1:8080/demo/horizon/workflow/rest/flow/support/action.wf <br>
**post数据说明：**
```
{
  "accessToken": "",
  "workId": "HZ28858f8113f08b0181199b8b19050d",
  "trackId": "HZ28858f8113f08b0181199b8b1a050e",
  "actionData": {
    "operate": "subflow",
    "operateClazz": "com.horizon.wf.action.ActionStartMultiSubFlow",
    "subFlows": [
        {
        "authors": {
            "authorId": "Author",
            "authorName": "主办",
            "isDefUser": "false",
            "isFree": "true",
            "isSelect": "true",
            "isUser": "false",
            "selectType": "radio",
            "selectAuthor": "U_HZ28821856ef63420156ef6342a20002/D_HZ28821856ef63420156ef6342a20001",
            "selectAuthorName": "用户01(测试部门0)"
        },
        "isSelect": "true",
        "isStarted": "false",
        "selectType": "radio",
        "subFlowId": "subFlow",
        "subFlowName": "子流程"
        }
    ]
  }
}
```
请求参数说明:

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

| 参数           | 是否必须 | 描述                |
|--------------|------|-------------------|
| operate      | 是    | 提交操作标识，固定值subflow |
| operateClazz | 是    | 启动子流程操作类路径        |
| subFlows     | 是    | 子流程参数             |
subFlows参数说明：

| 参数          | 是否必须 | 描述                                    |
|-------------|------|---------------------------------------|
| subFlowId   | 是    | 子流程id                                 |
| subFlowName | 是    | 子流程名称                                 |
| isStarted   | 是    | 是否已经启动                                |
| authors     | 是    | 流程办理人authors参数                        |
| isSelect    | 是    | 是否选中                                  |
| selectType  | 是    | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |
authors 参数说明：

| 参数               | 是否必须 | 描述                                    |
|------------------|------|---------------------------------------|
| authorId         | 是    | 办理人类型i                                |
| authorName       | 是    | 办理人名称，限定值：主办，协办，读者                    |
| selectType       | 是    | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |
| isFree           | 是    | 是否自由选择                                |
| isUser           | 是    | 是否只允许选择人员                             |
| isDefUser        | 是    | 流程定义列表中选择                             |
| isSelect         | 是    | 是否允许选择办理人                             |
| selectAuthor     | 是    | 节点已选择办理人id                            |
| selectAuthorName | 是    | 节点已选择办理人名称                            |
**返回结果示例：**
```
{
  "alert": "true",
  "operate": "subflow",
  "operateClazz": "com.horizon.wf.action.ActionStartMultiSubFlow",
  "operateFlag": "1",
  "operateMsg": "启动子流程成功",
  "operateStatus": "success",
  "reOpen": "false",
  "status": 0,
  "subFlows": [
    {
      "authors": {
        "authorId": "Author",
        "authorName": "主办",
        "isDefUser": "false",
        "isFree": "true",
        "isSelect": "true",
        "isUser": "false",
        "selectAuthor": "U_HZ28821856ef63420156ef6342a20002/D_HZ28821856ef63420156ef6342a20001",
        "selectAuthorName": "用户01(测试部门0)",
        "selectType": "radio"
      },
      "isSelect": "true",
      "isStarted": "false",
      "selectType": "radio",
      "subFlowId": "subFlow",
      "subFlowName": "子流程"
    }
  ],
  "trackId": "HZ28858f8113f08b0181199b8b1a050e",
  "workId": "HZ28858f8113f08b0181199ca7960520"
}
```
**结果参数说明:**

| 参数            | 参数类型   | 描述                    |
|---------------|--------|-----------------------|
| alert         | String | 是否弹出操作成功信息，可忽略        |
| operate       | String | 启动子流程操作标识             |
| operateClazz  | String | 启动子流程操作类路径            |
| operateFlag   | String | 操作标记 -1：显示关闭，0、1：正常提交 |
| operateMsg    | String | 流程操作返回信息              |
| operateStatus | String | 流程操作结果                |
| reOpen        | String | 是否重新打开，可忽略            |
| status        | int    | 流程操作状态码               |
| subFlows      | List   | 子流程参数                 |
| workId        | String | 流程实例id                |
| trackId       | String | 流程实例路径id              |
subFlows参数说明：

| 参数          | 参数类型   | 描述                                    |
|-------------|--------|---------------------------------------|
| subFlowId   | String | 子流程id                                 |
| subFlowName | String | 子流程名称                                 |
| isStarted   | String | 是否已经启动                                |
| authors     | Object | 流程办理人authors参数                        |
| isSelect    | String | 是否选中                                  |
| selectType  | String | 人员选择类型，限定值<br>radio：单选<br>checkbox：多选 |
authors 参数说明：

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