Power BI + Dynamics 365:本机集成深入探讨
Microsoft 生态系统中的 BI 集成没有比 Power BI 和 Dynamics 365 更紧密的了。这两种产品共享相同的云基础设施、身份验证模型和数据平台 (Dataverse)。 Microsoft 投入了大量资金来实现这种无缝集成,以至于嵌入式 Power BI 报告可以在 Dynamics 365 表单、仪表板和视图中本地显示,无需单独登录。
然而,许多 Dynamics 365 组织只触及了这种集成的表面。本指南涵盖了从基本 Dataverse 连接到嵌入式报告、Dynamics 365 Sales 分析、财务仪表板设计以及跨 CRM、ERP 和 Field Service 的跨模块分析的所有集成模式。
要点
- Dataverse 连接器是所有 Dynamics 365 数据的本机首选连接方法
- 嵌入式 Power BI 报告显示在 D365 表单和仪表板内,无需离开 UI
- Microsoft Fabric 和 Dataverse 共享相同的 Azure 基础设施 - Fabric 快捷方式消除了数据移动
- Dynamics 365 Sales 具有可在几分钟内部署的本机分析应用程序(Power BI 模板应用程序)
- 财务和运营使用 Azure Data Lake 集成进行大规模分析
- 跨模块分析(销售+财务、服务+库存)需要将Dataverse表与财务数据连接起来
- 行级安全镜像 Dynamics 365 业务单位和安全角色
- Power BI 分页报告与 D365 Finance 集成以进行监管/法定报告
Dynamics 365 产品及其数据源
了解哪个 Dynamics 365 产品使用哪个数据平台对于集成设计至关重要:
| D365 产品 | 数据平台 | 主连接器 |
|---|---|---|
| 销售 | 数据宇宙 | 数据宇宙连接器 |
| 客户服务 | 数据宇宙 | 数据宇宙连接器 |
| 现场服务 | 数据宇宙 | 数据宇宙连接器 |
| 营销 | 数据宇宙 | 数据宇宙连接器 |
| 财务与运营 | Azure SQL/ADLS | 财务和运营连接器/ADLS |
| 商务中心 | Azure SQL | 商务中心连接器 |
| 商业 | 数据宇宙 + Azure SQL | 多个 |
| 人力资源 | 数据宇宙 | 数据宇宙连接器 |
| 项目运营 | 数据宇宙 | 数据宇宙连接器 |
主要区别:基于 Dataverse 构建的 Dynamics 365 应用程序(销售、服务、现场服务、营销)使用 Dataverse 连接器。 Dynamics 365 Finance & Operations 使用单独的云托管 Azure SQL 数据库以及专用 Power BI 连接器和 Azure Data Lake 导出。
连接器 1:Dataverse(主要连接器)
Dataverse 连接器是所有基于 Dataverse 的 D365 应用程序的推荐集成路径。它提供:
- 标准表:所有 D365 标准实体(客户、联系人、机会、案例等)
- 自定义表:您的组织创建的任何自定义表
- 选择列:查找带有标签的值(不仅仅是内部代码)
- 关系:可通过 Power Query 关系扩展进行导航
- 实时数据:无数据移动 — 查询直接进入 Dataverse
设置
1.在Power BI Desktop中:获取数据→Dataverse
2.环境URL:https://{your-environment}.crm.dynamics.com
3. 使用您的 Dynamics 365 凭据(或计划刷新的服务主体)登录
4. 浏览表格并选择所需实体
D365 销售分析的关键表
account — Customer/Prospect organizations
contact — Individual contacts
opportunity — Sales deals with stage, probability, close date
quote — Formal price quotes linked to opportunities
salesorder — Confirmed sales orders
invoice — Invoices from orders
lead — Incoming leads pre-qualification
activitypointer — All activities (emails, calls, meetings)
systemuser — Sales reps and users
team — Sales teams and territories
处理 Dataverse 选项集
Dataverse 选项集(选择列)在内部存储整数代码。 Dataverse 连接器返回代码和标签,但您必须在 Power Query 中处理此问题:
// Expand opportunity status code to label
Source = Dataverse.EntitySet("https://org.crm.dynamics.com", "opportunity"),
AddLabel = Table.AddColumn(Source, "Stage Label",
each if [statuscode] = 1 then "In Progress"
else if [statuscode] = 2 then "Won"
else if [statuscode] = 3 then "Cancelled"
else "Unknown")
更好的做法:使用 Dataverse 自动返回的 [email protected] 字段和格式化标签。
连接器 2:Dynamics 365 财务和运营
D365 Finance and Operations 使用单独的连接器连接到 Finance 虚拟实体层或直接连接到 Azure Data Lake(建议用于大规模分析)。
选项 A:财务和运营连接器(实体商店)
Power BI 的 Dynamics 365 Finance 连接器查询 Finance Entity Store — 由 Finance 的批处理流程更新的单独的读取优化数据库。
1.获取数据→Dynamics 365(在线)→财务
2.环境URL:https://{env}.operations.dynamics.com
3. 连接到Entity Store多维数据集和数据实体
可用实体(示例):
RetailSalesLine— 销售交易详细信息VendTransaction— 供应商付款交易CustTransaction— 客户交易LedgerTransactionEntity— 总账分录BudgetTransactionEntity— 预算条目
选项 B:Azure Data Lake 导出(推荐)
对于大规模财务分析(1000 万以上交易),配置财务的“导出到 Azure Data Lake”功能:
- 在财务和运营管理中:工作区 → 数据管理 → 配置 Azure Data Lake
- 连接到您的 Azure Data Lake Storage Gen2 帐户
- 选择要导出的表(增量或全部)
- Power BI 通过 Azure Data Lake Storage 连接器直接从 ADLS 读取
该架构可以处理任何规模的财务数据,而不影响财务应用程序的性能。
选项 C:Microsoft Fabric(推荐用于新部署)
借助 Microsoft Fabric,ADLS 中的 D365 Finance 数据成为 Fabric 快捷方式 — 通过 Direct Lake 模式即可访问 Power BI,无需额外的数据移动:
D365 Finance → ADLS Gen2 (via Export) → Fabric OneLake (Shortcut) → Power BI Direct Lake
无需 ETL 管道。 Fabric 读取 ADLS 数据,就好像它是原生 OneLake 内容一样。
Dynamics 365 中的嵌入式 Power BI 报告
这是 Power BI 最有价值的 Dynamics 365 集成功能之一 - 直接嵌入 D365 表单和仪表板中的报表。
设置嵌入报告
- 将 Power BI 报表 发布到 Premium 或 PPU 工作区(免费用户需要 Premium 容量才能查看)
- 在 Dynamics 365 设置中:管理 → 系统设置 → 报告选项卡
- 启用:“Power BI 中的可视化”
- 在任何 D365 仪表板上:添加组件 → Power BI 磁贴 → 选择您的报表/仪表板
- 在 D365 表单上:打开表单编辑器 → 插入 → 子网格或 Web 资源 → PowerBI
上下文过滤(来自 D365 记录的报告过滤器)
最强大的嵌入式场景:自动筛选到当前 D365 记录的 Power BI 报表。
例如,打开 D365 帐户记录会显示嵌入的 Power BI 报告,仅显示该帐户的收入历史记录、未结案例和管道 - 用户无需进行过滤。
通过 JavaScript Web 资源进行配置,将当前记录的 GUID 传递到 Power BI 报表筛选器:
// D365 form JavaScript — pass account ID to Power BI filter
function passRecordToReport(executionContext) {
const formContext = executionContext.getFormContext();
const accountId = formContext.data.entity.getId();
// The Power BI report uses this parameter for row filtering
const filterValue = accountId.replace(/[{}]/g, '');
// Update the Power BI visual's filter via PostMessage
const powerBiFrame = document.getElementById('powerBiReport');
powerBiFrame.contentWindow.postMessage(
JSON.stringify({ action: 'filter', accountId: filterValue }),
'https://app.powerbi.com'
);
}
跨模块分析:销售+财务+服务
当您跨模块连接数据时,D365 + Power BI 的真正分析能力就会显现出来。以下是关键的跨模块分析模式:
客户 360 度仪表板
将 Dataverse(销售、服务)与财务数据结合起来:
| 尺寸 | 来源 | 领域 |
|---|---|---|
| 帐户/客户 | 数据宇宙(账户) | 姓名、行业、地区、客户经理 |
| 销售渠道 | 数据宇宙(机会) | 开放运营,预期收入 |
| 订单 | Dataverse(销售订单) | 已确认订单、收入 |
| 支持案例 | 数据宇宙(事件) | 未结案例、SLA 状态、解决时间 |
| 付款 | D365 财经 | 未结发票、付款历史记录 |
| 合同 | 数据宇宙(合约) | 有效合同、续签日期 |
// Customer Health Score (composite measure)
Customer Health Score =
VAR PaymentScore = SWITCH(TRUE(),
[Avg Days to Pay] <= 30, 40,
[Avg Days to Pay] <= 60, 25,
[Avg Days to Pay] <= 90, 10,
0
)
VAR SupportScore = SWITCH(TRUE(),
[Open Cases] = 0, 30,
[Open Cases] <= 2, 20,
[Open Cases] <= 5, 10,
0
)
VAR PipelineScore = IF([Open Pipeline Value] > 10000, 30, 15)
RETURN PaymentScore + SupportScore + PipelineScore
销售到现金分析
跟踪从机会到收到现金的旅程:
Lead → Opportunity → Quote → Order → Invoice → Payment
DAX 阶段转换衡量指标:
// Lead-to-Opportunity Conversion Rate
Lead to Opp Rate =
DIVIDE(
CALCULATE(COUNTROWS(Lead), Lead[statuscode] = 3), -- 3 = Qualified
COUNTROWS(Lead),
0
)
// Quote-to-Order Conversion Rate
Quote Win Rate =
DIVIDE(
CALCULATE(COUNTROWS(Quote), Quote[statecode] = 1), -- 1 = Won
COUNTROWS(Quote),
0
)
// Average Days from Opportunity to Invoice
Avg Sales Cycle Days =
AVERAGEX(
FILTER(Opportunity, Opportunity[statecode] = 1), -- Won
DATEDIFF(Opportunity[createdon], Opportunity[actualclosedate], DAY)
)
安全性:镜像 D365 安全角色
Dynamics 365 使用复杂的安全模型:业务单位、安全角色、团队和字段级安全。 Power BI 的 RLS 可以反映此模型。
基于业务部门的 RLS
// RLS filter — restrict data to user's business unit hierarchy
[OwningBusinessUnit] IN
PATHCONTAINS(BusinessUnit[BusinessUnitPath],
LOOKUPVALUE(
SystemUser[BusinessUnitId],
SystemUser[Email],
USERPRINCIPALNAME()
)
)
销售人员级数据隔离
// Opportunities visible to current user (their own + manager's team)
CALCULATE(
[Total Pipeline Value],
FILTER(
Opportunity,
Opportunity[OwnerEmail] = USERPRINCIPALNAME() ||
Opportunity[OwnerManagerEmail] = USERPRINCIPALNAME()
)
)
对于复杂的 D365 安全层次结构,每天将 D365 安全角色分配同步到 Power BI 维度表,然后基于该映射应用 RLS。
D365 财务仪表板
CFO 财务仪表板 KPI
// Accounts Receivable Turnover
AR Turnover =
DIVIDE([Total Revenue], AVERAGE(Balance_Sheet[AR_Balance]))
// Days Payable Outstanding
DPO =
DIVIDE(
CALCULATE(SUM(VendTransaction[AmountCur]), VendTransaction[TransType] = "Purch"),
DIVIDE([Total COGS], 365),
0
)
// Working Capital
Working Capital =
[Total Current Assets] - [Total Current Liabilities]
// Operating Cash Flow (indirect method)
Operating Cash Flow =
[Net Income] +
[Depreciation & Amortization] +
[Change in Working Capital]
常见问题
Power BI 是否可以与 Dynamics 365 Business Central 配合使用?
是 - Microsoft 为 Power BI 提供了专用的 Business Central 连接器。默认情况下,Business Central 在其角色中心页面中包含嵌入式 Power BI 报告。连接器使用 OData API 并公开 Business Central 的 API 页面(财务条目、项目、客户、供应商)。刷新 Business Central 数据需要 Power BI Pro 或 Premium 许可证,并且 Premium 每天最多支持 48 次刷新。
我可以将 DirectQuery 与 Dataverse 结合使用吗?
是 - Dataverse 连接器支持 DirectQuery 模式。 Dataverse 查询实时针对 Dataverse 服务执行。对于大多数 D365 销售和服务分析(数百万条记录),Dataverse 上的 DirectQuery 表现良好。对于非常大的 Dataverse 环境(100M+ 行),请考虑将数据导入到 Fabric Lakehouse 以获得更好的性能。
如何为外部用户处理 Power BI 中的 Dynamics 365 安全性?
访问嵌入式 Power BI 报告的外部用户(客户、合作伙伴)需要特殊处理。选项包括:具有 Power BI Pro 许可证的 Azure AD B2B 来宾帐户,或具有服务主体身份验证和由应用程序强制执行的行级安全性的 Power BI Embedded (A SKU)。切勿在嵌入式场景中暴露未经过滤的 D365 数据 — 始终应用严格的 RLS 来隔离每个外部用户的数据。
Dynamics 365 Sales Insights 与 Power BI 的集成是什么?
Dynamics 365 Sales Insights (Viva Sales) 在 D365 中本地生成预测分析(机会评分、关系健康状况、管道预测)。该数据存储在 Dataverse 中,并且可以连接到 Power BI 以进行自定义可视化。 Power BI 可以通过外部基准、历史趋势分析和 D365 原生分析中不可用的跨模块关联来增强 Sales Insights 数据。
Power BI 能否取代 Dynamics 365 的内置仪表板?
Power BI 显着扩展了 D365 内置仪表板的功能 — 自定义可视化、复杂的 DAX 度量、跨模块分析和分页报告在 D365 的本机图表编辑器中均不可用。但是,D365 仪表板对于应用程序内的日常操作视图仍然有用。推荐的方法是:用于快速操作视图的 D365 本机仪表板、用于分析和执行报告的 Power BI。
后续步骤
Power BI + Dynamics 365 集成是企业软件市场上最原生、功能最丰富的 BI 集成。投资于这种集成的组织可以获得跨 CRM、ERP 和服务运营的统一可见性,这在以前如果没有定制开发是不可能实现的。
ECOSIRE 的 Power BI 团队专注于 Dynamics 365 分析 — 从简单的嵌入式仪表板到复杂的跨模块 Customer 360 和销售到现金分析。我们提供 Power BI 和 Dynamics 365 专业知识,以确保集成安全、高效,并与您的 D365 安全模型保持一致。
探索我们的Power BI ERP 集成服务 了解 Dynamics 365 实施详细信息,或联系我们的分析团队 设计一个 Power BI 架构,以最大限度地提高您的 Dynamics 365 投资。
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
Power BI for Odoo:12 个生产就绪的 DAX 模式
Power BI 中 Odoo 数据的 12 种经过实战检验的 DAX 模式:时间智能、客户群体、库存老化、多公司损益和复合键连接。
Power BI 增量刷新超过 1000 万行的表
适用于 10M 以上行表的 Power BI 增量刷新手册:分区设计、RangeStart/RangeEnd、刷新策略、查询折叠和 DirectQuery 混合。
Power BI Premium、Pro 与 Embedded:许可决策矩阵
Power BI 许可解码:Pro、PPU、Premium F-SKU、嵌入式 A-SKU、Fabric 容量。每个用户的成本、包含的功能和实际决策规则。