次の方法で共有


仮想テーブル (エンティティ) を始める

仮想テーブル ( 仮想エンティティとも呼ばれます) を使用すると、外部システムに存在するデータを Microsoft Dataverse と統合できます。 この統合により、外部データは Dataverse のテーブルとしてシームレスに表され、データのレプリケーションは行われず、多くの場合はカスタム コーディングなしで表されます。

仮想テーブルは、外部データを統合するための以前のクライアント側およびサーバー側のアプローチを置き換えます。この方法では、カスタマイズされたコードが必要であり、多数の制限が生じていました。 これらの制限には、不完全な統合、データの重複、開発リソースの広範なコミットメントが含まれます。 さらに、管理者とシステム カスタマイザーでは、仮想テーブルを使用すると、管理と構成が大幅に簡略化されます。

このセクションでは、開発者向けの仮想テーブルの影響について説明します。 ユーザー インターフェイスからの仮想テーブルの管理の詳細については、「 外部データ ソースからのデータを含む仮想テーブルを作成および編集する」を参照してください。

仮想テーブル、データ プロバイダー、およびデータ ソース

仮想テーブルには、Dataverse データベース内のレコード ストレージ用の物理テーブルが関連付けられていない Dataverse 内のテーブルの定義が含まれています。 実行時にレコードが必要な場合、その状態は関連付けられている外部システムから動的に取得されます。 各仮想テーブルの種類は、 仮想テーブル データ プロバイダー と、(必要に応じて) 関連付けられている 仮想テーブル データ ソースからの構成情報に関連付けられます。

次のデータ プロバイダーは Dataverse に付属しています。

  • OData v4 プロバイダーはサービスに含まれており、既定でインストールされます。 このプロバイダーは、作成、読み取り(単一および複数の取得)、更新、および削除のCRUDによる操作をサポートしています。
  • Azure Cosmos DB (以前の Microsoft Document DB) プロバイダーは、AppSource から入手できます。

外部データ ソースのデータ プロバイダーが見つからない場合は、 カスタム仮想テーブル データ プロバイダーを開発できます。 詳細情報: 仮想テーブル データ プロバイダー

カスタム仮想テーブル データ プロバイダーで完全な CRUD 操作がサポートされるようになりました。 開発者は、仮想テーブルをサポートする CRUD 操作ごとに、プラグインを実装し、プラグイン登録ツールを使用してプラグインを登録できます。

仮想テーブルの作成とマッピング

最初に、仮想テーブルの定義は、カスタム テーブルの定義と同じです。 新しい仮想テーブルの種類のテーブル、列、およびリレーションシップを指定します。 次に、仮想テーブルをデータ プロバイダーに接続して、データ操作を管理します。

カスタム テーブルの種類とその列は、外部データ ソース内の対応するデータにマップする必要があります。 たとえば、仮想テーブルは外部リレーショナル データベースの行として表され、その各列はその行の列に対応する場合があります。 これらの外部データ名は、多くの場合、対応する仮想テーブル名とは異なります。 エンティティ ID フィールドに対して特定の必要なマッピングが行われます。データ プロバイダーはこの GUID を指定し、このレコードを表す外部レコードに関連付ける必要があります。 この結果を実現する最も直接的な方法は、GUID を外部データ ソースの主キーとして実際に使用することです。

この例では、外部データベースのユーザー情報と接続情報を提供するために、対応する仮想テーブル データ ソースも提供されます。

仮想テーブルの制限事項

考慮する必要がある仮想テーブルの制限事項を次に示します。

  • 組織所有のテーブルのみがサポートされています。 ユーザー所有テーブルに適用されるセキュリティ フィルター処理はサポートされていません。 仮想テーブル データへのアクセスは、セキュリティ ロールに基づいて、個々のユーザーに対して有効または無効にすることができます。 フィールド レベルのセキュリティはサポートされていません。
  • 外部データを Dataverse テーブルとしてモデル化できる必要があります。 これはですね:
    • 外部データ ソース内のすべてのテーブルには、GUID 主キーが関連付けられている必要があります。
    • すべてのテーブル プロパティは、Dataverse テーブル列として表す必要があります。 テキスト、数値、選択肢、日付、画像、および参照を表す単純な型を使用できます。
    • Dataverse で任意のテーブル リレーションシップをモデル化できる必要があります。
    • 仮想テーブルの列を計算またはロールアップすることはできません。  必要な計算は、外部側で行う必要があります。場合によっては、データ プロバイダー内またはデータ プロバイダーによって指示されます。
    • 仮想テーブル列は、グリッドまたは他の UI ビューでの参照として追加できますが、この仮想テーブル参照列に基づいてフィルター処理や並べ替えを行うことはできません。
  • 監査はサポートされていません。
  • 検索機能は、データを保持しないため、仮想テーブルではサポートされていません。
  • グラフとダッシュボードは、仮想テーブルではサポートされていません。
  • キューに対して仮想テーブルを有効にすることはできません。
  • 仮想テーブルでは、値のオフライン キャッシュはサポートされていません。
  • 仮想テーブルはアクティビティを表すことができず、ビジネスプロセスフローをサポートしていません。
  • 作成後、仮想テーブルを標準 (非仮想) テーブルに変更することはできません。 逆も当てはまりますが、標準テーブルを仮想テーブルに変換することはできません。
  • すべての属性が返されるため、Retrieve クエリと RetrieveMultiple クエリで属性を選択しても適用されません
  • グリッド ビュー内の仮想テーブル参照列を削減し、制限してください。 仮想テーブルの参照列の読み取りには時間がかかる場合があります。

これらの制限が Dataverse API にどのように反映されるかの詳細については、 仮想テーブルの API に関する考慮事項を参照してください。

こちらも参照ください

OData v4 データ プロバイダーを使用した仮想テーブルのチュートリアル
仮想テーブルの API に関する考慮事項
カスタム仮想テーブル データ プロバイダー
サンプル: 汎用仮想テーブル データ プロバイダー プラグイン