> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 宜搭平台接口

> 本文档介绍了如何使用宜搭平台进行流程实例的发起，包括调用说明、接口地址拼接规则以及参数配置等详细步骤。

| **能力**  | **免费版** | **轻享版** | **专业版** | **专属版** |
| ------- | ------- | ------- | ------- | ------- |
| 宜搭页面数据源 | 不支持     | 不支持     | 支持      | 支持      |

## 1. 调用说明

### 1.1 接口地址拼接规则

目前支持应用维度接口，在应用内（支持跨应用）通过以下方式即可访问对应接口，接口访问格式为：

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
${宜搭域名}/dingtalk/web/${应用编码} + 接口路径。
```

比如在浏览器端想调用应用编码为 APP\_X1X2X3X4 的「流程实例-流程发起」服务接口，则在数据面板里调用请求地址为（**使用相对路径即可**）：

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
/dingtalk/web/APP_X1X2X3X4/v1/process/startInstance.json
```

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1628077163254-8aa950f8-3c6e-4a93-8354-d2b3feb0903d.png)
</Frame>

请参考【二、流程实例】下面的【1. 流程发起】里面有详细的实战演示案例

**注意，目前版本的searchFieldJson和dynamicOrder字段需要的是一个字符串类型的值。比如：**

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
const someJson = {
	"textField_kkm9o5cd":"123"
}

// 如果直接把 someJson 传给 searchFieldJson 是不会有效果的。我们需要通过 JSON.stringify 方法，把这个对象转成字符串形式。
const fieldJson = JSON.stringify(someJson); // '{"textField_kkm9o5cd":"123"}'
```

## 2. 流程实例

### 2.1 流程发起

* 接口: /v1/process/startInstance.json
* 请求类型： POST
* 参数

| 参数名          | 描述       | 是否必填 | 示例                                              | 备注                                  |
| ------------ | -------- | ---- | ----------------------------------------------- | ----------------------------------- |
| processCode  | 流程code   | 是    | TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4 | 单独发起页链接上可查                          |
| formUuid     | 表单ID     | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3   | 单独发起页链接上可查                          |
| formDataJson | 表单数据     | 是    | <br />                                          | 类型：String<br />参考：附录1保存/更新 表单数据格式说明 |
| deptId       | 发起人所在部门号 | 否    | 18295                                           | 不填，默认发起人主职部门                        |

* 返回值：

* 返回值

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": "f30233fb-72e1-4af4-8cb8-c7e0ea9ee530",
  "success": true
}
```

**场景演示：**

①. 搭建一个简单的流程页面，点击其中的某个需要自定义填充值的组件，获取其唯一标识备用，例如本例中单行文本框的唯一标识为「textField\_kkm9o5cd」。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615876628810-e94d85cd-d293-4b5f-9c87-f6db0514f95f.png)
</Frame>

②. 新建一个高级展示页，拖动一个 Button 按钮到页面中，添加一个数据源

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1619403063690-dbab2233-6c3d-45b2-9066-8cbf9aacbcd1.png)
</Frame>

名称填写为一个简单易懂的名称，并且保证在该页面下唯一，请求地址根据业务实际需要填写，本例是希望点击按钮可以发起一条流程，因此这里的请求地址填写为：/alibaba/web/APP\_D45S78OXJSL51QTQVHT8/v1/process/startInstance.json，其中APP\_D45S78OXJSL51QTQVHT8 为应用唯一标识，需要替换为自己的应用的唯一标识，请求方法注意选择为 POST方式。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615876757818-a5877732-b88e-4922-abdd-de96a9aebbf5.png)
</Frame>

③. 为按钮添加一个 onClick 事件，点击 \<> 图标前往进行远程数据源与按钮方案绑定的实现：

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615876929012-2222d08c-00e1-43b1-a808-d1e3a09495a4.png)
</Frame>

参考：[https://developers.aliwork.com/docs/api/about](/zh/open/yida/api/about)

编写如下的绑定代码，注意这里我们给表单控件单行文本框（唯一标识：textField\_kkm9o5cd）填写的是固定值 123 。

formUuid 和 processCode 参数的获取路径为：【应用设置】-【应用数据】-【XX流程】下面的表单 ID 和流程 Code 。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615877395212-3f8ca90e-ffc5-4103-8a76-4c766a3ce98a.png)
</Frame>

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
export function onClick(){
  const params = {
    "processCode":"TPROC--CFYJ5HYUN89NJ1JW3IXBI7A95RXM3652O9MKK3",
    "formUuid": "FORM-CFYJ5HYUN89NJ1JW3IXBI7A95RXM3552O9MKK2",
    "formDataJson": '{"textField_kkm9o5cd":"123"}'
  }

  this.dataSourceMap.myDatasource.load(params).then((response) => {
    this.utils.dialog({
      method: 'alert', // 或confirm
      title: '请求成功',
      type: 'success', // PC端支持 info/success/error
      content: `返回结果为 ${response}`,
    })
  })
  console.log('onClick');
}
```

④. 代码编写完成之后点击页面右上角的保存按钮。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615877011510-34910163-592b-4182-bc2a-419616a78a2f.png)
</Frame>

⑤. 前往运行态页面进行流程发起的测试，点击按钮，可以通过浏览器自带的调试工具下的 Network 看到startInstance 接口发送成功，接口返回的内容 da5ed25c-977b-40e0-acff-4a1c07aa6f41 为流程实例 id ，唯一标识该流程实例。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615877114726-b62541ba-f2ad-4b1b-8093-ef31db669b8f.png)
</Frame>

⑥. 接下来，我们再次前往对应的流程的数据管理页面，找到了我们新发起的那一条流程，并且单行文本中填写的内容就是我们在程序中填写的固定值 123，全部测试验证完成。

<Frame>
  ![](https://yida-support.oss-cn-shanghai.aliyuncs.com/static/png/1615877255394-c4377909-7356-4a54-bca6-fcec9175315a.png)
</Frame>

* 视频展示

<video controls preload="metadata" poster="https://img.alicdn.com/imgextra/i2/6000000004280/O1CN01jalg5i1hUHqGc55A4_!!6000000004280-0-tbvideo.jpg" src="https://yida-support.oss-cn-shanghai.aliyuncs.com/static/mp4/311018400839.mp4" />

### 2.2 根据条件搜索流程实例 ID

* 接口： /v1/process/getInstanceIds.json
* 请求类型： GET
* 权限说明：流程需要配置实例可查看权限（管理员除外）
* 参数

| 参数名             | 描述                                              | 是否必填 | 示例                                            | 备注                                                                                           |
| --------------- | ----------------------------------------------- | ---- | --------------------------------------------- | -------------------------------------------------------------------------------------------- |
| formUuid        | 表单ID                                            | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 | <br />                                                                                       |
| searchFieldJson | 根据表单内组件值查询                                      | 否    | <br />                                        | 类型：String<br />格式见附录2：根据组件值进行条件搜索，组件值格式说明                                                    |
| taskId          | 任务ID                                            | 否    | 2199132092                                    | 一般用不到。                                                                                       |
| instanceStatus  | 实例状态                                            | 否    | RUNNING                                       | 可选值为：RUNNING,TERMINATED,COMPLETED,ERROR。<br />分别代表：运行中，已终止，已完成，异常。                           |
| approvedResult  | 流程审批结果                                          | 否    | agree                                         | 可选值为：agree, disagree。<br />分别表示：同意， 拒绝。                                                      |
| currentPage     | 当前页                                             | 否    | 1                                             | 必须大于0<br />默认1                                                                               |
| pageSize        | 每页记录数                                           | 否    | 10                                            | 必须大于0<br />默认10<br />不能大于100                                                                 |
| originatorId    | 根据流程发起人工号查询                                     | 否    | <br />                                        | <br />                                                                                       |
| createFrom      | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表   | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式<br />yyyy-MM-DD                                                         |
| createTo        | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表。  | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。<br />和createFrom一起，相当于查询在<br />2018-01-01到2018-01-31之间(包含01和31号)创建的数据。 |
| modifiedFrom    | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表  | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式                                                                         |
| modifiedTo      | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表。 | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。 和modifiedFrom一起，相当于查询在 2018-01-01到2018-01-31之间(包含01和31号)被修改的数据。        |

* 返回值

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      "f30233fb-72e1-4af4-8cb8-c7e0ea9ee530",
      "bc0950a3-fe1b-459c-b6ba-282be38523ab",
      "f540cbd7-43eb-40de-b915-6716578a2802"
    ],
    "totalCount": 3,
    "currentPage": 1
  },
  "success": true
}
```

