使用 Dataverse 中的数据创建 Power BI 报表
Microsoft Dataverse 使您可以使用 Power BI Desktop 直接连接到数据,以创建报表并将其发布到 Power BI。 从 Power BI,报表可在仪表板中使用,与其他用户共享并可跨 Power BI 移动应用上的平台访问。
先决条件
要将 Power BI 与 Dataverse 一起使用,您需要以下各项:
- 下载并安装 Power BI Desktop,这是在本地计算机上运行的免费应用程序。 您可以从此处下载 Power BI Desktop。
- 具有以下特权的 Power Platform 环境:
- 要访问表中的数据,您必须具有该表的读取特权。
- 要修改 make.powerapps.com 中的表,您必须具有包含制作者特权的安全角色,如系统定制员或环境创建者。
- 您必须具有相应的 Power BI 许可证才能生成和共享 Power BI 报表。
- 要使用 Dataverse 连接器,必须在您的环境中启用启用 TDS 终结点设置。 详细信息:管理功能设置
备注
大多数代理服务器不处理 Power BI 的 Dataverse 连接器使用的表格格式数据流 (TDS) 协议数据。
使用连接器连接到 Dataverse
打开 Power BI Desktop。 选择文件 > 获取数据 > Power Platform。
选择 Dataverse 连接器,然后选择连接。
在环境列表中,展开所需的环境,选择所需的表,然后选择加载。
从以下数据连接模式选项中选择:
- 导入:我们建议您尽可能将数据导入 Power BI。 使用此模式,数据将缓存在 Power BI 服务中,按计划的时间间隔导入。
- DirectQuery:直接连接到 Dataverse 中的数据。 使用此模式可实时检索数据。 此模式还可以更严格地实施 Dataverse 安全模型。 详细信息:Power BI Desktop 中的 DirectQuery 模型指南。
选择确定。 系统可能会提示您使用用于连接到 Power Apps 和 Dataverse 的相同凭据登录。 选择连接。
重要
若要使用 Dataverse 连接器,需要打开 TCP 端口 1433 和/或 5558 以进行连接。 如果仅启用端口 5558,则必须将端口号追加到环境 URL,如 yourenvironmentid.crm.dynamics.com:5558。
使用 Dataverse 表生成报表
使用连接器加载表后,您可以开始生成报表,或重复前面的步骤添加其他表。 例如,在列窗格中,选择 name 列,然后选择 numberofemployees 列。 在可视化窗格中,选择饼图。 这会将新可视化效果添加到报表画布中。
特殊列类型
选择项列
选择项列在表中用于向用户提供项目下拉列表,以在应用和流中进行单一选择。 使用 Dataverse 连接器时,选择项列将呈现为两列,分别显示唯一值和显示项值。
例如,如果您在表上有一个名为 approvalstatus
的选择列,那么您将在 Power BI 中看到两个列:
approvalstatus
- 这将为您选择的每个项显示唯一的整数值。 应用筛选器时approvalstatus
会有所帮助,让筛选器在将来更改显示名称时不会受到影响。approvalstatusname
- 这将显示项目的友好显示名称,最常用于在表或图表中呈现选项时。approvalstatus
approvalstatusname
1 已提交 2 审阅中 3 已审核 4 已拒绝
性能影响和选择项名称列
检索选择项列的标签名称时,Dataverse 将与内部字符串映射表(存储本地化标签)联接。 这将对每个标签/名称列执行。 请注意,此联接和针对标签名称列而不是值列执行筛选器会严重影响报表查询性能。
选择项列
选择项类似于选择列,不同之处在于用户可以从列表中选择多个项目。 Dataverse 连接器目前不完全支持选择项。 当您将 Dataverse 连接器与选择项列一起使用时,只会收到以逗号分隔的整数值。 不会返回项目标签名称列。 有关 Dataverse 连接器不支持的 Dataverse 数据类型的详细信息,请参阅支持的操作和数据类型.
查找
查找列在您使用的表与为查找定义的目标行类型之间使用多对一 (N:1) 表关系。 查找在 Power BI Desktop 中显示为两列,即 lookupid 和 lookupid-name。
导航关系
Dataverse 中的关系需要您使用 GUID 列在 Power BI Desktop 内在两个表之间创建关系,这是系统生成的唯一标识符,确保关系为其他列可能不明确或重复的创建行创建。 可以在此处了解 Power BI desktop 中管理关系的详细信息。
虽然有些关系可能自动创建,您仍然可以查看并确保在创建报表时建立正确的关系:
- 表中的查找列将在相关表中包含行的 GUID。
- 相关表将有格式为“[tableName]ID”的列,其包含 GUID,例如,
Accountid
或MyCustomtableid
- 使用 Power BI Desktop 管理关系功能,您可以在查找列之间创建新关系,以及相关表中的 ID 列。
查找环境 URL
打开 Power Apps,选择您要连接的环境,选择右上角的设置,然后选择会话详细信息。
在 Power Apps 会话详细信息对话框中,选择复制详细信息。
将会话详细信息粘贴到某个位置,如记事本,这样您只能复制实例 url。 实例 URL 是您的环境的唯一 URL。 此 URL 格式为:
https://yourenvironmentid.crm.dynamics.com/
。 请将信息保留在方便的位置,以便您可以在创建 Power BI 报表时使用它。
故障排除
错误消息:返回记录的大小不能超过 83886080
当您运行或设计结果集大于 80 MB 的报表时,Dataverse 连接器可能会发生此错误。 TDS 的结果集大小限制为 80 MB。
要解决此限制,请优化查询,添加筛选器和减少列,让查询返回的数据更少。
大量查找或选择列的解决方法
如果当您尝试连接到具有大量查找或选择列的表时 Power BI 中出现错误消息,则以下手动解决方法可能允许您连接到该表。 在使用附加查找或选择列进行广泛定制时,客户、联系人和商机表可能会遇到此问题。
手动连接到 Power BI 报表中的表:
在已加载报表的 Power BI Desktop 中,选择转换数据以加载 Power Query。
选择新建源 > 空白查询。
命名您的查询。
在 Power BI Desktop 的主页选项卡上选择高级编辑器。
将查询文本替换为下面的查询文本。
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"
将查询文本中的 myenvironment.crmX 替换为您的环境域值,例如 contoso.crm4。
选择完成。
选择选择列以添加任何其他所需的列。
选择关闭并应用以保存模型更改。
收到提示时,请对新查询选择直接查询。
现在可在报表中使用此查询。
错误消息:无法连接(提供程序命名管道提供程序,错误:40 – 无法打开与 SQL Server 的连接)
出现此错误消息时,连接器无法连接到 TDS 终结点。 当连接器使用的 URL 包括 https:// 和/或结尾的 / 时,可能会发生这种情况。
删除 https:// 和结尾的正斜线,让 URL 的格式为 orgname.crm.dynamics.com。
连接问题疑难解答
有关对使用 TDS 终结点时发生的问题进行疑难解答的信息,请参阅连接问题疑难解答。