Tutorial: Embed Power BI paginated reports into an application for your organization

In Power BI, you can embed paginated reports into an application for your organization by using the user owns data scenario.

Paginated reports are reports designed for high-quality printing. Usually these reports contain a lot of data, rendered in a way that makes it fit printed pages. To understand how Power BI supports paginated reports, see What are paginated reports in Power BI Premium?

User owns data lets your application extend the Power BI service so it can use embedded analytics. This tutorial demonstrates how to integrate a paginated report into an application.

You use the Power BI .NET SDK with the Power BI JavaScript API to embed Power BI into an application for your organization.

Power BI Embed Report

In this tutorial, you learn the following tasks:

  • Register an application in Azure.
  • Embed a Power BI paginated report into an application using your Power BI tenant.

Prerequisites

To get started, you're required to have:

If you're not signed up for Power BI Pro, sign up for a free trial before you begin.

Set up your Power BI environment

Follow the instructions in this section to set up Power BI for embedding your paginated reports.

Register a server-side web application app

Follow the instructions in Register an Azure AD application to use with Power BI to register a server-side web application app.

Note

When registering the app, make sure to do the following:

  • Get the application secret
  • Apply the Report.ReadAll permissions (scope) to your app.

Create a dedicated capacity

By creating a dedicated capacity, you can take advantage of having a dedicated resource for the content in your app workspace. For paginated reports, you must back your app workspace with at least a P1 capacity. You can create a dedicated capacity by using Power BI Premium.

The following table lists the Power BI Premium SKUs that can be used to create a dedicated capacity for paginated reports in Microsoft Office 365:

Capacity node Total vCores
(back end + front end)
Back-end vCores Front-end vCores DirectQuery/live connection limits
P1 8 vCores 4 vCores, 25 GB of RAM 4 vCores 30 per second
P2 16 vCores 8 vCores, 50 GB of RAM 8 vCores 60 per second
P3 32 vCores 16 vCores, 100 GB of RAM 16 vCores 120 per second
P4 64 vCores 32 vCores, 200 GB of RAM 32 vCores 240 per second
P5 128 vCores 64 vCores, 400 GB of RAM 64 vCores 480 per second

Enable paginated reports workload

You need to enable the paginated report workload on your dedicated capacity.

  1. Sign into Power BI > Admin portal > Capacity settings.

  2. Select the capacity that has the workspace you want to upload the paginated report to.

    Select capacity

  3. Expand Workloads.

    Expand workloads

  4. Activate the paginated reports workload.

    Paginated reports workload

Assign an app workspace to a dedicated capacity

After you create a dedicated capacity, you can assign your app workspace to that dedicated capacity. To complete this process, follow these steps:

  1. Within the Power BI service, expand workspaces and select More for the workspace you're using for embedding your content. Then select Workspace settings.

    Edit a workspace

  2. Select Premium and enable Dedicated capacity. Select the dedicated capacity you created. Then select Save.

    Assign a dedicated capacity

  3. After you select Save, you should see a diamond next to the app workspace name.

    App workspace tied to a capacity

Create and publish your Power BI paginated reports

You can create your paginated reports by using the Power BI Report Builder. Then you can upload the report to an app workspace assigned to at least a P1 capacity, and turn on the paginated reports workload. The end user uploading the report must have a Power BI Pro license to publish to an app workspace.

Embed your content by using the sample application

This sample is deliberately kept simple for demonstration purposes.

Follow the steps below to start embedding your content using the sample application.

  1. Download Visual Studio (version 2013 or later). Make sure to download the latest NuGet package.

  2. Download PowerBI-Developer-Samples, and open .NET Framework > Embed for your organization > integrate-web-app > PBIWebApp.

    PowerBI-Developer-Samples

  3. Open the Cloud.config file in the sample application, and fill in the following fields to run your application:

    Cloud.config file

Application ID

Fill in the applicationId information with the Application ID from Azure. The applicationId is used by the application to identify itself to the users from which you're requesting permissions.

To get the applicationId, follow these steps:

  1. Sign into the Azure portal.

  2. In the left-hand navigation pane, select All Services, and select App Registrations.

  3. Select the application that needs the applicationId.

    Choosing App

  4. There's an Application ID that is listed as a GUID. Use this Application ID as the applicationId for the application.

    applicationId

Workspace ID

Fill in the workspaceId information with the app workspace (group) GUID from Power BI. You can get this information either from the URL when signed into the Power BI service or using PowerShell.

URL

workspaceId

PowerShell

Get-PowerBIworkspace -name "User Owns Embed Test"

workspaceId from PowerShell

Report ID

Fill in the reportId information with the report GUID from Power BI. You can get this information either from the URL when signed into the Power BI service or using PowerShell.

reportId

PowerShell

Get-PowerBIworkspace -name "User Owns Embed Test" | Get-PowerBIReport -Name "Sales Paginated Report"

reportId from PowerShell

AADAuthorityUrl

Fill in the AADAuthorityUrl information with the URL that either allows you to embed within your organizational tenant or embed with a guest user.

For embedding with your organizational tenant, use the URL - https://login.microsoftonline.com/common/oauth2/authorize.

For embedding with a guest, use the URL - https://login.microsoftonline.com/report-owner-tenant-id - where you add the tenant ID of the report owner in replacement of report-owner-tenant-id.

Run the application

  1. Select Run in Visual Studio.

    Run the application

  2. Then select Embed Report. Depending on which content you choose to test with - reports, dashboards or tiles - then select that option in the application.

    Select content

  3. Now you can view the report in the sample application.

    View the paginated report in the application

Next steps

In this tutorial, you learned how to embed Power BI paginated reports into an application by using your Power BI organization account.

If you have more questions, try asking the Power BI Community.