### 2.3 根据搜索条件获取实例详情列表

* 接口： /v1/process/getInstances.json
* 请求类型： GET
* 权限说明：流程需要配置实例可查看权限（管理员除外）
* 参数

| 参数名             | 描述                                              | 是否必填 | 示例                                            | 备注                                                                                                                        |
| --------------- | ----------------------------------------------- | ---- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| formUuid        | 表单ID                                            | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 | <br />                                                                                                                    |
| searchFieldJson | 根据表单内组件值查询                                      | 否    | <br />                                        | 类型：String<br />格式见附录2：根据组件值进行条件搜索，组件值格式说明                                                                                 |
| taskId          | 任务ID                                            | 否    | 2199132092                                    | 一般用不到。                                                                                                                    |
| instanceStatus  | 实例状态                                            | 否    | RUNNING                                       | 可选值为：RUNNING,TERMINATED,COMPLETED,ERROR。<br />分别代表：运行中，已终止，已完成，异常。                                                        |
| approvedResult  | 流程审批结果                                          | 否    | agree                                         | 可选值为：agree, disagree。<br />分别表示：同意， 拒绝。                                                                                   |
| currentPage     | 当前页                                             | 否    | 1                                             | 必须大于0<br />默认1                                                                                                            |
| pageSize        | 每页记录数                                           | 否    | 10                                            | 必须大于0<br />默认10<br />不能大于100                                                                                              |
| originatorId    | 根据流程发起人工号查询                                     | 否    | <br />                                        | <br />                                                                                                                    |
| createFrom      | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表   | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式                                                                                                      |
| createTo        | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表。  | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。<br />和createFrom一起，相当于查询在<br />2018-01-01到2018-01-31之间(包含01和31号)创建的数据。<br />yyyy-MM-DD后补充0时0分0秒获取数据 |
| modifiedFrom    | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表  | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式                                                                                                      |
| modifiedTo      | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表。 | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。 和modifiedFrom一起，相当于查询在 2018-01-01到2018-01-31之间(包含01和31号)被修改的数据。                                     |

* 返回值

### 2.4 根据实例 ID 获取流程实例详情

* 接口：/v1/process/getInstanceById.json
* 请求类型：GET
* 参数

| 参数名               | 描述     | 是否必填 | 示例                                   | 备注     |
| ----------------- | ------ | ---- | ------------------------------------ | ------ |
| processInstanceId | 流程实例ID | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br /> |

* 返回值

### 2.5 删除流程实例

* 接口： /v1/process/deleteInstance.json
* 请求类型： POST
* 参数

| 参数名               | 描述     | 是否必填 | 示例                                   | 备注     |
| ----------------- | ------ | ---- | ------------------------------------ | ------ |
| processInstanceId | 流程实例ID | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br /> |

* 返回值

### 2.6 终止流程实例

* 接口： /v1/process/terminateInstance.json
* 请求类型： POST
* 参数

| 参数名               | 描述     | 是否必填 | 示例                                   | 备注     |
| ----------------- | ------ | ---- | ------------------------------------ | ------ |
| processInstanceId | 流程实例ID | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br /> |

* 返回值

#### 2.7 实例ID批量获取流程实例详情【暂未开放】

* 接口： /v1/process/getInstancesByIds.json
* 请求类型： GET
* 参数

| 参数名                | 描述              | 是否必填 | 示例                                                                         | 备注     |
| ------------------ | --------------- | ---- | -------------------------------------------------------------------------- | ------ |
| processInstanceIds | 流程实例ID列表，多个用,分割 | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530,d230233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br /> |

* 返回值

### 2.7 执行单个任务接口

* 接口： /v1/task/executeTask.json
* 请求类型： POST
* 参数

| 参数名                  | 描述           | 是否必填 | 示例                                   | 备注                                                                                          |
| -------------------- | ------------ | ---- | ------------------------------------ | ------------------------------------------------------------------------------------------- |
| taskId               | 任务ID         | 是    | 12002575                             | <br />                                                                                      |
| procInstId           | 实例ID         | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br />                                                                                      |
| outResult            | 审批结果         | 是    | AGREE                                | AGREE(同意)、DISAGREE(不同意)                                                                     |
| remark               | 审批意见         | 是    | 确认同意                                 | <br />                                                                                      |
| formDataJson         | 更新的表单值       | 否    | <br />                               | 参考：附录1保存/更新 表单数据格式说明。<br />参数有的组件更新，没有的组件保持不变。<br />明细的值只能统一更新，无法只更新子表单下某个组件的值              |
| noExecuteExpressions | 是否不执行校验&关联操作 | 否    | y                                    | 本任务节点有绑定校验规则或者关联操作时，<br />y -> 不执行校验规则&关联操作<br />n -> 执行校验规则&关联操作<br />不传默认为n，即会执行校验规则&关联操作 |

* 返回值

### 2.8 获取审批记录

* 接口： /v1/process/getOperationRecords.json
* 请求类型： GET
* 参数

