terça-feira, 11 de maio de 2021

Consolidando as listas dos sites de projeto

 Olá pessoal –

Esse vai ser um post rápido que terá como objetivo complementar as informações que foram compartilhadas no vídeo publicado no meu canal do YouTube, onde explico como é possível consolidar todos os registros das listas personalizadas disponíveis nos sites de projeto em uma lista central, com o objetivo de criar relatórios, painéis e dashboards gerenciais.

Esse post sozinho não irá fazer muito sentido, então é importante que você assista o vídeo para ter todo o contexto da discussão proposta:


Bem, vamos lá... conforme explicado no vídeo, a ação inicial do flow irá obter a lista dos projetos no ambiente do Project Online, com o cuidado de filtrar apenas os projetos que possuam um site associado:


Aqui listada a Uri da ação ‘Send an HTTP request to SharePoint’:

/_api/projectdata/[en-us]/Projects()?$Select=ProjectId,ProjectName,ProjectWorkspaceInternalUrl&$Filter=ProjectWorkspaceInternalUrl ne null


Em seguida, para cada projeto obtido na ação anterior, uma ação ‘Apply to each’ foi aplicada para que as ações subsequentes aconteçam no contexto de cada site de projeto individualmente. No nosso exemplo, dentro de cada site de projeto é preciso navegar até a lista customizada Lessons e obter todos os seus registros:


Em seguida, uma nova ação ‘Apply to each’ foi utilizada para que, para cada lição aprendida encontrada no contexto do site atual, um novo registro fosse criado na lista central de lições aprendidas (que eu chamei de All Lessons):


Lembrando que, de acordo com os campos/colunas que você criou na sua lista customizada, será necessário descobrir como o Power Automate os reconhece internamente, pois alguns campos podem ter seus nomes reduzidos ou reorganizados a depender de diferentes fatores, como acentos, espaços, caracteres especiais e etc.

A título de exemplo, abaixo a lista dos campos que eu utilizei nas minhas listas personalizadas, e como o nome desses campos foram reorganizados pelo Power Automate:

  • Lesson = items('Apply_to_each_2')['Title']
  • Lesson Type = items('Apply_to_each_2')?['Lesson_x0020_Type/Value']
  • Category = items('Apply_to_each_2')?['Category/Value']
  • What happened = items('Apply_to_each_2')?['What_x0020_Happened']
  • What have we learned = items('Apply_to_each_2')?['What_x0020_have_x0020_we_x0020_l']
  • Status = items('Apply_to_each_2')?['Status/Value']
  • Owner = items('Apply_to_each_2')?['Owner/Email']

Espero que ajude!


2 comentários:

  1. olá Raphael, tudo bem? Cara incrível como as coisas funcionam e nos permite ter várias ideias de como aplicar. Eu queria aprender um pouco mais sobre como fazer outros tipos de Selects e Filtros como vc fez na parte Uri do HTTP Request, onde encontro material que pode me orientar? Obrigado e Parabéns

    ResponderExcluir