
Como parte do trabalho de GA para a API REST ExecuteQueries, a Microsoft entregou uma nova ação de Power Automate que executa consultas em conjuntos de dados do Power BI.
Essa nova ação oferece uma experiência direta com pouco código e/ou sem código para usuários de BI que desejam simplificar tarefas e processos repetitivos desnecessários.
Agora é possível selecionar o espaço de trabalho e o conjunto de dados desejados diretamente na interface do usuário, além de poder “colar” sua consulta DAX na caixa de texto de consulta e automatizar.
O mais importante é que você não precisa ter conhecimento prévio sobre a API Rest. E você também não precisa conhecer o DAX profundamente para começar, porque pode copiar as consultas diretamente do Power BI Desktop utilizando o Performance Analyzer.
Essa nova ação para executar consultas em conjuntos de dados do Power BI desbloqueia cenários de BI totalmente novos no Power Automate.
Os conjuntos de dados do Power BI representam um investimento significativo e um ativo vital.
As organizações já usam conjuntos de dados compartilhados e certificados para apoiar seus funcionários e gestores através de dados selecionados, além de se apoiar na lógica de negócios e em análises confiáveis.
Esses conjuntos de dados fornecem a base para visualizações de dados interativas e páginas ricas que fornecem insights que impulsionam o negócio.
Mas, e os fluxos de trabalho e outros processos de negócios automatizados?
Com muita frequência, as organizações precisam reinventar a roda neste momento, porque ainda existe alta complexidade em alavancar conjuntos de dados dessas áreas diretamente.
Ou seja, a impressão que se tem é que para extrair informações valiosas do seu Power BI você precisa ser um desenvolvedor, precisa saber escrever códigos, precisa conhecer serviços Web e APIs Rest, precisa saber registrar aplicativos no Azure Active Directory, precisa carregar bibliotecas de clientes etc.
Mas esses obstáculos aos poucos estão sendo removidos. Afinal você já tem os dados selecionados, a lógica de negócios verificada e as medidas analíticas confiáveis.
Os usuários já criam relatórios fantásticos do Power BI sobre seus conjuntos de dados.
Agora você deve permitir que eles aproveitem os mesmos conjuntos de dados aprovados e confiáveis em fluxos de nuvem de autoatendimento.
Vamos maximizar o retorno do investimento em conjuntos de dados do Power BI que você já possui.
O objetivo desse artigo é ajudá-lo a começar a executar consultas em conjuntos de dados no Power Automate com base nos três cenários a seguir:
- Exportando dados em arquivos csv: Este é um cenário limitado porque a API REST ExecuteQueries restringe os resultados da consulta a 100.000 linhas ou 1.000.000 valores por consulta (o que for encontrado primeiro) e o número de consultas a 120 por minuto. Não existe um plano de aumentar esses limites. Portanto, se você precisar exportar os resultados da consulta, mantenha as quantidades de dados gerenciáveis;
- Testando conjuntos de dados do Power BI: A nova ação do Power Automate torna essa tarefa simples. Leia em uma tabela com casos de teste, inteire linha por linha, execute uma consulta predefinida, compare os resultados retornados com os resultados esperados e trabalho concluído. Cada consulta individual pode representar uma conta de usuário diferente se você quiser testar a segurança em nível de linha (RLS). Observe que você deve ter permissões de gravação de conjunto de dados para usar a representação, o que geralmente você tem se for o proprietário do conjunto de dados ou um membro das funções de administrador, membro ou colaborador do workspace.
- Criando fluxos de nuvem orientados por BI: Um evento ocorre em algum lugar, outro evento deve ocorrer em outro lugar e a lógica baseada em BI determina como os eventos se desenrolam. O Power Automate oferece uma grande variedade de gatilhos. Talvez alguém tenha carregado um arquivo csv para o SharePoint Online, atualizado um registro em um banco de dados de suporte ao cliente ou twittado uma palavra-chave importante, ou talvez atualizado uma métrica do Power BI ou um alerta de dados disparado. Existem centenas de gatilhos, mas seja qual for o evento, seu fluxo agora precisa tomar algumas decisões baseadas em dados. Em vez de ir a silos de dados individuais e unir os resultados de maneira única, agora você pode confiar nos dados selecionados e nas medidas verificadas de seus conjuntos de dados compartilhados e certificados que fornecem resultados confiáveis.
Como começar a usar o Power BI e exportar resultados
Para exportar os resultados de uma consulta de conjunto de dados no formato csv, você pode começar com um fluxo acionado manualmente.
O processo é simples: Adicione uma nova etapa, pesquise “Power BI” na área de pesquisa do conector e selecione “Power BI” e, na guia Ações, selecione a ação “Executar uma consulta em um conjunto de dados”.
Observe que também há uma ação “Executar uma consulta JSON em uma ação de conjunto de dados”.
Se você quiser construir todo o corpo da solicitação JSON do zero, mas a ação “Executar uma consulta” em um conjunto de dados é muito mais amigável porque você pode colar sua consulta DAX diretamente em a caixa de texto Query sem ter que lidar com os detalhes do JSON.
Uma consulta DAX simples seria ‘Evaluate <tablename>’ ou talvez ‘EVALUATE TOPN(100, <tablename>)’ para garantir que os resultados permaneçam dentro dos limites de contagem de linhas.
Claro, você pode criar expressões DAX mais úteis e mais realistas usando sua ferramenta de editor DAX favorita.
Usando dados de exemplo do AdventureWorks, uma consulta de exemplo pode ser ‘EVALUATE TOPN(100, vFactInternetSalesReason)’.
Não se esqueça de selecionar o espaço de trabalho e o conjunto de dados desejado nas caixas de listagem do cartão de ação. Salve e teste o fluxo. Os resultados devem ser como na captura de tela a seguir.

