> ## 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.

# クロスアプリデータソース API

> YiDA に標準搭載されたクロスアプリデータソース API のリクエスト URL、パラメータ、レスポンス構造を解説します。フォームやワークフローのデータへアプリを跨いでアクセスし、アプリ間のデータ連携を実現する方法を紹介します。

YiDA は、HTTP ベースの非同期インターフェースを呼び出すためのリモート API 機能を提供しています（詳細は[リモート API ドキュメント](/ja/open/yida/guide/concept/datasource)を参照してください）。加えて YiDA プラットフォームでは、YiDA データを操作するための標準搭載リモート API を複数用意しています。

<Warning>
  YiDA Open API は認証を必要とするため、サイレントログインページから直接呼び出すことはできません。これらの呼び出しは、FaaS 関数または自社構築のバックエンドサービスを経由させてください。
</Warning>

## API 使用上の注意

### リクエストパス

YiDA はアプリ単位で API を提供しています。アプリ内では、次の URL 形式でリモート API を呼び出します（クロスアプリ呼び出しにも対応しています）。

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
# アプリコードは、App Settings の Deployment & Operations ページで確認できます。
# インターフェースパスは以下のドキュメントを参照してください。API ごとに異なるパスを使用します。
"/dingtalk/web/${appCode}/${interfacePath}"
```

<Tip>
  YiDA プラットフォーム上で API リクエストのコードを記述する際は、以下のように相対パスを使用してください。組織のサブドメインが変更されてもコードを更新する必要がなくなります。

  ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
  /dingtalk/web/APP_X1X2X3X4/v1/form/searchFormDatas.json
  ```
</Tip>

### レスポンス構造

YiDA リモート API が返すレスポンス構造は次のとおりです。

```typescript theme={"theme":{"light":"github-light","dark":"github-dark"}}
interface IResponse {
  success: boolean; // リクエストが成功したかどうか
  result?: object | array | string; // リクエスト成功時のレスポンス内容
  errorMsg?: string; // エラーメッセージ
  errorCode?: string; // エラーコード
  errorLevel?: number; // エラーレベル
}
```

## フォーム API

YiDA プラットフォームは、フォームデータを収集するためのフォーム型ページを提供しています。フォーム API を利用すると、フォームデータの作成、参照、更新、削除が可能です。ここでいう「フォームインスタンス」とは、フォームのデータセット内の 1 件のレコードを指します。

### フォームインスタンスの作成

* インターフェースパス：`/v1/form/saveFormData.json`
* リクエストメソッド：`POST`
* パラメータ：（`formDataJson` は `JSON.stringify()` でシリアライズする必要があります。）

| パラメータ        | 説明      | 必須 | 例                                                                      | 備考                                                     |
| :----------- | :------ | :- | :--------------------------------------------------------------------- | :----------------------------------------------------- |
| formUuid     | フォーム ID | はい | FORM-NJYJZELV8YZRDEI2N5IQ7L6VEDMR1VE9GMPCJB                            |                                                        |
| appType      | アプリ ID  | はい | APP\_DR4OK27ZKL5N22B907E8                                              |                                                        |
| formDataJson | フォームデータ | はい | `{"textField_jcpm6agt": "1行入力", "employeeField_jcos0sar": ["workno"]}` | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)を参照してください。 |

* レスポンス例：

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

### フォーム内コンポーネント値の更新

* インターフェース：`/v1/form/updateFormData.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ              | 説明                      | 必須  | 例                                                | 備考                                                                                                                                                            |
| :----------------- | :---------------------- | :-- | :----------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| formInstId         | 更新対象のフォームレコード ID        | はい  | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9     |                                                                                                                                                               |
| updateFormDataJson | 更新するフォームコンポーネントの値（必須項目） | はい  | `{"employeeField_jcpm5gy2": ["xxxxx", "yyyyy"]}` | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)を参照してください。リクエストに含まれるコンポーネントのみ更新され、含まれないコンポーネントは変更されません。サブフォームの値は一括更新が必須で、サブフォーム内の 1 行内の単一コンポーネントを個別に更新することはできません。 |
| useLatestVersion   | 最新のフォームバージョンで更新する       | いいえ | y                                                | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)内の「重要な注意事項」を参照してください。                                                                                             |

* レスポンス例：

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

### フォームインスタンスの削除

* インターフェース：`/v1/form/deleteFormData.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ      | 説明               | 必須 | 例                                            | 備考 |
| :--------- | :--------------- | :- | :------------------------------------------- | :- |
| formInstId | 削除対象のフォームレコード ID | はい | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 |    |

* レスポンス例：

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

### インスタンス ID によるフォームインスタンス詳細の取得

* インターフェース：`/v1/form/getFormDataById.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ      | 説明               | 必須 | 例                                            | 備考 |
| :--------- | :--------------- | :- | :------------------------------------------- | :- |
| formInstId | 取得対象のフォームレコード ID | はい | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 |    |

* レスポンス例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success": "リクエストが成功したかどうか",
  "errorMsg": "エラーメッセージ",
  "errorCode": "エラーコード",
  "result": "フォームインスタンスの詳細 👇🏻👇🏻👇🏻"
}
```