| 参数名               | 描述     | 是否必填 | 示例                                   | 备注     |
| ----------------- | ------ | ---- | ------------------------------------ | ------ |
| processInstanceId | 流程实例ID | 是    | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 | <br /> |

* 返回值

* 返回格式

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success": true,
  "content": [
    {
      "operateTime": "2018-06-22 14:35:40",
      "remark": "",
      "taskHoldTime": 0,
      "type": "HISTORY",
      "operatorName": "宜小搭",
      "operator": "yida",
      "activityId": "sid-restartevent",
      "action": "提交申请",
      "actionExt": "submit",
      "id": 2846866118,
      "operatorPhotoUrl": "/photo/yida.128x128.jpg",
      "processInstanceId": "8c124808-82e7-473b-9a7a-43c29b310837",
      "showName": "提交申请",
      "operateType": "NEW_PROCESS",
      "domains": [],
      "operatorStatus": "A",
      "operatorAgentIds": [],
      "size": 1,
      "operatorDisplayName": "宜小搭",
      "taskId": "null"
    },
    {
      "taskHoldTime": 531398377,
      "type": "TODO",
      "operatorName": "宜小搭",
      "operator": "yida",
      "activityId": "sidJIOB2P2J1JW3RPMDOS28",
      "taskType": "COMMON_ALL_AT_ONCE",
      "actionExt": "doing",
      "operatorPhotoUrl": "/photo/yida.128x128.jpg",
      "processInstanceId": "8c124808-82e7-473b-9a7a-43c29b310837",
      "showName": "执行人",
      "activeTime": "2018-06-22 14:35:41",
      "domains": [],
      "operatorStatus": "A",
      "operatorAgentIds": [],
      "size": 1,
      "operatorDisplayName": "宜小搭",
      "taskId": "2846866145"
    }
  ]
}
```

### 2.9 流程实例更新

* 接口: /v1/process/updateInstance.json
* 请求类型： POST
* 参数

| 参数名                | 描述      | 是否必填 | 示例     | 备注                   |
| ------------------ | ------- | ---- | ------ | -------------------- |
| processInstanceId  | 实例ID    | 是    | <br /> | <br />               |
| updateFormDataJson | 更新的表单数据 | 是    | <br /> | 参考：附录1保存/更新 表单数据格式说明 |

* 返回值：

* 返回值 demo

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success":true
}
```

#### 2.8 获取流程设计节点上的按钮列表\[暂未开放]

* 接口: /v1/process/getActivityButtonVOs.json
* 请求类型： GET
* 参数

| 参数名         | 描述   | 是否必填 | 示例                               | 备注     |
| ----------- | ---- | ---- | -------------------------------- | ------ |
| processCode | 流程编码 | 是    | TPROC--X1G\*\*\*42ZMGA31OYELIWJ1 | <br /> |
| activityId  | 节点ID | 是    | <br />                           | <br /> |

* 返回值：

* 返回值 demo：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": [
    {
      "aliasEn": "Forward",
      "alias": "转交",
    },
    {
      "aliasEn": "Append",
      "alias": "加签",
    },
    {
      "aliasEn": "Return",
      "alias": "退回",
    }
  ],
  "success": true,
  "errorCode": null,
  "content": null,
  "errorMsg": null
}
```

## 3. 表单实例

### 3.1 新增表单实例

* 接口： /v1/form/saveFormData.json
* 请求类型： POST
* 参数：

| 参数名          | 描述   | 是否必填 | 示例                                                                    | 备注                                                                        |
| ------------ | ---- | ---- | --------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| formUuid     | 表单ID | 是    | FORM-NJYJZELV8YZRDEI2N5IQ7L6VEDMR1VE9GMPCJB                           | <br />                                                                    |
| appType      | 应用ID | 是    | APP\_DR4OK27ZKL5N22B907E8                                             | <br />                                                                    |
| formDataJson | 表单数据 | 是    | \{"textField\_jcpm6agt": "单行","employeeField\_jcos0sar": \["workno"]} | 类型：String<br />参考：[附录1保存/更新 表单数据格式说明](/zh/yida/developer-features/aql605) |

* 返回值：

* 返回值 demo：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result":"FINST-EF6Y93URN2UZ1SBPLIP9NAV6HR2GEO1Z4ZCHSCJ0",
  "success":true
}
```

### 3.2 更新表单中指定组件值

* 接口： /v1/form/updateFormData.json
* 请求类型： POST
* 参数：

| 参数名                | 描述            | 是否必填 | 示例                                                                   | 备注                                                                                                                        |
| ------------------ | ------------- | ---- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| formInstId         | 要更新的表单数据ID    | 是    | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9                         | <br />                                                                                                                    |
| updateFormDataJson | 要更新的表单组件值，必填  | 是    | \{"employeeField\_jcpm5gy2":<br />\["xxxxx","yyyyy"]}<br />（以成员组件示例） | 类型：String<br />参考：[附录1保存/更新 表单数据格式说明。](/zh/yida/developer-features/aql605) 参数有的组件更新，没有的组件保持不变。 明细的值只能统一更新，无法只更新子表单下某个组件的值 |
| useLatestVersion   | 使用最新的表单版本进行更新 | 否    | y                                                                    | 【特别注意】<br />默认值为n，建议使用y。                                                                                                  |

* 返回值：

* 返回值 demo

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success":true
}
```

### 3.3 删除表单实例

* 接口： /v1/form/deleteFormData.json
* 请求类型： POST
* 参数：

| 参数名        | 描述         | 是否必填 | 示例                                           | 备注     |
| ---------- | ---------- | ---- | -------------------------------------------- | ------ |
| formInstId | 要删除的表单数据ID | 是    | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 | <br /> |

* 返回值：

* 返回值 demo

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success":true
}
```

***

### 3.4 根据表单实例 ID 查询表单实例详情

* 接口： /v1/form/getFormDataById.json
* 请求类型： GET
* 参数：

| 参数名        | 描述          | 是否必填 | 示例                                           | 备注     |
| ---------- | ----------- | ---- | -------------------------------------------- | ------ |
| formInstId | 要查询的实例的实例ID | 是    | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 | <br /> |

* 返回值

***

### 3.5 根据条件搜索表单实例 ID 列表

* 接口： /v1/form/searchFormDataIds.json
* 请求类型： GET
* 权限控制： 该接口会受页面设置的权限控制 （管理员除外）。
* 参数：

