Power BI + Dynamics 365: Native Integration Deep Dive

Deep dive into Power BI and Dynamics 365 native integration covering Dataverse connector, embedded reports, cross-module analytics, and CRM and ERP dashboard patterns.

E
ECOSIRE Research and Development Team
|2026年3月19日6 分钟阅读1.2k 字数|

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”功能:

  1. 在财务和运营管理中:工作区 → 数据管理 → 配置 Azure Data Lake
  2. 连接到您的 Azure Data Lake Storage Gen2 帐户
  3. 选择要导出的表(增量或全部)
  4. 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 表单和仪表板中的报表。

设置嵌入报告

  1. 将 Power BI 报表 发布到 Premium 或 PPU 工作区(免费用户需要 Premium 容量才能查看)
  2. 在 Dynamics 365 设置中:管理 → 系统设置 → 报告选项卡
  3. 启用:“Power BI 中的可视化”
  4. 在任何 D365 仪表板上:添加组件 → Power BI 磁贴 → 选择您的报表/仪表板
  5. 在 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 投资。

E

作者

ECOSIRE Research and Development Team

在 ECOSIRE 构建企业级数字产品。分享关于 Odoo 集成、电商自动化和 AI 驱动商业解决方案的洞见。

通过 WhatsApp 聊天