外部ソースからのデータで仮想エンティティを作成または編集する

このトピックは、Dynamics 365 Customer Engagement (on-premises) に適用されます。 このトピックの Power Apps バージョンについては、以下を参照してください。 外部データ ソースからのデータを格納する仮想エンティティの作成および編集

仮想エンティティは Dynamics 365 Customer Engagement (on-premises) のユーザー定義エンティティであり、外部データ ソースからのデータが含まれるフィールドがあります。 仮想エンティティは通常のエンティティ レコードと同じようにお使いのアプリでユーザーに表示されますが、Azure SQL Database などの外部データベースからのデータを含みます。 仮想エンティティに基づくレコードは、Dynamics 365 Customer Engagement Web サービスを使って開発されたユーザー定義のクライアントを含む、すべてのクライアントで利用できます。

以前は、異種のデータ ソースを統合するには、データの移行またはユーザー定義のプラグインの開発のために、サーバー側またはクライアント側のいずれかに、コネクタを作成する必要がありました。 ただし、仮想エンティティを使用して、実行時に外部データ ソースに直接接続できるので、データ レプリケーションをする必要なく、外部データ ソースから特定のデータを環境で利用することができます。

仮想エンティティは、データ プロバイダーデータ ソース レコード、および 仮想エンティティ の 3 つのメイン コンポーネントで構成されます。 データ プロバイダーは、プラグインとデータ ソース エンティティで構成されます。 データ ソースは、接続パラメーターのスキーマを表すメタデータを含む Dynamics 365 Customer Engagement (on-premises) のエンティティ レコードです。 各仮想エンティティは、エンティティ定義内のデータ ソースを参照します。

Dynamics 365 Customer Engagement (on-premises) には、外部データにアクセスする OData v4 Web サービスへの接続に使用する、OData データ プロバイダーが含まれています。

また、開発者は、独自のデータ プロバイダーを作成できます。 データ プロバイダーは、環境にソリューションとしてインストールされます。 詳細: 仮想エンティティで開始

仮想エンティティ図。

仮想エンティティの機能

  • 開発者は、Dynamics 365 Customer Engagement Web サービスと Customer Engagement プラグイン登録ツールを使用して、外部データの読み取り、更新、削除を実行するためのプラグインを実装できます。

  • システム カスタマイザーは、Dynamics 365 Customer Engagement (on-premises)を使用してデータ ソース レコードを構成し、コードをまったく記述せずに、外部データへのアクセスに使用される仮想エンティティを作成します。

  • エンド ユーザーは、仮想エンティティによって作成されたレコードを使って、フィールド、グリッド、検索結果、Fetch XML ベースのレポートやダッシュボードのデータを表示できます。

仮想エンティティに使用するデータ ソースの追加

開発者は、仮想エンティティのデータ プロバイダーとして使用するユーザー定義のプラグインを作成できます。 あるいは、提供されている OData v4 データ プロバイダーを使用することもできます。 詳細: OData v4 データ プロバイダーの構成、要件、ベスト プラクティス

  1. 設定>管理>仮想エンティティ データ ソースの順に移動します。

  2. [操作] ツール バーで、新規を選択します。

  3. データ プロバイダーの選択ダイアログ ボックスで、次のデータ ソースから選択してから、OK を選択します。

データ ソースにセキュリティで保護されたフィールドを追加する

データ ソースでは、他のエンティティと同じようにフィールドを作成します。 暗号化されたデータまたは機密データの場合、データ ソースのカスタム フィールドでデータ ソース シークレット属性を有効にします。 たとえば、データベース接続文字列を含むフィールドのセキュリティを保護する場合です。

Note

データ ソース シークレットの属性は、データ ソース フォームに追加されたフィールドでのみ使用できます。

データ ソース シークレットの属性。

仮想エンティティを作成する

仮想エンティティは、ここで説明したいくつかの追加の属性はありますが、Customer Engagement の他のエンティティと同様に作成できます。

Note

