(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como atualizar um dataset do Power BI com Power Automate

João Barros 11 de July de 2026 5 min de leitura

Atualizar um dataset (semantic model) do Power BI com Power Automate dá-lhe controlo sobre o momento exato da atualização: pode dispará-la assim que o ETL termina, várias vezes ao dia ou a pedido de um utilizador. E, ao contrário do agendamento nativo do Power BI Service, permite avisar a equipa quando a atualização falha. O fluxo final é simples: um gatilho, uma ação de refresh e uma notificação de erro.

Pré-requisitos

  • Conta com licença Power BI Pro (ou PPU/Premium) e acesso ao Power Automate.
  • Um workspace do Power BI onde seja Membro ou Administrador.
  • Um dataset já publicado, com as credenciais da fonte de dados configuradas no Power BI Service.
  • Um canal do Teams ou uma caixa de email para receber os alertas.

Passo 1: Criar o fluxo agendado

No Power Automate, escolha Create > Scheduled cloud flow. Dê um nome ao fluxo (por exemplo, "Refresh Vendas Diário"), defina a hora de início e a repetição — a cada 1 dia às 06:00, por exemplo. Se prefere atualizar o dataset apenas quando o pipeline de dados termina, use antes o gatilho When an HTTP request is received e chame o URL gerado a partir do Azure Data Factory, do Fabric ou de um script.

Passo 2: Adicionar a ação Refresh a dataset

Clique em New step, procure o conector Power BI e escolha a ação Refresh a dataset. Só tem dois campos a preencher:

  • Workspace: o workspace onde o dataset vive.
  • Dataset: o modelo a atualizar.

Atenção a um detalhe que causa muita confusão: esta ação é assíncrona. O Power Automate pede a atualização, recebe um "ok, recebi" e avança para o passo seguinte — mesmo que a atualização ainda esteja a decorrer (ou venha a falhar minutos depois). Um fluxo verde não é, por si só, garantia de que os dados foram atualizados. É por isso que os passos 3 e 4 existem.

Passo 3: Confirmar que a atualização terminou bem

Para saber o estado real, consulte o histórico de atualizações através da API REST do Power BI. Adicione uma ação Delay (5 minutos, por exemplo) e a seguir uma ação HTTP with Microsoft Entra ID, com o método GET e este URL:

https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/datasets/{datasetId}/refreshes?$top=1

Substitua {workspaceId} e {datasetId} pelos GUID que aparecem no URL do Power BI Service quando abre o workspace e o dataset. A resposta traz um campo status que pode ser Completed, Failed ou Unknown (ainda a decorrer). Guarde-o numa variável com esta expressão:

first(body('HTTP_with_Microsoft_Entra_ID')?['value'])?['status']

Nas expressões, o nome da ação escreve-se com underscores em vez de espaços — é o erro mais comum nesta fase.

Passo 4: Avisar a equipa quando falha

Adicione uma ação Condition: se a variável for igual a Completed, o fluxo não faz nada; caso contrário, envia a notificação com Post message in a chat or channel (Teams) ou Send an email (V2) (Outlook). Use um texto que ajude mesmo a diagnosticar:

concat('Falha no refresh do dataset Vendas. Estado: ', variables('EstadoRefresh'), ' | Run: ', workflow()?['run']?['name'])

Se a atualização costuma demorar mais do que o Delay, substitua-o por um ciclo Do until que repete o GET enquanto o estado for Unknown, com um limite de tentativas (por exemplo, 20) para o fluxo nunca ficar preso.

Passo 5: Atualização avançada, quando precisa de mais controlo

Quando quer atualizar apenas algumas tabelas ou partições — em vez do modelo inteiro — use a atualização avançada (enhanced refresh) da API REST. Na mesma ação HTTP, mude o método para POST e envie este corpo:

POST https://api.powerbi.com/v1.0/myorg/groups/{workspaceId}/datasets/{datasetId}/refreshes

{
  "type": "Full",
  "commitMode": "transactional",
  "maxParallelism": 4,
  "retryCount": 2,
  "objects": [
    { "table": "Vendas", "partition": "2026" }
  ]
}

Uma resposta com código 202 Accepted significa que o pedido foi aceite. O cabeçalho Location devolve o URL exato para consultar o estado dessa atualização, o que torna a verificação do passo 3 ainda mais precisa.

Verificar o resultado

Corra o fluxo com Test > Manually e acompanhe o histórico de execuções: todos os passos devem ficar verdes e a ação HTTP deve devolver 200. Depois, no Power BI Service, abra as definições do dataset e veja o Refresh history: deve aparecer uma linha nova com o estado Completed e a hora em que o fluxo correu. Para testar o alerta sem estragar nada, aponte temporariamente a ação HTTP para um datasetId inexistente — o fluxo deve entrar no ramo de erro e enviar a mensagem.

Conclusão

Com meia dúzia de ações passou de uma atualização "às cegas" para um processo controlado e monitorizado, em que sabe sempre se os dados chegaram. O passo seguinte natural é ligar o gatilho HTTP ao fim do seu pipeline, para o dataset ser atualizado exatamente quando os dados novos aterram — nem antes, nem três horas depois. Quantas das suas atualizações agendadas correm, neste momento, sobre dados que ainda não foram carregados?