M365Con 2027 – 無料オンラインカンファレンス · 11–22 Jan 2027 · 120 sessions→ m365con.net

ブログ · Mirko Peters

データをコピーし続けるのはやめましょう。従来型の同期に勝る Dynamics 365 仮想テーブルの利点

By ·

ブログへようこそ。私たちの仕事では、システムを統合し、業務の縦割りを解消して、ユーザーが必要な情報にすぐアクセスできるようにすることをよく話題にします。しかし、企業システムを統合する際に多くの組織が陥る見えない落とし穴があります。それは、あらゆるものをコピーしたくなるという衝動です。今回は、従来型のデータ同期がなぜ大きな頭痛の種になりうるのか、そして Microsoft Dataverse の組み込み機能が外部データへの向き合い方をどのように根本から変えるのかを詳しく見ていきます。

Automatically translated with AI from the original post. Read the English original

Cover: Dynamics 365 Virtual Entities - Simply Explained

ブログへようこそ。私たちの仕事では、システムを統合し、業務の縦割りを解消して、ユーザーが必要な情報にすぐアクセスできるようにすることをよく話題にします。しかし、企業システムを統合する際に多くの組織が陥る見えない落とし穴があります。それは、あらゆるものをコピーしたくなるという衝動です。今回は、従来型のデータ同期がなぜ大きな頭痛の種になりうるのか、そして Microsoft Dataverse の組み込み機能が外部データへの向き合い方をどのように根本から変えるのかを詳しく見ていきます。

この トピックの詳しい音声解説と実際の事例については、対応するポッドキャストのエピソードをぜひご覧ください: Dynamics 365 Virtual Entities - Simply Explained。

データの重複と古くなった同期ジョブの落とし穴

次のような場面を想像してください。営業チームは Dynamics 365 の中で快適に業務を進めています。一方、在庫数は別の倉庫システムで管理され、請求書は会計アプリケーションで扱われ、製品情報は全く別の ERP で管理されています。多くの IT チームにとって定番の、いわば標準的なアプローチは、統合パイプラインを構築することです。定期的に実行されるジョブを作成し、これらの情報をすべて Dataverse にコピーします。シンプルに聞こえますよね?

ところが残念ながら、この方式では、レコードの重複、同期の遅延、バッチの失敗、そして何より厄介な「古い情報」を抱えたアーキテクチャになってしまいます。夜間の同期処理の際に、倉庫システムで在庫が 10 個と記録されたとします。翌朝、Dynamics 365 のダッシュボードには、その 10 個が在庫ありとして表示されています。しかし昼になると、店頭の飛び込み客がその残りの 10 個をすべて購入し、出荷されてしまいます。倉庫システムではすぐに在庫がゼロになったとわかります。それでも Dynamics 365 は、今夜の次回同期まで 10 個在庫ありと表示し続けます。何も知らない営業担当者は、古い情報をもとに重要なアップセルの判断を下してしまうのです。問題は、同期スクリプトが失敗したことだけではありません。根本的な欠陥は、コピーされた情報が同期の間隔のあいだに必ず古くなることにあります。

さらに、情報をコピーすると、厄介なアーキテクチャ上の問いが生じます。どのシステムが本当の意味で「正」なのか、という問いです。製品が ERP システムに存在する一方で、その複製が Dataverse にもあり、誰かが一方で説明、価格、在庫状況を変更した場合、どちらのバージョンを採用するかを誰かが、あるいは何かが判断しなければなりません。従来型の同期は、データの整合性をめぐる悪夢を生み出します。仮想テーブルは、まったく異なるアプローチを提供します。元の業務システムがレコードの所有権を完全に保持したまま、Dynamics 365 のユーザーが必要なときに安全にその情報を照会できるようにするのです。

これは、同じ文書を二つの別々のキャビネットに保管するようなものだと考えてください。一つは営業部門、もう一つは倉庫のものです。どちらかのキャビネットの文書を変更するたびに、もう一方のコピーも誰かが歩いて行って更新しなければなりません。一度でも更新を忘れれば、二つのキャビネットの内容はたちまち食い違います。従来型の同期はまさにこのパターンに従っています。仮想テーブルはより良い方法を提供します。壊れやすい二つ目のコピーを維持する代わりに、チームに安全でリアルタイムに元のキャビネットを覗ける窓を与えるのです。

Dynamics 365 仮想テーブルの理解

