Tutorial: Incorporar conteúdos do Power BI numa aplicação para a sua organizaçãoTutorial: Embed Power BI content into an application for your organization

No Power BI, pode incorporar relatórios (do Power BI ou Paginados), dashboards ou mosaicos numa aplicação através do esquema Dados Pertencem ao Utilizador.In Power BI, you can embed reports (Power BI or Paginated), dashboards, or tiles into an application by using user owns data. O esquema User Owns Data (Dados Pertencem ao Utilizador) permite que a sua aplicação expanda o serviço Power BI para que possa utilizar a análise incorporada.User owns data lets your application extend the Power BI service so it can use embedded analytics. Este tutorial demonstra como integrar um relatório (do Power BI ou Paginado) numa aplicação.This tutorial demonstrates how to integrate a report (Power BI or Paginated) into an application. Utilize o SDK de .NET do Power BI com a API JavaScript do Power BI para incorporar o Power BI numa aplicação para a sua organização.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

Neste tutorial, irá aprender as seguintes tarefas:In this tutorial, you learn the following tasks:

  • Registe uma aplicação no Azure.Register an application in Azure.
  • Incorporar um relatório do Power BI ou um relatório Paginado numa aplicação com o seu inquilino do Power BI.Embed a Power BI or Paginated report into an application using your Power BI tenant.

Pré-requisitosPrerequisites

Para começar, precisa de:To get started, you're required to have:

Se não estiver inscrito no Power BI Pro, inscreva-se para uma avaliação gratuita antes de começar.If you're not signed up for Power BI Pro, sign up for a free trial before you begin.

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.If you don’t have an Azure subscription, create a free account before you begin.

Configurar o ambiente de desenvolvimento de análise incorporadaSet up your embedded analytics development environment

Antes de começar a incorporar relatórios, dashboards ou mosaicos na sua aplicação, tem de certificar-se de que o seu ambiente permite a incorporação com o Power BI.Before you start embedding reports, dashboard, or tiles into your application, you need to make sure your environment allows for embedding with Power BI.

Pode utilizar a Ferramenta de configuração de incorporação para começar e transferir rapidamente uma aplicação de exemplo que o ajuda a orientar-se durante a criação de um ambiente e a incorporação de um relatório.You can go through the Embedding setup tool, so you can quickly get started and download a sample application that helps you walk through creating an environment and embedding a report. No caso de incorporar um relatório paginado, tem de atribuir uma capacidade mínima de A4/P1 para a área de trabalho da aplicação criada.In the case of embedding a paginated report you need to assign at least A4/P1 capacity to the created app workspace.

Se optar por configurar o ambiente manualmente, pode continuar abaixo.If you choose to set up the environment manually, you can continue below.

Registar uma aplicação no Azure Active DirectoryRegister an application in Azure Active Directory

Registe a sua aplicação com o Azure Active Directory para permitir que a aplicação aceda às APIs REST do Power BI.Register your application with Azure Active Directory to allow your application access to the Power BI REST APIs. O registo da aplicação permite-lhe estabelecer uma identidade para a sua aplicação e especificar permissões para recursos REST do Power BI.Registering your application allows you to establish an identity for your application and specify permissions to Power BI REST resources.

Tem de continuar com o registo de uma aplicação Web do lado do servidor.You need to proceed with registering a server-side web application app. Registe uma aplicação Web do lado do servidor para criar um segredo da aplicação.You register a server-side web application to create an application secret.

Configurar o ambiente do Power BISet up your Power BI environment

Criar uma área de trabalho de aplicaçãoCreate an app workspace

Se estiver a incorporar relatórios, dashboards ou mosaicos para os seus clientes, coloque o conteúdo dentro de uma área de trabalho de aplicação.If you're embedding reports, dashboards, or tiles for your customers, then you have to place your content within an app workspace. Existem diferentes tipos de áreas de trabalho que pode configurar: áreas de trabalho tradicionais ou as novas áreas de trabalho.There are different types of workspaces that you can set up: the traditional workspaces or the new workspaces.

Criar e publicar relatórios do Power BICreate and publish your Power BI reports

