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.3k 語数|

Power BI + Dynamics 365: ネイティブ統合の詳細

Microsoft エコシステムにおける BI 統合としては、Power BI と Dynamics 365 ほど緊密なものはありません。どちらの製品も、同じクラウド インフラストラクチャ、認証モデル、データ プラットフォーム (Dataverse) を共有します。 Microsoft は、この統合をシームレスにするために多大な投資を行っており、埋め込まれた Power BI レポートが個別のログインを必要とせずに Dynamics 365 フォーム、ダッシュボード、ビュー内にネイティブに表示されるまでになりました。

しかし、多くの Dynamics 365 組織は、この統合の表面をなぞっただけです。このガイドでは、基本的な Dataverse 接続から埋め込みレポート、Dynamics 365 Sales 分析、Finance ダッシュボードの設計、CRM、ERP、Field Service にわたるクロスモジュール分析に至るまで、あらゆる統合パターンについて説明します。

重要なポイント

  • Dataverse コネクタは、すべての Dynamics 365 データに対するネイティブの優先接続方法です
  • 埋め込み Power BI レポートは、UI を離れることなく D365 フォームおよびダッシュボード内に表示されます。
  • Microsoft Fabric と Dataverse は同じ Azure インフラストラクチャを共有します — ファブリック ショートカットによりデータの移動が不要になります
  • Dynamics 365 Sales には、数分で展開できるネイティブ分析アプリ (Power BI テンプレート アプリ) があります
  • Finance and Operations は大規模な分析に Azure Data Lake 統合を使用しています
  • クロスモジュール分析 (販売 + 財務、サービス + 在庫) では、Dataverse テーブルを財務データと結合する必要があります
  • 行レベルのセキュリティは Dynamics 365 のビジネス ユニットとセキュリティ ロールを反映します
  • Power BI のページ分割されたレポートは、規制/法定レポートのために D365 Finance と統合されます。

Dynamics 365 製品とそのデータ ソース

どの Dynamics 365 製品がどのデータ プラットフォームを使用しているかを理解することは、統合設計に不可欠です。

D365 製品データプラットフォームプライマリコネクタ
販売データバースデータバースコネクタ
カスタマーサービスデータバースデータバースコネクタ
フィールドサービスデータバースデータバースコネクタ
マーケティングデータバースデータバースコネクタ
財務および運営Azure SQL / ADLSFinance & Operations コネクタ / ADLS
ビジネス セントラルAzure SQLビジネス セントラル コネクタ
商業データバース + Azure SQL複数
人事データバースデータバースコネクタ
プロジェクト運営データバースデータバースコネクタ

主な違い: Dataverse 上に構築された Dynamics 365 アプリ (Sales、Service、Field Service、Marketing) は Dataverse コネクタを使用します。 Dynamics 365 Finance & Operations は、専用の Power BI コネクタと Azure Data Lake エクスポートを備えた個別のクラウド ホスト型 Azure SQL データベースを使用します。


コネクタ 1: データバース (プライマリ コネクタ)

Dataverse コネクタは、すべての Dataverse ベースの D365 アプリに推奨される統合パスです。それは以下を提供します:

  • 標準テーブル: すべての D365 標準エンティティ (取引先、連絡先、商談、ケースなど)
  • カスタム テーブル: 組織によって作成されたカスタム テーブル
  • 選択列: ラベルを使用して値を検索します (内部コードだけでなく)
  • 関係: Power Query 関係の拡張を介してナビゲート可能
  • リアルタイム データ: データの移動なし - クエリは Dataverse に直接送信されます

セットアップ

  1. Power BI Desktop で: データの取得 → データバース
  2. 環境 URL: https://{your-environment}.crm.dynamics.com
  3. Dynamics 365 資格情報 (またはスケジュールされた更新の場合はサービス プリンシパル) を使用してサインインします。
  4. テーブルを参照し、必要なエンティティを選択します

D365 Sales Analytics の主要なテーブル

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 コネクタはコードとラベルの両方を返しますが、これは 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 Finance & Operations

D365 Finance and Operations は、Finance 仮想エンティティ レイヤーに接続するか、Azure Data Lake に直接接続する別のコネクタを使用します (大規模分析に推奨)。

オプション A: Finance & Operations コネクタ (エンティティ ストア)

