サンプル: 変更の追跡を使用してデータを外部システムに同期
このサンプルコードでは、RetrieveEntityChangesRequest クラスと RetrieveEntityChangesResponse クラスの RetrieveEntityChanges
メッセージを使って、テーブルの変更点を取得し、外部システムとデータを同期させる方法を紹介しています。
このサンプルで説明されている機能の詳細については、「変更の追跡を使用してデータを外部システムに同期」を参照してください。
このサンプルを実行する方法
- サンプル リポジトリをダウンロードまたは複製して、ローカル コピーを用意します。
- (オプション) Dataverse/App.config ファイルを編集して、接続先の Microsoft Dataverse インスタンスを指定する接続文字列を定義します。
- サンプル ソリューションを Visual Studio で開き、F5 キーを押してサンプルを実行します。 Dataverse/App.config 内に接続文字列を指定した後、サンプルを実行すると、その接続情報が使用されます。
Dataverse/App.config ファイル内に接続文字列を指定しない場合は、サンプルを実行するたびにダイアログが開き、接続先の Dataverse インスタンスについての情報と、使用する資格情報についての情報を入力する必要があります。 このダイアログには以前の接続がキャッシュされているため、以前に使用した接続を選ぶことができます。
このリポジトリにあるサンプルのうち、Dataverse インスタンスに接続する必要があるものには、Dataverse/App.config ファイルを参照するリンクが含まれます。
このサンプルの概要
RetrieveEntityChanges
メッセージは、外部システムからのデータが同期され、変更の追跡に使用する機能をデータの変更を検出して調整するために使用できるシナリオで使用するためのものです。
このシナリオを完全に複製するために必要な別個のシステムがないため、このサンプルでは、2 つの要求を実行してシナリオをシミュレートします。 次の要求までの間、2 番目の要求が時間の経過に伴って変更された内容に関するデータを返すように、一部のデータが変更されます。
このサンプルがどのように動作するか
このサンプルの概要 で説明されているシナリオをシミュレートするために、サンプルは次のことを行います。
セットアップ
sample_book
という名前の代替キーを持つsample_bookcode
テーブルを作成する管理ソリューション (ChangeTrackingSample_1_0_0_0_managed.zip) をインポートします。 代替キーをサポートするインデックスが有効であることを確認します- 10 個の初期 sample_book テーブル レコードが作成され、これらのテーブルへの変更を追跡できるようになります。
実際にやってみます
- 初期要求を実行して、
DataToken
などの結果をキャッシュします。 - セットアップ で作成されたレコードを更新する
- 2 番目の要求を実行します。今回は、初期要求から取得された
DataToken
値を使用してDataVersion
を渡します。 - 2 番目のリクエストによって返されたテーブルの変更を表示する
クリーンアップ
Setup でインポートしたマネージド ソリューションを削除するオプションを表示すると、sample_book
テーブルとサンプルで作成したすべてのデータが削除されます。 サンプルによって作成されたテーブルとデータを調べる場合、削除はオプションです。 手動で ChangeTrackingSample
を削除しても同じ結果を得られます。