Share via


Inserir um relatório do Power BI em um formulário principal de aplicativo baseado em modelo

Importante

Há uma maneira melhor de adicionar um relatório do Power BI a um formulário de aplicativo baseado em modelo. Mais informações: Usar o controle de relatório do Power BI para adicionar um relatório

É possível usar os relatórios do Power BI em aplicativos baseados em modelo do Power Apps para gerar relatórios e análises avançadas para os formulários principais e capacitar seus usuários para realizar mais. Isso desbloqueia o poder de agregar dados entre sistemas, e ajustá-lo ao contexto de um único registro.  

Pré-requisitos

Conteúdo do Power BI incorporado é um recurso opcional e está desativado em todos os ambientes por padrão. Você deve habilitá-lo antes de poder integrar o conteúdo Power BI. Mais informações: Habilitar visualizações do Power BI na organização.

Esse recurso requer a exportação de uma solução, modificação para adicionar o snippet xml e importação de volta para o ambiente. Garanta que importou as alterações em seu ambiente de destino apenas por meio de solução gerenciada. Consulte Importar, atualizar e exportar soluções para obter guia sobre instalação de uma atualização em uma solução gerenciada existente.

Incorporado sem filtro contextual

Você pode usar relatórios do Power BI integrando-os e obter exatamente o mesmo relatório. Isso não envolve a contextualização deles no formulário orientado por modelo atual, e por isso, você recebe o mesmo relatório de todos os registros da tabela. Por exemplo, o relatório a seguir exibirá o local geográfico de todas as contas de uma vez, e é útil para exibir resumo de informações.

Relatório do Power BI inserido sem filtro contextual.

É possível personalizar um nó XML sections do formulário principal para que possa hospedar um relatório e bloco do Power BI seguindo estas etapas:

  1. No ambiente de desenvolvimento, crie uma solução e adicione a tabela que contém o formulário principal onde você deseja que o relatório do Power BI seja exibido.

    • Se a tabela já existir no ambiente de destino no qual você importará a solução, escolha a opção Selecionar componentes quando adicionar a tabela à solução. Em seguida, adicione apenas o formulário principal da tabela.
    • Se a tabela não existir no ambiente de destino no qual você importará a solução, escolha Incluir todos os componentes quando adicionar a tabela à solução.
  2. Exporte a solução como gerenciada.

  3. Extraia todos os arquivos no arquivo zip do pacote da solução. Em seguida, edite o arquivo customizations.xml e adicione o código XML fornecido abaixo dentro do bloco <sections>, que está dentro do nó <forms type="main"> no arquivo customizations.xml.

<section id="{d411658c-7450-e1e3-bc80-07021a04bcc2}" locklevel="0" showlabel="true" IsUserDefined="0" name="tab_4_section_1" labelwidth="115" columns="1" layout="varwidth" showbar="false">
    <labels>
        <label languagecode="1033" description="Unfiltered Power BI embedding demo"/>
    </labels>
    <rows>
        <row>
            <cell id="{7d18b61c-c588-136c-aee7-03e5e74a09a1}" showlabel="true" rowspan="20" colspan="1" auto="false" solutionaction="Added">
                <labels>
                    <label languagecode="1033" description="Accounts (Parent Account)"/>
                </labels>
                <control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
                    <parameters>
                        <PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
                        <PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
                        <TileUrl>https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
                    </parameters>
                </control>
            </cell>
        </row>
        <row/>
    </rows>
</section>

Importante

Certifique-se de usar o controle classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" como indicado no exemplo de XML.

  1. Faça as seguintes alterações no formulário XML que você copiou no arquivo customizations.xml para seu relatório do Power BI. Esta tabela descreve os valores que você precisa alterar para os elementos no exemplo de XML anterior.
