Power BI + Dynamics 365 : plongée approfondie dans l'intégration native
Aucune intégration BI dans l'écosystème Microsoft n'est plus étroite que Power BI et Dynamics 365. Les deux produits partagent la même infrastructure cloud, le même modèle d'authentification et la même plateforme de données (Dataverse). Microsoft a investi massivement pour rendre cette intégration transparente, au point que les rapports Power BI intégrés apparaissent nativement dans les formulaires, tableaux de bord et vues Dynamics 365 sans aucune connexion distincte requise.
Pourtant, de nombreuses organisations Dynamics 365 ne font qu’effleurer la surface de cette intégration. Ce guide couvre tous les modèles d'intégration, de la connexion de base à Dataverse aux rapports intégrés, en passant par l'analyse Dynamics 365 Sales, la conception du tableau de bord Finance et l'analyse inter-modules dans CRM, ERP et Field Service.
Points clés à retenir
- Le connecteur Dataverse est la méthode de connexion native préférée pour toutes les données Dynamics 365
- Les rapports Power BI intégrés apparaissent dans les formulaires et tableaux de bord D365 sans quitter l'interface utilisateur
- Microsoft Fabric et Dataverse partagent la même infrastructure Azure : les raccourcis Fabric éliminent le mouvement des données
- Dynamics 365 Sales dispose d'une application d'analyse native (application modèle Power BI) déployable en quelques minutes
- Finance and Operations utilise l'intégration d'Azure Data Lake pour l'analyse à grande échelle
- Les analyses inter-modules (Ventes + Finance, Service + Inventaire) nécessitent de joindre les tables Dataverse avec les données Finance
- La sécurité au niveau des lignes reflète les unités commerciales et les rôles de sécurité de Dynamics 365
- Les rapports paginés Power BI s'intègrent à D365 Finance pour les rapports réglementaires/statutaires
Produits Dynamics 365 et leurs sources de données
Comprendre quel produit Dynamics 365 utilise quelle plateforme de données est essentiel pour la conception de l'intégration :
| Produit D365 | Plateforme de données | Connecteur principal |
|---|---|---|
| Ventes | Vers de données | Connecteur Dataverse |
| Service client | Vers de données | Connecteur Dataverse |
| Service sur le terrain | Vers de données | Connecteur Dataverse |
| Commercialisation | Vers de données | Connecteur Dataverse |
| Finances et opérations | Azure SQL/ADLS | Connecteur Finances & Opérations / ADLS |
| Centre d'affaires | Azure SQL | Connecteur Business Central |
| Commerce | Dataverse + Azure SQL | Plusieurs |
| Ressources humaines | Vers de données | Connecteur Dataverse |
| Opérations du projet | Vers de données | Connecteur Dataverse |
Distinction clé : les applications Dynamics 365 construites sur Dataverse (Ventes, Service, Field Service, Marketing) utilisent le connecteur Dataverse. Dynamics 365 Finance & Operations utilise des bases de données Azure SQL distinctes hébergées dans le cloud avec un connecteur Power BI dédié et l'exportation Azure Data Lake.
Connecteur 1 : Dataverse (connecteur principal)
Le connecteur Dataverse est le chemin d’intégration recommandé pour toutes les applications D365 basées sur Dataverse. Il fournit :
- Tableaux standards : Toutes les entités standards D365 (Comptes, Contacts, Opportunités, Cas, etc.)
- Tableaux personnalisés : toutes les tables personnalisées créées par votre organisation
- Colonnes de choix : valeurs de recherche avec des étiquettes (pas seulement des codes internes)
- Relations : navigable via l'expansion des relations Power Query
- Données en temps réel : aucun mouvement de données – les requêtes sont directement envoyées à Dataverse
Configuration
- Dans Power BI Desktop : Obtenir des données → Dataverse
- URL de l'environnement :
https://{your-environment}.crm.dynamics.com - Connectez-vous avec vos informations d'identification Dynamics 365 (ou votre principal de service pour une actualisation planifiée)
- Parcourez les tables et sélectionnez les entités requises
Tableaux clés pour 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
Gestion des ensembles d'options Dataverse
Les ensembles d'options Dataverse (colonnes de choix) stockent les codes entiers en interne. Le connecteur Dataverse renvoie à la fois le code et l’étiquette, mais vous devez gérer cela dans 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")
Meilleure pratique : utilisez le champ [email protected] que Dataverse renvoie automatiquement avec des étiquettes formatées.
Connecteur 2 : Dynamics 365 Finance & Operations
D365 Finance and Operations utilise un connecteur distinct qui se connecte à la couche d'entité virtuelle Finance ou directement à Azure Data Lake (recommandé pour les analyses à grande échelle).
Option A : Connecteur Finance & Opérations (Entity Store)
Le connecteur Dynamics 365 Finance de Power BI interroge le Finance Entity Store, une base de données distincte optimisée en lecture mise à jour par les processus par lots de Finance.
- Obtenir des données → Dynamics 365 (en ligne) → Finance
- URL de l'environnement :
https://{env}.operations.dynamics.com - Connectez-vous aux cubes Entity Store et aux entités de données
Entités disponibles (exemples) :
RetailSalesLine— Détails de la transaction de venteVendTransaction— Opérations de paiement des fournisseursCustTransaction— Transactions clientsLedgerTransactionEntity— Écritures du grand livre généralBudgetTransactionEntity— Écritures budgétaires
Option B : Exportation Azure Data Lake (recommandé)
Pour les analyses financières à grande échelle (plus de 10 millions de transactions), configurez la fonctionnalité « Exporter vers Azure Data Lake » de Finance :
- Dans l'administrateur Finance & Operations : Espace de travail → Gestion des données → Configurer Azure Data Lake
- Connectez-vous à votre compte Azure Data Lake Storage Gen2
- Sélectionnez les tables à exporter (incrémentielles ou complètes)
- Power BI lit directement depuis ADLS via le connecteur Azure Data Lake Storage
Cette architecture gère les données Finance à n'importe quelle échelle sans affecter les performances de l'application Finance.
Option C : Microsoft Fabric (recommandé pour les nouveaux déploiements)
Avec Microsoft Fabric, les données D365 Finance dans ADLS deviennent un raccourci Fabric — accessible à Power BI via le mode Direct Lake sans mouvement de données supplémentaire :
D365 Finance → ADLS Gen2 (via Export) → Fabric OneLake (Shortcut) → Power BI Direct Lake
Aucun pipeline ETL requis. Fabric lit les données ADLS comme s’il s’agissait de contenu OneLake natif.
Rapports Power BI intégrés dans Dynamics 365
Il s'agit de l'une des fonctionnalités d'intégration Dynamics 365 les plus précieuses de Power BI : des rapports intégrés directement dans les formulaires et les tableaux de bord D365.
Configuration des rapports intégrés
- Publiez le rapport Power BI sur un espace de travail Premium ou PPU (les utilisateurs gratuits ont besoin d'une capacité Premium pour l'affichage)
- Dans Paramètres Dynamics 365 : Administration → Paramètres système → onglet Rapports
- Activez : "Visualisations dans Power BI"
- Sur n'importe quel tableau de bord D365 : Ajoutez un composant → Vignette Power BI → Sélectionnez votre rapport/tableau de bord
- Sur les formulaires D365 : Ouvrez l'éditeur de formulaire → Insérer → Sous-grille ou ressource Web → PowerBI
Filtrage contextuel (filtres de rapport à partir de l'enregistrement D365)
Le scénario intégré le plus puissant : un rapport Power BI qui filtre automatiquement l'enregistrement D365 actuel.
For example, opening a D365 Account record shows an embedded Power BI report showing only that account's revenue history, open cases, and pipeline — no filtering needed by the user.
Configurez via la ressource Web JavaScript qui transmet le GUID de l'enregistrement actuel au filtre de rapport 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'
);
}
Analyse multi-modules : ventes + finances + service
La véritable puissance analytique de D365 + Power BI émerge lorsque vous joignez des données entre modules. Voici les principaux modèles d’analyse inter-modules :
Tableau de bord client 360
Rejoignez Dataverse (Ventes, Service) avec les données Finance :
| Dimensions | Source | Champs |
|---|---|---|
| Compte/Client | Dataverse (compte) | Nom, secteur d'activité, région, responsable de compte |
| Pipeline de ventes | Dataverse (opportunité) | Opportunités ouvertes, revenus attendus |
| Commandes | Dataverse (commande client) | Commandes confirmées, Chiffre d'affaires |
| Cas d'assistance | Dataverse (incident) | Dossiers ouverts, statut SLA, délai de résolution |
| Paiements | D365 Finances | Factures impayées, Historique des paiements |
| Contrats | Dataverse (contrat) | Contrats actifs, dates de renouvellement |
// 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
Analyses des ventes en espèces
Suivez le parcours depuis l’opportunité jusqu’au reçu de trésorerie :
Lead → Opportunity → Quote → Order → Invoice → Payment
Mesures DAX pour la conversion d'étape :
// 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)
)
Sécurité : mise en miroir des rôles de sécurité D365
Dynamics 365 utilise un modèle de sécurité sophistiqué : unités commerciales, rôles de sécurité, équipes et sécurité au niveau du champ. Le RLS de Power BI peut refléter ce modèle.
RLS basé sur les unités commerciales
// RLS filter — restrict data to user's business unit hierarchy
[OwningBusinessUnit] IN
PATHCONTAINS(BusinessUnit[BusinessUnitPath],
LOOKUPVALUE(
SystemUser[BusinessUnitId],
SystemUser[Email],
USERPRINCIPALNAME()
)
)
Isolation des données au niveau du vendeur
// Opportunities visible to current user (their own + manager's team)
CALCULATE(
[Total Pipeline Value],
FILTER(
Opportunity,
Opportunity[OwnerEmail] = USERPRINCIPALNAME() ||
Opportunity[OwnerManagerEmail] = USERPRINCIPALNAME()
)
)
For complex D365 security hierarchies, synchronize the D365 security role assignments to a Power BI dimension table daily, then apply RLS based on that mapping.
Tableaux de bord financiers D365
KPI du tableau de bord financier du CFO
// 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]
Questions fréquemment posées
Power BI fonctionne-t-il avec Dynamics 365 Business Central ?
Oui : Microsoft fournit un connecteur Business Central dédié pour Power BI. Business Central inclut par défaut des rapports Power BI intégrés dans ses pages Role Center. Le connecteur utilise les API OData et expose les pages API de Business Central (entrées financières, articles, clients, fournisseurs). L’actualisation des données Business Central nécessite une licence Power BI Pro ou Premium et prend en charge jusqu’à 48 actualisations par jour sur Premium.
Puis-je utiliser DirectQuery avec Dataverse ?
Oui : le connecteur Dataverse prend en charge le mode DirectQuery. Les requêtes Dataverse s'exécutent sur le service Dataverse en temps réel. Pour la plupart des analyses de ventes et de services D365 (millions d'enregistrements), DirectQuery sur Dataverse fonctionne bien. Pour les très grands environnements Dataverse (plus de 100 millions de lignes), envisagez d'importer des données dans un Lakehouse Fabric pour de meilleures performances.
Comment gérer la sécurité Dynamics 365 dans Power BI pour les utilisateurs externes ?
Les utilisateurs externes (clients, partenaires) accédant aux rapports Power BI intégrés nécessitent un traitement spécial. Les options incluent : les comptes invités Azure AD B2B avec des licences Power BI Pro ou Power BI Embedded (A SKU) avec authentification du principal de service et sécurité au niveau des lignes appliquées par votre application. N'exposez jamais de données D365 non filtrées dans des scénarios intégrés : appliquez toujours un RLS strict pour isoler les données de chaque utilisateur externe.
Qu'est-ce que l'intégration de Dynamics 365 Sales Insights avec Power BI ?
Dynamics 365 Sales Insights (Viva Sales) génère des analyses prédictives (score d'opportunités, santé des relations, prévision du pipeline) de manière native dans D365. Ces données sont stockées dans Dataverse et peuvent être connectées à Power BI pour une visualisation personnalisée. Power BI peut améliorer les données Sales Insights avec des références externes, une analyse des tendances historiques et des corrélations entre modules non disponibles dans les analyses natives de D365.
Power BI peut-il remplacer les tableaux de bord intégrés de Dynamics 365 ?
Power BI étend considérablement ce que les tableaux de bord intégrés de D365 peuvent faire : les visualisations personnalisées, les mesures DAX complexes, les analyses inter-modules et les rapports paginés ne sont tous pas disponibles dans l'éditeur de graphiques natif de D365. Cependant, les tableaux de bord D365 restent utiles pour les vues opérationnelles quotidiennes au sein de l'application. L'approche recommandée est la suivante : tableaux de bord natifs D365 pour des vues opérationnelles rapides, Power BI pour les rapports analytiques et exécutifs.
Prochaines étapes
L'intégration Power BI + Dynamics 365 est l'intégration BI la plus native et la plus riche en fonctionnalités du marché des logiciels d'entreprise. Les organisations qui investissent dans cette intégration bénéficient d'une visibilité unifiée sur les opérations CRM, ERP et Service, ce qui était auparavant impossible sans développement personnalisé.
L'équipe Power BI d'ECOSIRE est spécialisée dans l'analyse Dynamics 365, des simples tableaux de bord intégrés aux analyses complexes inter-modules Customer 360 et Sales-to-Cash. Nous apportons notre expertise Power BI et Dynamics 365 pour garantir que l'intégration est sécurisée, performante et alignée sur votre modèle de sécurité D365.
Découvrez nos services d'intégration Power BI ERP pour les détails de mise en œuvre de Dynamics 365, ou contactez notre équipe d'analyse pour concevoir une architecture Power BI qui maximise votre investissement Dynamics 365.
Rédigé par
ECOSIRE Research and Development Team
Création de produits numériques de niveau entreprise chez ECOSIRE. Partage d'analyses sur les intégrations Odoo, l'automatisation e-commerce et les solutions d'entreprise propulsées par l'IA.
Articles connexes
Building Financial Dashboards with Power BI
Step-by-step guide to building financial dashboards in Power BI covering data connections to accounting systems, DAX measures for KPIs, P&L visualisations, and best practices.
Case Study: Power BI Analytics for Multi-Location Retail
How a 14-location retail chain unified their reporting in Power BI connected to Odoo, replacing 40 spreadsheets with one dashboard and cutting reporting time by 78%.
GoHighLevel + Power BI: Advanced Reporting and Analytics
Connect GoHighLevel to Power BI for advanced marketing analytics. Build executive dashboards, track multi-channel ROI, and create automated reports that go beyond GHL's native reporting.