次の方法で共有


スキーマ定義のクエリと変更の検出

このサンプルは、RetrieveMetadataChangeRequest メソッドを使ってテーブル定義の変更を取得および検出する方法を示しています。 PowerApps-Samples/dataverse/orgsvc/C#-NETCore/Schema/RetrieveMetadataChanges/ でサンプルをご覧ください

これらのトピックで機能の説明を確認してください。

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

こちらの手順を参照してください: スキーマのサンプル手順

実際の動作

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

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

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

このサンプルは 6 つセクションを含みます。

クエリの定義

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

キャッシュの初期化

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

選択肢列の追加

連絡先テーブルの属性に新しい PicklistAttributeMetadata インスタンスを作成し、新しい選択肢列を作成します。

追加した列を検出する

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

選択肢列を削除する

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

削除した列を検出する

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

クリーンアップ

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

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。