Propriedade Descrição
PowerBIGroupId A ID do espaço de trabalho do Power BI. Se o seu relatório estiver em Meu espaço de trabalho,** a ID do espaço de trabalho será 00000000-0000-0000-0000-000000000000. Caso contrário, adicione a ID do espaço de trabalho. É possível encontrar a ID do espaço de trabalho na URL do serviço do Power BI. Mais Informações: Localizar as IDs de relatório e espaço de trabalho do Power BI.
PowerBIReportId A ID do relatório do Power BI Substitua isso pelo relatório que deseja integrar. É possível encontrar a ID do seu relatório na URL do serviço do Power BI. Mais Informações: Localizar as IDs de relatório e espaço de trabalho do Power BI
TileUrl A URL do relatório do Power BI que você deseja inserir. Utilize o nome de subdomínio correto do Power BI (talvez seja necessário substituir app.powerbi.com pelo seu) e a ID do relatório (substitua reportId=544c4162-6773-4944-900c-abfd075f6081 pela sua). Por exemplo, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Se a tabela já existe no ambiente de destino, deixe o parâmetro solutionaction=Added para o elemento de célula, conforme fornecido no exemplo de XML. Se a tabela não existir no ambiente de destino, remova o parâmetro solutionaction=Added.
  1. Crie um arquivo zip com todos os arquivos de solução extraídos anteriormente. Em seguida, importe a solução para o ambiente de destino.

Inserir com filtro contextual

Você pode tornar os relatórios e blocos do Power BI mais significativos aplicando filtros contextuais ao formulário orientado por modelo atual, para que o relatório ou bloco seja filtrado com base em atributos na linha atual. Por exemplo, o relatório a seguir exibe o local geográfico de uma conta, filtrando o relatório do Power BI usando o nome da conta. Isso permite que um único relatório exiba informações contextualizadas para todas as linhas da tabela.

Relatório do Power BI inserido com filtro contextual.

A filtragem é feita adicionando um elemento <PowerBIFilter> no bloco <parameter> como mostrado aqui. Você pode usar qualquer atributo de tabela de formulário para criar a expressão de filtragem. Mais informações: Construindo filtros para descobrir como criar seus próprios filtros.

<control id="filteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
    <parameters>
        <PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
        <PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
        <TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
        <PowerBIFilter>{"Filter": "[{\"$schema\":\"basic\",\"target\":{\"table\":\"table_name_of_power_bi_dataset\",\"column\":\"power_bi_field\"},\"operator\":\"In\",\"values\":[$a],\"filterType\":1}]", "Alias": {"$a": "field_name_in_powerapps_to_filter"}}</PowerBIFilter>
    </parameters>
</control>

Observe que este usa o mesmo controle como o relatório não filtrado integrado, e portanto a ID de classe mantém-se a mesma.

Essa tabela descreve quaisquer propriedades adicionais usadas no exemplo de XML anterior.

Propriedade Descrição
PowerBIFilter A expressão de filtro que contextualiza o relatório do Power BI passando os atributos de formulário como parâmetros. Para torná-lo mais ilegível, o filtro é construído como exibido aqui. A expressão de filtro não pode ser uma lista de valores separados por vírgulas.
    {
            "Filter": "[{
                    \"$schema\":\"basic\",
                    \"target\":{
                            \"table\":\"table_name_of_power_bi_dataset\",
                            \"column\":\"power_bi_field\"
                    },
                    \"operator\":\"In\",
                    \"values\":[$a, $b],
                    \"filterType\":1
            }]",
            "Alias": {
                    "$a": "field1_name_in_powerapps_to_filter",
                    "$b":"field2_name_in_powerapps_to_filter"
            }
    }

A peça de destino da expressão anterior identifica a tabela e a coluna para aplicar os filtros nela. O operador identifica a lógica e os valores identificam os dados transferidos do aplicativo baseado em modelo do Power Apps. Para colocar parâmetros de uma forma genérica, os valores são construídos por união. Na expressão anterior, o valor do firstname de u ma conta e lastname são passados, e um deles é pesquisado na coluna Nome da conta no relatório do Power BI. Observe que firstname e lastname são atributos exclusivos da tabela de conta cujo valor será passado aqui.

Você pode criar expressões de filtro mais complexas olhando os exemplos em Construir filtros e fornecendo os valores apropriados de $schema e filterType. Tenha certeza de que retirou cada literal na parte de filtro usando ", para que o JSON seja gerado corretamente.

Remover o atributo não modificado antes da importação

