Olá pessoal –
Conforme eu venho falando há bastante tempo aqui
no blog, tenho procurado manter uma longa lista
de recursos, funcionalidades e soluções para ajudar os usuários do Project
Online na automação de seus processos de gerenciamento de projetos via Power
Automate. No post de hoje vou comentar sobre como podemos filtrar um
determinado projeto pelo seu ID na ação ‘Send an HTTP request to SharePoint’.
A lógica utilizada era simples:
- O gatilho seria disparado com a criação de um novo projeto no Project Online
- Em seguida, uma ação de ‘Delay’ foi incluída para paralizar o flow por 5 minutos – o objetivo era dar tempo ao Project Online para que fosse capaz de processar todos os trabalhos relacionados com a criação do novo projeto
- Por fim, a instrução era passada à ação ‘Send an HTTP request to SharePoint’ para filtrar o projeto que acabara de ser criado, usando como critério de filtro a coluna ‘Project Id’
E por que o flow não funciona? Bem, enquanto os filtros para a API do Project Online funcionam muito bem quando estamos utilizando termos comuns (por exemplo, poderíamos filtrar pela propriedade ‘ProjectName’ aplicando um filtro simples como ....Projects()?Filter=ProjectName eq 'Implantação do PMO ') infelizmente o mesmo cenário não se aplica quando o campo Project ID está sendo utilizado como parâmetro de filtro. Como o Project Id é um campo interno de identificação única dos projetos, utilizado como chave primária pelo banco de dados do Project Online, ele precisa ser filtrado incluindo o termo GUID (Global Unique Identifier) como prefixo. Dessa maneira, ao invés de utilizar o filtro ....Projects()?Filter=ProjectId eq '[Project Id]', o correto seria configurar o filtro dessa maneira: ....Projects()?Filter=ProjectId eq guid'[Project Id]'
Assim passamos os parâmetros corretos para a
string e conseguimos obter as informações necessárias para dar continuidade ao
flow.