| 参数名             | 描述                                              | 是否必填 | 示例                                            | 备注                                                                                                                        |
| --------------- | ----------------------------------------------- | ---- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| formUuid        | 表单ID                                            | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 | <br />                                                                                                                    |
| searchFieldJson | 根据表单内组件值查询                                      | 否    | <br />                                        | 类型：String<br />格式见附录2：根据组件值进行条件搜索，组件值格式说明                                                                                 |
| currentPage     | 当前页                                             | 否    | 1                                             | 必须大于0<br />默认1                                                                                                            |
| pageSize        | 每页记录数                                           | 否    | 10                                            | 必须大于0<br />默认10<br />不能大于100                                                                                              |
| originatorId    | 根据数据提交人工号查询                                     | 否    | <br />                                        | <br />                                                                                                                    |
| createFrom      | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表   | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式                                                                                                      |
| createTo        | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表。  | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。<br />和createFrom一起，相当于查询在<br />2018-01-01到2018-01-31之间(包含01和31号)创建的数据。<br />yyyy-MM-DD后补充0时0分0秒获取数据 |
| modifiedFrom    | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表  | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式                                                                                                      |
| modifiedTo      | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表。 | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。 和modifiedFrom一起，相当于查询在 2018-01-01到2018-01-31之间(包含01和31号)被修改的数据。                                     |
| dynamicOrder    | 排序                                              | 否    | column: '+'                                   | 正序 +，倒序 -                                                                                                                 |

* 返回值

* 返回值 demo：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result":{
    "data":[
      "FINST-EF6Y93URN2F02S745LTMW2D2G4WVDS16O17ISCJ0"
    ],
	  "totalCount":1,
    "currentPage":1
  },
  "success":true
}
```

### 3.6 根据条件搜索表单实例详情列表

* 接口： /v1/form/searchFormDatas.json
* 请求类型： GET
* 权限控制： 该接口会受页面设置的权限控制 （管理员除外）。
* 参数

| 参数名             | 描述                                              | 是否必填 | 示例                                            | 备注                                                                                                                           |
| --------------- | ----------------------------------------------- | ---- | --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| formUuid        | 表单ID                                            | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 | <br />                                                                                                                       |
| searchFieldJson | 根据表单内组件值查询                                      | 否    | <br />                                        | 类型：String<br />格式见附录2：根据组件值进行条件搜索，组件值格式说明                                                                                    |
| currentPage     | 当前页                                             | 否    | 1                                             | 必须大于0，默认1                                                                                                                    |
| pageSize        | 每页记录数                                           | 否    | 10                                            | 必须大于0<br />默认10<br />不能大于100                                                                                                 |
| originatorId    | 根据数据提交人工号查询                                     | 否    | <br />                                        | <br />                                                                                                                       |
| createFrom      | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表   | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式<br />（或者精确到秒<br />yyyy-MM-DD HH:mm:ss）                                                                  |
| createTo        | createFrom和createTo两个时间构造一个时间段。查询在该时间段创建的数据列表。  | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式（或者精确到秒<br />yyyy-MM-DD HH:mm:ss）<br />和createFrom一起，相当于查询在<br />2018-01-01到2018-01-31之间(包含01和31号)创建的数据。 |
| modifiedFrom    | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表  | 否    | 2018-01-01                                    | 字符串格式，且为yyyy-MM-DD格式（或者精确到秒<br />yyyy-MM-DD HH:mm:ss）                                                                        |
| modifiedTo      | modifiedFrom和modifiedTo构成一个时间段，查询在该时间段有修改的数据列表。 | 否    | 2018-02-01                                    | 字符串格式，且为yyyy-MM-DD格式。 （或者精确到秒<br />yyyy-MM-DD HH:mm:ss）和modifiedFrom一起，相当于查询在 2018-01-01到2018-01-31之间(包含01和31号)被修改的数据。       |
| dynamicOrder    | 指定排序字段                                          | 否    | \{"numberField\_1ac":"+"}                     | 表示按照字段numberField\_1ac升序排列                                                                                                   |

* 返回值

### 3.7 获取表单定义

* 接口： /v1/form/getFormComponentDefinationList.json
* 请求类型： GET
* 参数：

| 参数名      | 描述   | 是否必填 | 示例                                          | 备注                                         |
| -------- | ---- | ---- | ------------------------------------------- | ------------------------------------------ |
| formUuid | 表单ID | 是    | FORM-NJYJZELV8YZRDEI2N5IQ7L6VEDMR1VE9GMPCJB | <br />                                     |
| version  | 表单版本 | 否    | 1                                           | 可以传入formData中的version字段。<br />为空时返回最新的版本定义 |

* 返回值：

* 返回格式

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
    "success":true,
    "content":[
        {
            "label":"{"en_US":"CheckBox Field","zh_CN":"多选","type":"i18n"}",
            "key":"checkboxField_jiwvhkdi"
        },
        {
            "label":"{"en_US":"Textarea Field","zh_CN":"多行输入框","type":"i18n"}",
            "key":"textareaField_jiwvhkdh"
        },
        {
            "label":"{"en_US":"Select Field","zh_CN":"下拉单选","type":"i18n"}",
            "key":"selectField_jiwvhkdg"
        }
    ]
}
```

### 3.8 获取子表单数据

* 接口： /v1/form/listTableDataByFormInstIdAndTableId.json
* 请求类型：GET
* 参数

| 参数名            | 描述              | 是否必填 | 示例                                            | 备注             |
| -------------- | --------------- | ---- | --------------------------------------------- | -------------- |
| formUuid       | 表单ID            | 是    | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 | <br />         |
| formInstanceId | 要查询的实例的实例ID     | 是    | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9  | <br />         |
| tableFieldId   | 需要查找的子表单组件的唯一标识 | 是    | tableField\_ksyaujq1                          | <br />         |
| currentPage    | 当前页             | 是    | 10                                            | 必须大于0，默认1      |
| pageSize       | 每页记录数           | 是    | 50                                            | 大于0并且小于50，默认10 |

* 返回值

* 返回格式

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      {
        "textField_kstqokaa": ""
      },
      {
        "textField_kstqokaa": "1"
      },
      {
        "textField_kstqokaa": "2"
      }
    ],
    "totalCount": 120,
    "currentPage": 1,
  },
  "success": true,
}
```

## 4. 任务中心

### 4.1 已提交任务

* 接口: /v1/process/getMySubmitInApp.json
* 请求类型： GET
* 参数

| 参数名         | 描述    | 是否必填 | 示例     | 备注                 |
| ----------- | ----- | ---- | ------ | ------------------ |
| pageSize    | 每页记录数 | 是    | 10     | 必须大于0 默认10 最大值：100 |
| currentPage | 当前页   | 是    | 1      | 必须大于0 默认1          |
| keyword     | 关键词   | 否    | <br /> | <br />             |

* 返回值：

* 返回格式

成功：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      {
        "modifiedTime": "2018-04-12 19:44:14",
        "formInstanceId": "FINST-AJ1L4CJVXL0UIAIPR06ZA52U9HKUXXXXXX",
        "title": "单据",
        "instValue": [
          {
            "componentId": "node_jfwgghbo",
            "componentName": "TextField",
            "fieldId": "textField_jfwggg8e",
            "label": "姓名",
            "validation": [],
            "fieldData": {
              "complexType": "custom",
              "dataType": "CHANGED",
              "pass": true,
              "value": "jack"
            },
            "errorMsg": null,
            "hasError": false
          }
        ],
        "processId": 0,
        "appType": "APP_R8MYLKYXXXXXX",
        "dataMap": {
          "textField_jfXXXXXX": "XXXXXX"
        },
        "originatorId": "XXXXXX",
        "formUuid": "FORM-0G7KPV3WZL0U3AHTOA9BFVXXXXXX",
        "dataType": "finst",
        "originatorAvatar": "http://static.dingtalk.com/media/lADPBbCc1R7VwSHNXXXXXX.jpg",
        "version": 0,
        "createTime": "2018-04-12 19:44:14"
      }
    ],
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

失败：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "没有权限"
}
```

