Microsoft Dataverse 允许使用 Power BI Desktop 直接连接到数据,以创建报表并将其发布到 Power BI。 在 Power BI 中,报表可用于仪表板、共享给其他用户,并在 Power BI 移动应用上访问跨平台。
先决条件
若要将 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
- 打开 Power BI Desktop。 选择 “从其他源获取数据”。
- 在 “获取数据 ”列表中,选择 “Dataverse”,然后选择“ 连接”。
- 如果系统提示,请选择或输入用户凭据,然后选择“ 连接”。
- 此时会显示 Dataverse 的 Power Platform 环境列表。 在环境列表中,展开所需的环境,选择所需的表,然后选择“ 加载”。
- 从以下 数据连接 模式选项中进行选择:
- 导入:建议尽可能将数据导入 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 表生成报表
使用连接器加载表后,可以开始生成报表,或重复前面的步骤以添加其他表。 例如,在列窗格中,选择名称列,然后选择员工数量列。 在 “可视化效果 ”窗格中,选择 饼图。 这些选择将新的可视化效果添加到报表画布。
特殊列类型
选择项列
选择列在表中用于向用户提供项下拉列表,以在应用和流中做出单个选择。 使用 Dataverse 连接器时,选择列显示为两列,以显示唯一值和显示项值。
例如,如果您的表中有一个名为approvalstatus的选择列,您会在 Power BI 中看到两列:
approvalstatus- 此列显示所选的每个项的唯一整数值。approvalstatus在应用筛选器时提供帮助,以便在将来更改显示名称时,筛选器不会受到影响。approvalstatusname- 此列显示项的友好显示名称,在表或图表中显示选项时最常使用。approvalstatusapprovalstatusname1 Submitted 2 审阅中 3 已批准 4 Rejected
性能影响和选择项名称列
检索所选列的标签名称时,Dataverse 会与内部 stringmap 表建立联接(其中存储本地化标签)。 将针对每个标签或名称列执行此操作。 请注意,此联接和针对标签名称列执行筛选器(而不是值列)可能会显著影响报表查询性能。
选择项列
选项类似于选择列,区别在于用户可以从列表中选择多个项。 Dataverse 连接器目前尚未完全支持选项。 将 Dataverse 连接器与选项列一起使用时,只能接收以逗号分隔的整数值。 项标签名称列未被返回。 有关 Dataverse 连接器不支持的 Dataverse 数据类型的更多信息,请参阅 支持的操作和数据类型。
Lookups
查找列在您使用的表与为查找定义的目标行类型之间使用多对一 (N:1) 表关系。 查找功能在 Power BI Desktop 中显示为两列,lookupid 和 lookupid-name。
处理关系
Dataverse 中的关系要求您在 Power BI Desktop 中使用 GUID 列在两个表之间建立关联。该列是系统生成的唯一标识符,可确保在存在歧义或重复的其他列时,仍能为创建的行建立关联关系。 可以 在此处阅读有关管理 Power BI Desktop 中关系的详细信息。
虽然某些关系可能自动创建,但仍可以查看并确保在创建报表时建立正确的关系:
- 表中的查找列包含相关表中该行的 GUID。
- 相关表具有格式为“[tableName]ID”的列,其中包含 GUID,例如
Accountid或MyCustomtableid - 使用 Power BI 桌面管理关系功能,可以在查找列与相关表上的 ID 列之间创建新的关系。
查找环境 URL
打开 Power Apps,选择要连接到的环境 ,选择右上角 的设置,然后选择 “会话详细信息”。
在 “Power Apps 会话详细信息 ”对话框中,选择“ 复制详细信息”。
将会话详细信息粘贴到某个位置,如记事本,这样您只能复制实例 url。 实例 URL 是环境的唯一 URL。 URL 的格式为:
https://yourenvironmentid.crm.dynamics.com/. 请将其放在方便的位置,以便在创建 Power BI 报表时使用它。
Troubleshooting
错误消息:返回记录大小不能超过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。
选择“完成”。
选择选择列以添加任何其他所需的列。
选择 “关闭并应用” 保存模型更改。
出现提示时,选择Direct Query作为新查询。
查询现在可以在报表中使用。
错误消息:无法连接(Named Pipes 提供程序,错误:40 – 无法打开与 SQL Server 的连接)
出现此错误消息时,连接器无法连接到 TDS 终结点。 当与连接器一起使用的 URL 包括 https:// 和/或结尾 /时,可能会发生这种情况。
删除 https:// 和结束正斜杠,使 URL 采用格式 orgname.crm.dynamics.com。
排查连接问题
有关使用 TDS 终结点时排查连接问题的信息,请参阅 排查连接问题。