Power BI の Dynamics 365 Finance コネクタは、Finance エンティティ ストア (Finance のバッチ プロセスによって更新される、読み取りに最適化された別のデータベース) に対してクエリを実行します。

  1. データの取得 → Dynamics 365 (オンライン) → 財務
  2. 環境 URL: https://{env}.operations.dynamics.com
  3. エンティティ ストア キューブとデータ エンティティに接続する

利用可能なエンティティ (例):

  • RetailSalesLine — 販売取引の詳細
  • VendTransaction — ベンダー支払いトランザクション
  • CustTransaction — 顧客のトランザクション
  • LedgerTransactionEntity — 総勘定元帳のエントリ
  • BudgetTransactionEntity — 予算エントリ

オプション B: Azure Data Lake のエクスポート (推奨)

大規模な Finance 分析 (1,000 万以上のトランザクション) の場合は、Finance の「Azure Data Lake へのエクスポート」機能を構成します。

  1. Finance & Operations 管理者で: [ワークスペース] → [データ管理] → [Azure Data Lake の構成]
  2. Azure Data Lake Storage Gen2 アカウントに接続します
  3. エクスポートするテーブルを選択します (増分または完全)
  4. Power BI は、Azure Data Lake Storage コネクタを介して ADLS から直接読み取ります

このアーキテクチャは、財務アプリケーションのパフォーマンスに影響を与えることなく、あらゆる規模の財務データを処理します。

オプション C: Microsoft ファブリック (新規導入に推奨)

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 統合機能の 1 つであり、D365 フォームとダッシュボードに直接埋め込まれたレポートです。

埋め込みレポートのセットアップ

  1. Power BI レポートを Premium または PPU ワークスペースに発行します (無料ユーザーが表示するには Premium 容量が必要です)
  2. Dynamics 365 設定: 管理 → システム設定 → レポート タブ 3.「Power BI の視覚化」を有効にします。
  3. 任意の D365 ダッシュボード: コンポーネントの追加 → Power BI タイル → レポート/ダッシュボードの選択
  4. D365 フォームの場合: フォーム エディターを開く → 挿入 → サブグリッドまたは Web リソース → PowerBI

コンテキスト フィルタリング (D365 レコードからのレポート フィルタ)

最も強力な埋め込みシナリオ: 現在の D365 レコードに自動的にフィルターをかける Power BI レポート。

たとえば、D365 アカウント レコードを開くと、そのアカウントの収益履歴、オープン ケース、パイプラインのみを示す埋め込み Power BI レポートが表示されます。ユーザーによるフィルター処理は必要ありません。

現在のレコードの GUID を Power BI レポート フィルターに渡す JavaScript Web リソースを介して構成します。

// 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 (販売、サービス) を財務データと結合します。

寸法出典フィールド
アカウント/顧客データバース (アカウント)名前、業界、地域、アカウント マネージャー
販売パイプラインデータバース (機会)オープン案件、予想収益
注文データバース (販売注文)確認済みの注文、収益
サポート事例データバース (事件)未解決のケース、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 では 1 日あたり最大 48 回の更新がサポートされます。

Dataverse で DirectQuery を使用できますか?

はい - Dataverse コネクタは DirectQuery モードをサポートしています。 Dataverse クエリは、Dataverse サービスに対してリアルタイムで実行されます。ほとんどの D365 販売およびサービス分析 (数百万件のレコード) では、Dataverse の DirectQuery が良好なパフォーマンスを発揮します。非常に大規模な Dataverse 環境 (1 億行以上) の場合は、パフォーマンスを向上させるために、データを Fabric レイクハウスにインポートすることを検討してください。

外部ユーザーに対して 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 チームは、単純な埋め込みダッシュボードから複雑なモジュール間の Customer 360 および Sales-to-Cash 分析に至るまで、Dynamics 365 分析を専門としています。 Power BI と Dynamics 365 の両方の専門知識を活用して、統合が安全でパフォーマンスが高く、D365 セキュリティ モデルと整合していることを保証します。

Dynamics 365 の実装の詳細については Power BI ERP 統合サービス を参照するか、Dynamics 365 への投資を最大化する Power BI アーキテクチャを設計するには 分析チームにお問い合わせください してください。

E

執筆者

ECOSIRE Research and Development Team

ECOSIREでエンタープライズグレードのデジタル製品を開発。Odoo統合、eコマース自動化、AI搭載ビジネスソリューションに関するインサイトを共有しています。

WhatsAppでチャット