Etapas essenciais do Power Automate
As etapas restantes são ações de rotina do Power Automate. Para saída csv, você deve converter as linhas em uma tabela csv.
Edite o fluxo novamente, adicione uma ação “Criar tabela CSV”, como na captura de tela abaixo, e selecione o objeto de conteúdo chamado “Primeiras linhas” da tabela na ação “Executar uma consulta” em um conjunto de dados como entrada.
As primeiras linhas da tabela contêm os resultados da sua consulta. (No futuro, a API ExecuteQueries pode oferecer suporte a consultas com vários blocos Evaluate, resultando em várias tabelas na resposta. Por enquanto, no entanto, apenas um único Evaluate por consulta é suportado).
A ação “Criar tabela CSV” converte os resultados da consulta em uma tabela csv e permite personalizar os cabeçalhos das colunas, se desejado, mas não salva os dados.
Para salvá-lo, escolha uma ação “Criar arquivo” como a próxima etapa, como criar um arquivo no SharePoint Online e atribua a “Saída da ação” e “Criar tabela CS” como o conteúdo do arquivo. Salve e teste o fluxo.
A captura de tela a seguir mostra os resultados. Obviamente você também deve ter um novo arquivo csv com os dados esperados em sua biblioteca de destino do SharePoint.

Adicionando um visual do Power Automate em um relatório do Power BI
Que tal darmos um passo adiante adicionando um visual do Power Automate a um relatório do Power BI que inicia um fluxo de nuvem que exporta um instantâneo de dados interessantes, como o relatório de Incidentes de Suporte Diários mostrado na captura de tela a seguir.
Este relatório mostra o volume de chamadas de suporte fictício por dia e por área de recurso, juntamente com a média móvel de 30 dias da contagem de incidentes (linha verde) e um limite de alerta com base na mesma média móvel mais 2 vezes o desvio padrão de 7 dias (luz linha roxa).
Observe o botão “Tirar instantâneo” no canto superior direito do relatório: Este botão permite exportar os incidentes de suporte do dia mais recentes diretamente do seu relatório com base nas seleções atuais.