Antes de importar a solução para o ambiente de destino, verifique se o atributo não modificado não está incluído na seção formXml do arquivo customizations.xml. Se o atributo não modificado estiver presente no XML que inclui o XML de controle do Power BI, remova o atributo antes de importar a solução para o ambiente de destino. Por exemplo, substitua <systemform unmodified="1"> por <systemform>.

Localizar as IDs de relatório e espaço de trabalho do Power BI

  1. A ID do espaço de trabalho para este exemplo é efc85277-2bdb-47bc-9762-363f64335108.
  2. A ID do relatório para este exemplo é 643ab643-7126-4a57-bd82-ca8f1fb676fc. Exemplo de ID de relatório e espaço de trabalho do Power BI

Limitações e problemas conhecidos

  • Essa integração está disponível somente no cliente da Interface Unificada, em navegadores da web compatíveis e dispositivos móveis.

  • Ao abrir esse formulário no designer de formulários do Power Apps, ele não mostrará o controle de maneira significativa. Isso ocorre porque o controle é personalizado fora do criador de formulário.

  • Os usuários serão autenticados no Power BI automaticamente com o nome de usuário e a senha do Power Apps. Se uma conta do Power BI com credenciais correspondentes não existir, um prompt de entrada será exibido como ilustrado aqui.

    Aviso de entrada no Power BI.

    Nenhum dado será exibido se uma conta incorreta for usada para entrar no Power BI. Para entrar com as credenciais corretas, saia e conecte-se novamente.

    Entrar no serviço do Power BI.

    O usuário que está conectado não tem permissão apropriada.

  • A exibição dos dados do relatório exibidos no Power Apps é igual à do Power BI, e os privilégios e os direitos de acesso do Power Apps não afetam os dados exibidos. Portanto, os dados são essencialmente os mesmos que o criador do conjunto de dados do Power BI veria. Para aplicar restrições de acesso a dados semelhantes a equipes e direitos de acesso do Power Apps, use Segurança em nível de linha (RLS) com o Power BI.

  • Se o formulário não exibir relatório do Power BI após importar a solução e publicar personalizações, abra-o no editor de formulário orientado por modelo e salve-o, para que o formulário JSON seja gerado.

  • A inserção de um bloco do Power BI em um formulário só tem suporte sem filtragem contextual.

  • A inserção de um relatório do Power BI não oferece suporte a referências entre locatários. Por exemplo, a tentativa de incorporar um relatório do Power BI pertencente ao locatário da Contoso em um aplicativo baseado em modelo pertencente ao locatário da Fabrikam não tem suporte no momento, mesmo que o relatório que está sendo incorporado tenha sido compartilhado com os usuários no locatário da Fabrikam via Power BI.

Problemas comuns

  • A ID do grupo não é especificada no nó TileUrl dos parâmetros de controle quando talvez seja necessário. Este exemplo inclui uma ID do grupo.
<parameters>
    <PowerBIGroupId>fd266a4c-9a02-4553-9310-80e05ee844f3</PowerBIGroupId>
    <PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
    <TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081&amp;groupId=fd266a4c-9a02-4553-9310-80e05ee844f3</TileUrl>
</parameters>
  • Os campos têm diferentes tipos de dados no Power BI e no Dataverse. Eles precisam ser do mesmo tipo, como cadeia de caracteres no Power BI e cadeia de caracteres em Dataverse.
  • Os campos de cadeia de caracteres não têm aspas de escape no filtro do Power BI. Observe que values tem [\"$a\"] em vez de [$a].
    {
            "Filter": "[{
                    \"$schema\":\"basic\",
                    \"target\":{
                            \"table\":\"table_name_of_power_bi_dataset\",
                            \"column\":\"power_bi_field\"
                    },
                    \"operator\":\"In\",
                    \"values\":[\"$a\"],
                    \"filterType\":1
            }]",
            "Alias": {
                    "$a": "field_name_in_powerapps_to_filter",
            }
    }

Confira também

Incorporar um painel do Power BI em um painel pessoal baseado em modelo do Power Apps

Usar o Power BI com aplicativos do Dynamics 365

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).