使用 Dataverse 中的数据创建 Power BI 报表

Microsoft Dataverse 允许使用 Power BI Desktop 直接连接到数据,以创建报表并将其发布到 Power BI。 在 Power BI 中,报表可用于仪表板、共享给其他用户,并在 Power BI 移动应用上访问跨平台。

Power BI Desktop。

先决条件

若要将 Power BI 与 Dataverse 配合使用,需要以下项:

  • 下载并安装 Power BI Desktop,这是在本地计算机上运行的免费应用程序。 可以 在此处下载 Power BI Desktop。
  • 具有以下权限的 Power Platform 环境:
    • 若要访问表中的数据,必须具有对表的读取权限。
    • 若要在 Power Apps(make.powerapps.com)中修改表,必须具有包含创建者权限的安全角色,例如系统定制器或环境创建者。
  • 创建和共享 Power BI 报告需具备相应的 Power BI 许可证
  • 若要使用 Dataverse 连接器,必须在环境中启用 TDS 终结点 设置。 详细信息:管理功能设置

注释

大多数代理服务器不会处理用于 Power BI 的 Dataverse 连接器使用的表格数据流(TDS)协议数据。

使用连接器连接到 Dataverse

  1. 打开 Power BI Desktop。 选择 “从其他源获取数据”。
  2. “获取数据 ”列表中,选择 “Dataverse”,然后选择“ 连接”。
  3. 如果系统提示,请选择或输入用户凭据,然后选择“ 连接”。
  4. 此时会显示 Dataverse 的 Power Platform 环境列表。 在环境列表中,展开所需的环境,选择所需的表,然后选择“ 加载”。
  5. 从以下 数据连接 模式选项中进行选择:
    • 导入:建议尽可能将数据导入 Power BI。 在此模式下,数据会缓存在 Power BI 服务中,并按计划间隔导入。
    • DirectQuery:直接连接到 Dataverse 中的数据。 使用此模式进行实时数据检索。 此模式还可以更严格地强制实施 Dataverse 安全模型。 详细信息: Power BI Desktop 中的 DirectQuery 模型指南
  6. 选择“确定”。 系统可能会提示你使用用于连接到 Power Apps 和 Dataverse 的相同凭据登录。 选择 连接

重要

若要使用 Dataverse 连接器,需要打开 TCP 端口 1433 和/或 5558 才能连接。 如果仅启用端口 5558,则必须将该端口号追加到环境 URL,例如 yourenvironmentid.crm.dynamics.com,5558

使用 Dataverse 表生成报表

使用连接器加载表后,可以开始生成报表,或重复前面的步骤以添加其他表。 例如,在窗格中,选择名称列,然后选择员工数量列。 在 “可视化效果 ”窗格中,选择 饼图。 这些选择将新的可视化效果添加到报表画布。

Power BI Desktop 可视化效果。

特殊列类型

选择项列

选择列在表中用于向用户提供项下拉列表,以在应用和流中做出单个选择。 使用 Dataverse 连接器时,选择列显示为两列,以显示唯一值和显示项值。

例如,如果您的表中有一个名为approvalstatus的选择列,您会在 Power BI 中看到两列:

  • approvalstatus - 此列显示所选的每个项的唯一整数值。 approvalstatus 在应用筛选器时提供帮助,以便在将来更改显示名称时,筛选器不会受到影响。

  • approvalstatusname - 此列显示项的友好显示名称,在表或图表中显示选项时最常使用。

    approvalstatus approvalstatusname
    1 Submitted
    2 审阅中
    3 已批准
    4 Rejected

性能影响和选择项名称列

检索所选列的标签名称时,Dataverse 会与内部 stringmap 表建立联接(其中存储本地化标签)。 将针对每个标签或名称列执行此操作。 请注意,此联接和针对标签名称列执行筛选器(而不是值列)可能会显著影响报表查询性能。

选择项列

