5.4 Embedding Power BI Reports, Dashboards & Tiles
Key Takeaways
- Power BI embedding in Model-Driven Apps requires enabling the environment feature setting 'Power BI visualization embedding' in the Power Platform Admin Center.
- The Power BI Report PCF control enables embedding interactive reports directly on model-driven forms with dynamic row-level contextual filtering using JSON filter parameters.
- System Dashboards in Dataverse can host embedded Power BI reports and tiles, packaged inside solutions for enterprise Application Lifecycle Management (ALM).
- The 'Visualize this view' capability empowers end users to generate instantaneous AI-assisted Power BI exploratory reports directly from any model-driven entity grid.
- Security boundaries operate independently: Dataverse security roles govern table privileges, whereas Power BI workspace permissions, Row-Level Security (RLS), and Power BI Pro/PPU licensing govern report rendering.
Embedding Power BI Reports, Dashboards & Tiles
Executive leadership and operational teams require deep analytical insights combined with transactional workflows. While native Dataverse charts and dashboards provide quick summaries of operational records, complex business intelligence—such as multi-source data mashups, historical trend forecasting, time-intelligence calculations, and advanced interactive visualizations—requires Microsoft Power BI.
Microsoft Power Platform provides deep native integration between Dataverse and Power BI. For the PL-200: Microsoft Power Platform Functional Consultant exam, you must master the prerequisites for enabling Power BI embedding, how to configure the Power BI Report PCF control on forms with contextual row-level filtering, how to build Power BI System Dashboards, and how to govern security and solution ALM.
1. Environment Prerequisites & Enabling Power BI in PPAC
Before any Power BI report, dashboard, or tile can be embedded within model-driven apps, the capability must be enabled at the environment level in the Power Platform Admin Center (PPAC).
+-----------------------------------------------------------------------------------+
| POWER BI EMBEDDING ENVIRONMENT ACTIVATION |
| |
| [PPAC: admin.powerplatform.microsoft.com] |
| | |
| v |
| Environments ---> [Select Environment] ---> Settings |
| | |
| v |
| Product ---> Features ---> [Power BI visualization embedding] = [ ON ] |
| | |
| v |
| Enables cross-origin iframe embedding and Entra ID Single Sign-On (SSO) |
+-----------------------------------------------------------------------------------+
Step-by-Step Administrative Activation
- Sign in to the Power Platform Admin Center (
admin.powerplatform.microsoft.com). - Navigate to Environments and select the target environment.
- Select Settings from the top command bar, expand Product, and select Features.
- Under the Power BI section, toggle Power BI visualization embedding to On.
- Click Save at the bottom of the page.
[!IMPORTANT] Prerequisite Impact: If 'Power BI visualization embedding' is disabled in PPAC, all embedded Power BI report controls on forms and system dashboards will fail to render, displaying a configuration error or blank container to end users.
Licensing Requirements
- Viewing Embedded Reports: Users must possess a valid Power BI Pro license, Power BI Premium Per User (PPU) license, or the report must reside in a workspace backed by a Power BI Premium Capacity / Microsoft Fabric Capacity (F64+ or P-SKU).
- Dataverse Access: Users must also have an assigned Dataverse Security Role providing read access to the model-driven app.
2. Embedding Power BI Reports on Model-Driven Forms (PCF Control)
To display an interactive Power BI report directly on a record form (e.g., displaying an Account's 3-year revenue breakdown on the Account form), consultants use the Power BI Report PCF Control (Microsoft.PowerBI.ReportControl).
+-----------------------------------------------------------------------------------+
| POWER BI FORM CONTROL CONTEXTUAL FILTERING |
| |
| [HOST FORM: Account "Alpine Ski House" (ID: 4f8a-9b2c...)] |
| +------------------------------------------------------------------------------+ |
| | Account Name: Alpine Ski House | Account Number: AC-401 | |
| | | |
| | +-- SECTION: Power BI Embedded Revenue Analytics --------------------------+ | |
| | | [Power BI Report Control] | | |
| | | Parameter: PowerBIReportPath = "https://app.powerbi.com/..." | | |
| | | Filter: {"Filter": "[Accounts].[accountid] eq '{RecordID}'"} | | |
| | | | | |
| | | +----------------------------------------------------------------------+ | | |
| | | | (Renders Power BI visual filtered ONLY to Alpine Ski House records!) | | | |
| | | +----------------------------------------------------------------------+ | | |
| | +--------------------------------------------------------------------------+ | |
| +------------------------------------------------------------------------------+ |
+-----------------------------------------------------------------------------------+
Control Properties & Parameters
When adding the Power BI Report control to a form column or section in the form designer, the consultant configures three primary properties:
PowerBIReportPath: The URL path of the Power BI report (e.g.,https://app.powerbi.com/groups/workspaceId/reports/reportId/ReportSection).PowerBIReportParameters(Contextual Row-Level Filtering): A JSON filter string or URL filter string that binds the report's dataset to the currently open record.PowerBIReportProperties: JSON settings controlling UI elements, such as showing or hiding the filter pane, navigation tabs, and bookmarks bar.
Contextual Row-Level Filtering Syntax
To ensure the embedded report dynamically displays data only for the record currently open on the form, the consultant defines a JSON filter parameter referencing the host record's primary key or unique code:
{
"Filter": "[Accounts].[accountid] eq '{RecordID}'",
"Alias": {
"Accounts": "dataverse_accounts_table"
}
}
{RecordID}is a system token automatically substituted at runtime with the 128-bit GUID of the currently active model-driven record.- Alternatively, filtering by specific text columns (such as Account Number) can be passed using URL filter syntax:
$filter=Customer/AccountNumber eq '{accountnumber}'
3. System Dashboards vs. Power BI Dashboards
Model-driven apps support two distinct dashboard architectures: native Dataverse System Dashboards and Power BI System Dashboards.
+-----------------------------------------------------------------------------------+
| DASHBOARD ARCHITECTURAL COMPARISON |
| |
| [NATIVE DATAVERSE SYSTEM DASHBOARD] [POWER BI EMBEDDED SYSTEM DASHBOARD] |
| - Real-time Dataverse SQL query - Aggregates multi-source datasets |
| - Standard charts, lists, timelines - High-fidelity interactive visuals |
| - Governed 100% by Dataverse Security - Governed by Dataverse + Power BI RLS |
| - Native solution component - Solution component + Workspace link |
| - Included in standard Power Apps license - Requires Power BI Pro / PPU / Fabric |
+-----------------------------------------------------------------------------------+
Detailed Comparison
| Capability | Native Dataverse System Dashboard | Power BI Embedded System Dashboard |
|---|---|---|
| Data Source Scope | Dataverse tables only (Single environment) | Multi-source (Dataverse, SQL, SAP, Web APIs, Excel) |
| Visualization Fidelity | Basic bar, line, pie charts and views | High-fidelity maps, decomposition trees, gauges, KPIs |
| Data Freshness | Real-time transactional queries | Scheduled refresh or DirectQuery via TDS endpoint |
| Solution ALM | 100% Native Solution component | Solution component (uses Environment Variables) |
| Licensing Cost | Included with Power Apps / Dynamics 365 | Requires Power BI Pro / PPU / Premium Capacity |
| Security Enforcement | Dataverse Security Roles & BU depths | Dual: Dataverse App Access + Power BI Workspace Roles |
Creating a Power BI System Dashboard in Solutions
- In the Maker Portal (
make.powerapps.com), open your Solution. - Select New > Dashboard > Power BI Embedded.
- In the dashboard dialog, select the Power BI Workspace and the target Power BI Report or Power BI Dashboard.
- Save and publish all customizations. The dashboard now appears in the model-driven app's dashboard selector for all authorized users.
4. 'Visualize This View' (Power BI Quick Reports)
In modern model-driven apps, end users do not need to wait for business intelligence developers to author custom reports. The Visualize this view feature provides instant, AI-assisted data exploration directly from any active entity grid.
+-----------------------------------------------------------------------------------+
| 'VISUALIZE THIS VIEW' WORKFLOW |
| |
| [Model-Driven View: Active Opportunities] |
| | |
| +---> Command Bar: Click ['Visualize this view'] |
| | |
| v |
| [Power BI Quick Report Engine] |
| - Automatically analyzes view columns and active filters |
| - Generates interactive charts, summary KPI cards, and slicers |
| - Allows users to customize fields on the fly |
| | |
| v |
| [Save Option] ---> Save to personal Power BI workspace for future access |
+-----------------------------------------------------------------------------------+
- Triggering: On the command bar of any table view (e.g., Active Accounts, Open Invoices), users click Visualize this view.
- Behavior: Power BI automatically creates an exploratory quick report based on the view's current column definitions and active user filters.
- Interactivity: Users can modify visual types, add fields to axes and legends, filter records, and optionally Save the generated report into their personal Power BI workspace.
5. Security Boundaries & Solution ALM for Power BI
Implementing Power BI in enterprise environments requires understanding the dual security model and managing multi-environment Application Lifecycle Management (ALM).
+-----------------------------------------------------------------------------------+
| DUAL SECURITY LAYER MODEL |
| |
| [LAYER 1: DATAVERSE SECURITY] |
| - Evaluates Model-Driven App Access & Security Roles |
| - If User has Role: Model-Driven Form / Dashboard Shell renders |
| |
| [LAYER 2: POWER BI SERVICE SECURITY] |
| - Evaluates Power BI Workspace Role / App Sharing & Entra ID SSO |
| - Evaluates Power BI Row-Level Security (RLS) on the dataset |
| - If User has Power BI access: Visuals render data |
| - If User LACKS Power BI access: "Report Not Available" / 403 Error displayed |
+-----------------------------------------------------------------------------------+
Managing ALM with Power BI Environment Variables
When deploying solutions across Development, Test, and Production environments, Power BI Workspaces and Report IDs typically differ.
- Best Practice: Utilize Power BI Environment Variables in Dataverse Solutions.
- Mechanics: Instead of hardcoding the Workspace GUID and Report GUID into the dashboard or form control, bind the properties to Power BI Environment Variables. When importing the managed solution into Test or Production, administrators specify the target environment's corresponding workspace and report IDs without modifying the underlying solution components.
A functional consultant embeds a Power BI report onto the Main Form of the Account table. The report must dynamically filter its visuals to only display invoices and payment history associated with the specific Account currently being viewed by the user. How should the consultant configure the Power BI Report PCF control properties?
An organization deploys a new model-driven app with embedded Power BI system dashboards to a sandbox environment. When test users open the dashboard, they receive an error stating that Power BI embedding is not supported in this environment, and the dashboard frame remains blank. What must the administrator do to resolve this issue?
A business user with the 'Sales Manager' security role opens a model-driven app. The user can successfully access all Account and Opportunity records in Dataverse. However, when navigating to the 'Executive Sales Overview' Power BI Embedded System Dashboard, the dashboard container displays an error: 'Report not found or you do not have permission to view it.' What is the root cause of this error?
A solution architect is designing the Application Lifecycle Management (ALM) strategy for a solution that contains Power BI Embedded System Dashboards. The development, test, and production environments connect to different Power BI workspaces and datasets. How should the architect parameterize the dashboard configuration to avoid manual reconfiguration post-deployment?