Enviar dados de um Power BI dataset por email

Recentemente deparei-me com o pedido de um cliente que pretendia um relatório sobre a qualidade dos seus dados nas suas múltiplas fontes. Pretendia detetar diferenças entre os estados de vendas nessas mesmas fontes. Rapidamente foi elaborado o relatório, e posteriormente foi solicitado que essas mesmas diferenças fossem enviadas por e-mail a um parceiro que faz a gestão de umas das fontes de dados. Sendo fora do tenant e não pretendendo dar acesso como utilizador externo foi explorada como poderíamos usar o Power Automate e o Power BI Service para satisfazer o pedido.

Os dados para enviar são dados simples, um ID de venda e a descrição do seu estado (neste caso apenas os pendentes) .

OrderIDStatus
XYZ_1Pendente
WZT_2Pendente

1º Passo – criar uma tabela no Power BI Desktop com a informação que pretendemos enviar e ter o dataset publicado no Power BI Service

2º Passo – vamos precisar da query que é executada para mostrar os dados da tabela , par isso vamos ter de usar o “Performance analyzer” para vermos essa mesma query

Resultado da query:

// DAX Query

DEFINE

  VAR __DS0FilterTable =

    TREATAS({“Pendente”}, ‘Orders'[Status])

  VAR __DS0FilterTable2 =

    FILTER(

      KEEPFILTERS(VALUES(‘Calendar'[Date])),

      ‘Calendar'[Date] >= DATE(2021, 12, 1)

    )

  VAR __DS0Core =

    CALCULATETABLE(

      SUMMARIZE(‘Orders’, ‘Orders'[OrderID], ‘Orders'[Status]),

      KEEPFILTERS(__DS0FilterTable),

      KEEPFILTERS(__DS0FilterTable2)

    )

  VAR __DS0PrimaryWindowed =

    TOPN(501, __DS0Core, ‘Orders'[OrderID], 1, ‘Orders'[Status], 1)

EVALUATE

  __DS0PrimaryWindowed

ORDER BY

  ‘Orders'[OrderID], ‘Orders'[Status]

3º Passo – criar o fluxo no Power Automate para enviar diariamente as informações por e-mail

 Selecionar “Create”

Escolher “Scheduled cloud flow” de modo a criarmos uma recorrência diária

Definir hora e modo de repetição , no nosso caso vamos fixar todos os dias para as 09:00 AM

Vamos selecionar as ações para o Power BI e escolher “Run a query against a dataset”

Escolhemos o worksapce , dataset e colamos a query que retiramos a pouco da tabela do Power BI Desktop:

Para entendermos um pouco melhor o que esta a ocorrer vamos salvar e correr o fluxo:

Depois de correr clicar na parte do Power BI

Assim conseguimos ver na parte dos outputs como esta a ser criada a informação

Vamos copiar para um editor de texto o output, pois vamos necessitar do formato mais a frente.

Voltamos para a edição do fluxo:

Agora vamos transformar o output de modo a conseguirmos colocar essa mesma informação num corpo de e-mail.

Para tal vamos começar por usar “Parse JSON”

Neste passo precisamos adicionar a “tabela” criada pelo output anterior e adicionarmos o “Schema”

Neste passo vamos colar o exemplo que tiramos a pouco do output no passo anterior.

De seguida precisamos pegar neste JSON e criamos o conteúdo para o corpo de e-mail.

Vamos usar o “Create HTML table”:

Chamo a atenção que optamos por criar “Custom columns” de modo a ir buscar a informação ao JSON. Assim temos uma tabela HTML que podemos usar no corpo de e-mail.

Clicar em salvar e testar o fluxo

4º passo – validar o e-mail enviado , para testar o envio utilizei um e-mail pertencente a empresa e outro fora da empresa, isto é, dentro do tenant e fora do tenant :

– E-mail enviado para o e-mail da empresa:

– E-mail enviado para o e-mail fora da empresa:

Conclusão;

Na minha opinião, esta técnica pode ser benéfica aos utilizadores no momento de partilhar determinadas informações, tendo sempre em atenção o GDPR.

Foi publicado recentemente um vídeo pela CURBAL no qual ela vai um pouco mais além fazendo transformações no aspeto do design da tabela enviada, caso tenho curiosidade partilho o link:

Aproveito ainda para deixar um agradecimento ao PBI Portugal e ao Miguel Felix pela disponibilidade em deixar publicar o artigo no blog.

Até uma próxima.

Rankings no Power Query

Na atualização de junho do Power BI foi adicionada uma função no Power Query que não foi referida no resumo. Essa função é Table.AddRankColumn.

Esta função como nome indica permite adicionar uma coluna de Ranking a uma tabela. Anteriormente para adicionar uma coluna de ranking, através de M language tínhamos que fazer alguns passos avançados como Group By ou Add Index, com a introdução desta nova função já não precisamos.

Continue a ler “Rankings no Power Query”

Field Parameters

Um dos requisitos que surge frequentemente no desenvolvimento de relatórios no Power BI é a possibilidade de dinamicamente colunas ou medidas nas visualizações. Esta funcionalidade tinha diversas formas de ser ultrapassada, fosse através da criação de bookmarks, tabelas auxiliares ou calculation groups.

Apesar de muitas delas não serem complexas em termos de funcionamento a sua configuração era trabalhosa, além de que a sua alteração não era fácil sem conhecimento da solução inicial.

Na atualização de maio 2022 tivemos a apresentação dos Field Parameter que permitem simplificar essas transformações.

Continue a ler “Field Parameters”

Algumas funcionalidades

Ao longo da minha utilização do Power BI tenho vindo a aperceber-me de algumas pequenas funcionalidades que nos podem vir a ajudar no dia-a-dia, muitas vezes e apesar de trabalhar com a ferramenta desde o primeiro dia ainda sou surpreendido por mais uma funcionalidade que não conhecia.

Deixo algumas dicas de funcionalidades que podem utilizar para melhorar a vossa utilização do Power BI.

Continue a ler “Algumas funcionalidades”