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