`result` については、[付録 5：フォームインスタンス詳細オブジェクトの形式](#フォームインスタンス詳細オブジェクトの形式)を参照してください。

### 条件によるフォームインスタンス ID の検索

* インターフェース：`/v1/form/searchFormDataIds.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ           | 説明                                                        | 必須  | 例                                             | 備考                                                                                       |
| :-------------- | :-------------------------------------------------------- | :-- | :-------------------------------------------- | :--------------------------------------------------------------------------------------- |
| formUuid        | フォーム ID                                                   | はい  | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 |                                                                                          |
| searchFieldJson | フォーム内のコンポーネント値による検索                                       | いいえ |                                               | 形式は [付録 2：条件検索用コンポーネント値の形式](#条件検索時のコンポーネント値の形式)を参照してください。                                |
| currentPage     | 現在のページ                                                    | いいえ | 1                                             | 0 より大きい値を指定してください。デフォルト：1。                                                               |
| pageSize        | 1 ページあたりのレコード件数                                           | いいえ | 10                                            | 0 より大きく 100 以下の値を指定してください。デフォルト：10。                                                      |
| originatorId    | 提出者の社員番号による検索                                             | いいえ |                                               |                                                                                          |
| createFrom      | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。                                                                       |
| createTo        | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。createFrom と組み合わせると、2018-01-01 から 2018-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（両端を含む）に更新されたレコードを検索します。 |
| dynamicOrder    | ソート                                                       | いいえ | column: '+'                                   | column: '+'                                                                              |

* レスポンス例：

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

### 条件によるフォームインスタンス詳細の検索

* インターフェース：`/v1/form/searchFormDatas.json`
* リクエストメソッド：`GET`
* 権限制御：この API はページレベルの権限設定に従います（管理者を除く）。
* パラメータ：

| パラメータ           | 説明                                                        | 必須  | 例                                             | 備考                                                                                                                            |
| :-------------- | :-------------------------------------------------------- | :-- | :-------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- |
| formUuid        | フォーム ID                                                   | はい  | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 |                                                                                                                               |
| searchFieldJson | フォーム内のコンポーネント値による検索                                       | いいえ |                                               | 形式は [付録 2：条件検索用コンポーネント値の形式](#条件検索時のコンポーネント値の形式)を参照してください。                                                                     |
| currentPage     | 現在のページ                                                    | いいえ | 1                                             | 0 より大きい値を指定してください。デフォルト：1。                                                                                                    |
| pageSize        | 1 ページあたりのレコード件数                                           | いいえ | 10                                            | 0 より大きく 100 以下の値を指定してください。デフォルト：10。                                                                                           |
| originatorId    | 提出者の社員番号による検索                                             | いいえ |                                               |                                                                                                                               |
| createFrom      | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列（または秒単位まで指定した yyyy-MM-DD HH:mm:ss 形式）。                                                                       |
| createTo        | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列（または秒単位まで指定した yyyy-MM-DD HH:mm:ss 形式）。createFrom と組み合わせると、2018-01-01 から 2018-01-31（両端を含む）に作成されたレコードを検索します。   |
| modifiedFrom    | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列（または秒単位まで指定した yyyy-MM-DD HH:mm:ss 形式）。                                                                       |
| modifiedTo      | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-02-01                                    | yyyy-MM-DD 形式の文字列（または秒単位まで指定した yyyy-MM-DD HH:mm:ss 形式）。modifiedFrom と組み合わせると、2018-01-01 から 2018-01-31（両端を含む）に更新されたレコードを検索します。 |
| dynamicOrder    | ソート                                                       | いいえ | `{"numberField_1ac":"+"}`                     | numberField\_1ac フィールドで昇順にレコードをソートします。                                                                                        |

* レスポンス例：

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

### フォーム定義の取得

> この API は 2024年12月1日 にアップグレードされます。アップグレード後は管理者のみが利用可能となり、一般ユーザーは利用できなくなります。

* インターフェース：`/v1/form/getFormComponentDefinationList.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ                   | 説明        | 必須  | 例                                            | 備考                              |
| :---------------------- | :-------- | :-- | :------------------------------------------- | :------------------------------ |
| formUuid                | フォーム ID   | はい  | FORM-NJYJZELV8YZRDEI2N5IQ7L6VEDMR1VE9GMPCJB  |                                 |
| version                 | フォームバージョン | いいえ | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 | formData 内の version フィールドを渡せます。 |
| 未指定の場合、最新バージョンの定義を返します。 |           |     |                                              |                                 |

* レスポンス例：

```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"
        }
    ]
}
```

### サブフォームデータの取得

* インターフェース：`v1/form/listTableDataByFormInstIdAndTableId.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ          | 説明                    | 必須  | 例                                            | 備考                                 |
| :------------- | :-------------------- | :-- | :------------------------------------------- | :--------------------------------- |
| formUuid       | フォーム ID               | はい  | FORM-NJYJZELV8YZRDEI2N5IQ7L6VEDMR1VE9GMPCJB  |                                    |
| formInstanceId | 照会対象のインスタンス ID        | はい  | FINST-NJYJZELVVYZRVGJHR7M6FJW3ESJN1P1TCNPCJ9 |                                    |
| tableFieldId   | 対象サブフォームコンポーネントの一意識別子 | はい  | tableField\_ksyaujq1                         |                                    |
| currentPage    | 現在のページ                | いいえ | 10                                           | 0 より大きい値を指定してください。デフォルト：1。         |
| pageSize       | 1 ページあたりのレコード件数       | いいえ | 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
}
```

## ワークフロー API

ワークフローフォームは YiDA プラットフォームのもう 1 つのコア機能です。ワークフロー API を利用すると、ワークフローインスタンスを操作できます。

### ワークフローの開始

* インターフェースパス：`/v1/process/startInstance.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ        | 説明              | 必須  | 例                                                                     | 備考                                                     |
| :----------- | :-------------- | :-- | :-------------------------------------------------------------------- | :----------------------------------------------------- |
| processCode  | ワークフローコード       | はい  | TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4（独立開始ページの URL で確認できます） |                                                        |
| formUuid     | フォーム ID         | はい  | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3（独立開始ページの URL で確認できます）   |                                                        |
| formDataJson | フォームデータ         | はい  |                                                                       | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)を参照してください。 |
| deptId       | ワークフロー発起者の部門 ID | いいえ | 18295                                                                 | 未指定の場合、発起者の主部門がデフォルトとなります。                             |

* レスポンス例：

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

### 条件によるワークフローインスタンス ID の検索

* インターフェースパス：`/v1/process/getInstanceIds.json`
* リクエストメソッド：`GET`
* 権限：ワークフローに「インスタンス閲覧可」権限が設定されている必要があります（管理者を除く）。
* パラメータ：

| パラメータ           | 説明                                                        | 必須  | 例                                             | 備考                                                                                       |
| :-------------- | :-------------------------------------------------------- | :-- | :-------------------------------------------- | :--------------------------------------------------------------------------------------- |
| formUuid        | フォーム ID                                                   | はい  | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 |                                                                                          |
| searchFieldJson | フォーム内のコンポーネント値による検索                                       | いいえ |                                               | 形式は [付録 2：条件検索用コンポーネント値の形式](#条件検索時のコンポーネント値の形式)を参照してください。                                |
| taskId          | タスクID                                                     | いいえ | 2199132092                                    | 使用頻度は低いです。                                                                               |
| instanceStatus  | インスタンスの状態                                                 | いいえ | RUNNING                                       | 列挙値：RUNNING、TERMINATED、COMPLETED、ERROR。それぞれ実行中、終了、完了、エラーを表します。                           |
| approvedResult  | ワークフロー承認結果                                                | いいえ | agree                                         | 列挙値：agree、disagree。それぞれ承認、辞退を表します。                                                       |
| currentPage     | 現在のページ                                                    | いいえ | 1                                             | 0 より大きい値を指定してください。デフォルト：1。                                                               |
| pageSize        | 1 ページあたりのレコード件数                                           | いいえ | 10                                            | 0 より大きく 100 以下の値を指定してください。デフォルト：10。                                                      |
| originatorId    | ワークフロー発起者の社員番号による検索                                       | いいえ |                                               |                                                                                          |
| createFrom      | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。                                                                       |
| createTo        | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。createFrom と組み合わせると、2018-01-01 から 2018-01-31（両端を含む）に作成されたレコードを検索します。   |
| modifiedFrom    | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。                                                                       |
| modifiedTo      | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。modifiedFrom と組み合わせると、2018-01-01 から 2018-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
}
```

### 条件によるワークフローインスタンス詳細の取得

* インターフェースパス：`/v1/process/getInstances.json`
* リクエストメソッド：`GET`
* 権限：ワークフローに「インスタンス閲覧可」権限が設定されている必要があります（管理者を除く）。
* パラメータ：

| パラメータ                   | 説明                                                        | 必須  | 例                                             | 備考                                                                                       |
| :---------------------- | :-------------------------------------------------------- | :-- | :-------------------------------------------- | :--------------------------------------------------------------------------------------- |
| formUuid                | フォーム ID                                                   | はい  | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3 |                                                                                          |
| searchFieldJson         | フォーム内のコンポーネント値による検索                                       | いいえ |                                               | 形式は [付録 2：条件検索用コンポーネント値の形式](#条件検索時のコンポーネント値の形式)を参照してください。                                |
| taskId                  | タスクID                                                     | いいえ | 2199132092                                    | 使用頻度は低いです。                                                                               |
| instanceStatus          | インスタンスの状態                                                 | いいえ | RUNNING                                       | 列挙値：RUNNING、TERMINATED、COMPLETED、ERROR。                                                  |
| それぞれ実行中、終了、完了、エラーを表します。 |                                                           |     |                                               |                                                                                          |
| approvedResult          | ワークフロー承認結果                                                | いいえ | agree                                         | 列挙値：agree、disagree。それぞれ承認、辞退を表します。                                                       |
| currentPage             | 現在のページ                                                    | いいえ | 1                                             | 0 より大きい値を指定してください。デフォルト：1。                                                               |
| pageSize                | 1 ページあたりのレコード件数                                           | いいえ | 10                                            | 0 より大きく 100 以下の値を指定してください。デフォルト：10。                                                      |
| originatorId            | ワークフロー発起者の社員番号による検索                                       | いいえ |                                               |                                                                                          |
| createFrom              | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。                                                                       |
| createTo                | createFrom と createTo で期間を指定します。指定期間内に作成されたレコードを返します。     | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。createFrom と組み合わせると、2018-01-01 から 2018-01-31（両端を含む）に作成されたレコードを検索します。   |
| modifiedFrom            | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。                                                                       |
| modifiedTo              | modifiedFrom と modifiedTo で期間を指定します。指定期間内に更新されたレコードを返します。 | いいえ | 2018-01-01                                    | yyyy-MM-DD 形式の文字列。modifiedFrom と組み合わせると、2018-01-01 から 2018-01-31（両端を含む）に更新されたレコードを検索します。 |

* レスポンス例：

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

### インスタンス ID によるワークフローインスタンス詳細の取得

* インターフェースパス：`/v1/process/getInstanceById.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ             | 説明              | 必須 | 例                                    | 備考 |
| :---------------- | :-------------- | :- | :----------------------------------- | :- |
| processInstanceId | ワークフローインスタンス ID | はい | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 |    |

* レスポンス例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success": true,
  "errorCode": "",
  "errorMsg": "",
  "result": "インスタンスの詳細。[付録 3：ワークフローインスタンス詳細オブジェクトの形式](#ワークフローインスタンス詳細オブジェクトの形式) を参照してください。"
}
```

### ワークフローインスタンスの削除

* インターフェースパス：`/v1/process/deleteInstance.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ             | 説明              | 必須 | 例                                    | 備考 |
| :---------------- | :-------------- | :- | :----------------------------------- | :- |
| processInstanceId | ワークフローインスタンス ID | はい | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 |    |

* レスポンス例：

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

### ワークフローインスタンスの終了

* インターフェースパス：`/v1/process/terminateInstance.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ             | 説明              | 必須 | 例                                    | 備考 |
| :---------------- | :-------------- | :- | :----------------------------------- | :- |
| processInstanceId | ワークフローインスタンス ID | はい | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 |    |

* レスポンス例：

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

### 単一タスクの実行

* インターフェースパス：`/v1/task/executeTask.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ                                                                                                   | 説明                     | 必須  | 例                                    | 備考                                                     |
| :------------------------------------------------------------------------------------------------------ | :--------------------- | :-- | :----------------------------------- | :----------------------------------------------------- |
| taskId                                                                                                  | タスクID                  | はい  | 12002575                             |                                                        |
| procInstId                                                                                              | インスタンス ID              | はい  | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 |                                                        |
| outResult                                                                                               | 承認結果                   | はい  | AGREE                                | AGREE（承認）、DISAGREE（辞退）。                                |
| remark                                                                                                  | 承認コメント                 | はい  | 確認して承認しました                           |                                                        |
| formDataJson                                                                                            | フォームデータ                | いいえ | 確認して承認しました                           | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)を参照してください。 |
| リクエストに含まれるコンポーネントのみ更新され、含まれないコンポーネントは変更されません。サブフォームの値は一括更新が必須で、サブフォーム内の 1 行内の単一コンポーネントを個別に更新することはできません。 |                        |     |                                      |                                                        |
| noExecuteExpressions                                                                                    | バリデーションおよび連動アクションをスキップ | いいえ | y                                    | このタスクノードにバリデーションルールや連動アクションが設定されている場合：                 |
| y → バリデーションルールと連動アクションをスキップ。n → バリデーションルールと連動アクションを実行。デフォルトは n で、バリデーションルールと連動アクションが実行されます。             |                        |     |                                      |                                                        |

* レスポンス例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "success": "リクエストが成功したかどうか",
  "errorCode": "エラーメッセージ",
  "errorMsg": "エラーコード"
}
```

### 承認記録の取得

* インターフェースパス：`/v1/process/getOperationRecords.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ             | 説明              | 必須 | 例                                    | 備考 |
| :---------------- | :-------------- | :- | :----------------------------------- | :- |
| processInstanceId | ワークフローインスタンス ID | はい | f30233fb-72e1-4af4-8cb8-c7e0ea9ee530 |    |

* レスポンス例：

```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": "YiDA ユーザー",
      "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": "YiDA ユーザー",
      "taskId": "null"
    },
    {
      "taskHoldTime": 531398377,
      "type": "TODO",
      "operatorName": "YiDA ユーザー",
      "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": "YiDA ユーザー",
      "taskId": "2846866145"
    }
  ]
}
```

### ワークフローインスタンスの更新

* インターフェースパス：`/v1/process/updateInstance.json`
* リクエストメソッド：`POST`
* パラメータ：

| パラメータ              | 説明          | 必須 | 例  | 備考                                                     |
| :----------------- | :---------- | :- | :- | :----------------------------------------------------- |
| processInstanceId  | インスタンス ID   | はい |    |                                                        |
| updateFormDataJson | 更新するフォームデータ | はい |    | [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式)を参照してください。 |

* レスポンス例：

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

## タスクセンター API

YiDA プラットフォームは、現在の組織内のすべてのアプリのタスクリストと状態を確認できるタスクセンターを提供しています。タスクセンター API を利用すると、タスクセンター内のタスクリストを取得できます。

### 送信済みタスク

* インターフェースパス：`/v1/process/getMySubmitInApp.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ       | 説明              | 必須  | 例  | 備考                                 |
| :---------- | :-------------- | :-- | :- | :--------------------------------- |
| pageSize    | 1 ページあたりのレコード件数 | はい  | 10 | 0 より大きい値を指定してください。デフォルト：10、最大：100。 |
| currentPage | 現在のページ          | はい  | 1  | 0 より大きい値を指定してください。デフォルト：1。         |
| keyword     | キーワード           | いいえ |    |                                    |

