terça-feira, 1 de outubro de 2019

Flow e Project Online: Gatilhos e Conectores Nativos

Olá pessoal –

Trabalhe menos, faça mais. Este é o bordão do Microsoft Flow, uma plataforma pertencente ao ecosistema Power Platform que tem como objetivo permitir a criação de fluxos automatizados entre diferentes aplicativos e serviços, de modo a enviar/obter notificações, sincronizar arquivos, coletar dados entre muitas outras possibilidades.

Há cerca de um ano eu escrevi um post para falar sobre as minhas primeiras impressões sobre o Flow, e como as organizações podem utilizá-lo para automatizar alguns processos no Project Online. Desde então, também passei a gravar conteúdo no meu canal do YouTube, criando uma playlist para falar exclusivamente sobre a integração dos aplicativos do Power Platform com a suíte PPM.

Trago esse assunto de volta ao blog porque acredito que é preciso contextualizar um pouco mais os recursos, as funcionalidades e aplicabilidades do Flow, assim como suas limitações – principalmente quando falamos da sua combinação com o Project Online. Nesse sentido, a ideia é escrever alguns posts para explorar um pouco mais a fundo as possibilidades de utilização do Flow no contexto do gerenciamento de projetos.

gatilhos e conectores

No Microsoft Flow, os usuários podem criar fluxos que executam uma ou mais tarefas automaticamente depois que ela é disparada por um evento. No âmbito do Project Online, o Flow possui 4 gatilhos:

- Quando um novo projeto é criado
- Quando um novo recurso é criado
- Quando um projeto é publicado
- Quando uma nova tarefa é criada


Uma vez acionado um gatilho, você pode determinar as ações a serem tomadas pela plataforma. E é aí que a coisa aperta...

Vamos supor que você queira criar um fluxo simples: todas as vezes que um projeto for publicado no Project Online, um e-mail deve ser enviado. O Microsoft Flow utiliza o conceito de etapas, onde uma ação deve ser tomada a partir dos gatilhos e/ou eventos passados. Ao fazer isso, a plataforma proporciona aos usuários os Conteúdos Dinâmicos: os resultados das etapas anteriores estão disponíveis como conteúdo dinâmico para serem eventualmente utilizados na ação seguinte.

Veja o exemplo da imagem abaixo: ao adicionar uma nova etapa que contém a ação Enviar um email, após selecionar a área do corpo do email você poderá utilizar o conteúdo dinâmico da etapa anterior – neste caso, os campos do Project Online que foram obtidos no gatilho Quando um projeto é publicado:


O grande problema aqui é que o conector nativo do Flow para o Project Online disponibiliza apenas uma fração dos campos existentes – que, na sua grande maioria, são campos pouco relevantes. Outro ponto importante a se notar é que os campos personalizados, que são utilizados pela maioria das organizações para classificar e definir as propriedades e os atributos dos projetos, infelizmente não são disponibilizados pelo conector nativo do Flow.

Utilizando campos não disponibilizados pelo conector nativo do flow

A boa notícia é que é possível utilizar os campos que não são disponibilizados de maneira nativa pelo conector do Microsoft Flow com o Project Online, e é aqui que temos o famoso ‘pulo do gato’.

Quando um novo fluxo é criado e executado, suas entradas e saídas podem ser exibidas, de maneira que o usuário possa entender um pouco mais sobre o que acontece por trás das cortinas. Se criássemos um fluxo bem simples, que enviasse um e-mail contendo apenas o nome do projeto toda vez que um projeto é publicado, ao visualizarmos os resultados seria possível identificar, no corpo da ação, uma série de campos do Project Online que, de maneira nativa, não estão disponíveis nos conteúdos dinâmicos. Um exemplo claro é o capo “EnterpriseProjectTypeName”:


Ao navegar entre os campos disponíveis no corpo da ação, é possível concluir que o Flow de fato consegue ler todos os campos da base do Project Online. O que acontece é que o conector nativo foi desenhado de maneira a não disponibilizar esses campos nos conteúdos dinâmicos... pois é, vai entender.

Para forçar a inclusão dos campos desejados, voltemos ao nosso exemplo: suponha que o email a ser enviado tenha de conter as informações de Percentual Concluído (que é um campo nativo do Project Online), Patrocinador, Status de Prazo e Programa (que são campos personalizados criados no ambiente). Pois bem, na ação Enviar um email, inclua um campo qualquer do conteúdo dinâmico (eu incluí o campo Projetos Retornados Nome do Projeto); em seguida, passe o mouse sobre o campo retornado: você irá visualizar a expressão que o Flow utiliza para obter esse campo da base do Project Online:

triggerBody()?[‘ProjectName’]

Bah.... taí a solução dos nossos problemas. Basta utilizar o construtor de expressões (ao invés do conteúdo dinâmico) para referenciar os campos desejados a partir do corpo do gatilho. No meu exemplo, os nomes dos campos personalizados que foram criados no meu ambiente são:

triggerBody()?[‘Sponsor’]
triggerBody()?[‘ScheduleKPI’]
triggerBody()?[‘Program’]


Após configurar todos os campos, o fluxo será apresentado conforme a imagem abaixo:


E então, quando os projetos forem publicados, as mensagens de e-mail serão disparadas contendo o conteúdo requerido:


Muito bom, não acha? 😎

Como eu havia comentado em outros posts (e como estou frequentemente comentando nos meus vídeos no YouTube), os aplicativos disponibilizados no ecosistema Power Platform terão um impacto gigantesco na maneira como trabalhamos, então a recomendação é se planejar e reservar tempo para aprender a utilizar esses aplicativos o quanto antes.

Minha contribuição estará em continuar gravando vídeos e escrevendo posts sobre casos de uso e soluções de negócio que envolvam o Project Online, SharePoint, Flow, PowerApps e Power BI. Fique ligado!

Espero que tenha gostado desse post, e até o próximo!


Nenhum comentário:

Postar um comentário