スキーマ定義のクエリと変更の検出
このサンプルは、RetrieveMetadataChangeRequest メソッドを使ってテーブル定義の変更を取得および検出する方法を示しています。 PowerApps-Samples/dataverse/orgsvc/C#-NETCore/Schema/RetrieveMetadataChanges/ でサンプルをご覧ください
これらのトピックで機能の説明を確認してください。
このサンプルを実行する方法
こちらの手順を参照してください: スキーマのサンプル手順
実際の動作
特定の列定義のスキーマ定義を取得し、それらを (メモリに) 保存してキャッシュとして利用する方法を、このサンプルで示します。
次に、新しい列を作成して、その新しい列だけからデータを取得し、キャッシュに追加します。
そして列を削除し、削除した項目に関するデータを取得して、削除した列の定義をそれを使用してキャッシュから削除します。
このサンプルは 6 つセクションを含みます。
クエリの定義
連絡先テーブルからすべての候補リスト選択列を返す、EntityQueryExpression を使用してクエリを定義します。
キャッシュの初期化
- クエリ パラメーターをクエリに設定して、RetrieveMetadataChangesRequest のインスタンスを作成します。
- IOrganizationService.Execute を使用して要求を送信します。
- RetrieveMetadataChangesResponse.EntityMetadata の値をキャッシュします。
- 次の要求で使用するために RetrieveMetadataChangesResponse.ServerVersionStamp 値を保存します。
- 現在のすべての列のリストを、キャッシュに書き込みます。
選択肢列の追加
連絡先テーブルの属性に新しい PicklistAttributeMetadata インスタンスを作成し、新しい選択肢列を作成します。
追加した列を検出する
- 元のクエリに設定した クエリ パラメーターで、RetrieveMetadataChangesRequest の新しいインスタンスを作成します。
- 最初の要求で以前に返された値を使用して RetrieveMetadataChangesRequest.ClientVersionStamp を設定します。
- IOrganizationService.Execute を使用して要求を送信します。
- 作成した選択肢列を表す新しい列定義が、1 つだけ返されたことを確認します。
- 次の要求で使用するために RetrieveMetadataChangesResponse.ServerVersionStamp 値を保存します。
- その選択肢列のデータをキャッシュに追加します。
選択肢列を削除する
先ほど作成した選択肢列を削除します。
削除した列を検出する
- 元のクエリに設定した クエリ パラメーターで、RetrieveMetadataChangesRequest の新しいインスタンスを作成します。
- 2 番目の要求で以前に返された値を使用して RetrieveMetadataChangesRequest.ClientVersionStamp を設定します。
- 削除した列定義のみを見つけるために、RetrieveMetadataChangesRequest.DeletedMetadataFilters に DeletedMetadataFilters.Attribute を設定します。
- IOrganizationService.Execute を使用して要求を送信します。
- コレクションのインデックス値として DeletedMetadataFilters.Attribute を使用し、RetrieveMetadataChangesResponse.DeletedMetadata で削除した選択肢列の ID を見つけます。
- 列定義をキャッシュから削除します。
- 現在のすべての列のリストを、キャッシュに書き込みます。
クリーンアップ
このサンプルで作成したデータはすべて削除されたため、クリーンアップは必要ありません。
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。