* レスポンス例：
  * 成功時

```json 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": "山田太郎"
            },
            "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
}
```

* 失敗時

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "権限がありません"
}
```

### タスク

* インターフェースパス：`/v1/task/getTodoTasksInApp.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ       | 説明              | 必須  | 例  | 備考                                 |
| :---------- | :-------------- | :-- | :- | :--------------------------------- |
| pageSize    | 1 ページあたりのレコード件数 | はい  | 10 | 0 より大きい値を指定してください。デフォルト：10、最大：100。 |
| currentPage | 現在のページ          | はい  | 1  | 0 より大きい値を指定してください。デフォルト：1。         |
| keyword     | キーワード           | いいえ |    |                                    |

* レスポンス例：
  * 成功時

```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": "Workflow started by 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
}
```

* 失敗時

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "権限がありません"
}
```

### 完了済みタスク

* インターフェースパス：`/v1/task/getDoneTasksInApp.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ       | 説明              | 必須  | 例  | 備考                                 |
| :---------- | :-------------- | :-- | :- | :--------------------------------- |
| pageSize    | 1 ページあたりのレコード件数 | はい  | 10 | 0 より大きい値を指定してください。デフォルト：10、最大：100。 |
| currentPage | 現在のページ          | はい  | 1  | 0 より大きい値を指定してください。デフォルト：1。         |
| keyword     | キーワード           | いいえ |    |                                    |

