データの同期

Microsoft Dataverse のデータを、他のシステムに格納されているデータと同期させて、統合することが必要な場合があります。 一般的なデータ統合パターンには、外部システムからのデータの取得と Dataverse へのそのデータの転送、Dataverse からのデータの取得とそのデータと外部データ ストアとの同期、または外部データによる Dataverse の更新が含まれています。 Dataverse では、複数の機能を使用して、これらのシナリオを実現するコードの記述がより簡単になっています。

これらの機能はどの状況でも必要に応じて別々に使用できますが、外部データとのデータの同期および統合に関連する共通の問題に組み合わせで対処できます。

更新して、すべての操作を有効にする

Dataverse には、レコードを更新する個別の操作に対応した複数の特定のメッセージがあります。 これらのメッセージは廃止され、現在は同じ操作を実行するために Update を使用するだけです。 削除されたメッセージを以下に示します。

  • Assign
  • SetParentSystemUser
  • SetParentTeam
  • SetParentBusinessUnit
  • SetBusinessEquipment
  • SetBusinessUnit
  • SetState

単にレコードを更新することは、これらのメッセージを使用するよりも簡単であり、データの統合と同期のシナリオに対する開発を効率化することになります。

詳細: 特化された更新操作の動作

代替キー

Dataverse のエンタープライズ展開では、外部システムからのデータを、ユーザーに提供できるように、Dataverse にロードすることが一般的です。 これらの外部システムは、システム間で効率的にデータを同期する Dataverse レコードの GUID の主キーの識別子を格納するために、拡張できないことがよくあります。 一般的なソリューションは、外部システムに関連レコードの ID を格納するために使用できるカスタム列を Dataverse のテーブルに追加することです。 場合によっては、一意の参照を確立するために、複数の列を作成する必要があります。

Dataverse でレコードを更新し、関連レコードへの参照を割り当てるデータ ロード プロセスを作成するときは、まず追加の Dataverse の Web サービスを呼び出し、この外部の識別子に基づいて目標レコードを取得する必要があります。 この検索は、適切なインデックスがカスタム列の適切な場所にない場合は遅くなる可能性があり、Dataverse のシナリオでは、これらの検索のそれぞれで、コストのかかるラウンド トリップが必要になります。 これらの余分なラウンド トリップは、各レコードの更新に必要な時間の桁数に応じて増大し、総合的な処理能力を劇的に低下させる一可能性があります。

代替キーを使用して、Web サービスの操作は、GUID 主キーの代わりに、1 つまたは複数の代替キーを使用して、Dataverse のレコードを対象にすることができます。 また、関連レコードへのテーブル参照を、1 つまたは複数の代替キーを使用して指定できます。 代替キーはインデックス付きなので、カスタム列を識別子として追加することと比較して、検索操作のパフォーマンスの向上が見られます。 何か問題がある場合は、システムはエラーをスローして、すべての変更をロールバックします。

詳細情報:

Upsert

外部システムから Dataverse にデータを読み込むとき、レコードが Dataverse に既に存在しているか、そして更新する必要があるかどうか、または新しいレコードを作成する必要があるかどうかが分からない場合があります。 Upsert更新または挿入の組み合わせであり、これによりレコードが存在するかどうかを検出し、Dataverse の適切な Update または Create オペレーションを適用します。 詳細: Upsert を使用してレコードを挿入または更新

次の表は、これらの機能を使用した場合と使用しない場合の同期データの複雑度の比較です。

説明設定
特定のメッセージを使用する更新プログラム。 各レコードに対して以下を実行します。

1. Dataverse をクエリして、そのアカウントが存在するかどうかを確認します。 存在する場合は、その取引先企業 ID (たとえば、ABC123) を取得します
2. 取引先担当者をクエリして、取引先担当者が存在することを確認します。 存在する場合は、取引先担当者の電子メール ID (例えば contact@company.com) を取得します。
3. 地域 ID (たとえば、NW) を取得または設定するためにクエリします。
4. 所有者を設定するためのユーザー ID を取得するためのクエリ (例えば user@mycompany.com)
5. 取引先企業を更新します。
6. SetState API を呼び出して、取引先企業の状態を設定します。
7. Assign API を呼び出して、所有者を割り当てます。

これらの機能により、前述と同じ操作を実行するのに必要なサーバーへの呼び出しは 1 回だけです。

内容
UpdateRequest による更新。 1 回の呼び出しだけで、一意の ID ABC123 を持つ取引先企業の存在を検証するには、取引先責任者を contact@company.com に、地域を NW に、所有者を user@mycompany.com に、状態をアクティブに設定します。

変更の追跡

Microsoft Dataverse の新しい変更追跡機能は、データが最初に抽出されてから、または最後に同期されてからどのデータが変更されたかを検出することによって、データの同期を効率の良い方法で維持する方法を提供します。 Change Tracking は、データを外部システムと同期するために使用されるだけでなく、Azure Synapse Link for Dataverse や Mobile オフラインなどのいくつかの Power Platform と Dataverse の機能の前提条件でもあります。

詳細情報:

このセクションの内容

代替キーを使用してレコードを参照
Upsert を使用してレコードを作成または更新
変更の追跡を使用してデータを外部システムに同期

サンプル コード

サンプル: Upsert を使用してレコードを挿入または更新
サンプル: 変更の追跡を使用してデータを外部システムに同期

テーブルの代替キーの定義
特化された更新操作の動作

注意

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

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