terça-feira, 19 de outubro de 2021

Como obter dados de colunas do tipo pesquisa no Power Automate

 Olá pessoal –

Conforme o Project for the web vai progredindo, vou também me aprofundando no estudo da Power Platform e seus componentes, para estar apto a trabalhar no desenvolvimento de soluções personalizadas para os clientes com os quais trabalho. Dessa maneira, na medida em que vou descobrindo e aprendendo coisas novas, a ideia é ir trazendo novos conteúdos aqui no blog e também no meu canal no YouTube a respeito da Power Platform, não ficando apenas restrito ao ecosistema PPM.

Hoje vou explorar um tópico interessante: como obter informações de campos baseados em pesquisa no Power Automate. O cenário é o seguinte:

Ao construir aplicativos no Power Apps, é possível criar tabelas que utilizem diferentes tipos de colunas – incluindo colunas de pesquisa (lookup). Por exemplo, eu construí um aplicativo simples para cadastramento de tickets de suporte (Help Desk), o qual possui um campo para definição do solicitante (requester) e também para definição da área de suporte (support area):


Acontece que, ao utilizar o Power Automate para enviar notificações (por exemplo, enviar um e-mail para notificar a equipe de que um novo ticket foi aberto), o registro armazenado na tabela principal (Tickets) não utiliza o texto que contém o nome de exibição do requisitante, assim como a área de suporte; ao invés disso, o flow irá obter apenas o Id exclusivo de cada registro, os quais estão armazenados em tabelas à parte dentro do banco de dados (neste exemplo, a tabela padrão do Power Apps User é responsável por armazenar as informações relacionadas ao solicitante, enquanto a tabela personalizada Support Area armazena os dados da área de suporte). A imagem abaixo ilustra como a notificação é entregue:


Repare como as informações do requisitante e da área de suporte são disponibilizadas em formato de código (Id). Isso acontece devido ao fato de que tanto requisitante quanto área de suporte não residem na tabela Tickets (de onde o flow está capturando as informações), mas sim nas tabelas User e Support Area.

Como obter dados de colunas do tipo pesquisa no power automate?

Então, como resolver o problema e exibir as informações esperadas na notificação que é enviada por e-mail?

Para isso é preciso configurar o flow com algumas ações adicionais. Em primeiro lugar, vale a pena iniciar uma nova variável para armazenar o nome de exibição do requisitante. Em seguida, é preciso adicionar uma ação nativa do Dataverse (List Rows) para obter os dados da tabela Users, filtrando o registro que corresponder ao Id do solicitante. Assim, na área de filtro da ação, é preciso adicionar a seguinte condição:

systemuserid eq '<parâmetro de filtro>'


Através dessa abordagem, o Id exclusivo do requisitante, capturado na tabela Tickets, será utilizado como parâmetro de filtro para obter o registro correspondente na tabela Users. Em seguida bastará armazenar a informação na variável iniciada anteriormente para que seja então possível utilizá-la no envio da notificação:


Com isso, quando um novo ticket for submetido e a notificação for disparada, as informações do requisitante serão apresentadas conforme esperado:


Agora basta repetir o mesmo procedimento para obter as informações da área de suporte... porém, é importante destacar que é preciso observar atentamente o banco de dados para descobrir o nome correto da tabela e também do campo por ela armazenado, o qual será utilizado como parâmetro de filtro. No caso do meu ambiente, os parâmetros são:

opm_supportareaid eq '<parâmetro de filtro>'


Resultando na seguinte notificação automatizada:


Por hoje é isso. Espero que o post ajude 😉.

Nenhum comentário:

Postar um comentário