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

# YiDA openAPI イテレーションノート

> YiDAのopenAPIアップグレード内容を解説。4モジュールにわたる14件のAPI変更と11件の廃止APIを含み、開発者に強化された機能とスムーズな開発体験を提供します。

## 1. 背景

本リリースでは、YiDAの既存openAPIをアップグレードし、YiDA開発者（ISVサービスプロバイダーやAPI呼び出しが必要なYiDAユーザーなど）により多くの機能とスムーズな開発体験を提供することで、開発ポテンシャルを最大限に引き出します。

## 2. イテレーション内容一覧

本リリースでは、**4モジュールにわたる14件のAPI変更**および**11件の利用不可APIの削除**を実施しました。詳細は以下のとおりです。

<table>
  <tr>
    <td>**モジュール**</td>
    <td>**API名およびドキュメントリンク**</td>
    <td>**説明**</td>
    <td>**ユースケース**</td>
    <td>**詳細**</td>
  </tr>

  <tr>
    <td rowSpan={2}>**プラットフォーム**</td>
    <td>YiDAフォームサービス呼び出しの実行レコードを検索</td>
    <td>指定したYiDAフォームIDに対するサービス呼び出しの実行レコードを検索します。呼び出しステータス、エンドポイント、結果を含みます。</td>
    <td>例：社内のYiDAアプリのデータ管理リストで、本APIを使用してフォームインスタンスに対するサービス呼び出しレコードの詳細を取得します。</td>
    <td>--</td>
  </tr>

  <tr>
    <td>YiDAアプリ一覧を検索</td>
    <td>社内のYiDAアプリ一覧を検索します。アプリのステータス、アイコン、コードを含みます。</td>
    <td>例：本APIを使用して社内のYiDAアプリの詳細情報を取得します。</td>
    <td>--</td>
  </tr>

  <tr>
    <td rowSpan={6}>**データ検索・操作**</td>
    <td>詳細検索条件を使用してフォームインスタンスを検索</td>
    <td>フィルターを使用してフォームインスタンスの詳細を取得します。</td>
    <td>表示されるページでフィルターを入力し、条件を満たすフォームインスタンスを検索します。例：フォーム提出者や作成時間の開始時刻でフィルタリング。</td>
    <td rowSpan={3}>1. 新しい検索ストレージ構造に切り替え後、検索結果の上限が**5,000**件から**30,000**件に増加します。<br />2. 従来のあいまい検索のみの動作に代わり、完全一致検索とあいまい検索の両方に対応しました。<br />3. すべての検索APIで、`searchFieldJson`入力パラメータを指定した場合、「データ管理」で使用されるフィルターに対応するようになりました。詳細はデータ管理のフィルターを使用した検索を参照してください。<br />4. ワークフローインスタンスを取得APIに、並べ替えルールを指定する`orderConfigJson`入力パラメータが追加されました。このパラメータの入力方法については、検索結果の並べ替えに使用可能な組み込みフィールドを参照してください。</td>
  </tr>

  <tr>
    <td>フォームインスタンスデータを検索</td>
    <td>本APIを呼び出してフォームインスタンスデータを検索します。</td>

    <td />
  </tr>

  <tr>
    <td>ワークフローインスタンスを取得</td>
    <td>YiDAワークフローインスタンスの情報を取得します。インスタンスID、作成時間、提出者を含みます。</td>
    <td>例：本APIを呼び出して、社内のYiDAアプリの作業フロー一覧に含まれるワークフローインスタンスの詳細を取得します。</td>
  </tr>

  <tr>
    <td>サブフォームデータを取得</td>
    <td>本APIを呼び出して、フォームインスタンスIDとサブフォームコンポーネントの一意識別子を使用してサブフォームコンポーネントのデータを取得します。</td>

    <td />

    <td>--</td>
  </tr>

  <tr>
    <td>メインテーブルデータを取得</td>
    <td>メインテーブルのデータのみを個別に検索します。</td>

    <td />

    <td>フォームページにサブフォームコンポーネントが多数含まれている場合（サブフォームインスタンス数が多いのではなく）で、「フォームデータを検索」openAPIがタイムアウトする場合は、操作を2ステップに分割してください。<br />ステップ1：メインテーブルデータを取得を使用してメインテーブルを検索します。<br />ステップ2：サブフォームデータを取得を使用して必要なサブフォームデータを検索します。</td>
  </tr>

  <tr>
    <td>フォームインスタンスを追加または更新</td>
    <td>指定した条件でフォームインスタンスをフィルタリングします。一致するインスタンスが見つかった場合は指定したフォーム値で更新し、一致するインスタンスが存在しない場合は指定したフォーム値で新規作成します。</td>
    <td>元のデータ<br />条件を満たすデータが存在する場合<br />一致するデータが存在しないため、新規レコードが作成される場合</td>
    <td>openAPI（オープンプラットフォームまたはフロントエンドAPIを問わず）が、レコード番号の固定値の検証など、ビジネス関連ルールに準拠する必要があるケースに適用されます。（現在、重複の検出が困難で直接表示できません。例：書き込みのたびに固定値フィールドが既に存在するかを検索する必要があり、レコードごとに2回以上のAPI呼び出しが必要となります。）</td>
  </tr>

  <tr>
    <td rowSpan={5}>**バッチ操作**</td>
    <td>フォームインスタンスを一括作成</td>
    <td>フォームインスタンスデータを一括作成し、新規作成されたインスタンスのIDを返します。</td>
    <td>例：社内のYiDAアプリのデータ管理ビューにあるYiDAインスタンス一覧で本APIを呼び出し、精算項目が「フォームインスタンス一括追加」の新規インスタンスを追加します。<br />元のフォームデータ<br />呼び出しに成功した後のデータ</td>
    <td><ol><li>ビジネスルールを実行しない場合、同期または非同期呼び出しごとに一括作成できるフォームインスタンスの最大数は**100**件です。</li><li>ビジネスルールを実行する場合</li></ol><br /><ol /></td>
  </tr>

  <tr>
    <td>フォームインスタンスを一括削除</td>
    <td>フォームインスタンスデータを一括削除し、フォームインスタンス一覧からレコードを削除します。</td>
    <td>例：社内のYiDAアプリのデータ管理ビューに4件のYiDAフォームインスタンスがあります。本APIを呼び出して1件目のYiDAインスタンスを削除します。<br />元のフォームデータ<br />呼び出しに成功した後のフォームデータ</td>
    <td><ol><li>ビジネスルールを実行しない場合、同期または非同期呼び出しごとに一括作成できるフォームインスタンスの最大数は**500**件です。</li><li>ビジネスルールを実行する場合</li></ol><br /><ol /></td>
  </tr>

  <tr>
    <td>フォームインスタンスのコンポーネント値を一括更新</td>
    <td>YiDAフォームインスタンスIDを指定して、YiDAフォームインスタンスのコンポーネント値を一括更新します。</td>
    <td>例：社内のYiDAアプリのフォームインスタンス一覧で本APIを呼び出し、4件のフォームにわたって精算項目コンポーネントの値を一括更新します。精算項目の値を「更新後の精算項目」に変更します。<br />元のフォームデータ<br />呼び出しに成功した後のフォームデータ</td>
    <td rowSpan={2}><ol><li>ビジネスルールを実行しない場合、同期または非同期呼び出しごとに一括作成できるフォームインスタンスの最大数は**500**件です。</li><li>ビジネスルールを実行する場合</li></ol><br /><ol /></td>
  </tr>

  <tr>
    <td>フォームインスタンスデータでフォームインスタンスを一括更新</td>
    <td>YiDAフォームコンポーネントのデータを基にフォームインスタンス情報を一括更新します。</td>
    <td>例：社内のYiDAアプリのデータ管理リストにある4件のYiDAフォームインスタンスがすべて精算項目コンポーネントを使用しています。本APIを呼び出して精算項目コンポーネントの値を更新し、4件すべてのYiDAフォームを更新します。<br />元のフォームデータ<br />呼び出しに成功した後のフォームデータ</td>
  </tr>

  <tr>
    <td>フォームインスタンスデータを一括取得</td>
    <td>フォームインスタンスの詳細（インスタンス名、提出者を含む）を一括取得します。</td>
    <td>例：社内のYiDAアプリのデータ管理ビューにあるYiDAインスタンス一覧で本APIを呼び出し、インスタンスIDでインスタンス詳細を一括検索します。</td>

    <td />
  </tr>

  <tr>
    <td rowSpan={2}>**コンポーネント**</td>
    <td>フォームデータを保存（単一作成）</td>
    <td>本APIを呼び出して、承認フローを使用しないYiDAフォームインスタンスを作成します。</td>

    <td />

    <td />
  </tr>

  <tr>
    <td>一括作成、フォームインスタンスを一括作成と同じ</td>
    <td>--</td>
    <td>--</td>
    <td>--</td>
  </tr>

  <tr>
    <td rowSpan={3}>**その他**</td>
    <td>YiDAプラットフォームのセルフ呼び出しAPIが不安定</td>
    <td>解決済み：`searchFieldJson.json`が長時間データを返さないことが時折発生していました（特に読み込み中インジケータの追加後に顕著で、更新で解消）。</td>
    <td>解決策：`/dingtalk/web/APP_PR185LWG5XWYCPITZ58C/query/formProcInstData/getInstanceDatasLight.json`を使用して、検索ごとに返されるサブフォームデータのサイズを設定します。</td>
    <td>--</td>
  </tr>

  <tr>
    <td>以下のAPIを削除</td>
    <td>--</td>
    <td>--</td>
    <td>--</td>
  </tr>

  <tr>
    <td>APIカテゴリを再編成：<br /><ul><li>従来「タスク」カテゴリに含まれていた一部のAPIを「フォーム/作業フロー」カテゴリに移動しました。</li></ul></td>
    <td>--</td>
    <td>--</td>
    <td>--</td>
  </tr>
</table>