* レスポンス例：
  * 成功時

```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": "Workflow page started by XXX",
        "createTime": "2018-03-28 17:45:43",
        "appType": "XXXXXX",
        "originatorNameEn": "XXXXXX",
        "originatorId": "XXXXXX",
        "taskId": "XXXXXX",
        "status": "COMPLETED"
      }
    ],
    "totalCount": 1,
    "currentPage": 1
  },
  "success": true
}
```

* 失敗時

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "権限がありません"
}
```

### 自分宛の CC タスク（アプリスコープ）

* インターフェースパス：`/v1/task/getNotifyMeTasksInApp.json`
* リクエストメソッド：`GET`
* パラメータ：

| パラメータ          | 説明              | 必須  | 例              | 備考                                 |
| :------------- | :-------------- | :-- | :------------- | :--------------------------------- |
| pageSize       | 1 ページあたりのレコード件数 | はい  | 10             | 0 より大きい値を指定してください。デフォルト：10、最大：100。 |
| currentPage    | 現在のページ          | はい  | 1              | 0 より大きい値を指定してください。デフォルト：1。         |
| keyword        | キーワード           | いいえ |                |                                    |
| processCodes   | processCodes    | いいえ | \["xx", "xxx"] |                                    |
| instanceStatus | インスタンスの状態       | いいえ |                | 列挙値。                               |

* レスポンス例：
  * 成功時

```json 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": "山田太郎"
            },
            "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
}
```

* 失敗時

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errorCode": "TIANSHU_000006",
  "success": false,
  "errorMsg": "権限がありません"
}
```