**Tips:instValue 返回的是字符串，内容格式是 Json 数组**

示例请求代码：

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
 @Test
    public void postYidaOutTaskTest() {
        String api = "/yida_vpc/process/getMySubmmitInCorp.json";
        String corpId = "ding5d17e3add038d44535c2f4657eb63711";
        String userId = "141940523222800011";
        String corpCode = "AJ1L4CJVOL0UUQPTQWX8YOTCCS7O1T4CSNJF11";

        PostClient postClient = ExecutableClient.getInstance().newPostClient(api);
        postClient.addParameter("page", "1");
        postClient.addParameter("limit", "10");
        postClient.addParameter("corpId", corpId);
//        postClient.addParameter("appTypes", "[\"APP_I3D2FD2ZQB75KLLKL48Y\"]");
        postClient.addParameter("userId", userId);
        String token = DigestUtils.md5DigestAsHex(String.format("%s%s%s", corpId, userId, corpCode).getBytes()).toUpperCase();
        postClient.addParameter("token", token);

        String apiResult = postClient.post();
        Assert.notNull(apiResult);
    }
```

***

### 4.2 待办任务

* 接口: /v1/task/getTodoTasksInApp.json
* 请求类型： GET
* 参数

| 参数名         | 描述    | 是否必填 | 示例     | 备注                 |
| ----------- | ----- | ---- | ------ | ------------------ |
| pageSize    | 每页记录数 | 是    | 10     | 必须大于0 默认10 最大值：100 |
| currentPage | 当前页   | 是    | 1      | 必须大于0 默认1          |
| keyword     | 关键词   | 否    | <br /> | <br />             |

* 返回值：

* 返回格式

成功：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      {
        "processInstanceId": "XXXXXX",
        "originatorName": "XXX",
        "title": "XXX发起的流程",
        "originatorPhoto": "http://static.dingtalk.com/media/lADPdfafafsAXXXXXX.jpg",
        "titleEn": "XXX发起的流程",
        "createTime": "2018-04-13 13:35:58",
        "appType": "APP_R8MdfadfXXXXXX",
        "originatorNameEn": "XXXXXX",
        "originatorId": "XXXXXX",
        "taskId": "XXXXXX",
        "status": "NEW"
      }
    ],
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

失败：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "没有权限"
}
```

示例请求代码：

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
 @Test
    public void postYidaOutTaskTest() {
        String api = "/yida_vpc/process/getTodoTasksInCorp.json";
        String corpId = "ding5d17e3add038d44535c2f4657eb63711";
        String userId = "141940523222800011";
        String corpCode = "AJ1L4CJVOL0UUQPTQWX8YOTCCS7O1T4CSNJF11";

        PostClient postClient = ExecutableClient.getInstance().newPostClient(api);
        postClient.addParameter("page", "1");
        postClient.addParameter("limit", "10");
        postClient.addParameter("corpId", corpId);
//        postClient.addParameter("appTypes", "[\"APP_I3D2FD2ZQB75KLLKL48Y\"]");
        postClient.addParameter("userId", userId);
        String token = DigestUtils.md5DigestAsHex(String.format("%s%s%s", corpId, userId, corpCode).getBytes()).toUpperCase();
        postClient.addParameter("token", token);

        String apiResult = postClient.post();
        Assert.notNull(apiResult);
    }
```

***

### 4.3 已完成任务

* 接口: /v1/task/getDoneTasksInApp.json
* 请求类型： GET
* 参数

| 参数名         | 描述    | 是否必填 | 示例     | 备注                 |
| ----------- | ----- | ---- | ------ | ------------------ |
| pageSize    | 每页记录数 | 是    | 10     | 必须大于0 默认10 最大值：100 |
| currentPage | 当前页   | 是    | 1      | 必须大于0 默认1          |
| keyword     | 关键词   | 否    | <br /> | <br />             |

* 返回值：

* 返回格式

成功：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      {
        "processInstanceId": "abc434rfds23XXXXXX",
        "finishTime": "2018-03-28 17:46:14",
        "originatorName": "",
        "title": "XXX发起的流程页面",
        "originatorPhoto": "//img.alicdn.com/tfs/TB1msdfsXXXXXX.jpg",
        "titleEn": "XXX发起的流程页面",
        "createTime": "2018-03-28 17:45:43",
        "appType": "XXXXXX",
        "originatorNameEn": "XXXXXX",
        "originatorId": "XXXXXX",
        "taskId": "XXXXXX",
        "status": "COMPLETED"
      }
    ],
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

失败：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "没有权限"
}
```

示例请求代码：

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
 @Test
    public void postYidaOutTaskTest() {
        String api = "/yida_vpc/process/getDoneTasksInCorp.json";
        String corpId = "ding5d17e3add038d44535c2f4657eb63711";
        String userId = "141940523222800011";
        String corpCode = "AJ1L4CJVOL0UUQPTQWX8YOTCCS7O1T4CSNJF11";

        PostClient postClient = ExecutableClient.getInstance().newPostClient(api);
        postClient.addParameter("page", "1");
        postClient.addParameter("limit", "10");
        postClient.addParameter("corpId", corpId);
//        postClient.addParameter("appTypes", "[\"APP_I3D2FD2ZQB75KLLKL48Y\"]");
        postClient.addParameter("userId", userId);
        String token = DigestUtils.md5DigestAsHex(String.format("%s%s%s", corpId, userId, corpCode).getBytes()).toUpperCase();
        postClient.addParameter("token", token);

        String apiResult = postClient.post();
        Assert.notNull(apiResult);
    }