多くの組織は、「一つのシステムですべてを統合したい」と口にします。しかし、現場の従業員に話を聞くと、実際に必要としているのは「仕事をする場所が一つであること」なのです。営業担当者は、Dynamics 365 を開いたままにして、在庫確認のために ERP にalt-tab で切り替え、請求書の状況を確認するために third のレガシーアプリケーションを開き、そしてようやく顧客レコードに戻る、といったことをすべきではありません。従業員が求めているのは統合された作業空間です。仮想テーブルは、選択した外部情報を Dynamics 365 のネイティブな操作画面に直接取り込みます。その一方で、専門のシステムはそれぞれの業務プロセスを引き続き管理できます。

Microsoft のビジネスアプリケーション基盤を長く扱っていると、古いドキュメントや技術フォーラム、ベテラン開発者との会話で「Virtual Entities(仮想エンティティ)」という古い用語に出会うことがあるかもしれません。現在の Microsoft の用語は Virtual Tables(仮想テーブル)です。呼び方が何であれ、基本となる考え方は変わりません。Dynamics 365 と Dataverse は、外部の情報をまるで Dataverse のネイティブなテーブルであるかのようにユーザーへ見せることができます。一方で、実際のレコードは Dataverse の外部に安全に保存されたままです。

この違いを理解するために、通常の Dataverse テーブルと仮想テーブルを比べてみましょう。通常の Dataverse テーブルでは、レコードが Dataverse データベース内に直接保存されます。取引先企業、連絡先、商談、カスタムテーブルがその代表例です。仮想テーブルの場合、Dataverse が定義するのは外部の情報をどのように表示するか、そしてどのように取得するかだけです。レコードは別の場所に存在します。これは図書館の目録に例えるとわかりやすいでしょう。目録には本の情報、つまりタイトル、著者、そして物理的な棚の位置が記載されています。しかし、目録そのものが本ではありません。仮想テーブルも全く同じ仕組みで動作します。Dataverse は構造を把握し、レコードを要求する方法を知っていますが、実際のデータを保持しているのは外部システムです。

仮想テーブルが外部データへのライブな窓を提供する仕組み

仮想テーブルは、実行時にデータへアクセスするモデルで動作します。外部のレコードをすべて取得してローカルに永続保存するのではなく、アプリケーションが実際に必要とした時点で動的に情報を取得します。ユーザーが特定のビューを開く、特定のレコードを検索する、フィルターを適用する、個別の行を選択するといった操作を行うと、Dataverse はその時点で必要な情報だけを外部システムに要求します。

ある営業担当者が、大手顧客との大型見込み案件について話し合っているとします。顧客は来月に500台の注文を出したいと考えています。営業担当者は、使い慣れた Dynamics 365 の画面から離れることなく、関連する製品の在庫状況を開きます。品目番号、倉庫の所在地、利用可能数量、入荷予定日を確認できます。これらの情報は、前日にインポートした在庫スプレッドシートに頼るのではなく、外部の倉庫システムや ERP システムからリアルタイムで直接取得されます。Dynamics 365 は統合されたワークスペースとして機能し、在庫に関する唯一の正確な情報源は倉庫システムのままです。

この実行時アーキテクチャにより、データの重複によるリスクがなくなります。ユーザーがクエリを実行すると、アプリケーションは次のような流れで処理を進めます。営業担当者が製品リストを開き、在庫のある品目で絞り込みます。Dataverse は、対象が仮想テーブルであることを認識します。基盤となるデータプロバイダーがリクエストを受け取り、データソースの接続情報を使って外部サービスに接続します。ユーザーのフィルターは外部システムが理解できる形式に変換され、一致するレコードが取得されます。その結果は標準の Dataverse 行に変換され、ユーザーインターフェイスにすぐ表示されます。ユーザーはシームレスな操作感を得られ、データは正式な保存先から一度も移動しません。

3 つの中核的な構成要素:データプロバイダー、データソース、テーブル

この仕組みを内部で実現するため、すべての仮想テーブルは 3 つの中核的な構成要素に依存しています。データプロバイダー、データソース、そして仮想テーブルの定義そのものです。堅牢な統合戦略を設計しようとする人にとって、これら 3 つの要素を理解することは不可欠です。

データプロバイダーとは何か

