次の方法で共有


Web API のスキーマ定義のクエリと変更の検出のサンプル (C#)

このサンプルでは、RetrieveMetadataChanges アクションを使用してテーブル定義の変更を取得および検出する方法を説明します。

GitHub でこのサンプルを表示する

機能の説明については、次の記事を参照してください。

  • クエリ スキーマ定義
  • キャッシュ スキーマ データ

このサンプルでは、WebAPIService クラス ライブラリ (C#) の共通ヘルパー コードを使用します。

前提条件

以下の前提条件はこのサンプルの構築および実行に必要となります :

  • Microsoft Visual Studio 2022。
  • データ演算を実行する権限を使用して Dataverse にアクセスします。

このサンプルを実行する方法

  1. PowerApps-サンプル リポジトリをクローンまたはダウンロードします。

  2. /dataverse/webapi/C#-NETx/RetrieveMetadataChanges/ フォルダーを見つけます。

  3. Visual Studio 2022 を使用して RetrieveMetadataChanges.sln ファイルを開く

  4. ファイルを編集して、以下のプロパティ値を設定します:

    プロパティ 手順
    Url ご使用の環境のURL。 プレースホルダー の値を環境の値に置き換えます。 開発者リソースを表示 を見て自分の環境の URL を見つけます。
    UserPrincipalName プレースホルダー の値を環境へのアクセスに使用する UPN の値に置き換えます。
    Password プレースホルダーの値を使用しているパスワードに置き換えてください。
  5. ファイルを保存します

  6. F5 を押してサンプルを実行します。

Code

このサンプルのコードは次のとおりです: PowerApps-Samples/dataverse/webapi/C#-NETx/RetrieveMetadataChanges/Program.cs

表示する

特定の列定義のスキーマ定義を取得し、それらを (メモリに) 保存してキャッシュとして利用する方法を、このサンプルで示します。

次に、新しい列を作成して、その新しい列だけからデータを取得し、キャッシュに追加します。

そして列を削除し、削除した項目に関するデータを取得して、削除した列の定義をそれを使用してキャッシュから削除します。

このサンプルには 6 つのセクションがあります。

クエリの定義

EntityQueryExpression を使用して、連絡先テーブルからすべての選択リスト選択列を返すクエリを定義します。

キャッシュの初期化

  1. クエリをパラメーターとして設定して、RetrieveMetadataChangesのインスタンスを作成します。
  2. 要求を送信して RetrieveMetadataChangesResponse を取得します。
  3. 値をキャッシュします。
  4. 次回のリクエストで使用するために、値を保存します。
  5. 現在のすべての列のリストを、キャッシュに書き込みます。

選択肢列の追加

取引先担当者テーブルに新しい PicklistAttributeMetadata インスタンスを作成し、新しい選択肢列を作成します。

追加した列を検出する

  1. パラメーターを元のクエリに設定して、RetrieveMetadataChanges の新しいインスタンスを作成します。
  2. 最初の要求で以前に返された値を使用して を設定します。
  3. 要求を送信して RetrieveMetadataChangesResponse を取得します。
  4. 作成した選択肢列を表す新しい列定義が、1 つだけ返されたことを確認します。
  5. 次の要求で使用するために、その値を保存します。
  6. その選択肢列のデータをキャッシュに追加します。

選択肢列を削除する

先ほど作成した選択肢列を削除します。

削除した列を検出する

  1. パラメーターを元のクエリに設定して、RetrieveMetadataChanges の新しいインスタンスを作成します。
  2. 2 番目の要求で以前に返された値を使用して を設定します。
  3. 削除された列定義を探しているため、 を に設定します。
  4. 要求を送信して RetrieveMetadataChangesResponse を取得します。
  5. コレクションのインデックス値として を使用して、 で削除された選択肢列の ID を見つけます。
  6. 列定義をキャッシュから削除します。
  7. 現在のすべての列のリストを、キャッシュに書き込みます。

クリーンアップ

このサンプルで作成したデータはすべて削除されたため、クリーンアップは必要ありません。

参照

クエリ スキーマ定義
キャッシュ スキーマ データ
Dataverse Web API を使用する
WebAPIService クラス ライブラリ (C#)
Web API テーブル スキーマ操作サンプル (C#)