选项类似于选择列,区别在于用户可以从列表中选择多个项。 Dataverse 连接器目前尚未完全支持选项。 将 Dataverse 连接器与选项列一起使用时,只能接收以逗号分隔的整数值。 项标签名称列未被返回。 有关 Dataverse 连接器不支持的 Dataverse 数据类型的更多信息,请参阅 支持的操作和数据类型

Lookups

查找列在您使用的表与为查找定义的目标行类型之间使用多对一 (N:1) 表关系。 查找功能在 Power BI Desktop 中显示为两列,lookupidlookupid-name

Dataverse 中的关系要求您在 Power BI Desktop 中使用 GUID 列在两个表之间建立关联。该列是系统生成的唯一标识符,可确保在存在歧义或重复的其他列时,仍能为创建的行建立关联关系。 可以 在此处阅读有关管理 Power BI Desktop 中关系的详细信息。

虽然某些关系可能自动创建,但仍可以查看并确保在创建报表时建立正确的关系:

  • 表中的查找列包含相关表中该行的 GUID。
  • 相关表具有格式为“[tableName]ID”的列,其中包含 GUID,例如 AccountidMyCustomtableid
  • 使用 Power BI 桌面管理关系功能,可以在查找列与相关表上的 ID 列之间创建新的关系。

查找环境 URL

  1. 打开 Power Apps,选择要连接到的环境 ,选择右上角 的设置,然后选择 “会话详细信息”。

    会话详细信息。

  2. “Power Apps 会话详细信息 ”对话框中,选择“ 复制详细信息”。

  3. 将会话详细信息粘贴到某个位置,如记事本,这样您只能复制实例 url。 实例 URL 是环境的唯一 URL。 URL 的格式为: https://yourenvironmentid.crm.dynamics.com/. 请将其放在方便的位置,以便在创建 Power BI 报表时使用它。

Troubleshooting

错误消息:返回记录大小不能超过83886080

当运行或设计结果集大于 80 MB 的报表时,Dataverse 连接器可能出现此错误。 TDS 的结果集大小限制为 80 MB。

TLS 记录限制超出错误消息。 若要解决此问题,请优化添加筛选器和删除列的查询,以便查询返回较少的数据。

大量查找或选择列的解决方法

如果在尝试连接到具有大量查找或选择列的表时 Power BI 中出现错误消息,以下手动解决方法可能允许你连接到该表。 若客户、联系人及商机表经过大量自定义(如添加额外查找或选择列),则可能遭遇此问题。

手动连接 Power BI 报表中的数据表:

  1. 在加载报表的 Power BI Desktop 中,选择“ 转换数据 ”以加载 Power Query。

  2. 选择 “新建源>空白查询”。

  3. 为查询命名

  4. 在 Power BI Desktop 的“开始”选项卡上选择“高级编辑器”。

  5. 将查询文本换成该查询文本。

    let
        Source = CommonDataService.Database("<myenvironment.crmX>.dynamics.com"),
        dbo_contact = Source{[Schema="dbo",Item="contact"]}[Data],
        #"selectedcolumns" = Table.SelectColumns(dbo_contact,{"fullname", "emailaddress1"})
    in
        #"selectedcolumns"
    
  6. 将查询文本中的 myenvironment.crmX 替换为环境域值,例如 contoso.crm4

  7. 选择“完成”。

  8. 选择选择列以添加任何其他所需的列。

  9. 选择 “关闭并应用” 保存模型更改。

  10. 出现提示时,选择Direct Query作为新查询。

查询现在可以在报表中使用。

错误消息:无法连接(Named Pipes 提供程序,错误:40 – 无法打开与 SQL Server 的连接)

出现此错误消息时,连接器无法连接到 TDS 终结点。 当与连接器一起使用的 URL 包括 https:// 和/或结尾 /时,可能会发生这种情况。

无法连接错误消息。 删除 https:// 和结束正斜杠,使 URL 采用格式 orgname.crm.dynamics.com

排查连接问题

有关使用 TDS 终结点时排查连接问题的信息,请参阅 排查连接问题

另请参阅

在 Power BI Desktop 中使用复合模型

在 Power BI Desktop 中查看 Teams 的 Dataverse 表数据