Olá pessoal –
No Microsoft
Project Online, para que os recursos corporativos tenham condições de acessar
os sites de projeto para colaborar através da criação e do gerenciamento de riscos,
problemas, documentos, entre outros artefatos, eles precisam obrigatoriamente
fazer parte da equipe do projeto.
Recentemente um cliente
entrou em contato pois tinha um requisito de negócio importante: o processo de
adição dos membros de equipe a um projeto recém criado deveria acontecer de
maneira automatizada. Nessa organização, quando um novo projeto é criado, todos
os colaboradores devem ganhar acesso ao site de projeto imediatamente, e o fato
de os gerentes de projeto terem que adicioná-los manualmente estava causando
muitos problemas – pois infelizmente nem todas as pessoas seguem os processos.
Para facilitar a
vida dos gerentes de projeto e garantir o cumprimento dos requisitos de negócio,
mais uma vez, o Power Automate foi utilizado para automatização dos processos. Nesse post vou detalhar
o passo-a-passo caso você precise fazer algo parecido na sua empresa 😉.
Nota: é muito importante
ressaltar que, sem a colaboração do meu grande amigo Alisson Scalco, este
problema não teria sido resolvido. Então, fica aqui o meu agradecimento público
a este grande profissional.
O flow
Na propriedade Select Query desse gatilho apenas duas colunas foram selecionadas para melhorar a eficiência do flow – são elas ProjectId e ProjectName:
Uma vez
disparado o gatilho, foi necessário paralizar o flow por um certo tempo, pois
as próximas ações não podem ocorrer imediatamente após a criação do projeto. Essa
pausa precisa ser adicionada pois o gerente de projetos pode ainda estar
trabalhando com o projeto (ou seja, o projeto pode estar em check-out) ao mesmo
tempo em que o Power Automate tenta executar as ações do flow. É difícil determinar
com precisão por quanto tempo o flow deve ser paralisado, pois não sabemos
exatamente quando o gerente de projetos finalizará suas ações, mas uma boa
alternativa é calcular um intervalo até que se atinja um horário fora do
expediente de trabalho (por exemplo, até às 22 horas), onde se espera que o gerente
de projetos não mais esteja trabalhando com o projeto em questão – e assim, espera-se,
o projeto não mais esteja em check-out.
Aqui a instrução
completa:
/_api/ProjectData/[en-us]/Resources()?$Select=ResourceId&$Filter=
TypeName eq 'Work Resource' and ResourceIsActive eq true and ResourceIsGeneric
eq false
body('Get_Resources')?['value']
/_api/ProjectServer/Projects('<projectId>')/Draft/ProjectResources/AddEnterpriseResourceById('<enterpriseResourceId>')
Lembre-se de
substituir os conteúdos dinâmicos com os resultados obtidos das ações
anteriores, conforme destacado acima.
Quando um novo projeto for criado, o flow será disparado, e como consequência os membros de equipe serão devidamente adicionados ao projeto:
....................................................................................................
Como mencionado
no início do post, fica aqui minha nota de agradecimento ao Alisson Scalco pela
sua fundamental colaboração nesse post. Valeu demais, Alisson!
....................................................................................................