## 付録

### 保存 / 更新時のフォームデータ形式

* フォーム内の各コンポーネントは一意の ID を持ち（ページデザイナーでコンポーネントの右側にある「高度な使い方」パネルで確認できます）、コンポーネントごとに固定のデータ形式を使用します。対応するフォームコンポーネントは次のとおりです：1 行入力、複数行入力、数値、ラジオボタン、ドロップダウン選択、複数選択、ドロップダウン複数選択、日付、日付範囲、ユーザー選択、地域選択、部門選択、カスケード選択、サブフォーム。
* フォームデータを保存または更新する際は、フォーム値を `Map<String, Object>` 形式の JSON 文字列として渡します。キーがコンポーネント ID、値がコンポーネントの値となります。各コンポーネントの値の形式は以下のとおりです。

| コンポーネントの種類  | データ型      | データ形式                                                                                                                      | 備考                                                                                               |
| :---------- | :-------- | :------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------- |
| 1 行入力       | 文字列       | "danhang"                                                                                                                  |                                                                                                  |
| 複数行入力       | 文字列       | "duohang"                                                                                                                  |                                                                                                  |
| 数値入力        | 数値        | 1                                                                                                                          |                                                                                                  |
| ラジオボタン      | 文字列       | "選択肢 1"                                                                                                                    |                                                                                                  |
| ドロップダウン選択   | 文字列       | "選択肢 1"                                                                                                                    |                                                                                                  |
| 複数選択        | 文字列配列     | \["選択肢 1", "選択肢 2"]                                                                                                        |                                                                                                  |
| ドロップダウン複数選択 | 文字列配列     | \["選択肢 1", "選択肢 2"]                                                                                                        |                                                                                                  |
| 日付コンポーネント   | タイムスタンプ   | 日付コンポーネント                                                                                                                  |                                                                                                  |
| 日付範囲        | 文字列配列     | \["1514736000000", "1517328000000"]。終了時刻のみ指定する場合は \["", "1517328000000"] とします。                                             | 1 つ目の値が開始時刻のタイムスタンプ文字列、2 つ目の値が終了時刻のタイムスタンプ文字列です。                                                 |
| ユーザー選択      | 文字列配列     | \["xxxxx", "yyyyy"]                                                                                                        |                                                                                                  |
| 都市選択        | 文字列配列     | \["110000", "110100", "110101"]                                                                                            | 1 つ目は省 ID、2 つ目は市 ID、3 つ目は区 ID である必要があります。                                                        |
| 部門選択        | 文字列配列     | \["1123456"]                                                                                                               | \["xxx"] には部門 ID を含めます。                                                                          |
| カスケード選択     | 文字列配列     | \["part", "part\_b"]                                                                                                       | カスケードの順序に従って値を配列に格納する必要があります。                                                                    |
| 画像アップロード    | 文字列配列     | `[{"downloadUrl":"ファイルのダウンロード URL", "name": "添付名称"}]`                                                                      |                                                                                                  |
| 添付          | 文字列配列     | `[{"downloadUrl":"ファイルのダウンロード URL", "name": "添付名称"}]`                                                                      |                                                                                                  |
| ハイパーリンク     | 文字列配列     | `[{"link":"http://www.yidaapps.com", "text":"YiDA"}]`                                                                      |                                                                                                  |
| サブフォーム      | JSONARRAY | `[{"textField_jcr0069m": "danhang1"}, {"textField_jcr0069m": "danhang2"}]`（textField\_jcr0069m はサブフォーム内の 1 行入力コンポーネントの ID） | サブフォームは複数のレコードを持つため JSONARRAY を使用します。各レコードには多数のコンポーネント値が含まれるため、それぞれの値を格納するために JSONObject を使用します。 |
| 電子署名        | 文字列       | "画像 URL"                                                                                                                   |                                                                                                  |