Pode criar os seus relatórios e conjuntos de dados com o Power BI Desktop.You can create your reports and datasets by using Power BI Desktop. Em seguida, pode publicar esses relatórios numa área de trabalho da aplicação.Then you can publish those reports to an app workspace. O utilizador final que publica os relatórios tem de ter uma licença do Power BI Pro para poder publicar numa área de trabalho da aplicação.The end user publishing the reports needs to have a Power BI Pro license to publish to an app workspace.

  1. Transfira o exemplo de Demonstração a partir do GitHub.Download the sample Demo from GitHub.

    Transferir a demonstração

  2. Abra o relatório .pbix de exemplo no Power BI Desktop.Open the sample .pbix report in Power BI Desktop.

    Exemplo de relatório do Power BI Desktop

  3. Publique na área de trabalho da aplicação.Publish to the app workspace.

    Publicar um relatório do Power BI Desktop

    Agora pode ver o relatório no serviço Power BI online.Now you can view the report in the Power BI service online.

    Visualizar um relatório do Power BI Desktop

Criar e publicar relatórios paginadosCreate and publish your paginated reports

Pode criar os seus relatórios paginados com o Power BI Report Builder. Depois, pode carregar o relatório para uma área de trabalho da aplicação atribuída a uma capacidade mínima de A4/P1.You can create your paginated reports by using Power BI Report Builder.Then you can upload the report to an app workspace assigned to at least A4/P1 capacity. O utilizador final que carrega o relatório tem de ter uma licença do Power BI Pro para poder publicar numa área de trabalho da aplicação.The end-user uploading the report must have a Power BI Pro license to publish to an app workspace.

Incorporar os seus conteúdos com a aplicação de exemploEmbed your content by using the sample application

Este exemplo foi simplificado de forma deliberada para fins de demonstração.This sample is deliberately kept simple for demonstration purposes.

Siga os passos abaixo para começar a incorporar os seus conteúdos através da aplicação de exemplo.Follow the steps below to start embedding your content using the sample application.

  1. Transfira o Visual Studio (versão 2013 ou posterior).Download Visual Studio (version 2013 or later). Certifique-se de que transfere o pacote NuGet mais recente.Make sure to download the latest NuGet package.

  2. Transfira o User Owns Data sample (exemplo da estrutura Os Dados Pertencem ao Utilizador) a partir do GitHub para começar.Download the User Owns Data sample from GitHub to get started.

    Exemplo de aplicação User Owns Data

  3. Abra o ficheiro Cloud.config na aplicação de exemplo.Open the Cloud.config file in the sample application.

    Existem campos que tem de preencher para executar a aplicação.There are fields you need to fill in to run the application.

    CampoField
    ID da AplicaçãoApplication ID
    Segredo da AplicaçãoApplication Secret
    ID da Área de TrabalhoWorkspace ID
    ID do RelatórioReport ID
    AADAuthorityUrlAADAuthorityUrl

    Cloud.config file

ID da AplicaçãoApplication ID

Preencha as informações de applicationId com o ID da Aplicação do Azure.Fill in the applicationId information with the Application ID from Azure. O applicationId serve para a aplicação se identificar junto dos utilizadores aos quais está a pedir permissões.The applicationId is used by the application to identify itself to the users from which you're requesting permissions.

Para obter o applicationId, siga estes passos:To get the applicationId, follow these steps:

  1. Inicie sessão no portal do Azure.Sign into the Azure portal.

  2. No painel de navegação à esquerda, selecione Todos os serviços e Registos de aplicações.In the left-hand navigation pane, select All Services, and select App Registrations.

  3. Selecione a aplicação que precisa do applicationId.Select the application that needs the applicationId.

    Escolher Aplicação

  4. Existe um ID da Aplicação listado como um GUID.There's an Application ID that is listed as a GUID. Utilize este ID da Aplicação como o applicationId da aplicação.Use this Application ID as the applicationId for the application.

    applicationId

ID da área de trabalhoWorkspace ID

Preencha as informações do workspaceId com o GUID da área de trabalho de aplicação (grupo) do Power BI.Fill in the workspaceId information with the app workspace (group) GUID from Power BI. Pode obter estas informações a partir do URL (quando tiver sessão iniciada no serviço Power BI) ou através do PowerShell.You can get this information either from the URL when signed into the Power BI service or using Powershell.

