quinta-feira, 1 de outubro de 2020

Usando variáveis para popular campos personalizados no Project Online via Power Automate

Olá pessoal –

Este é o quarto post em sequência que estou fazendo sobre as diferentes possibilidades para popular campos do Project Online através do Power Automate (tanto campos nativos quanto campos personalizados). Caso você esteja chegando aqui no blog agora, sugiro seguir a trilha abaixo:

1. Atualizando campos nativos no Project Online via Power Automate

2. Atualizando campos personalizados no Project Online via Power Automate (texto livre)

3. Atualizando campos personalizados no Project Online via Power Automate (tabela de pesquisa)

Conforme vimos no último post, para popular campos que são baseados em uma tabela de pesquisa é preciso capturar o Id interno de cada uma das opções disponíveis na tabela, passando então esse parâmetro para o Power Automate. Uma dúvida que fica é: como configurar o flow para popular o campo personalizado no Project Online a depender de um valor que tenha sido escolhido previamente pelo usuário no sistema de origem?

O cenário

Para exemplificar, imagine o seguinte cenário: uma determinada empresa precisa popular um campo personalizado chamado Project KPI, que é baseado em uma tabela de pesquisa contendo três opções: On Track, On Watch e Troubled. O valor a ser populado para cada projeto será controlado em um sistema externo (nesse exemplo usaremos uma lista do SharePoint, entretando poderíamos estar falando de qualquer outro sistema), que é quem deve fornecer os valores a serem automaticamente inseridos no Project Online através do flow.

Configurando o flow

Para configurar o flow a atender esse cenário, a estratégia recomendada é trabalhar com uma variável que possa ser definida de acordo com o resultado obtido do sistema externo. Essa abordagem é adequada porque o código interno de cada valor da tabela de pesquisa é diferente de um para o outro, e assim o valor da variável pode ser definida apenas quando soubermos o valor a ser aplicado para cada projeto individualmente.

Na imagem abaixo temos um exemplo de 5 projetos e seus respectivos status na lista do SharePoint:


O primeiro passo é capturar o Id interno do campo a ser populado. No meu caso, o Id interno do campo é f51e4d4e-fd43-e711-80ce-00155d38bd21:


Em seguida é preciso capturar os Ids internos de cada uma das opções disponíveis na tabela de pesquisa que alimenta o campo. No meu caso, os valores são:

On Track = ba2dc508-fd43-e711-80d7-00155d3ce811

On Watch = bb2dc508-fd43-e711-80d7-00155d3ce811

Troubled = bc2dc508-fd43-e711-80d7-00155d3ce811

Uma vez capturadas as informações que serão utilizadas como entrada no flow, poderemos criá-lo no Power Automate. Neste exemplo, o flow será configurado para rodar periodicamente. Em seguida, as informações de status serão obtidas da lista do SharePoint e então uma nova variável será iniciada:


Então, para cada valor obtido da lista do SharePoint, um conjunto de ações deve ser aplicado. Em primeiro lugar, é preciso encontrar o projeto correspondente no Project Online e colocá-lo em check-out (lembrando que, em um contexto mais avançado, seria necessário primeiro verificar se o projeto está em check-in para só então efetuar o check-out):


Uma vez que o projeto esteja em check-out será preciso definir o valor da variável, de acordo com o status oriundo da lista do SharePoint. Para isso é preciso utilizar a ação de controle Switch, que permite a definição de uma ação de acordo com o valor de uma determinada propriedade. Iremos selecionar como entrada a propriedade Project Status, e no primeiro case iremos compará-la com o texto “On Track”:


Caso para esse projeto o valor da propriedade Project Status seja On Track, então a variável deverá ser definida com o respectivo código (ba2dc508-fd43-e711-80d7-00155d3ce811). Para isso, basta adicionar uma ação nesse case que defina o valor da variável:


E assim será possível criar cases adicionais, de acordo com a quantidade de respostas possíveis:


Uma vez definido o valor da variável poder-se-à criar a ação para atualizar o campo personalizado no Project Online:


Para finalizar, não se esqueça de adicionar a ação para publicar o projeto e fazer o seu check-in.

Espero que ajude