```

***

### 4.4 抄送我的任务（应用纬度）

* 接口: /v1/task/getNotifyMeTasksInApp.json
* 请求类型： GET
* 参数

| 参数名            | 描述       | 是否必填 | 示例            | 备注                 |
| -------------- | -------- | ---- | ------------- | ------------------ |
| pageSize       | 每页记录数    | 是    | 10            | 必须大于0 默认10 最大值：100 |
| currentPage    | 当前页      | 是    | 1             | 必须大于0 默认1          |
| keyword        | 关键词      | 否    | <br />        | <br />             |
| processCodes   | 流程code列表 | 否    | \["xx","xxx"] | <br />             |
| instanceStatus | 实例状态     | 否    | <br />        | 枚举值                |

* 返回值：

* 返回格式

成功：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": [
      {
        "modifiedTime": "2018-04-12 19:44:14",
        "formInstanceId": "FINST-AJ1L4CJVXL0UIAIPR06ZA52U9HKUXXXXXX",
        "title": "单据",
        "instValue": [
          {
            "componentId": "node_jfwgghbo",
            "componentName": "TextField",
            "fieldId": "textField_jfwggg8e",
            "label": "姓名",
            "validation": [],
            "fieldData": {
              "complexType": "custom",
              "dataType": "CHANGED",
              "pass": true,
              "value": "jack"
            },
            "errorMsg": null,
            "hasError": false
          }
        ],
        "processId": 0,
        "appType": "APP_R8MYLKYXXXXXX",
        "dataMap": {
          "textField_jfXXXXXX": "XXXXXX"
        },
        "originatorId": "XXXXXX",
        "formUuid": "FORM-0G7KPV3WZL0U3AHTOA9BFVXXXXXX",
        "dataType": "finst",
        "originatorAvatar": "http://static.dingtalk.com/media/lADPBbCc1R7VwSHNXXXXXX.jpg",
        "version": 0,
        "createTime": "2018-04-12 19:44:14"
      }
    ],
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

失败：

```javascript theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "没有权限"
}
```

* Tips:instValue 返回的是字符串，内容格式是 json 数组

## 5. 附录

### 5.1 保存/更新 表单数据格式说明

* 表单中每个组件都有唯一 ID (在页面设计器组件右侧的高级面板可以查看唯一标识)，每个组件中填写的数据都有自己的固定格式。目前支持的表单组件有：单行，多行，数字，单选，下拉单选，多选，下拉多选，日期，日期区间，人员搜索框，地区选择，部门选择，级联选择，子表单组件。
* 保存/更新 表单数据时，用 Map\<String, Object> 的 JsonString 格式来作为参数传递表单中的数据。key 为组件ID，Object 为组件的值。每个组件的值格式如下：

| 组件类型  | 数据格式      | demo                                                                                                                                             | 备注                                                              |
| ----- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- |
| 单行输入框 | 字符串       | "danhang"                                                                                                                                        | <br />                                                          |
| 多行输入框 | 字符串       | "duohang"                                                                                                                                        | <br />                                                          |
| 数字输入框 | 数字        | 1                                                                                                                                                | <br />                                                          |
| 单选    | 字符串       | "选项一"                                                                                                                                            | <br />                                                          |
| 下拉单选  | 字符串       | "选项一"                                                                                                                                            | <br />                                                          |
| 多选    | 字符串数组     | \["选项一","选项二"]                                                                                                                                   | <br />                                                          |
| 下拉多选  | 字符串数组     | \["选项一","选项二"]                                                                                                                                   | <br />                                                          |
| 日期组件  | 时间戳       | 1516204800000                                                                                                                                    | <br />                                                          |
| 级联日期  | 字符串数组     | \["1514736000000","1517328000000"]。<br />假如只有结束时间，\["","1517328000000"]                                                                          | 第一个为开始时间的时间戳字符串，第二给结束时间的时间戳字符串                                  |
| 人员搜索框 | 字符串数组     | \["231344123","231344156"]                                                                                                                       | \["xxx"]里面是userId                                               |
| 城市选择  | 字符串数组     | \["110000","110100","110101"]                                                                                                                    | 第一个必须为省份ID，第二个为城市ID，第三个为区ID。                                    |
| 部门选择  | 字符串数组     | \["1123456"]                                                                                                                                     | \["xxx"]里面是部门id                                                 |
| 级联选择  | 字符串数据     | \["part","part\_b"]                                                                                                                              | 必须按照级联顺序，依次放到数组中                                                |
| 附件组件  | 字符串数组     | \[<br />\{<br />"downloadUrl": "文件下载地址",<br />"name": "文件名",<br />"previewUrl": "文件预览地址",<br />"url": "文件下载地址",<br />"ext": "docx"<br />}<br />] | <br />                                                          |
| 图片组件  | 字符串数组     | \[<br />\{<br />"downloadUrl": "文件下载地址",<br />"name": "文件名",<br />"previewUrl": "文件预览地址",<br />"url": "文件下载地址",<br />}<br />]                    |                                                                 |
| 超链接组件 | 字符串数组     | \[<br />\{<br />"link":"[http://www.yidaapps.com](http://www.yidaapps.com)",<br />"text":"宜搭"<br />}<br />]                                      | <br />                                                          |
| 子表单   | JSONARRAY | \[\{"textField\_jcr0069m": "danhang1"},\{"textField\_jcr0069m": "danhang2"}]<br />(textField\_jcr0069m为子表单下单行的组件ID)                              | 由于子表单下有多条记录，所以用JSONARRAY。由于每条记录都是很多组件的值，因此用JSONObject来存每个组件对应的值 |
| 手写签名  | 字符串       | "图片地址"                                                                                                                                           | <br />                                                          |

* 完整的表单数据格式如下：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "textField_jcr0069m": "danhang",
  "textareaField_jcr0069n": "duohang",
  "numberField_jcr0069o": 1,
  "radioField_jcr0069p": "选项一",
  "selectField_jcr0069q": "选项一",
  "checkboxField_jcr0069r": [
    "选项二",
    "选项三"
  ],
  "multiSelectField_jcr0069s": [
    "选项二",
    "选项三"
  ],
  "dateField_jcr0069t": 1516636800000,
  "cascadeDate_jcr0069u": [
    "1514736000000",
    "1517328000000"
  ],
  "employeeField_jcr0069x": [
    "xxxxx"
  ],
  "citySelectField_jcr0069y": [
    "110000",
    "110100",
    "110101"
  ],
  "departmentField_jcr0069z": 1123456,
  "cascadeSelectField_jcr006a0": [
    "part",
    "part_b"
  ],
  {
  "attachmentField_jna1lvyb": [
    {
      "downloadUrl": "https://www.yidaapps.com/fileHandle?appType=default_tianshu_app&fileName=edd07ca9-1d2e-44b5-98fe-c1e16202f90d.txt&instId=&type=download",
      "name": "test.txt",
      "previewUrl": "https://www.yidaapps.com/inst/preview?appType=default_tianshu_app&fileName=test.txt&fileSize=4&downloadUrl=edd07ca9-1d2e-44b5-98fe-c1e16202f90d.txt",
      "url": "https://www.yidaapps.com/fileHandle?appType=default_tianshu_app&fileName=edd07ca9-1d2e-44b5-98fe-c1e16202f90d.txt&instId=&type=download",
      "ext": "txt"
    }
  ]
},
  "tableField_jcr006a1": [
    {
      "cascadeDate_jcr006aa": [
        "1514736000000",
        "1517328000000"
      ],
      "cascadeSelectField_jcr006ae": [
        "product",
        "product_a"
      ],
      "checkboxField_jcr006a7": [
        "选项一",
        "选项二",
        "选项三"
      ],
      "citySelectField_jcr006ac": [
        "120000",
        "120100",
        "120102"
      ],
      "dateField_jcr006a9": 1517328000000,
      "departmentField_jcr006ad": ["1123456"],
      "employeeField_jcr006ab": [
        "yyyyy",
        "xxxxx"
      ],
      "multiSelectField_jcr006a8": [
        "选项一",
        "选项二",
        "选项三"
      ],
      "numberField_jcr006a4": 2,
      "radioField_jcr006a5": "选项二",
      "selectField_jcr006a6": "选项三",
      "textField_jcr006a2": "子表单下单行",
      "textareaField_jcr006a3": "子表单下多行"
    }
  ],
	"digitalSignatureField_kt3nh972": "https://tianshu-vpc.oss-cn-shanghai.aliyuncs.com/5e03f863-dd39-4f62-ba9b-497af2c9ad9f.png"
}
```