* 完全なフォームデータ例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "textField_jcr0069m": "danhang",
  "textareaField_jcr0069n": "duohang",
  "numberField_jcr0069o": 1,
  "radioField_jcr0069p": "選択肢 1",
  "selectField_jcr0069q": "選択肢 1",
  "checkboxField_jcr0069r": [
    "選択肢 2",
    "選択肢 3"
  ],
  "multiSelectField_jcr0069s": [
    "選択肢 2",
    "選択肢 3"
  ],
  "dateField_jcr0069t": 1516636800000,
  "cascadeDate_jcr0069u": [
    "1514736000000",
    "1517328000000"
  ],
  "employeeField_jcr0069x": [
    "xxxxx"
  ],
  "citySelectField_jcr0069y": [
    "110000",
    "110100",
    "110101"
  ],
  "departmentField_jcr0069z": 1123456,
  "cascadeSelectField_jcr006a0": [
    "part",
    "part_b"
  ],
  "imageField_l096bb9l": [
    {
      "name": "Crayon-Shin-chan.jpg",
      "previewUrl": "https://img.alicdn.com/imgextra/i4/O1CN01DD8OQA1Lnay0fZRs3_!!6000000001344-0-tps-640-452.jpg",
      "downloadUrl": "https://img.alicdn.com/imgextra/i4/O1CN01DD8OQA1Lnay0fZRs3_!!6000000001344-0-tps-640-452.jpg",
      "size": 19039,
      "url": "https://img.alicdn.com/imgextra/i4/O1CN01DD8OQA1Lnay0fZRs3_!!6000000001344-0-tps-640-452.jpg"
    }
  ],  
  "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": [
        "選択肢 1",
        "選択肢 2",
        "選択肢 3"
      ],
      "citySelectField_jcr006ac": [
        "120000",
        "120100",
        "120102"
      ],
      "dateField_jcr006a9": 1517328000000,
      "departmentField_jcr006ad": ["1123456"],
      "employeeField_jcr006ab": [
        "yyyyy",
        "xxxxx"
      ],
      "multiSelectField_jcr006a8": [
        "選択肢 1",
        "選択肢 2",
        "選択肢 3"
      ],
      "numberField_jcr006a4": 2,
      "radioField_jcr006a5": "選択肢 2",
      "selectField_jcr006a6": "選択肢 3",
      "textField_jcr006a2": "サブフォーム 1 行",
      "textareaField_jcr006a3": "サブフォーム 複数行"
    }
  ],
	"digitalSignatureField_kt3nh972": "https://tianshu-vpc.oss-cn-shanghai.aliyuncs.com/5e03f863-dd39-4f62-ba9b-497af2c9ad9f.png"
}
```

### 条件検索時のコンポーネント値の形式

* フォーム内の各コンポーネントは一意の ID を持ち（ページデザイナーでコンポーネントの右側にある「高度な使い方」パネルで確認できます）、コンポーネントごとに独自の検索形式があります。検索を利用できるフォームコンポーネントは次のとおりです：1 行入力、複数行入力、数値、ラジオボタン、ドロップダウン選択、複数選択、ドロップダウン複数選択、日付、日付範囲、ユーザー選択、地域選択、部門選択、カスケード選択、サブフォーム。
* 検索を行う際は、各コンポーネントの検索条件を `Map<String, Object>` 形式で指定します。キーがコンポーネント ID、値がそのコンポーネントの検索値です。各コンポーネントの検索タイプと値の形式は以下のとおりです。

| コンポーネントの種類    | データ型  | データ形式                                                                       | 備考                                                                                                                      |
| :------------ | :---- | :-------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------- |
| 1 行入力         | 文字列   | "danhang"                                                                   | あいまい検索。                                                                                                                 |
| 複数行入力         | 文字列   | "duohang"                                                                   | あいまい検索。                                                                                                                 |
| 数値入力          | 文字列配列 | \["1", "10"]                                                                | 範囲検索。1 つ目が最小値、2 つ目が最大値です。                                                                                               |
| ラジオボタン        | 文字列   | "選択肢 1"                                                                     | 完全一致。                                                                                                                   |
| ドロップダウン選択     | 文字列   | "選択肢 1"                                                                     |                                                                                                                         |
| 複数選択          | 文字列配列 | \["選択肢 2"]                                                                  | 配列検索。検索値は複数選択値の部分集合である必要があります。                                                                                          |
| ドロップダウン複数選択   | 文字列配列 | \["選択肢 2"]                                                                  | 配列検索。検索値は複数選択値の部分集合である必要があります。                                                                                          |
| 日付コンポーネント     | 文字列配列 | \["1514736000000", "1517414399000"]                                         | 範囲検索。1 つ目が開始日時のタイムスタンプ、2 つ目が終了日時のタイムスタンプです。                                                                             |
| 日付範囲          | 配列    | \[\["1514736000000", "1517414399000"], \["1514736000000", "1517414399000"]] | 範囲検索。1 つ目の配列が日付範囲の開始側の検索範囲、2 つ目の配列が終了側の検索範囲です。                                                                          |
| ユーザー選択        | 文字列配列 | \["xxxxx", "yyyyy"]                                                         | \["xxxxx", "yyyyyy"] — 完全一致。値と社員番号の順序が完全に一致している必要があります。                                                                 |
| 都市選択          | 文字列配列 | \["110000", "110100", "110101"]                                             | \["110000", "110100", "110101"] — 配列検索。検索値は都市値の部分集合である必要があります。市 ID を含める場合は省 ID も、区 ID を含める場合は省 ID と市 ID の両方を含める必要があります。 |
| 部門選択          | 数値    | 1123456                                                                     | 完全一致。                                                                                                                   |
| カスケード選択       | 文字列配列 | \["part", "part\_b"]                                                        | 配列検索。都市選択と同じ制約があります。                                                                                                    |
| サブフォームコンポーネント | 文字列   | "danhang"                                                                   | あいまい検索。サブフォーム値は大きなテキストフィールドとして扱われるため、あいまい検索が使用されます。                                                                     |

* 完全な例：

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "textField_jcr0069m": "danhang",
  "textareaField_jcr0069n": "duohang",
  "numberField_jcr0069o": ["1", "10"],
  "radioField_jcr0069p": "選択肢 1",
  "selectField_jcr0069q": "選択肢 1",
  "checkboxField_jcr0069r": ["選択肢 2"],
  "multiSelectField_jcr0069s": ["選択肢 2", "選択肢 3"],
  "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": "サブフォームデータ"
}
```

