仮想テーブルは、外部データ ソースからのデータを含む列を含む Microsoft Dataverse のカスタム テーブルです。 仮想テーブルは、ユーザーには通常のテーブル行として表示されますが、Azure SQL Database などの外部データベースから取得されたデータが含まれています。 仮想テーブルに基づく行は、Dataverse Web サービスを使用して開発されたカスタム クライアントを含むすべてのクライアントで使用できます。
これまでは、さまざまなデータ ソースを統合するには、データを移動したり、クライアント側またはサーバー側のカスタム プラグインを開発したりするためのコネクタを作成する必要があります。 ただし、仮想テーブルを使用すると、実行時に外部データ ソースと直接接続できるため、外部データ ソースの特定のデータを環境で使用でき、データ レプリケーションは必要ありません。
仮想テーブルは、 データ プロバイダー、データソース 行、 仮想テーブルの 3 つの主要コンポーネントで構成されます。 データ プロバイダーは、プラグインとデータ ソース テーブルで構成されます。 データ ソースは Dataverse のテーブル行であり、接続パラメーターのスキーマを表すメタデータが含まれます。 各仮想テーブルは、テーブル定義内のデータ ソースを参照します。
Dataverse には、外部データにアクセスする OData v4 Web サービスとの接続に使用できる OData データ プロバイダーが含まれています。
または、開発者は独自のデータ プロバイダーを構築できます。 データ プロバイダーは、ソリューションとして環境にインストールされます。 詳細情報: 開発者向けドキュメント: 仮想テーブルの概要
仮想テーブルの利点
- 開発者は、Dataverse Web サービスとプラグイン登録ツールを使用して、外部データの読み取り、更新、または削除を行うプラグインを実装できます。
- システム カスタマイザーは、Power Apps ソリューション エクスプローラーを使用してデータ ソース行を構成し、コードを記述せずに外部データにアクセスするために使用される仮想テーブルを作成します。
- エンド ユーザーは、仮想テーブルによって作成された行を操作して、列、グリッド、検索結果、および XML ベースのレポートとダッシュボードのフェッチでデータを表示します。
仮想テーブルに使用するデータ ソースを追加する
開発者は、仮想テーブルのデータ プロバイダーとして使用するカスタム プラグインを作成します。 または、提供された OData v4 データ プロバイダーを使用することもできます。 詳細情報: OData v4 データ プロバイダーの構成、要件、ベスト プラクティス
Power Apps にサインインし、 設定>Advanced 設定を選択します。
設定>管理>仮想エンティティ データ ソースの順に移動します。
アクション ツール バーで、[ 新規] を選択します。
[ データ プロバイダーの選択 ] ダイアログ ボックスで、次のデータ ソースから選択し、[ OK] を選択します。
データ プロバイダー Description カスタム データ プロバイダー データ プロバイダー プラグインをインポートした場合は、データ プロバイダーはここに表示されます。 詳細情報 開発者向けドキュメント: 仮想テーブルの始め方 OData v4 データ プロバイダー Dataverse には、OData v4 Web サービスで使用できる OData データ プロバイダーが含まれています。 詳細情報 OData v4 データ プロバイダーの構成、要件、ベスト プラクティス
セキュリティで保護された列をデータ ソースに追加する
データ ソースの列は、他のテーブルと同じ方法で作成します。 暗号化または機密データの場合は、データ ソースのカスタム列でデータ ソース シークレット属性を有効にします。 たとえば、データベース接続文字列を含む列をセキュリティで保護します。
注
データ ソース シークレット属性は、データ ソース フォームに追加された列でのみ使用できます。
仮想テーブルを作成する
Dataverse の他のテーブルと同様に、仮想テーブルを作成します。ここに説明する属性をいくつか追加します。 仮想テーブルは、ソリューション エクスプローラーを使用して作成する必要があります。
注
仮想テーブルを作成するには、データ ソースとして [なし ] を選択しますが、仮想テーブルでデータを取得するにはデータ ソースが必要です。 詳細情報 仮想テーブルに使用するデータ ソースを追加する
ソリューション エクスプローラーを開きます
作成する仮想テーブルの名前の一部は、カスタマイズ プレフィックスです。 これは、作業中のソリューションの発行者に基づいて設定されます。 カスタマイズ プレフィックスにこだわりがある場合は、そのプレフィックスが仮想テーブルに適しているアンマネージド ソリューションで作業していることを確認してください。 詳細情報: ソリューションの発行元プレフィックスを変更する
アンマネージド ソリューションを開く
Power Apps で、左側のナビゲーション ウィンドウから [ソリューション] を選択し、ツール バーの [クラシックに切り替える] を選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
[ すべてのソリューション ] の一覧で、目的のアンマネージド ソリューションを開きます。
仮想テーブルを作成する
ソリューション エクスプローラーで、新しいテーブルを作成します。 これを行うには、左側のナビゲーション ウィンドウで [エンティティ ] を選択し、[ 新規] を選択します。
エンティティ定義の [全般] タブで [仮想エンティティ] を選択し、[データ ソース] ドロップダウン リストで目的のデータ ソースを選択します。
[エンティティ定義] で、次の必須列を入力します。
フィールド Description 外部名 このテーブルがマップされる外部データ ソース内のテーブルの名前を入力します。 外部コレクション名 このテーブルのマップ先の外部データ ソースに、テーブルの複数形の名前を入力します。 Azure Cosmos DB データ プロバイダーを使用してドキュメント ファイルにアクセスする Movie という名前の仮想テーブルの例を次に示します。
Important
Access Teams、キュー、クイック作成などのいくつかのオプションは、仮想テーブルでは使用できません。 仮想テーブルを使用する場合の詳細情報に関する考慮事項
必要に応じて、表示名や複数形名などの追加の必須プロパティと省略可能なプロパティを入力します。 これらのプロパティの詳細については、「テーブルの 作成と編集」を参照してください。
仮想テーブルの 1 つ以上の列を作成して追加します。 カスタム列を作成するために必要な標準の列プロパティに加えて、これらの省略可能なプロパティは、仮想テーブル用に作成するカスタム列ごとに使用できます。
フィールド Description 外部名 これは通常、列に表示するデータを識別する一意の名前です。 外部型名 作成する列の種類が OptionSet の場合: このプロパティは、選択のために外部サービスの値セットの外部名にマップされます。 通常、これは文字列値クラスの列挙型または名前にすることができます。 外部型名は、完全修飾名が必要な場合に使用できます。 たとえば、クエリのパラメーターに完全修飾名が必要な OData を含む 型名 ([Type Name]など)。[値]。 外部値 作成する列の種類が OptionSet の場合: このプロパティは、選択項目の外部データ ソースの対応する値にマップされます。 入力したこの値は、アプリに表示する選択項目を決定するために使用されます。 必要に応じて、追加のプロパティを完了します。 これらのプロパティの詳細については、「列の 作成と編集」を参照してください。
[列のプロパティ] ページで [ 保存して閉じる ] を 選択します。
ソリューション エクスプローラーのツール バーで、[ 保存] を選択します。
ソリューション エクスプローラーのツール バーで、[ 発行] を選択します。
ソリューション エクスプローラーを閉じます。
仮想テーブルを使用する場合の考慮事項
仮想テーブルには、これらの制限があります。
- 既存のテーブルを仮想テーブルに変換することはできません。
- 既定では、仮想テーブルには Name 列と Id 列のみが含まれます。 その他のシステム管理列 ([状態] や [作成日]/[変更日] など) はサポートされていません。
- 仮想テーブルでは、Currency、Image、または Customer データ型のカスタム列はサポートされていません。
- 仮想テーブルは監査をサポートしていません。
- 仮想テーブル列は、ロールアップまたは計算列では使用できません。
- 仮想テーブルをテーブルのアクティビティの種類にすることはできません。
- ダッシュボードとグラフは、仮想テーブルではサポートされていません。
- テーブル テーブルの行に影響する多くの機能は、仮想テーブルでは有効にできません。 たとえば、キュー、ナレッジ管理、SLA、重複検出、変更追跡、モバイル オフライン機能、列セキュリティ、Dataverse 検索、Power Pages ソリューションなどがあります。
- 仮想テーブルは組織が所有しており、行レベルの Dataverse セキュリティの概念はサポートされていません。 外部データ ソース用に独自のセキュリティ モデルを実装することをお勧めします。
- 更新時に検証される列メタデータ プロパティは、仮想テーブルには適用されません。 たとえば、仮想テーブル列の整数列は、最小値が 0 に設定されている場合があります。 ただし、値は外部データ ソースから取得されるため、仮想テーブルから取得すると、クエリは 0 未満の値を返します。 最小値プロパティは、クエリでは暗黙的に指定されません。 必要な場合は、0 より大きい値をフィルター処理する必要があります。
- 仮想テーブルは変更の追跡をサポートせず、Data Export Service や Azure Synapse Link for Dataverse などの Dataverse 機能を使用して同期することはできません。
- 含まれている OData v4 データ プロバイダーを使用する仮想テーブルは、送信ポート 443 で有効になります。
- ビジネス プロセス フローは、仮想テーブルではサポートされていません。 詳細情報: ユーザーが業務プロセス フローをアクティブ化したときに予期しないエラーが発生しました
ユーザーが業務プロセス フローをアクティブ化したときに予期しないエラーが発生しました
ユーザーが業務プロセス フローをアクティブ化しようとすると、"予期しないエラー" メッセージが表示されることがあります。 ログ ファイルを表示すると、次のログ エントリが表示されます。
ErrorCode: 0x80040216 メッセージ: System.Web.HttpUnhandledException: 型 'System.Web.HttpUnhandledException' の例外がスローされました。 ---> Microsoft.Crm.CrmException: 仮想エンティティに対して業務プロセス フローを有効にすることはできません
この問題は、仮想テーブルが業務プロセス フローをサポートしていないために発生します。
こちらも参照ください
OData v4 データ プロバイダーの要件とベスト プラクティス
テーブルの作成と編集
Power Pages で仮想テーブルを構成する