Para obter detalhes sobre como adicionar um visual do Power Automate a um relatório do Power BI, consulte o tópico: Disparar um fluxo de nuvem de qualquer relatório do Power BI.
Além disso, você pode adicionar campos de dados a esse visual, que servem como parâmetros de entrada para o fluxo da nuvem.
Por exemplo, o relatório acima permite dividir as contagens de incidentes de suporte com base nas áreas de recursos. Portanto, faz sentido passar os valores de Área selecionados para o visual para que o fluxo “Tirar instantâneo” também possa limitar os incidentes de suporte exportados às áreas selecionadas no momento.
Se você seguir as instruções na documentação do produto para criar um novo fluxo de nuvem, o visual do Power Automate conectará automaticamente os parâmetros de entrada com o gatilho clicado no botão On Power BI.
Você só precisa obter os parâmetros de entrada da ação clicada no botão On Power BI no texto da consulta de nossa ação “Executar uma consulta” em relação a um conjunto de dados.
Veja a seguir o ponto de partida para o texto da consulta.
DEFINE
VAR selectedAreas = TREATAS({"Data access", "Front-end"}, 'SupportRequests'[Area])
VAR maxAbsDate = MAX('SupportRequests'[Created])
VAR maxSelDate = CALCULATE(MAX('SupportRequests'[Created]), selectedAreas)
EVALUATE (
SUMMARIZECOLUMNS(
'SupportRequests'[Created],
'SupportRequests'[Issue],
'SupportRequests'[Area],
'SupportRequests'[Subarea],
'SupportRequests'[Status],
'SupportRequests'[Owner],
FILTER(SupportRequests, maxAbsDate = maxSelDate && 'SupportRequests'[Created] = maxSelDate),
selectedAreas
)
)
A consulta DAX acima recupera os incidentes de suporte para duas áreas “Acesso a dados” e “Front-end“.
Observe o uso da função TREATAS.
Como você pode ver na captura de tela abaixo, nosso fluxo de nuvem deve substituir esses valores estáticos por uma string construída dinamicamente.
Assim, nosso fluxo de nuvem deve transformar a matriz de valores de área passados do relatório em uma string que o fluxo insere no texto da consulta.
Este é um processo de várias etapas:
- Primeiro, adicione uma ação “Selecionar”, clique na caixa “De” e selecione o objeto de dados do Power BI.
- Em seguida, alterne a ação “Selecionar” para o modo de texto clicando no pequeno botão T do Mapa e, em seguida, clique na caixa de texto Mapa.
- Você pode escolher diretamente o objeto de conteúdo de área, mas é uma ideia melhor usar uma expressão que escape de quaisquer aspas nos valores com uma segunda aspa e coloque cada valor entre aspas.
Isso tornará mais fácil converter a matriz em uma string formatada corretamente posteriormente. Devidamente escapado e entre aspas, você só precisa unir os membros da matriz para criar a string que você pode inserir na consulta. A tabela a seguir resume as etapas.
| Result | Expression | Result |
|---|---|---|
| Select | concat(‘”‘, replace(item()?[‘Area’], ‘”‘, ‘””‘), ‘”‘) | [ “\”Data access\””, “\”Front-end\””, “\”Login/Auth\””, “\”REST APIs\””, “\”Web service\”” ] |
| Run a query against a dataset | join(variables(‘Selected Areas’), ‘, ‘) | “\”Data access\”, \”Front-end\”, \”Login/Auth\”, \”REST APIs\”, \”Web service\”” |
E aqui está o fluxo de nuvem resultante que faz o trabalho. As etapas “Criar tabela CSV” e “Criar arquivo” são idênticas ao exemplo de exportação anterior.
Agora você pode exportar dados diretamente da conveniência do seu relatório do Power BI.

Faça um teste de conjunto de dados
Com esses cenários de exportação de dados em andamento, vamos agora voltar nossa atenção para um cenário ainda mais dinâmico: teste de conjunto de dados.
A captura de tela a seguir mostra uma tabela com quatro colunas: uma ID de teste, uma consulta a ser executada, uma identidade de usuário no formato UPN para representar e o resultado esperado da consulta.
Nossa solução Power Automate analisará cada linha, executará a consulta com a identidade de usuário especificada e verificará se o resultado retornado corresponde ao resultado esperado.
Se os resultados não corresponderem, ele enviará um e-mail para nos informar.

Desta vez, vamos criar um fluxo agendado para executar os testes do conjunto de dados diariamente:
- Adicione uma lista de linhas presentes em uma ação de tabela do Excel Online, especifique o local e o caminho corretos para sua pasta de trabalho do Excel e selecione a tabela com as definições de teste.
- Em seguida, adicione um Apply a cada ação de controle e selecione o valor do objeto de saída dinâmica nas linhas List presentes em uma ação de tabela como entrada.
- Agora você pode clicar em “Adicionar uma ação” no cartão “Aplicar a cada ação” e selecionar a ação do Power BI “Executar uma consulta” em um conjunto de dados.
- Selecione seu espaço de trabalho e conjunto de dados e, em seguida, clique na caixa de texto Query text para exibir a caixa de diálogo Dynamic Content.
- Selecione “Consulta DAX” como entrada para o texto da Consulta.
- Em seguida, clique em “Mostrar opções avançadas”, clique na caixa de texto “Representar usuário” e selecione UPN de usuário na caixa de diálogo “Conteúdo dinâmico”.
A configuração deve ficar como na captura de tela a seguir:

