创建和编辑包含外部数据源中的数据的虚拟表

虚拟表是 Microsoft Dataverse 中的自定义表,其中包含来自外部数据源的数据的列。 虚拟表以常规表记录的形式显示在应用中,但包含来自外部数据库(例如 Azure SQL 数据库)的数据。 基于虚拟表的行可用于所有客户端,包括使用 Dataverse Web 服务开发的自定义客户端。

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

虚拟表由三个主要组件组成: 数据提供程序数据源 行和 虚拟表。 数据提供程序由插件和数据源表组成。 数据源是 Dataverse 中的表行,其中包括表示连接参数架构的元数据。 每个虚拟表引用表定义中的数据源。

Dataverse 包含 OData 数据以及其他几个虚拟连接器提供程序,例如 SQL Server、SharePoint、Fabric 等,您可以使用它们连接常见的外部数据源。 详细信息:OData v4 数据提供程序配置、要求和最佳做法,以及使用虚拟连接器提供程序创建虚拟表

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

虚拟表优势

  • 开发人员可以使用 Dataverse Web 服务和插件注册工具实现插件来读取、更新或删除外部数据。
  • 系统定制器用户 Power Apps(make.powerapps.com)创建用于访问外部数据的虚拟表,而无需编写任何代码。
  • 最终用户使用虚拟表创建的行来查看列、网格、搜索结果以及基于 Fetch XML 的报表和仪表板中的数据。

添加要用于虚拟表的数据源

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

  1. 登录到 Power Apps,然后选择 “设置>高级设置”。

  2. 选择“ 管理>虚拟实体数据源”。

  3. 在命令栏上,选择新建

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

    数据提供程序 Description
    自定义数据提供程序 如果已导入数据提供程序插件,将在此处显示该数据提供程序。 详细信息 开发人员文档:虚拟表入门
    OData v4 数据提供程序 Dataverse 包括可与 OData v4 Web 服务一起使用的 OData 数据提供程序。 详细信息 OData v4 数据提供程序配置、要求和最佳做法

向数据源添加安全列

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

注释

只有添加到“数据源”窗体的列才有“数据源密码”属性。

数据源密钥属性。

创建虚拟表

可以像 Dataverse 中的任何其他表一样创建虚拟表,并添加此处所述的一些额外属性。

打开解决方案

你创建的任何虚拟表的名称的一部分是自定义前缀。 这是根据您在其中工作的解决方案的解决方案发布商设置的。 如果您关心自定义前缀,请确保在非托管解决方案中工作,其中的自定义前缀是您需要的此虚拟表的前缀。 详细信息:更改解决方案发布商前缀

打开非托管解决方案

  1. Power Apps 中,从左侧导航窗格中选择 “解决方案 ”,然后在工具栏上,选择“ 切换到经典”。 如果项目不在侧面板窗格中,请选择 …更多,然后选择所需项目。

  2. “所有解决方案 ”列表中,打开所需的非托管解决方案。

创建虚拟表

  1. 在 Power Apps(make.powerapps.com),创建新表。 为此,请选择左侧导航窗格中的“表”,然后选择“新建>>”。
  2. 选择连接器,然后按照屏幕上的说明创建虚拟表。 详细信息:使用虚拟连接器提供程序OData v4 数据提供程序配置、要求和最佳做法创建虚拟表

重要

虚拟表不支持访问团队、队列和快速创建等若干选项。 详细信息: 使用虚拟表时的注意事项

使用虚拟表时的注意事项

虚拟表具有以下限制。

  • 无法将现有表转换为虚拟表。
  • 默认情况下,虚拟表仅包含名称和 ID 列。 其他系统管理列(如“状态”或“创建日期/修改日期”)不受支持。
  • 虚拟表不支持具有 Currency、Image 或 Customer 数据类型的自定义列。
  • 虚拟表不支持审核。
  • 虚拟表列不能用于汇总列或计算列。
  • 虚拟表不能为表的活动类型。
  • 虚拟表不支持仪表板和图表。
  • 许多影响表行的功能无法通过虚拟表启用。 示例包括队列、知识管理、SLA、重复检测、更改跟踪、移动脱机功能、列安全性、Dataverse 搜索和 Power Pages 解决方案。
  • 虚拟表是组织拥有的,不支持行级 Dataverse 安全概念。 建议为外部数据源实施您自己的安全模型。
  • 更新时验证的列元数据属性不适用于虚拟表。 例如,虚拟表列上的整数列可能设置为最小值为零。 但是,由于该值来自外部数据源,因此当从虚拟表中检索到的值时,查询将返回小于零的值。 查询中不表示最小值属性。 您仍需将该值筛选为大于 0(如果需要这样)。
  • 虚拟表不支持更改跟踪,无法使用 Dataverse 功能(如 Data export Service 或 Azure Synapse Link for Dataverse)进行同步。
  • 使用包含的 OData v4 数据提供程序的虚拟表在出站端口 443 上启用。
  • 虚拟表不支持业务流程。 详细信息:当用户激活业务流程时收到意外错误

当用户激活业务流程时收到意外错误

当用户尝试激活业务流程时,他们可能会收到“意外错误”消息。 查看日志文件时会显示以下日志条目。

ErrorCode:0x80040216 消息:System.Web.HttpUnhandledException:引发了“System.Web.HttpUnhandledException”类型的异常。 ---> Microsoft.Crm.CrmException:无法为虚拟实体启用业务流程

出现此问题的原因是虚拟表不支持业务流程。

另请参阅

使用虚拟连接器提供程序
创建虚拟表OData v4 数据提供程序要求和最佳做法
创建和编辑表
在 Power Pages 中配置虚拟表