仮想テーブルに関する入門情報 (エンティティ)

仮想テーブル (仮想エンティティ) は、Microsoft Dataverse のテーブルとしてシームレスに表すことで、データの重複なしに、また、多くの場合、カスタム コーディングなしに、外部システムに存在するデータの統合を可能にします。

仮想テーブルは、これまでの外部データを統合するためにカスタマイズされたコードが必要で、不完全な統合、データの重複、大量の開発リソースなどの多くの制約があるクライアント側とサーバー側のアプローチに代わるものです。 さらに、管理者およびシステム カスタマイザーにとって、仮想テーブルの使用により管理および構成が大幅に単純化されます。

注意

このセクションでは、開発者にとっての仮想テーブルの意味について説明します。 ユーザー インターフェイスから仮想テーブルを管理する方法の詳細については、外部データ ソースからのデータを格納する仮想テーブルの作成および編集 を参照してください。

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

仮想テーブルは、Dataverse データベースで作成されたレコードに関連付けられた物理テーブルがない、Dataverse プラットフォーム メタデータにおけるテーブルの定義です。 代わりに、実行中にレコードが必要なときに、関連付けられた外部システムから状態が動的に取得されます。 各仮想テーブルの種類は、 仮想テーブルのデータ プロバイダー および (オプションで) 関連付けられた 仮想テーブルのデータ ソース からの何らかの構成情報に関連付けられます。

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

  • OData v4 プロバイダーがサービスに含まれており、既定でインストールされます。 このプロバイダーは、作成、読み取り (retrieve、retrieve multiple)、更新、および削除の操作をサポートします。
  • Azure Cosmos DB (以前の Microsoft ドキュメント DB) プロバイダーは AppSource から入手できます。

外部データ ソースのデータ プロバイダーが見つからない場合、 ユーザー定義仮想テーブルのデータ プロバイダー を開発することができます。詳細については、 仮想テーブルのデータ プロバイダー を参照してください。 カスタム仮想テーブルのデータ プロバイダーで完全な CRUD 操作がサポートされるようになりました。 開発者は、プラグインを実装し、仮想テーブルをサポートする CRUD 操作ごとにプラグイン登録ツールを使用してプラグインを登録できます。

仮想テーブルの作成およびマッピング

最初は、仮想テーブルの定義はユーザー定義テーブルの定義と同じです。 新しい仮想テーブルの種類に対するエンティティ、属性、および関係を指定します。 ただし、さらに、仮想テーブルをデータ プロバイダーに接続して、データ操作を管理します。 ユーザー定義テーブルの種類と列は、外部データ ソースの対応するデータにマップする必要があります。 たとえば、仮想テーブルは外部リレーショナル データベースの行として表現され、それぞれの列はその行の列に対応する場合があります。 (多くの場合、これらの外部データ名は対応する仮想テーブル名と異なることに注意してください。) エンティティ ID フィールドに対して特定の必要なマッピングが行われます。データ プロバイダーは、この GUID を提供して、このレコードを表す外部レコードにそれを関連付ける必要があります。 これを実現する最も直接的な方法は、GUID を外部データ ソースの主キーとして実際に使用することです。

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

仮想テーブルの制限

考慮が必要となる仮想テーブルの制限は次のとおりです。

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

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

関連項目

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

注意

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

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