データプロバイダーは、このアーキテクチャにおける主要な変換役です。Dynamics 365 と Dataverse は、テーブル、列、フィルター、レコード ID といった独自の内部概念を使ってリクエストを送信します。一方、外部システムは全く異なる API、プロトコル、またはデータ形式を使用している可能性があります。プロバイダーは、この両者の間を変換します。ユーザーがこの複雑なやり取りを理解する必要はありません。標準の Dynamics 365 アプリケーション画面を通じて、結果として得られたレコードを操作するだけです。

Microsoft には、OData バージョン 4 プロバイダーの標準サポートが組み込まれています。OData は、Web 上でデータを公開しクエリを実行するための、業界で広く受け入れられた標準的な方法です。外部サービスが、製品番号、説明、単価、在庫数などの項目を含む製品データを OData で公開している場合、組み込みのプロバイダーがそれらのレコードを要求し、Dataverse がネイティブに理解できる構造で返します。最近のクラウド アプリケーションにとって、これは驚くほど簡単な統合を実現します。

もちろん、すべてのレガシ アプリケーションや独自開発の業務アプリケーションが OData に対応しているわけではありません。アーキテクチャ上ほかの統合方式が必要な場合は、カスタム データ プロバイダーを実装できます。熟練した開発者であれば、Dataverse と独自の REST API、SQL データベース、社内の Web サービスを橋渡しするカスタム プロバイダーを作成できます。基盤となる技術に関係なく、カスタム プロバイダーの基本的な役割は同じです。Dataverse からの要求を受け取り、外部システムと通信し、応答を変換して、レコードをシームレスに返すことです。

データ ソースとは

データ プロバイダーが「話し方」を知っているとすれば、データ ソースは接続先に到達するための具体的なアドレスと資格情報を保持しています。データ ソースには、サービス エンドポイントのアドレス、認証パラメーター、API キー、接続に関連するスロットリング設定など、外部サービスへの接続情報がすべて含まれます。プロバイダーは「言語の専門家」、データ ソースは「住所録」と考えるとわかりやすいでしょう。

外部列のマッピングと一意のレコード ID

接続を確立したら、外部の列を仮想テーブルのスキーマにマッピングする必要があります。たとえば、倉庫管理アプリケーションでは "Available Quantity" という項目名が使われているのに対し、Dynamics 365 のユーザーは "Stock on Hand" と表示されることを好むかもしれません。項目のマッピングによって、この 2 つの異なる名前が同じ情報を表すことを Dataverse に伝えます。これにより、外部システム側で高コストな列名の変更を行うことなく、Dynamics 365 内で利用者にわかりやすい用語を提供できます。

さらに、Dataverse では、各レコードを区別するための信頼性の高い一意の識別子が必要です。仮想テーブルのレコードには、Dataverse が認識できる信頼性の高い一意のキーが必要です。堅牢な ID がなければ、Dataverse はユーザーが選択した製品、請求書、顧客を正確に特定できません。したがって、特定の外部データ ソースが仮想テーブルで効果的に機能するかを評価する際には、レコードの識別性が重要な技術的前提条件となります。

アーキテクチャーで仮想テーブルを使用する場合

仮想テーブルは、アーキテクチャーにおける強力なパラダイム シフトです。仮想テーブルが最も効果を発揮するのは、特定の外部システムがマスター データを明確に所有している一方で、Dynamics 365 のユーザーが日々の業務の中でその情報をコンテキストに応じて参照する必要がある場合です。代表的な例としては、リアルタイムの在庫追跡、複雑な製品カタログ、発注ステータス、リアルタイムの請求書の状態、財務元帳の要約、サプライヤー ディレクトリ、ターゲットを絞ったマーケティングのインサイトなどがあります。

業務レコードのライフサイクル管理を外部アプリケーションに任せ、Dynamics 365 のユーザーにはコンテキストに応じた情報を提供することで、データの重複リスクを排除し、Dataverse のストレージの肥大化を抑えられます。さらに、チームが常にリアルタイムで正確な情報に基づいて意思決定できるようになります。データをコピーするのをやめて、最新の仮想化の力を活用するときが来ています。

まとめると、従来のデータ同期から仮想テーブルへの移行は、Microsoft 365 のアーキテクチャを大幅に効率化できます。信頼できる唯一の情報源を維持したまま、古いデータが残る時間帯をなくし、ユーザーが求めていた統合されたワークスペースを提供できます。このトピックをさらに深く知りたい方は、Dynamics 365 Virtual Entities - Simply Explained のエピソード全編をぜひお聴きください。

Entities in this article

Dynamics 365 Dataverse OData Fabric workspace

Related articles

RSS