Até agora, isso parece simples de executar. Talvez seja um pouco mais complicado a comparação do resultado retornado para cada consulta com seu resultado esperado.
Mas primeiro vamos completar o fluxo e depois discutir os detalhes:
Como a próxima etapa no cartão de ação “Aplicar a cada ação”, adicione uma ação de controle Condição.
Clique na caixa de texto à esquerda para exibir a caixa de diálogo Conteúdo dinâmico, clique em Expressão e insira a seguinte expressão: string(outputs(‘Run_a_query_against_a_dataset’)?[‘body/firstTableRows’]?[0]?[‘[Result]’] ). Clique OK.
A comparação selecionada deve ser igual a e, em seguida, clique na caixa à direita e escolha Resultado esperado nas linhas da lista presentes em uma ação de tabela.
Conforme mencionado, se o resultado retornado não corresponder ao resultado esperado, o fluxo deverá enviar uma notificação por e-mail. Basta adicionar uma ação “Enviar um email” ao cartão Se não houver e especificar o destinatário, a linha de assunto e o corpo da mensagem.
Pode ser útil incluir o ID do teste, o resultado retornado, o resultado esperado e a consulta de teste real na mensagem de email, como na captura de tela a seguir.
Teste o fluxo com um valor intencionalmente errado na coluna de resultado esperado de um caso de teste. Você deve receber um e-mail imediatamente.

Para chegar aos resultados esperados no Power Automate no Power BI é preciso atenção
Todas as consultas de teste usam uma função SUMMARIZECOLUMNS com o resultado calculado em uma coluna chamada [Result].
De acordo com a convenção da API REST ExecuteQueries, as colunas renomeadas ou criadas na consulta serão retornadas entre colchetes. E como cada cálculo retorna um único valor, a tabela de resumo tem efetivamente apenas uma única linha.
A tabela a seguir divide a expressão string(outputs(‘Run_a_query_against_a_dataset’)?[‘body/firstTableRows’]?[0]?[‘[Result]’]) em suas partes individuais para chegar a esse valor calculado.
| Expression | Description |
|---|---|
| outputs(‘Run_a_query_against_a_dataset’) | Gets the entire response of the ExecuteQueries REST API for the action named Run a query against a dataset. |
| outputs(…)?[‘body/firstTableRows’] | Selects all the rows of the first result set within the response body. |
| outputs(…)?[…]?[0] | Selects the first row within all the rows of the first result set. |
| outputs(…)?[…]?[0]?[‘[Result]’] | Selects the value of the [Result] column of the first row. |
| string(…) | Converts the selected value into a string. This is necessary because the returned results might be of any data type while the List rows present in a table action reads the expected result value as a string. |
Testar conjuntos de dados pode ser muito fácil, incluindo representação se seu conjunto de dados estiver habilitado para RLS.
Conheça os fluxos orientados por BI
O Relatório de Incidentes Diários de Suporte mede o volume de suporte mais recente e calcula o limite de alerta.
A partir desses dois parâmetros, podemos construir um gatilho para um fluxo de nuvem.
Uma opção é usar um alerta de dados, conforme demonstrado no Guia de instruções, integra alertas de dados do Power BI ao Power Automate na documentação do produto.
No entanto, os alertas de dados usam valores de limite estáticos, enquanto nosso limite de alerta é dinâmico por natureza, pois depende da média móvel e do desvio padrão.
Felizmente, há uma escolha muito, muito melhor hoje em dia: Métricas do Power BI conectadas a valores de dados! As métricas do Power BI também podem ser integradas a um fluxo do Power Automate, conforme explicado em detalhes em Usar o Power Automate para atualizar metas automaticamente na documentação do produto.
Observe que as Métricas do Power BI são o novo nome do recurso anteriormente conhecido como Metas.
As Métricas do Power BI realmente transmitem de forma muito mais intuitiva a finalidade de medir a realização e o progresso em um esforço ou iniciativa, mas as ações do Power Automate relacionadas às métricas ainda são rotuladas como “Objetivos” até que as alterações de nome sejam totalmente implantadas no Power Automate também.
Como as alterações ainda não foram totalmente implementadas, as explicações a seguir ainda se referem a metas nas ações do Power Automate.
Uma grande vantagem das Métricas do Power BI é que as Métricas conectadas a dados podem aplicar segmentações e filtros.
Isso torna muito fácil definir o nível superior e as submétricas. Dê uma olhada no scorecard a seguir. Ele possui uma submétrica para cada área de suporte.
São as mesmas medidas para volume de suporte e limite de alerta, apenas com diferentes seleções de segmentação de área.
As regras de status definem que o status da métrica deve ser “Em risco” se o volume de suporte for maior que o limite de alerta e “Em andamento” no caso contrário.
O nome da métrica reflete a área de suporte para que você já possa obter informações de status importantes apenas no scorecard.
Você pode ver imediatamente que a área Front-end está esquentando.