仮想エンティティは、データ ソースとしてなしを選択して作成することもできますが、データを取得するには仮想エンティティにデータ ソースが必要です。 詳細: 仮想エンティティに使用するデータ ソースの追加

  1. 設定>カスタマイズ>システムのカスタマイズの順に移動します。

  2. ソリューション エクスプローラーで、新しいエンティティを作成します。 これを行うには、左側のナビゲーション ウィンドウでエンティティをクリックしてから、新規を選択します。

  3. エンティティ定義概要タブで、仮想エンティティを選択してから、データ ソースドロップダウン リストで、必要なデータ ソースを選択します。

    エンティティ定義の仮想エンティティ オプション。

  4. エンティティ定義で、以下の必須フィールドに入力します。

    • 外部名。 このエンティティがマッピングする外部データ ソースの一覧の名前を入力します。

    • 外部コレクション名。 このエンティティがマッピングする外部データ ソースの一覧の複数名を入力します。

      これは、Azure Cosmos DB データプロバイダを使ってドキュメントファイルにアクセスする Movie という仮想エンティティの例です。

    Azure Cosmos DB データ プロバイダーを使用した仮想エンティティ定義。

    重要

    アクセス チーム、キュー、および簡易作成などの複数のオプションは、仮想エンティティでは使用できません。 詳細: 仮想エンティティを使用する際の考慮事項

    必要に応じて、表示名および複数名など、そのほかの必須およびオプション プロパティを入力します。 これらのプロパティの詳細については、「エンティティの作成および編集」を参照してください。

  5. 仮想エンティティに対して 1 つまたは複数のフィールドを作成および追加します。 カスタム フィールドの作成に必要な標準のフィールド プロパティに加えて、これらのオプションのプロパティは、仮想エンティティに対して作成する各カスタム フィールドに使用できます。

    • 外部名。 通常、これは、フィールドに表示するデータを識別するために一意の名前です。

    Note

    作成するフィールドの種類が OptionSet の場合、以下の追加のフィールドを使用できます。

    • 外部型名。 このプロパティは、オプション セットに対する外部サービスの値セットの外部名にマッピングされます。 通常、これは、文字列値クラスの列挙値または名前です。 完全修飾名が必要なときは、外部型名を使用できます。 たとえば、[型名] [] など、クエリのパラメーターが完全修飾名を必要とする OData を含む [型名] として。
    • 外部値。 このプロパティは、オプション セット項目の外部データ ソース内の対応する値にマッピングされます。 入力されたこの値を使用して、アプリに表示するオプション セット項目が決定されます。

    必要に応じて、追加プロパティを入力します。 これらのプロパティの詳細については、「フィールドの作成および編集」を参照してください。

  6. フィールドプロパティ ページで、保存して閉じるを選択します。

  7. ソリューション エクスプローラーのツール バーで、保存を選択します。

  8. ソリューション エクスプローラーのツール バーで、公開を選択します。

  9. ソリューション エクスプローラーを閉じます。

仮想エンティティを使用する際の考慮事項

仮想エンティティには次のような制限があります。

  • すべての仮想エンティティは読み取り専用です。

  • 既存のエンティティは、仮想エンティティに変換できません。

  • 既定では、仮想エンティティには名前および ID フィールドのみが含まれます。 [状態] または[作成日/修正日] などの、他のシステム管理フィールドはサポートされません。

  • 仮想エンティティは、通貨、イメージ、または顧客データ タイプを持つカスタム フィールドはサポートしません。  

  • 仮想エンティティは監査をサポートしていません。

  • 仮想エンティティ フィールドは、ロールアップまたは計算フィールドでは使用できません。  

  • 仮想エンティティは、エンティティの活動の種類になることはできません。

  • エンティティ テーブル行に影響する多くの機能が仮想エンティティでは有効にできません。 例には、キュー、ナレッジ マネージメント、SLA、重複データ検出、変更の追跡、モバイル オフライン 機能、フィールド セキュリティ、関連性検索、Dynamics 365 Customer Engagement (on-premises) Web ポータル ソリューションのポータル、仮想エンティティ間の N:N の関連付けが含まれます。

  • 仮想エンティティは組織によって所有され、行レベルのCommond Data Service for Appsセキュリティ概念はサポートされません。 外部データ ソースには独自のセキュリティ モデルを実装することをお勧めします。

  • 高度な検索で仮想エンティティを使用するとき、単一のデータ ソースを対象にすることをお勧めします。 たとえば、 Dataverse ネイティブデータと仮想エンティティ外部データの結合を作成するような高度な検索の作成には対応していません。

  • 更新で検証されるフィールド メタデータ プロパティは仮想エンティティには適用されません。 たとえば、仮想エンティティ フィールドの整数フィールドには、最小値のゼロに設定できます。 ただし、値は外部データ ソースから取得されるため、仮想エンティティから取得した場合、クエリはゼロ未満の値を返します。 クエリでは最小値のプロパティは示唆されていません。 0を超える値が望ましい場合は、値をそのようにフィルター処理する必要があります。

  • 仮想エンティティでは変更の追跡には対応していないため、データ エクスポート サービスなどのアプリ用 Customer Engagement 機能を使用して同期することができません。

  • ビジネス プロセス フローは、仮想エンティティではサポートされていません。 詳細: ユーザーがビジネス プロセス フローをアクティブ化したときに予期しないエラーが発生しました

ユーザーがビジネス プロセス フローをアクティブ化したときに予期しないエラーが発生しました

ユーザーがビジネス プロセス フローをアクティブ化しようとすると、「予期しないエラー」メッセージが表示される場合があります。 ログ ファイルを表示すると、次のログ エントリが表示されます。

ErrorCode: 0x80040216 メッセージ: System.Web.HttpUnhandledException: タイプ 'System.Web.HttpUnhandledException' の例外がスローされました。 ---> Microsoft.Crm.CrmException: ビジネス プロセス フローを仮想エンティティに対して有効にできません

この問題は、仮想エンティティがビジネス プロセス フローをサポートしていないために発生します。

参照

OData v4 データ プロバイダーの要件とベスト プラクティス
エンティティの作成と編集
フィールドの作成と編集