URLURL

workspaceId

PowerShellPowershell

Get-PowerBIworkspace -name "User Owns Embed Test"

workspaceId do PowerShell

ID do RelatórioReport ID

Preencha as informações do reportId com o GUID de relatório do Power BI.Fill in the reportId information with the report GUID from Power BI. Pode obter estas informações a partir do URL (quando tiver sessão iniciada no serviço Power BI) ou através do PowerShell.You can get this information either from the URL when signed into the Power BI service or using Powershell.

URL do Relatório do Power BIPower BI Report URL

reportId do PBI

URL do Relatório PaginadoPaginated Report URL

URL do Relatório PaginadoPaginated Report URL

reportId paginado

PowerShellPowershell

Get-PowerBIworkspace -name "User Owns Embed Test" | Get-PowerBIReport

reportId do PowerShell

AADAuthorityUrlAADAuthorityUrl

Preencha as informações AADAuthorityUrl com o URL que lhe permite incorporar dentro do seu inquilino organizacional ou incorporar com um utilizador convidado.Fill in the AADAuthorityUrl information with the URL that either allows you to embed within your organizational tenant or embed with a guest user.

Para incorporar com o seu inquilino organizacional, utilize o URL: https://login.microsoftonline.com/common/oauth2/authorize .For embedding with your organizational tenant, use the URL - https://login.microsoftonline.com/common/oauth2/authorize.

Para incorporar com um utilizador convidado, utilize o URL: https://login.microsoftonline.com/report-owner-tenant-id . Substitua report-owner-tenant-id pelo ID do inquilino do proprietário do relatório.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.

Executar a aplicaçãoRun the application

  1. Selecione Executar no Visual Studio.Select Run in Visual Studio.

    Executar a aplicação

  2. Em seguida, selecione Incorporar Relatório.Then select Embed Report. Consoante os conteúdos que selecionar para efetuar os testes (relatórios, dashboards ou mosaicos), selecione essa opção na aplicação.Depending on which content you choose to test with - reports, dashboards or tiles - then select that option in the application.

    Selecionar o conteúdo

  3. Agora pode visualizar o relatório na aplicação de exemplo.Now you can view the report in the sample application.

    Ver o relatório na aplicação

Incorporar os seus conteúdos na aplicaçãoEmbed your content within your application

Embora os passos para incorporar os seus conteúdos possam ser efetuados com as APIs REST do Power BI, os códigos de exemplo descritos neste artigo são efetuados com o .NET SDK.Even though the steps to embed your content can be done with the Power BI REST APIs, the example codes described in this article are made with the .NET SDK.

Para integrar um relatório numa aplicação Web, utilize a API REST do Power BI ou o SDK C# do Power BI.To integrate a report into a web app, you use the Power BI REST API or the Power BI C# SDK. Também utilize um token de acesso de autorização do Azure Active Directory para obter um relatório.You also use an Azure Active Directory authorization access token to get a report. Em seguida, carregue o relatório com o mesmo token de acesso.Then you load the report by using the same access token. A API REST do Power BI proporciona acesso programático a recursos específicos do Power BI.The Power BI Rest API provides programmatic access to specific Power BI resources. Para obter mais informações, veja APIs REST do Power BI e API JavaScript do Power BI.For more information, see Power BI REST APIs and the Power BI JavaScript API.

Obter um token de acesso do Azure ADGet an access token from Azure AD

Na sua aplicação, terá de obter um token de acesso do Azure AD antes de poder fazer chamadas para a API REST do Power BI.Within your application, you must get an access token from Azure AD before you can make calls to the Power BI REST API. Para obter mais informações, veja Authenticate users and get an Azure AD access token for your Power BI app (Autenticar utilizadores e obter um token de acesso do Azure AD para a sua aplicação do Power BI).For more information, see Authenticate users and get an Azure AD access token for your Power BI app.

Obter um relatórioGet a report

Para obter um relatório do Power BI ou um relatório paginado, utilize a operação Obter Relatórios, que obtém uma lista de relatórios do Power BI e relatórios paginados.To get a Power BI or paginated report, you use the Get Reports operation, which gets a list of Power BI and paginated reports. Da lista de relatórios, pode obter um ID de relatório.From the list of reports, you can get a report ID.

