Power Automate: Dicas De Performance

By | 05/01/2021

O Power Automate nos últimos meses vem sendo um grande aliado para os desenvolvedores e consultores da plataforma Dynamics 365, permitindo que consigamos fazer entregar rápidas e muitas vezes com praticamente zero desenvolvimento (low code, no code). Mas as vezes nem tudo são flores, e alguns fluxo criados no Power Automate pode virar uma dor de cabeça se não forem concebidos preocupados com a performance.

Vou listar aqui algumas dicas com a experiência que tive até agora, permitindo que eu faça fluxo melhores e mais performáticos no resultado final para o cliente.

1 – Evite o uso do Apply to Each

A action Apply to Each facilita muito para percorrer uma lista, porém ela não é nenhum pouco aliada quando precisamos de performance.

Observe o exemplo abaixo:

Flow Apply to Each

Um flow simples que obtém a listagem de leads e adiciona os ids em uma lista de array. Agora vamos observar em quanto tempo ele rodou

Tempo flow apply to eaech
Exemplo execução flows

Podemos ver que rodou em 13s para percorrer 63 registros de leads. Parece pouco tempo né, mas se fosse 630 registros? Demoraria na média de 2 minutos para percorrer, e com isso, o cenário de performance começa ficar ruim não acha? Porém vamos fazer uma alteração nesse flow…

Flow Performance - Select action

Agora removemos a inicialização das variáveis e ao invés de percorrer vamos utilizar a action Select do conector Data Compose. Vamos observar o resultado..

Flow Select performance
Flow performance resultado

O que!??! O mesmo processo realizado com uma redução de mais de 90% de performance! Sim! Isso mesmo que você está vendo. O Apply to Each pode ser simples para utilizar, porém quando a lista que você for trabalhar for grande você certamente irá enfrentar problemas de performance com o seu uso.

2 – Evite condições, e use expressões

Outro item que pode impactar nas performance também são as condições. Igualmente ao item citado acima, ele auxilia bastante, porém quando aplicado em uma lista ou em uma quantidade grande de registros pode gerar impactos na performance.

Ao invés de utilizar as condições..

flow condições

Troque por expressões, quando a massa de dados é alta você irá ver um ganho de performance interessante

Flow expressões

if(and(equals(outputs(‘Get_a_record’)?[‘body/statuscode’],2),greaterOrEquals(outputs(‘Get_a_record’)?[‘body/numberofemployees’],700)),true,false)

3 – Uso excessivo de variáveis

Outro item que pode impactar na performance do seu flow é o uso excessivo de variáveis. Sim por mais que pareça sem pé nem cabeça, ja peguei alguns flows em que a redução das variáveis permitiu aumento entre 20 a 25% no tempo de execução. Muitas vezes utilizamos as variáveis para guardar informações que já estão em outras actions.

Nesse caso na maiorias das vezes temos sempre a inicialização dela, e depois a ação da definir o valor (infelizmente o Power Automate ainda não permite inicializar variáveis dentro das ramificações), e isso com o uso massivo faz com que o tempo de execução do flow aumente. Para esses casos, faça uma avaliação se realmente é necessário o uso da de variáveis. Expressões podem ser um aliado nessa situação também. 🙂

Espero que vocês tenham gostado dessas dicas. O Power Automate é uma ferramenta incrível para apoiar no processo de entrega do cliente. Porém se não tiver um pouco o viés de desenvolvimento, você certamente irá cair nas armadilhas de performance dentro da ferramenta.

Para mais dicas relacionadas ao Power Automate acesse a seção clicando aqui.

Até o próximo post!

Leave a Reply

Your email address will not be published. Required fields are marked *

Protected by WP Anti Spam