### 5.2 根据组件值进行条件搜索，组件值格式说明

* 表单中每个组件都有唯一 ID (在页面设计器组件右侧的高级面板可以查看唯一标识)，每个组件的搜索格式不一样。目前支持搜索的表单组件有：单行，多行，数字，单选，下拉单选，多选，下拉多选，日期，日期区间，人员搜索框，地区选择，部门选择，级联选择，子表单组件。
* 搜索时，用 Map\<String, Object>  格式来表示每个组件的搜索条件。key 为组件 ID，Object 为组件的搜索值。各个组件的搜索类型和值格式如下

| 组件类型  | 数据格式  | demo                                                                     | 备注                                                              |
| ----- | ----- | ------------------------------------------------------------------------ | --------------------------------------------------------------- |
| 单行输入框 | 字符串   | "danhang"                                                                | 模糊搜索                                                            |
| 多行输入框 | 字符串   | "duohang"                                                                | 模糊搜索                                                            |
| 数字输入框 | 字符串数组 | \["1","10"]                                                              | 范围搜索。第一个为最小值，第二个为最大值                                            |
| 单选    | 字符串   | "选项二"                                                                    | 精确搜索                                                            |
| 下拉单选  | 字符串   | "选项二"                                                                    | 精确搜索                                                            |
| 多选    | 字符串数组 | \["选项二"]                                                                 | 数组搜索。<br />搜索值必须是多选值的子集                                         |
| 下拉多选  | 字符串数组 | \["选项二"]                                                                 | 数组搜索。 搜索值必须是多选值的子集                                              |
| 日期组件  | 字符串数组 | \["1514736000000","1517414399000"]                                       | 范围搜索。第一个为日期开始的时间戳，第二个为日期结束的时间戳。                                 |
| 日期区间  | 数组    | \[\["1514736000000","1517414399000"],\["1514736000000","1517414399000"]] | 范围搜索。第一个数组是日期区间开始的搜索范围。第二个数组是日期区间结束的搜索范围。                       |
| 人员搜索框 | 字符串数组 | \["xxxxx","yyyyyy"]                                                      | 精确匹配。值必须完全匹配，工号顺序也需要一致。                                         |
| 城市选择  | 字符串数组 | \[500000, 500100, 500104, 500104003]                                     | 数组搜索。<br />搜索值必须是城市值的子集。<br />另外，有市ID，就必须有省ID。有区ID，就必须有省ID和市ID。 |
| 部门选择  | 数字    | 1123456                                                                  | 精确匹配                                                            |
| 级联选择  | 字符串数组 | \["part","part\_b"]                                                      | 数组搜索。和城市选择限制条件一致。                                               |
| 子表单组件 | 字符串   | danhang                                                                  | 模糊搜索。<br />子表单下的值为一个大text，搜索用模糊搜索。                              |