Obter relatórios com um token de acessoGet reports by using an access token

A operação Obter Relatórios devolve uma lista de relatórios.The Get Reports operation returns a list of reports. Pode obter um único relatório a partir da lista de relatórios.You can get a single report from the list of reports.

Para efetuar a chamada à API REST, tem de incluir um cabeçalho de Autorização no formato de Portador {token de acesso} .To make the REST API call, you must include an Authorization header in the format of Bearer {access token}.

Obter relatórios com a API RESTGet reports with the REST API

O seguinte exemplo de código mostra-lhe como obter relatórios com a API REST:The following code sample shows you how to retrieve reports with the REST API:

Nota

Está disponível um exemplo de como obter um item de conteúdo que pretende incorporar no ficheiro Default.aspx.cs na aplicação de exemplo.A sample of getting a content item that you want to embed is available in the Default.aspx.cs file in the sample application. Os exemplos são um relatório, um dashboard ou um mosaico.Examples are a report, dashboard, or tile.

using Newtonsoft.Json;

//Get a Report. In this sample, you get the first Report.
protected void GetReport(int index)
{
    //Configure Reports request
    System.Net.WebRequest request = System.Net.WebRequest.Create(
        String.Format("{0}/Reports",
        baseUri)) as System.Net.HttpWebRequest;

    request.Method = "GET";
    request.ContentLength = 0;
    request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));

    //Get Reports response from request.GetResponse()
    using (var response = request.GetResponse() as System.Net.HttpWebResponse)
    {
        //Get reader from response stream
        using (var reader = new System.IO.StreamReader(response.GetResponseStream()))
        {
            //Deserialize JSON string
            PBIReports Reports = JsonConvert.DeserializeObject<PBIReports>(reader.ReadToEnd());

            //Sample assumes at least one Report.
            //You could write an app that lists all Reports
            if (Reports.value.Length > 0)
            {
                var report = Reports.value[index];

                txtEmbedUrl.Text = report.embedUrl;
                txtReportId.Text = report.id;
                txtReportName.Text = report.name;
            }
        }
    }
}

//Power BI Reports used to deserialize the Get Reports response.
public class PBIReports
{
    public PBIReport[] value { get; set; }
}
public class PBIReport
{
    public string id { get; set; }
    public string reportType { get; set }
    public string name { get; set; }
    public string webUrl { get; set; }
    public string embedUrl { get; set; }
}

Obter relatórios com o SDK .NETGet reports by using the .NET SDK

Pode utilizar o SDK .NET para obter uma lista de relatórios em vez de chamar a API REST diretamente.You can use the .NET SDK to retrieve a list of reports instead of calling the REST API directly. O seguinte exemplo de código mostra-lhe como listar relatórios:The following code sample shows you how to list reports:

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;

var tokenCredentials = new TokenCredentials(<ACCESS TOKEN>, "Bearer");

// Create a Power BI Client object. It is used to call Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
    // Get the first report all reports in that workspace
    ODataResponseListReport reports = client.Reports.GetReports();

    Report report = reports.Value.FirstOrDefault();

    var embedUrl = report.EmbedUrl;
}

Carregar um relatório com JavaScriptLoad a report by using JavaScript

Pode utilizar JavaScript para carregar um relatório para um elemento div na sua página Web.You can use JavaScript to load a report into a div element on your web page. O seguinte exemplo de código mostra-lhe como obter um relatório a partir de uma determinada área de trabalho:The following code sample shows you how to retrieve a report from a given workspace:

Nota

Está disponível um exemplo de como obter um item de conteúdo que pretende incorporar no ficheiro Default.aspx na aplicação de exemplo.A sample of loading a content item that you want to embed is available in the Default.aspx file in the sample application.