Identificar a área problemática é um bom começo, mas queremos mais informações acionáveis entregues na ponta dos dedos quando uma situação crítica se desenrola.
Assim, nosso fluxo de nuvem pode usar o gatilho “Quando” o status de uma meta muda.
No entanto, nosso Scorecard de Suporte ao Produto tem várias metas/métricas.
Felizmente, o conector do Power BI também inclui uma ação “Obter várias metas”.
Um fluxo agendado pode usar essa ação para recuperar todas as metas/métricas do scorecard e, em seguida, filtrar a lista para aqueles que têm o status “Em risco“.
Um Apply a cada loop itera sobre essas metas/métricas, consulta o conjunto de dados para obter as informações acionáveis desejadas e, em seguida, envia um e-mail de notificação para o gerente que possui a área de suporte. A captura de tela a seguir descreve o fluxo e a mensagem de email resultante.

As consultas do conjunto de dados na captura de tela acima são abreviadas para economizar espaço.
Uma postagem de blog subsequente pode explorar essas consultas com mais detalhes.
Com a suposição de que o nome da meta/métrica corresponda ao nome de uma área de suporte, a primeira ação “Executar” uma consulta em uma ação de conjunto de dados usa o nome como um parâmetro de entrada e retorna os IDs ou chaves de todas as subáreas de nível seguinte que excederam seus respectivos limites de alerta.
Esse nível mais refinado de detalhes dentro da área de suporte mais ampla ajuda a reduzir as possíveis causas-raiz mais rapidamente.
O fluxo usa a seguinte expressão para escapar possíveis aspas no nome da meta/métrica e, em seguida, novamente coloca toda a string entre aspas, conforme já explicado anteriormente para o exemplo de exportação de dados: concat(‘”’, replace(item()[ ‘nome’], ‘”‘, ‘””‘), ‘”‘).
A segunda consulta espera as chaves de subárea e o nome do gerente de suporte como entrada.
Uma ação Select cria a matriz com as chaves de subárea da resposta da primeira consulta, que o fluxo converte em uma string usando a função join(), como no exemplo anterior de exportação de dados.
O gerenciador de suporte, por outro lado, pode ser encontrado na propriedade do proprietário da meta/métrica (item()[‘proprietário’]).
Novamente, todos os valores são escapados e colocados entre aspas usando a mesma função concat() de antes.
Esta segunda consulta procura os engenheiros de suporte que se reportam ao gerente indicado e, em seguida, analisa seus itens de trabalho de suporte anteriores e atuais para resumir a experiência de cada engenheiro e a carga de trabalho atual. Por exemplo, um engenheiro que trabalhou em mais de 20 casos de suporte nas mesmas subáreas é considerado experiente, enquanto engenheiros sem histórico de trabalho não têm experiência.
As etapas restantes montam o corpo da mensagem de email. Você pode criar uma tabela HTML da mesma maneira que uma tabela CSV demonstrada anteriormente nesse artigo.
O fluxo também aplica alguns cosméticos HTML e CSS e, em seguida, envia a mensagem de e-mail para o destinatário pretendido.
Source: Power BI Blog.
Agora que você já sabe como utilizar os macetes do Power Automate no Power BI, acompanhe nosso blog toda sexta-feira e fique por dentro de todas as atualizações mais recentes disponíveis na Microsoft.
E não se esqueça de nos acompanhar em nossas redes sociais, soltamos novidades toda a semana sobre o Universo dos Dados.
Até a próxima!
Acelere a análise de dados em sua empresa com o Power BI.
Construa dashboards exclusivos, baseados nas necessidades atuais do seu negócio e obtenha insights únicos. Conheça um time especialista Microsoft Gold Partner e comece sua Jornada de Dados agora.
Preencha o formulário abaixo e agende uma consultoria com nosso time.