* 完整例子

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "textField_jcr0069m": "danhang",
  "textareaField_jcr0069n": "duohang",
  "numberField_jcr0069o": [
    "1",
    "10"
  ],
  "radioField_jcr0069p": "选项一",
  "selectField_jcr0069q": "选项一",
  "checkboxField_jcr0069r": [
    "选项二"
  ],
  "multiSelectField_jcr0069s": [
    "选项二",
    "选项三"
  ],
  "dateField_jcr0069t": [
    1514736000000,
    1517414399000
  ],
  "cascadeDate_jcr0069u": [
    [
      1514736000000,
      1517414399000
    ],
    [
      1514736000000,
      1517414399000
    ]
  ],
  "employeeField_jcr0069x": [
    "xxxxx"
  ],
  "citySelectField_jcr0069y": [
    "110000",
    "110100",
    "110101"
  ],
  "departmentField_jcr0069z": ["1123456"],
  "cascadeSelectField_jcr006a0": [
    "part",
    "part_b"
  ],
  "tableField_jcr006a1": "子表单数据"
}
```

### 5.3 流程实例详情对象格式说明

| 字段                | 描述          | 示例                                                                                                                                                                         | 备注                              |
| ----------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------- |
| actioners         | 流程实例当前任务执行人 | \[<br />\{<br />"name": \{<br />"en\_US": "user\_en\_name",<br />"zh\_CN": "user\_zh\_name",<br />"type": "i18n"<br />},<br />"userId": "workno"<br />}<br />]<br /><br /> | 如果流程已完成，没有执行人时，该字段为空            |
| processInstanceId | 实例ID        | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530                                                                                                                                       | 唯一                              |
| formUuid          | 流程表单ID      | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3                                                                                                                              | <br />                          |
| processCode       | 流程Code      | TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4                                                                                                                            | <br />                          |
| title             | 实例标题        | xxxx 发起的流程                                                                                                                                                                 | 根据你的语言环境，返回对应的标题                |
| instanceStatus    | 实例状态        | RUNNING                                                                                                                                                                    | <br />                          |
| approvedResult    | 流程结束时的审批结论  | agree                                                                                                                                                                      | agree -> 通过<br />disagree -> 拒绝 |
| originator        | 发起人信息       | \[ \{ "name": \{ "en\_US": "user\_en\_name", "zh\_CN": "user\_zh\_name", "type": "i18n" }, "userId": "workno" } ]                                                          | <br />                          |
| data              | 表单数据        | <br />                                                                                                                                                                     | 参加附录4- 作为返回值的表单数据的格式说明          |

* 完整的数据格式 demo

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "data": {
      "actioners": [
        {
          "name": {
            "pureEn_US": "xxx",
            "en_US": "xxx",
            "zh_CN": "xxx",
            "type": "i18n"
          },
          "userId": "xxx"
        }
      ],
      "processInstanceId": "f30233fb-72e1-4af4-8cb8-c7e0ea9ee530",
      "formUuid": "FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3",
      "data": {
        "numberField_jcr0069o": 1,
        "multiSelectField_jcr0069s": [
          "选项三",
          "选项二"
        ],
        "textareaField_jcr0069n": "duohang",
        "employeeField_jcr0069x": [
          "xxxx"
        ],
        "departmentField_jcr0069z": "信息xxx平台",
        "cascadeDate_jcr0069u": [
          "1514736000000",
          "1517328000000"
        ],
        "cascadeSelectField_jcr006a0": [
          "part",
          "part_b"
        ],
        "tableField_jcr006a1": [
          {
            "departmentField_jcr006ad": "信息xxx",
            "cascadeDate_jcr006aa": [
              "1514736000000",
              "1517328000000"
            ],
            "selectField_jcr006a6": "选项三",
            "citySelectField_jcr006ac": [
              "天津",
              "天津市",
              "河东区"
            ],
            "radioField_jcr006a5": "选项二",
            "employeeField_jcr006ab": [
              "yyyyy",
              "xxxxxx"
            ],
            "dateField_jcr006a9": 1517328000000,
            "textField_jcr006a2": "子表单下单行",
            "textareaField_jcr006a3": "子表单下多行",
            "cascadeSelectField_jcr006ae": [
              "product",
              "product_a"
            ],
            "numberField_jcr006a4": 2,
            "checkboxField_jcr006a7": [
              "选项一",
              "选项三",
              "选项二"
            ],
            "multiSelectField_jcr006a8": [
              "选项一",
              "选项三",
              "选项二"
            ]
          }
        ],
        "selectField_jcr0069q": "选项一",
        "citySelectField_jcr0069y": [
          "北京",
          "北京市",
          "东城区"
        ],
        "checkboxField_jcr0069r": [
          "选项三",
          "选项二"
        ],
        "textField_jcr0069m": "danhang",
        "radioField_jcr0069p": "选项一",
        "dateField_jcr0069t": 1516636800000
      },
      "processCode": "TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4",
      "originator": {
        "name": {
          "pureEn_US": "xxx",
          "en_US": "xxxx",
          "zh_CN": "xxx",
          "type": "i18n"
        },
        "userId": "xxxx"
      },
      "title": "xxx发起的流程",
      "instanceStatus": "RUNNING"
    },
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

### 5.4 作为返回值的表单数据的格式说明

作为返回值的表单数据格式和 “附录 1- 保存/更新 表单数据格式说明”基本一致。区别在于：

* 录入时，地区组件值为\["省份 ID ", "市 ID ", "区 ID "]。作为返回值时，是\["省名称","城市名称","地区名称"]。
* 单选，下拉单选，多选，下拉多选是有国际化的。返回值时，会根据传的 language 参数，返回对应的数据值。

### 5.5 表单实例详情对象格式说明

| 字段          | 描述     | 示例                                                                                                       | 备注                     |
| ----------- | ------ | -------------------------------------------------------------------------------------------------------- | ---------------------- |
| gmtModified | 最后修改时间 | 2018-01-24 11:22:01                                                                                      | <br />                 |
| formUuid    | 表单ID   | FORM-EF6Y93URN24F1SCX15VA2P918LPEIJ2H3UFORCJ1                                                            | <br />                 |
| formInstId  | 实例ID   | FINST-EF6Y93URN2F02S745LTMW2D2G4WVDS16O17ISCJ0                                                           | <br />                 |
| originator  | 发起人详情  | \[\{"name": \{"en\_US": "user\_en\_name","zh\_CN": "user\_zh\_name","type": "i18n"},"userId": "workno"}] | <br />                 |
| formData    | 表单数据详情 | <br />                                                                                                   | 参加附录4- 作为返回值的表单数据的格式说明 |

完整的 demo 如下

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result": {
    "gmtModified": "2018-01-24 11:22:01",
    "formUuid": "FORM-EF6Y93URN24F1SCX15VA2P918LPEIJ2H3UFORCJ1",
    "formInstId": "FINST-EF6Y93URN2F02S745LTMW2D2G4WVDS16O17ISCJ0",
    "formData": {
      "numberField_jcr0069o": 1,
      "multiSelectField_jcr0069s": [
        "选项三",
        "选项二"
      ],
      "textareaField_jcr0069n": "duohang",
      "employeeField_jcr0069x": [
        "xxxx"
      ],
      "departmentField_jcr0069z": "xxxx",
      "cascadeDate_jcr0069u": [
        "1514736000000",
        "1517328000000"
      ],
      "cascadeSelectField_jcr006a0": [
        "part",
        "part_b"
      ],
      "tableField_jcr006a1": [
        {
          "departmentField_jcr006ad": "xxxx",
          "cascadeDate_jcr006aa": [
            "1514736000000",
            "1517328000000"
          ],
          "selectField_jcr006a6": "选项三",
          "citySelectField_jcr006ac": [
            "天津",
            "天津市",
            "河东区"
          ],
          "radioField_jcr006a5": "选项二",
          "employeeField_jcr006ab": [
            "xxxxxx",
            "yyyyyy"
          ],
          "dateField_jcr006a9": 1517328000000,
          "textField_jcr006a2": "子表单下单行",
          "textareaField_jcr006a3": "子表单下多行",
          "cascadeSelectField_jcr006ae": [
            "product",
            "product_a"
          ],
          "numberField_jcr006a4": 2,
          "checkboxField_jcr006a7": [
            "选项一",
            "选项三",
            "选项二"
          ],
          "multiSelectField_jcr006a8": [
            "选项一",
            "选项三",
            "选项二"
          ]
        }
      ],
      "selectField_jcr0069q": "选项一",
      "citySelectField_jcr0069y": [
        "北京",
        "北京市",
        "东城区"
      ],
      "checkboxField_jcr0069r": [
        "选项三",
        "选项二"
      ],
      "textField_jcr0069m": "danhang",
      "radioField_jcr0069p": "选项一",
      "dateField_jcr0069t": 1516636800000
    },
    "originator": {
      "name": {
        "pureEn_US": "userEnglishName",
        "en_US": "userEnglishName",
        "zh_CN": "userName",
        "type": "i18n"
      },
      "userId": "xxxx"
    }
  },
  "success": true
}
```
