Inserir um relatório do Power BI em um formulário principal de aplicativo baseado em modelo
É 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.
É 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:
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.
Exporte a solução como gerenciada.
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.
- 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 . |
- 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.
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
- A ID do espaço de trabalho para este exemplo é efc85277-2bdb-47bc-9762-363f64335108.
- 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
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.
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.
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.
Os relatórios fixados como parte dos painéis do Power BI não devem ser interativos. Se quiser ter relatórios interativos do Power BI , insira-os diretamente em vez de fixá-los a um painel.
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&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).