quarta-feira, 23 de setembro de 2020

Atualizando campos personalizados (tabela de pesquisa) no Project Online via Power Automate

Olá pessoal –

Este é o terceiro post da série onde estamos falando sobre como atualizar campos no Project Online através do Power Automate. No post de estréia falamos sobre como atualizar o campo nativo Nome do Projeto, enquanto que no segundo post falamos sobre como atualizar um campo personalizado de digitação livre.

Atualizando campos personalizados baseados em uma tabela de pesquisa

Conforme discutido no segundo post da série, quando precisamos atualizar um campo personalizado no Project Online é preciso especificar o campo a ser populado, através da declaração do seu nome interno.

Se o campo personalizado for do tipo digitação livre, então basta inputar o seu valor livremente na propriedade Value através do script. Porém, se o campo personalizado for baseado em uma tabela de pesquisa, então o input livre do valor não é suportado, sendo necessário não só declarar o nome interno do campo como também o código interno da propriedade que é representada pelos valores da tabela de pesquisa.

Convertendo isso para um cenário do mundo real: suponha que você possua um campo personalizado chamado Project Phase, o qual está associado a uma tabela de pesquisa chamada Project Phase. Você precisa que o Power Automate seja capaz de popular o campo, definindo o seu valor para uma das opções disponíveis na tabela de pesquisa (digamos que o valor desejado seja ’01 – Initiation’).

Nesse sentido, você precisará acessar a tabela de pesquisa e então selecionar o item que deseja utilizar. Ao fazer isso, o Id interno dessa propriedade na tabela de pesquisa será exibida:


Assim você poderá configurar todo o script de atualização do campo, incluindo a referência do código interno do campo personalizado e também da propriedade a ser inputada, com base na tabela de pesquisa:


Abaixo as intruções completas que foram utilizadas no processo de atualização:

……………………………………………………………………….

Site Address: Utilize a URL do seu PWA

Method: POST

Uri: _/api/ProjectServer/Projects(' <Id do projeto> ')/Draft/UpdateCustomFields

Headers:

Content-Type | application/json;odata=nometadata

IF-MATCH | *

X-HTTP-Method | POST

Body:

{

"customFieldDictionary":[

{

"Key":"Custom_<nome interno do campo personalizado>",

"Value":"<código interno da propriedade da tabela de pesquisa>",

"ValueType":"Edm.String"

}

]

}

……………………………………………………………………….

Lembrando que os items destacados em amarelo devem ser substituídos pelos seus respectivos valores.

Por fim, a última ação deverá publicar o projeto e efetuar o check-in, para garantir que todas as atualizações ocorram de maneira adequada.

Espero que ajude!


segunda-feira, 14 de setembro de 2020

Atualizando campos personalizados (texto livre) no Project Online via Power Automate

 Olá pessoal –

Este é o segundo post de uma nova série aqui no blog onde vamos falar sobre como atualizar campos no Project Online através do Power Automate. No post de estréia falamos sobre como atualizar o campo nativo Nome do Projeto.

Atualizando campos personalizados do tipo texto livre

Pegando carona no cenário proposto no primeiro post da série, vamos introduzir hoje uma pequena modificação para que seja possível adequar o nosso flow:

  • Ao invés de combinar o código SAP com o nome do projeto, o Power Automate deverá manter o nome do projeto inalterado, populando o código SAP em um campo personalizado criado exclusivamente para receber essa informação

Abaixo um exemplo do flow que foi criado no Power Automate, contendo todas as principais ações:


Em resumo, a essência do novo flow é exatamente a mesma do anterior – então, caso você não tenha lido o post, certifique-se de voltar uma casa e se familiarizar com o conjunto de ações aplicadas.

A única mudança que iremos aplicar nesse caso acontecerá na ação Send an HTTPS request to SharePoint, pois para que seja possível popular um campo personalizado no Project Online o método a ser utilizado será diferente (POST ao invés de PATCH), assim como o script a ser inserido no corpo. Além disso, como na instrução precisamos especificar qual o campo personalizado a ser populado, é preciso declarar o seu nome interno (nome de sistema) para que a ação seja realizada.

Para descobrir qual o nome interno do campo personalizado, no Project Online, clique em Configurações do PWA > Campos Personalizados e Tabelas de Pesquisa. Clique no nome do campo personalizado e navegue até a área Dados de Identificação do Sistema:


Assim você poderá configurar todo o script de atualização do campo:


Abaixo as intruções completas que foram utilizadas no processo de atualização:

……………………………………………………………………….

Site Address: Utilize a URL do seu PWA

Method: POST

Uri: /_api/ProjectServer/Projects(' <Id do projeto> ')/Draft/UpdateCustomFields

Headers:

Content-Type | application/json;odata=nometadata

IF-MATCH | *

X-HTTP-Method | POST

Body:

{

"customFieldDictionary":[

{

"Key":"Custom_<nome interno do campo personalizado>",

"Value":"<campo da lista do SharePoint>",

"ValueType":"Edm.String"

}

]

}

……………………………………………………………………….

Lembrando que os items destacados em amarelo devem ser substituídos pelos seus respectivos valores.

Por fim, a última ação deverá publicar o projeto e efetuar o check-in, para garantir que todas as atualizações ocorram de maneira adequada.

Espero que ajude!