<!-- Embed Report-->
<div> 
    <asp:Panel ID="PanelEmbed" runat="server" Visible="true">
        <div>
            <div><b class="step">Step 3</b>: Embed a report</div>

            <div>Enter an embed url for a report from Step 2 (starts with https://):</div>
            <input type="text" id="tb_EmbedURL" style="width: 1024px;" />
            <br />
            <input type="button" id="bEmbedReportAction" value="Embed Report" />
        </div>

        <div id="reportContainer"></div>
    </asp:Panel>
</div>

Site.masterSite.master

window.onload = function () {
    // client side click to embed a selected report.
    var el = document.getElementById("bEmbedReportAction");
    if (el.addEventListener) {
        el.addEventListener("click", updateEmbedReport, false);
    } else {
        el.attachEvent('onclick', updateEmbedReport);
    }

    // handle server side post backs, optimize for reload scenarios
    // show embedded report if all fields were filled in.
    var accessTokenElement = document.getElementById('MainContent_accessTokenTextbox');
    if (accessTokenElement !== null) {
        var accessToken = accessTokenElement.value;
        if (accessToken !== "")
            updateEmbedReport();
    }
};

// update embed report
function updateEmbedReport() {

    // check if the embed url was selected
    var embedUrl = document.getElementById('tb_EmbedURL').value;
    if (embedUrl === "")
        return;

    // get the access token.
    accessToken = document.getElementById('MainContent_accessTokenTextbox').value;

    // Embed configuration used to describe the what and how to embed.
    // This object is used when calling powerbi.embed.
    // You can find more information at https://github.com/Microsoft/PowerBI-JavaScript/wiki/Embed-Configuration-Details.
    var config = {
        type: 'report',
        accessToken: accessToken,
        embedUrl: embedUrl
    };

    // Grab the reference to the div HTML element that will host the report.
    var reportContainer = document.getElementById('reportContainer');

    // Embed the report and display it within the div container.
    var report = powerbi.embed(reportContainer, config);

    // report.on will add an event handler which prints to Log window.
    report.on("error", function (event) {
        var logView = document.getElementById('logView');
        logView.innerHTML = logView.innerHTML + "Error<br/>";
        logView.innerHTML = logView.innerHTML + JSON.stringify(event.detail, null, "  ") + "<br/>";
        logView.innerHTML = logView.innerHTML + "---------<br/>";
    }
  );
}

Utilizar uma capacidade dedicada do Power BI PremiumUsing a Power BI Premium dedicated capacity

Agora que concluiu o desenvolvimento da sua aplicação, está na altura de atribuir uma capacidade dedicada à área de trabalho da sua aplicação.Now that you've completed developing your application, it's time to back your app workspace with a dedicated capacity.

Criar uma capacidade dedicadaCreate a dedicated capacity

Ao criar uma capacidade dedicada, pode tirar partido da vantagem de ter um recurso dedicado ao conteúdo na área de trabalho da sua aplicação.By creating a dedicated capacity, you can take advantage of having a dedicated resource for the content in your app workspace. A sua área de trabalho da aplicação precisa de uma capacidade mínima de A4/P1 para suportar relatórios paginados. Pode criar uma capacidade dedicada com o Power BI Premium.For paginated reports you must back your app workspace with at least A4/P1 capacity.You can create a dedicated capacity by using Power BI Premium.

A tabela seguinte lista as SKUs do Power BI Premium disponíveis no Microsoft Office 365:The following table lists the Power BI Premium SKUs available in Microsoft Office 365:

Nó de capacidadeCapacity node Total de vCoresTotal vCores
(back-end + front-end)(back end + front end)
vCores de back-endBack-end vCores vCores de front-endFront-end vCores Limites do DirectQuery/ligação em diretoDirectQuery/live connection limits
EM1EM1 1 vCore1 vCore 0,5 vCore, 10 GB de RAM0.5 vCore, 10 GB of RAM 0,5 vCore0.5 vCore 3,75 por segundo3.75 per second
EM2EM2 2 vCores2 vCores 1 vCore, 10 GB de RAM1 vCore, 10 GB of RAM 1 vCores1 vCores 7,5 por segundo7.5 per second
EM3EM3 4 vCores4 vCores 2 vCores, 10 GB de RAM2 vCores, 10 GB of RAM 2 vCores2 vCores 15 por segundo15 per second
P1P1 8 vCores8 vCores 4 vCores, 25 GB de RAM4 vCores, 25 GB of RAM 4 vCores4 vCores 30 por segundo30 per second
P2P2 16 vCores16 vCores 8 vCores, 50 GB de RAM8 vCores, 50 GB of RAM 8 vCores8 vCores 60 por segundo60 per second
P3P3 32 vCores32 vCores 16 vCores, 100 GB de RAM16 vCores, 100 GB of RAM 16 vCores16 vCores 120 por segundo120 per second
P4P4 64 vCores64 vCores 32 vCores, 200 GB de RAM32 vCores, 200 GB of RAM 32 vCores32 vCores 240 por segundo240 per second
P5P5 128 vCores128 vCores 64 vCores, 400 GB de RAM64 vCores, 400 GB of RAM 64 vCores64 vCores 480 por segundo480 per second

Nota

  • Quando estiver a tentar incorporar com aplicações do Microsoft Office, pode utilizar EM SKUs para aceder ao conteúdo com uma licença gratuita do Power BI.When you’re trying to embed with Microsoft Office apps, you can use EM SKUs to access content with a free Power BI license. Mas não pode aceder a conteúdo com uma licença gratuita do Power BI quando estiver a utilizar o Powerbi.com ou o Power BI Mobile.But you can't access content with a free Power BI license when you're using Powerbi.com or Power BI mobile.
  • Ao tentar incorporar com aplicações do Microsoft Office, ao utilizar o Powerbi.com ou o Power BI Mobile, pode aceder aos conteúdos com uma licença gratuita do Power BI.When you're trying to embed with Microsoft Office apps by using Powerbi.com or Power BI mobile, you can access content with a free Power BI license.

Atribuir uma área de trabalho da aplicação a uma capacidade dedicadaAssign an app workspace to a dedicated capacity

Após criar a capacidade dedicada, pode atribuir a área de trabalho da sua aplicação a essa capacidade dedicada.After you create a dedicated capacity, you can assign your app workspace to that dedicated capacity. Para concluir este processo, siga estes passos:To complete this process, follow these steps:

  1. No serviço Power BI, expanda as áreas de trabalho e selecione as reticências da área de trabalho que está a utilizar para incorporar os seus conteúdos.Within the Power BI service, expand workspaces and select the ellipsis for the workspace you're using for embedding your content. Em seguida, selecione Editar área de trabalho.Then select Edit workspaces.

    Editar uma área de trabalho

  2. Expanda Avançado e ative Capacidade dedicada.Expand Advanced and enable Dedicated capacity. Selecione a capacidade dedicada que criou.Select the dedicated capacity you created. Em seguida, selecione Guardar.Then select Save.

    Atribuir uma capacidade dedicada

  3. Após selecionar Guardar, deverá ver um diamante junto ao nome da área de trabalho da aplicação.After you select Save, you should see a diamond next to the app workspace name.

    Área de trabalho da aplicação associada a uma capacidade

Definições de administraçãoAdmin settings

Os administradores globais ou os administradores de serviço Power BI podem permitir a capacidade de utilizar as APIs REST, ou ativar ou desativar um inquilino.Global admins or Power BI service administrators can turn the ability to use the REST APIs on or off for a tenant. Os administradores do Power BI podem configurar esta definição para toda a organização ou para grupos de segurança individuais.Power BI admins can set this setting for the entire organization or for individual security groups. Está ativada para toda a organização por predefinição.It's enabled for the entire organization by default. Pode efetuar estas alterações no portal de administração do Power BI.You can make these changes in the Power BI admin portal.

Próximos passosNext steps

Neste tutorial, aprendeu a incorporar conteúdos do Power BI numa aplicação com a sua conta de organização do Power BI.In this tutorial, you learned how to embed Power BI content into an application by using your Power BI organization account. Agora pode tentar incorporar conteúdos do Power BI numa aplicação ao utilizar outras aplicações.You can now try to embed Power BI content into an application by using apps. Também pode tentar incorporar conteúdos do Power BI para os seus clientes (ainda não é suportada a incorporação de relatórios paginados):You can also try to embed Power BI content for your customers(not supported yet for embedding paginated reports):

Se tiver mais perguntas, experimente perguntar à Comunidade do Power BI.If you have more questions, try asking the Power BI Community.