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
O flow
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']
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']
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"
}
...........................................................................................................................................