sábado, 30 de abril de 2022

Publicando os riscos do projeto no Microsoft Teams

 Olá pessoal –

Este post é uma continuação de uma publicação anterior, onde comentei sobre as possibilidades de integração entre o Project Online e o Microsoft Teams. Dessa vez, nosso objetivo será comunicar a equipe de projetos, através dos Adaptative Cards, sempre que um novo risco for criado em qualquer um dos projetos que façam parte do nosso portfolio.

Contexto e configurações iniciais

É sabido que as organizações podem configurar o Project Online com um ou mais modelos de site, de modo a garantir que a plataforma se encarregue de criar um novo site padronizado sempre que um novo projeto for iniciado. Para assegurar que a automação funcione corretamente, convém criar, no modelo de site, uma nova coluna na lista de riscos para capturar o status da automação. Essa coluna pode ser de texto livre e, idealmente, deveria ficar oculta no formulário de cadastro/edição de riscos, para evitar que usuários a manipulem desnecessariamente.


O flow

Criada a coluna auxiliar, vamos ao desenvolvimento do flow. Como não é possível monitorar todos os sites existentes no Project Online para que o gatilho do processo de automação seja disparado sempre que um novo risco for criado, a maneira mais adequada de organizar o processo de automação é criar um fluxo agendado, que seja disparado diariamente e então faça a varredura de todos os sites para verificar se novos riscos foram criados. A imagem abaixo apresenta um resumão de como o fluxo está estruturado, mas iremos entrar em detalhe sobre cada uma das ações em seguida:


De início, temos o gatilho do fluxo. No meu exemplo, estou disparando a automação de modo manual, mas é claro que a maneira mais conveniente seria através de um gatilho agendado para acontecer diariamente. Em seguida, duas variáveis são iniciadas para que seja possível capturar a URL do ambiente do Project Online e também  a URL exclusiva de cada site para qual o processo de automação será aplicado. O próximo passo irá utilizar a já consagrada ação Send an HTTP Request to SharePoint para escanear todos os projetos disponíveis no Project Online, assim como os endereços (URLs) dos seus respectivos sites:


A partir daí lançamos mão da ação Apply to each, pois a varredura na lista de riscos deve acontecer para cada um dos projetos encontrados. As instruções utilizadas foram:

Em Apply to each, na área Select an output from previous steps:

Body('Get_Projects')?['value']

Em Site Address:

Items('Apply_to_each')?[ 'ProjectWorkspaceInternalUrl']

É importante também notar que um filtro está sendo aplicado à consulta, de modo a obter apenas os riscos para os quais a coluna auxiliar Status Automação não seja igual a (ne) ‘Processado’:


Uma vez obtidos todos os riscos que ainda não foram processados no site de projetos em questão, a variável Project Site URL está sendo definida com o endereço do site (ou seja, nesse momento é definida a URL do site do contexto para o qual o processo de automação está sendo processado).

Em seguida, temos uma nova ação Apply to each. Essa ação é necessária porque, em cada um dos sites analisados, podemos ter um ou mais riscos que ainda não foram processados pela automação – e, dessa forma, para cada um desses registros o processo deverá acontecer. Dentro do Apply to each 2, a instrução utilizada foi:

Body('Get_Risks')?['value']

Assim, uma postagem utilizando os adaptative cards é realizada no Microsoft Teams para garantir que os membros do PMO e demais interessados sejam informados de que um novo risco foi criado:


Logo após a publicação no Teams informando sobre a criação do novo risco, é necessário utilizar novamente a ação Send an HTTP Request to SharePoint para atualizar a coluna auxiliar Status Automação, informando-a de que esse risco específico não mais precisa ser processado na automação na próxima vez em que ela for disparada:


Note que essa é uma ação bem específica, que não está sendo aplicada no contexto do Project Online, mas sim do próprio SharePoint (pois não é algo que está alterando uma propriedade do projeto, mas sim do risco, que pertence a um site de SharePoint).

A ação permite fazer uma chamada ao site do projeto, procurando especificamente pela lista de riscos e, dentro dessa lista, pelo ID do risco que está sendo atualizado:

items('Apply_to_each_2')?['ID']

Em seguida, na área de body, é passada a instrução para atualizar a coluna Status Automação: 

{

"__metadata": {

"type": "SP.Data.RisksListItem"

},

"Status_x0020_Automa_x00e7_x00e3": "Processado"

}

...........................................................................................................................................

Assim, quando um novo risco for criado, a postagem será feita no canal especificado no Microsoft Teams:

....................................................................................................

E por hoje é só pessoal. Espero que gostem desse post, e até o próximo!

Nenhum comentário:

Postar um comentário