domingo, 28 de novembro de 2021

Obtendo a lista de projetos com falhas no workflow

 Olá pessoal –

Se a sua empresa utiliza workflows para suportar o ciclo de vida dos projetos, é possível que eventos e circustâncias inesperadas causem falhas nos workflows, paralisando sua atividade e mantendo os projetos bloqueados.

Para conseguir obter a lista dos projetos que possuem algum tipo de erro no workflow, administradores e membros do escritório de projetos podem utilizar a tabela ProjectWorkflowStageDataSet, através da API OData, para saber quais são os projetos com problemas.

Utilizando a plataforma de sua preferência (Excel ou Power BI), conecte-se à API do Project Online (https://<nomedatenant>.sharepoint.com/sites/<nomedainstancia>/_api/ProjectData/[en-us]/) e então selecione a tabela ProjectWorkflowStageDataSet. Ao transformar os dados, utilize a coluna StageInformation para filtar os projetos com algum tipo de erro:


Dessa forma você irá obter a lista dos projetos que precisam de uma observação mais detalhada, e poderá assim tomar medidas de correção:


Espero que ajude 😉.

terça-feira, 2 de novembro de 2021

Utilizando a API ProjectServer

Olá pessoal –

Se você é um administrador do Project Online, ou então um membro do time do Escritório de Projetos, é quase certo que você já tenha tido a necessidade de construir relatórios e dashboards para prover aos diferentes interessados informações que a eles sejam relevantes.

Ao construir relatórios no Project Online, em 99% dos casos deve-se utilizar a api OData para obter os dados – mas hoje iremos focar no 1% restante.

A Microsoft disponibiliza aos usuários a possibilidade de se conectar à api ProjectServer que, de maneira bem resumida, permite que desenvolvedores se conectem ao Project Online através de aplicações customizadas que tenham a capacidade de ler e/ou alterar os dados existentes nas diferentes tabelas da plataforma – conforme os mais variados exemplos que tenho disponibilizado no meu canal do YouTube e também aqui no blog.

A principal razão para se conectar ao Project Online através da api ProjectServer é obter informações de bastidores que não estão disponíveis na api OData, geralmente relacionadas a códigos internos de sistema que estão associados aos diferentes tipos de objeto. Por exemplo: nesse post eu comentei sobre como é possível escolher o tipo de projeto da empresa (EPT) ao automatizar o processo de criação de novos projetos via Power Automate. Os tipos de projeto (e seus respectivos atributos) são objetos que não estão disponíveis na api padrão (OData), então para obter o Id respectivo de cada tipo de projeto, é necessário conectar-se à api Project Server.

Conectando-se à api Project Server

Digamos que você tenha a necessidade de descobrir quais os calendários que estão configurados no seu ambiente, assim como seus respectivos Ids internos. Para se conectar à api ProjectServer, via Excel ou Power BI, você poderá se conectar ao seguinte endpoint:

https://<nomedatenant>.sharepoint.com/sites/<nomedainstancia>/_api/ProjectServer


 Caso necessário, você deverá entrar com as suas credenciais para que a plataforma possa garantir que você possui as devidas permissões para ler os dados. Na janela seguinte, será necessário clicar em Transform Data para iniciar o processo de transformação dos dados no Power Query:

Em seguida você será apresentado às diferentes entidades disponíveis na api (por exemplo: Calendars, CustomFields, EnterpriseProjectTypes,...)


Ao clicar no botão de expansão da entidade desejada, será possível iniciar o processo de transformação das consultas para obter os registros necessários:



Dentro do primeiro nível dos dados expandidos, ainda é possível seguir ao nível seguinte. Por exemplo, se fosse necessário descobrir quais as datas de excessão registradas dentro de cada calendário, bastaria expandir a coluna Calendars.BaseCalendarExceptions:


Seguindo a mesma lógica é possível obter informações detalhadas de inúmeros objetos internos do Project Online, como campos personalizados, tabelas de pesquisa, dados de workflow e etc. Assim, ao construir aplicações e/ou automações no Project Online, fica muito mais fácil se referir a cada um dos objetos que serão utilizados no processo de automação.

Espero que ajude 😉.