Partilhar via


Incorporar um relatório do Power BI numa aplicação condicionada por modelo

Importante

Existe uma melhor forma de adicionar um relatório do Power BI a um formulário de aplicação condicionada por modelo. Mais informações: Utilizar o controlo de relatório do Power BI para adicionar um relatório

Pode utilizar relatórios do Power BI em aplicações Power Apps condicionada por modelo para trazer diversificação de relatórios e análise aos formulários principais, e capacitar os utilizadores a realizar mais. Isto desbloqueia o poder para agregar dados entre sistemas e personalizá-los para o contexto de um registo individual.  

Pré-requisitos

Incorporar conteúdo do Power BI é uma funcionalidade opcional e está desativada em todos os ambientes por predefinição. Tem de a ativar antes de poder incorporar conteúdo do Power BI. Obter mais informações: Ativar visualizações do Power BI na organização.

Esta funcionalidade requer exportar uma solução, modificá-la para adicionar o fragmento xml e, em seguida, importar novamente para o ambiente. Não se esqueça de importar as alterações no ambiente de destino apenas através de uma solução gerida. Consulte Importar, atualizar e exportar soluções para orientações sobre a instalação de uma atualização numa solução gerida existente.

Incorporar sem filtragem contextual

Pode utilizar os relatórios do Power BI ao incorporá-los e obter exatamente o mesmo relatório. Isto não envolve contextualizá-los no formulário condicionado por modelo atual e, por isso, obtém o mesmo relatório em todos os registos da tabela. Por exemplo, o seguinte relatório mostra a localização geográfica de todas as contas de uma só vez e é útil para mostrar informações de resumo.

Relatório do Power BI incorporado sem filtragem contextual.

Poderá personalizar um nó sections de XML de formulário principal para poder alojar um relatório ou mosaico do Power BI incorporado ao seguir estes passos:

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

    • Se a tabela já existir no ambiente de destino onde importa 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 onde importa a solução, escolha Incluir todos os componentes quando adicionar a tabela à solução.
  2. Exporte a solução como gerida.

  3. Extraia todos os ficheiros no ficheiro zip do pacote de soluções. Em seguida, edite o ficheiro customizations.xml e adicione o código XML fornecido abaixo dentro do bloco <sections> que está dentro do nó <forms type="main"> no ficheiro 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

Não se esqueça de utilizar o controlo classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" como indicado no exemplo XML.

  1. Faça as seguintes alterações ao XML do formulário que copiou para o ficheiro customizations.xml para o o seu relatório do Power BI. Esta tabela descreve os valores necessários para alterar para os elementos na amostra XML anterior.
Property Descrição
PowerBIGroupId O ID da área de trabalho do Power BI. Se o seu relatório estiver em A minha área de trabalho,** o ID da área de trabalho será 00000000-0000-0000-0000-000000000000.. Caso contrário, adicione o ID da área de trabalho. Poderá encontrar o ID da área de trabalho no URL do serviço Power BI. Mais informações: Localizar os IDs de relatório e área de trabalho do Power BI.
PowerBIReportId O ID do relatório do Power BI. Substitua este pelo relatório que pretende incorporar. Poderá encontrar o ID do seu relatório no URL de serviço do Power BI. Mais informações: Localizar os IDs de relatório e área de trabalho do Power BI
TileUrl O URL do relatório do Power BI que pretende incorporar. Não se esqueça de utilizar o nome de subdomínio do Power BI (poderá ter de substituir app.powerbi.com pelo seu próprio) e o ID de relatório (substituir reportId=544c4162-6773-4944-900c-abfd075f6081 pelo seu próprio). Por exemplo, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Se a tabela já existir no ambiente alvo, deixe o parâmetro solutionaction=Added para o elemento de célula, conforme fornecido no XML de exemplo. Se a tabela não existir no ambiente alvo, retire o parâmetro solutionaction=Added.
  1. Crie um ficheiro zip a partir de todos os ficheiros de soluções extraídos anteriormente. Em seguida, importe a solução para o ambiente de destino.

Incorporar com filtragem contextual

Pode tornar os relatórios do Power BI mais importantes aplicando filtros contextuais ao formulário condicionado por modelo atual, para que o relatório seja filtrado com base em atributos da linha atual. Por exemplo, o seguinte relatório mostra a localização geográfica de uma conta ao filtrar o relatório Power BI, utilizando o nome da conta. Isto permite que um único relatório mostre informação contextualizada para todas as linhas da tabela.

Relatório do Power BI incorporado com filtragem contextual.

A filtragem é efetuada ao adicionar um elemento <PowerBIFilter> ao bloco <parameter> conforme mostrado aqui. Pode utilizar qualquer atributo da tabela do formulário para criar a expressão do filtro. Obter mais informações: Construir filtros para saber como pode criar os 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>

