使用外部源中的数据创建或编辑虚拟实体

此主题适用于 Dynamics 365 Customer Engagement (on-premises)。 有关此主题的 Power Apps 版本,请参阅: 创建和编辑包含来自外部数据源数据的虚拟实体

虚拟实体是 Dynamics 365 Customer Engagement(本地)中的自定义实体,其中包含来自外部数据源的数据的字段。 虚拟实体以常规实体记录的形式显示在应用中,但包含从外部数据库(例如 Azure SQL 数据库)获取的数据。 基于虚拟实体的记录可用于所有客户端,包括使用 Dynamics 365 Customer Engagement Web Services 开发的自定义客户端。

过去,若要集成不同的数据源,需要创建连接器来移动数据或开发自定义插件(客户端或服务器端)。 但是,使用虚拟实体,可以在运行时直接与外部数据源连接,以便外部数据源中的特定数据在环境中可用,而无需数据复制。

虚拟实体由三个主要组件组成: 数据提供程序数据源 记录和 虚拟实体。 数据提供程序由插件和数据源实体组成。 数据源是 Dynamics 365 Customer Engagement(本地)中的实体记录,其中包括表示连接参数架构的元数据。 每个虚拟实体引用实体定义中的数据源。

Dynamics 365 Customer Engagement(本地)包括一个 OData 数据提供程序,可用于连接到访问外部数据的 OData v4 Web 服务。

或者,开发人员可以构建自己的数据提供程序。 数据提供程序作为解决方案安装在环境中。 详细信息: 虚拟实体入门

虚拟实体关系图。

虚拟实体优势

  • 开发人员可以使用 Dynamics 365 Customer Engagement Web 服务和 Customer Engagement 插件注册工具实现插件来读取外部数据。

  • 系统定制器使用 Dynamics 365 Customer Engagement(本地)配置数据源记录,并创建用于访问外部数据的虚拟实体,而无需编写任何代码。

  • 最终用户使用虚拟实体创建的记录,在字段、网格、搜索结果和提取基于 XML 的报表和仪表板中查看数据。

添加要用于虚拟实体的数据源

开发人员创建一个自定义插件,用作虚拟实体的数据提供程序。 或者,可以使用提供的 OData v4 数据提供程序。 详细信息: OData v4 数据提供程序配置、要求和最佳做法

  1. 转到 “设置>管理>”虚拟实体数据源

  2. 在作工具栏上,选择“ 新建”。

  3. 在“选择数据提供程序”对话框中,从以下数据源中进行选择,然后选择“ 确定”。

    • 自定义数据提供程序。 如果已导入数据提供程序插件,则数据提供程序将在此处显示。 详细信息: 虚拟实体入门

    • OData v4 数据提供程序。 Dynamics 365 Customer Engagement(本地)包括可与 OData v4 Web 服务一起使用的 OData 数据提供程序。 详细信息: OData v4 数据提供程序配置、要求和最佳做法

将受保护的字段添加到数据源

以与任何其他实体相同的方式为数据源创建字段。 对于加密或敏感的数据,在数据源的自定义字段中启用“数据源机密”属性。 例如,若要保护包含数据库连接字符串的字段。

注释

数据源机密属性仅适用于添加到数据源窗体的字段。

数据源机密属性。

创建虚拟实体

创建虚拟实体就像 Customer Engagement 中的其他任何实体一样,并添加了此处所述的一些额外属性。

注释

尽管可以通过选择 “无” 作为数据源来创建虚拟实体,但要获取虚拟实体需要数据源的数据, 详细信息: 添加要用于虚拟实体的数据源

  1. 转到设置>自定义>自定义系统

  2. 在解决方案资源管理器中,创建新实体。 为此,请选择左侧导航窗格中的 “实体 ”,然后选择“ 新建”。

  3. “实体定义”的“常规”选项卡上,选择“虚拟实体”,然后在“数据源”下拉列表中选择所需的数据源。

    实体定义的虚拟实体选项。

  4. 在实体定义中,完成以下必填字段。

    • 外部名称。 输入此实体映射到的外部数据源中的表的名称。

    • 外部集合名称。 在外部数据源中输入此实体映射到的表的复数名称。

      下面是名为 Movie 的虚拟实体的示例,该实体使用 Azure Cosmos DB 数据提供程序访问文档文件。

    使用 Azure Cosmos DB 数据提供程序的虚拟实体定义。

    重要

    虚拟实体不提供多个选项,例如 Access Teams、队列和快速创建。 详细信息: 使用虚拟实体时的注意事项

    根据需要完成其他必需属性和可选属性,例如显示和复数名称。 有关这些属性的详细信息,请参阅 “创建和编辑实体”。

  5. 为虚拟实体创建并添加一个或多个字段。 除了创建自定义字段所需的标准字段属性外,这些可选属性还可用于为虚拟实体创建的每个自定义字段。

    • 外部名称。 这通常是用于标识要在字段中显示的数据的唯一名称。

    注释

    如果创建的字段类型为 OptionSet,则以下其他字段可用。

    • 外部类型名称。 此属性映射到选项集的外部服务中的值集的外部名称。 通常,这可以是字符串值类的枚举或名称。 当需要完全限定的名称时,可以使用外部类型名称。 例如,作为具有 OData 的类型名称 ,其中查询中的参数需要完全限定的名称,例如 [类型名称]。[]。
    • 外部值。 此属性映射到选项集项的外部数据源中的相应值。 输入的此值用于确定要在应用中显示的选项集项。

    根据需要完成其他属性。 有关这些属性的详细信息,请参阅 “创建和编辑字段”。

  6. “字段属性”页上选择“保存并关闭”。

  7. 在解决方案资源管理器工具栏上,选择“ 保存”。

  8. 在解决方案资源管理器工具栏上,选择“ 发布”。

  9. 关闭解决方案资源管理器。

使用虚拟实体时的注意事项

虚拟实体具有这些限制。

  • 所有虚拟实体都是只读的。

  • 现有实体无法转换为虚拟实体。

  • 默认情况下,虚拟实体仅包含名称和 ID 字段。 不支持其他系统托管字段,例如状态或创建时间/修改时间。

  • 虚拟实体不支持具有 Currency、Image 或 Customer 数据类型的自定义字段。  

  • 虚拟实体不支持审核。

  • 虚拟实体字段不能用于汇总或计算字段。  

  • 虚拟实体不能是实体的活动类型。

  • 无法通过虚拟实体启用影响实体表行的许多功能。 示例包括队列、知识管理、SLA、重复检测、更改跟踪、移动脱机功能、字段安全性、相关性搜索、Dynamics 365 Customer Engagement(本地)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 数据提供程序要求和最佳做法
创建和编辑实体
创建和编辑字段