### ワークフローインスタンス詳細オブジェクトの形式

* フォーム内の各コンポーネントは一意の ID を持ち（ページデザイナーでコンポーネントの右側にある「高度な使い方」パネルで確認できます）、コンポーネントごとに独自の検索形式があります。検索を利用できるフォームコンポーネントは次のとおりです：1 行入力、複数行入力、数値、ラジオボタン、ドロップダウン選択、複数選択、ドロップダウン複数選択、日付、日付範囲、ユーザー選択、地域選択、部門選択、カスケード選択、サブフォーム。
* 検索を行う際は、各コンポーネントの検索条件を `Map<String, Object>` 形式で指定します。キーがコンポーネント ID、値がそのコンポーネントの検索値です。各コンポーネントの検索タイプと値の形式は以下のとおりです。

| フィールド             | 説明                     | 例                                                                          | 備考                                                         |
| :---------------- | :--------------------- | :------------------------------------------------------------------------- | :--------------------------------------------------------- |
| actioners         | ワークフローインスタンスの現在のタスク担当者 | `[{"userId": "workno", "name":{"zh_CN": "user_zh_name", "type": "i18n"}}]` | ワークフローが完了しており担当者が存在しない場合、このフィールドは空になります。                   |
| processInstanceId | インスタンス ID              | "f30233fb-72e1-4af4-8cb8-c7e0ea9ee530"                                     | 一意です。                                                      |
| formUuid          | ワークフローフォーム ID          | FORM-EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ3                              |                                                            |
| processCode       | ワークフローコード              | TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4                            |                                                            |
| title             | インスタンスタイトル             | xxxx が開始したワークフロー                                                           | タイトルはロケールの言語で返されます。                                        |
| instanceStatus    | インスタンスの状態              | RUNNING                                                                    |                                                            |
| approvedResult    | ワークフロー終了時の承認結果         | agree                                                                      | agree → 承認済み、disagree → 辞退。                                |
| originator        | 文字列配列                  | `[{"name":{"zh_CN": "user_zh_name", "type": "i18n"}, "userId": "workno"}]` |                                                            |
| data              | フォームデータ                |                                                                            | [付録 4：レスポンス値としてのフォームデータ形式](#レスポンス値としてのフォームデータ形式)を参照してください。 |

* 完全なデータ形式のデモ：

```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": ["選択肢 3", "選択肢 2"],
        "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": "選択肢 3",
            "citySelectField_jcr006ac": ["天津市", "天津市", "河東区"],
            "radioField_jcr006a5": "選択肢 2",
            "employeeField_jcr006ab": ["yyyyy", "xxxxxx"],
            "dateField_jcr006a9": 1517328000000,
            "textField_jcr006a2": "サブフォーム 1 行",
            "textareaField_jcr006a3": "サブフォーム 複数行",
            "cascadeSelectField_jcr006ae": ["product", "product_a"],
            "numberField_jcr006a4": 2,
            "checkboxField_jcr006a7": ["選択肢 1", "選択肢 3", "選択肢 2"],
            "multiSelectField_jcr006a8": ["選択肢 1", "選択肢 3", "選択肢 2"]
          }
        ],
        "selectField_jcr0069q": "選択肢 1",
        "citySelectField_jcr0069y": ["北京市", "北京市", "東城区"],
        "checkboxField_jcr0069r": ["選択肢 3", "選択肢 2"],
        "textField_jcr0069m": "danhang",
        "radioField_jcr0069p": "選択肢 1",
        "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
}
```

### レスポンス値としてのフォームデータ形式

レスポンス値のフォームデータ形式は、基本的に [付録 1：保存 / 更新時のフォームデータ形式](#保存-更新時のフォームデータ形式) と同じですが、以下の違いがあります。

* 入力時、地域コンポーネントの値は \["省 ID", "市 ID", "区 ID"] です。レスポンスでは \["省名", "市名", "区名"] となります。
* ラジオボタン、ドロップダウン選択、複数選択、ドロップダウン複数選択の各コンポーネントは国際化に対応しています。レスポンスには、渡した言語パラメータに対応するデータ値が返されます。

### フォームインスタンス詳細オブジェクトの形式

| フィールド       | 説明         | 例                                                                          | 備考                                                         |
| :---------- | :--------- | :------------------------------------------------------------------------- | :--------------------------------------------------------- |
| gmtModified | 最後更新時間     | 2018-01-24 11:22:01                                                        |                                                            |
| formUuid    | フォーム ID    | FORM-EF6Y93URN24F1SCX15VA2P918LPEIJ2H3UFORCJ1                              |                                                            |
| originator  | 発起者の詳細情報   | `[{"name":{"zh_CN": "user_zh_name", "type": "i18n"}, "userId": "workno"}]` |                                                            |
| formData    | フォームデータの詳細 | TPROC--EF6Y4G8WO2FN0SUB43TDQ3CGC3FMFQ1G9400RCJ4                            | [付録 4：レスポンス値としてのフォームデータ形式](#レスポンス値としてのフォームデータ形式)を参照してください。 |

* 完全なデータ形式のデモ：

```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": ["選択肢 3", "選択肢 2"],
      "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": "選択肢 3",
          "citySelectField_jcr006ac": ["天津市", "天津市", "河東区"],
          "radioField_jcr006a5": "選択肢 2",
          "employeeField_jcr006ab": ["xxxxxx", "yyyyyy"],
          "dateField_jcr006a9": 1517328000000,
          "textField_jcr006a2": "サブフォーム 1 行",
          "textareaField_jcr006a3": "サブフォーム 複数行",
          "cascadeSelectField_jcr006ae": ["product", "product_a"],
          "numberField_jcr006a4": 2,
          "checkboxField_jcr006a7": ["選択肢 1", "選択肢 3", "選択肢 2"],
          "multiSelectField_jcr006a8": ["選択肢 1", "選択肢 3", "選択肢 2"]
        }
      ],
      "selectField_jcr0069q": "選択肢 1",
      "citySelectField_jcr0069y": ["北京市", "北京市", "東城区"],
      "checkboxField_jcr0069r": ["選択肢 3", "選択肢 2"],
      "textField_jcr0069m": "danhang",
      "radioField_jcr0069p": "選択肢 1",
      "dateField_jcr0069t": 1516636800000
    },
    "originator": {
      "name": {
        "pureEn_US": "userEnglishName",
        "en_US": "userEnglishName",
        "zh_CN": "userName",
        "type": "i18n"
      },
      "userId": "xxxx"
    }
  },
  "success": true
}
```