Tenha em atenção que esta opção utiliza o mesmo controlo que a incorporação de relatório não filtrado e, por isso, o ID da classe do controlo permanecerá inalterado.

Esta tabela descreve quaisquer propriedades adicionais utilizadas no XML de exemplo anterior.

Propriedade Descrição
PowerBIFilter A expressão do filtro que contextualiza o relatório do Power BI passando os atributos de formulário como parâmetros. Para o tornar de leitura mais fácil, o filtro é criado como apresentado aqui. A expressão do filtro não pode ser uma lista de valores separada por vírgula.
    {
            "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 parte de destino da expressão anterior identifica a tabela e a coluna em que aplicar os filtros. O operador identifica a lógica e os valores identificam os dados transmitidos da aplicação Power Apps condicionada por modelo. Para parametrizar de uma maneira genérica, os valores são criados por alias. Na expressão anterior, o valor de uma conta firstname e lastname são transmitidos, e um deles é procurado na coluna Nome da Conta no relatório do Power BI. Tenha em atenção que firstname e lastname são os nomes exclusivos dos atributos da tabela da conta, cujo valor será transmitido aqui.

Pode criar expressões filtro mais complexas vendo exemplos de Construir filtros e fornecendo os valores adequados para $schema e filterType. Não se esqueça de efetuar escape em cada literal na parte do filtro utilizando ", para que o JSON seja gerado corretamente.

Remover atributo não modificado antes de importar

Antes de importar a solução para o ambiente de destino, certifique-se de que o atributo não modificado não está incluído na secção formXml do ficheiro customizations.xml. Se o atributo não modificado estiver presente no XML que inclui o XML do controlo 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 os IDs de relatório e área de trabalho do Power BI

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

Problemas e limitações conhecidos

  • Esta integração só está disponível no cliente da Interface Unificada, em browsers e dispositivos móveis suportados.

  • Abrir este formulário no estruturador de formulários do Power Apps não mostrará o controlo de forma significativa. Isto ocorre porque o controlo é personalizado fora do estruturador de formulários.

  • Os utilizadores serão autenticados no Power BI automaticamente com os respetivos nomes de utilizador e palavras-passe do Power Apps. Se uma conta do Power BI com credenciais correspondentes não existir, é apresentado um sinal na mensagem, tal como é ilustrado aqui.

    Power BI Pedido de início de sessão.

    Não serão apresentados dados se for utilizada uma conta incorreta para iniciar sessão no Power BI. Para iniciar sessão com as credenciais corretas, encerre a sessão e, em seguida, inicie sessão novamente.

    Iniciar sessão no serviço Power BI.

    O utilizador com sessão iniciada não tem a permissão adequada.

  • A vista dos dados do relatório mostrados no interior do Power Apps é igual ao do Power BI, e os privilégios e direitos de acesso do Power Apps não afetam os dados que são apresentados. Assim, os dados são essencialmente os mesmos que o criador do conjunto de dados do Power BI deverá ver. Para aplicar restrições de acesso a dados semelhantes aos direitos de acesso e equipas do Power Apps, utilize Segurança ao nível da linha (RLS) com o Power BI.

  • Se o formulário não apresentar o relatório do Power BI depois de importar a solução e publicar personalizações, abra-o no editor de formulários orientado por modelo e guarde-o, para que o formulário JSON seja regenerado.

  • A incorporação do mosaico Power BI num formulário só é suportada sem filtragem contextual.

  • Incorporar um relatório do Power BI não suporta referências entre inquilinos. Por exemplo, atualmente, tentar incorporar um relatório do Power BI pertencente ao inquilino da Contoso numa aplicação condicionada por modelo pertencente ao inquilino da Fabrikam não é suportado, mesmo que o relatório incorporado tenha sido partilhado com utilizadores através do inquilino da Fabrikam através do Power BI.

  • Os relatórios afixados como parte de dashboards do Power BI não se destinam a ser interativos. Se quiser ter relatórios interativos do Power BI, incorpore-os diretamente em vez de os afixar a um dashboard.

Problemas comuns

  • O ID do grupo não é especificado no nó TileUrl dos parâmetros de controlo quando pode ser necessário. Este exemplo inclui um ID de 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. Têm de ser do mesmo tipo, como cadeias Power BI e Dataverse.
  • Os campos de cadeias não têm citações escapadas no filtro Power BI. Note 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",
            }
    }

Consulte também

Incorporar um dashboard do Power BI num dashboard pessoal condicionada por modelo do Power Apps

Utilizar o Power BI com aplicações Dynamics 365

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).