sábado, 2 de outubro de 2021

Importando cronogramas para o Project for the web

 Olá pessoal –

Na medida em que o tempo vai passando, novas funcionalidades vão sendo adicionadas ao Project for the web, e assim o produto vai amadurecendo e se tornando cada vez mais robusto para suportar as necessidades de negócio das organizações no que se refere ao gerenciamento de projetos.

Recentemente, a Microsoft anunciou a inclusão de um novo recurso à plataforma, com o objetivo de permitir a importação de cronogramas criados no Microsoft Project Desktop (.mpp files) para o Project for the web – e hoje vamos explorar este tópico aqui no blog.

A partir da página inicial do Microsoft Project (https://project.microsoft.com/pt-br), os usuários podem clicar em Novo projeto em branco e então escolher a opção Importar da área de trabalho do Project:


No passo seguinte, é necessário selecionar o arquivo a ser importado:



Ao término do processo de importação, um resumo das ações realizadas para alinhar o arquivo .mpp com as características aceitas pelo Project for the web será compartilhado:


Ao clicar em OK, o projeto criado é disponibilizado no Project for the web:


O que é e o que não é importado?

Como sabemos, o Microsoft Project Desktop é um aplicativo completo para gerenciamento de projetos, que oferece inúmeros recursos e funcionalidades para organização dos cronogramas. Em contrapartida, o Project for the web foi inicialmente concebido para ser uma versão “super light” de uma plataforma de gerenciamento de projetos, de forma que inúmeros recursos e funcionalidades que são disponibilizadas pelo Microsoft Project Desktop não estão presentes no Project for the web.

Como foi possível notar no print que detalha o resumo do processo de importação, os seguintes itens não são suportados pelo Project for the web:

  • Recursos – pois o Project for the web não suporta atribuições que definam unidades
  • Linha de Base – pois se trata de uma função/recurso que, até o momento, não existe no âmbito do Project for the web
  • Datas limite – também se trata de uma função/recurso não suportada pelo Project for the web
  • Divisão de tarefas – também se trata de uma função/recurso não suportada pelo Project for the web
  • Tarefa recorrentes – também se trata de uma função/recurso não suportada pelo Project for the web

Vale sempre a pena lembrar que a Microsoft procura sempre estar atenta às sugestões da comunidade no que se refere à melhoria e inclusão de recursos e funcionalidades em seus produtos. Portanto, se você tem uma sugestão de melhoria para o Project for the web, não deixe de compartilhá-la 😉.

Um abraço e até o próximo post!


sábado, 28 de agosto de 2021

Importando riscos em lote via Power Automate

 Olá pessoal –

Esse é mais um daqueles posts que eu deixo registrado aqui como base de conhecimento caso venha precisar fazer algo semelhante no futuro.

Contexto

Trabalhei recentemente em um projeto de implantação do Project Online para um cliente que atua na área de saneamento. Após a finalização das configurações da plataforma conforme os requisitos de negócio, iniciamos o cadastramento dos projetos no sistema.

O cliente já efetuava a gestão de riscos em uma planilha do Microsoft Excel, e dessa planilha surgiu o desejo de importar todos os riscos já mepeados em lote para o Project Online, evitando o re-trabalho de cadastro de maneira manual.


Ajustes

Antes de construir o flow foi necessário ajustar a planilha para deixá-la em conformidade com a forma como o Power Automate é capaz de interpretar e utilizar seus dados. As seguintes ações foram aplicadas:

  • Linhas vazias na planilha foram excluídas
  • Todas as formatações foram limpas, e o intervalo de dados foi convertido em uma tabela
  • Uma coluna chamada Id do Projeto foi adicionada à planilha, contendo o Id exclusivo dos projetos a partir do Project Online. Esta informação é necessária para que o flow possa filtrar os projetos individualmente quando da importação dos riscos em lote
  • Todos os campos baseados em uma lista de valores (Status e Categoria) foram normatizados para mapearem os mesmos valores da lista padrão de riscos do Project Online
  • Por fim, uma vez realizados todos os ajustes, a planilha foi carregada para a biblioteca de documentos compartilhados dentro da coleção de sites padrão do Project Online

Flow para importação de riscos em lote

Já no Microsoft Power Automate, temos o seguinte flow:


A essência do flow é bem simples:

  • Um gatilho manual foi inserido, uma vez que o flow será executado uma única vez
  • Em seguida é necessário obter as linhas presentes em uma tabela do Excel (a planilha que foi carregada para a biblioteca de documentos compartilhados)
  • Então, para cada um dos registros encontrados na planilha, deve-se encontrar o seu respectivo projeto para que o risco seja cadastrado de maneira automática

Para obter a lista de projetos do Project Online foi utilizada a ação ‘Send an HTTP Request to SharePoint’, através do método GET. Para garantir que cada projeto seja obtido de maneira individual, de acordo com os riscos obtidos inicialmente na planilha, foi utilizado um filtro de projeto baseado na coluna ‘Id do Projeto’:


Então, com o projeto devidamente filtrado, uma outra ação ‘Send an HTTP Request to SharePoint’ foi configurada utilizando o métod POST, de forma a cadastrar os riscos no projeto:


Através desse processo de automação, aproximadamente 450 riscos – pertencentes a 80 diferentes projetos – foram criados de maneira automática, salvando algumas boas horas de trabalho manual dos usuários 😊.

Um abraço e até o próximo post!



terça-feira, 29 de junho de 2021

Atualizações no Project for the web

 


Olá pessoal –

De tempos em tempos eu compartilho aqui no blog novidades e atualizações que são incorporadas ao Project for the web, e hoje chego com um conjunto de atualizações que foram adicionadas a plataforma nos últimos meses.

Anexos

Os usuários do Project for the web agora podem anexar documentos às tarefas do cronograma. Ao clicar em uma tarefa e abrir os seus detalhes, a seção Anexos estará disponível, permitindo assim que arquivos sejam vinculados diretamente à tarefa:




Uma vez anexado, o arquivo ficará disponível na seção Documentos do site criado junto ao grupo que está relacionado ao projeto:


Visualização rápida

Pegando carona no exemplo acima, após anexar um documento a uma tarefa, como saber quais tarefas do cronograma também possuem anexos? E como saber quais possuem comentários? Para isso, uma nova coluna chamada Visualização rápida é agora parte integrante do Project for the web:


Quando adicionada à visualização da tabela, a coluna irá apontar as tarefas que possuem algum tipo de elemento adicional:


É possível clicar diretamente no ícone para abrir os detalhes da tarefa:


Exportar para o excel

Conforme anunciado pela Microsoft em meados de Dezembro/2020, o Project for the web agora permite que os usuários exportem seus cronogramas para o Excel. Esta é uma funcionalidade muito útil, pois permite aos gerentes de projeto uma maneira simples e eficaz de exportar seus cronogramas para compartilhamento externo, para impressão ou mesmo para criação de relatórios estatísticos simples:



Exportar para PDF

Outra opção interessante que agora está disponível é a exportação para PDF. Imagine que você precise enviar o resumo geral do seu cronograma com a linha do tempo (Gantt) para um cliente...



Organização dos quadros

Na sua configuração padrão inicial, o Project for the web apenas permitia o agrupamento das tarefas, na visão de quadro, por Bucket, Progresso e Data de Término:


Agora também é possível agrupar as tarefas de acordo com os recursos atribuídos:


E você, o que achou das atualizações e novas funcionalidades do Project for the web? Quais delas já está utilizando, e quais passará a utilizar?

Vale lembrar que muitas das novas funcionalidades incluídas no Project for the web são fruto das solicitações dos usuários no User Voice: https://microsoftproject.uservoice.com/forums/914203-project-for-the-web

Um abraço e até o próximo post

quarta-feira, 19 de maio de 2021

Notificações no Project for the web

 Olá pessoal –

No mês de Abril-2021, a Microsoft anunciou oficialmente que as notificações por e-mail foram finalmente incorporadas ao Project for the web. A maneira como esse recurso funciona é bem simples: quando um recurso é atribuído a uma tarefa em um projeto, ele irá receber automaticamente uma notificação da atribuição.

Como podemos ver no exemplo abaixo, um novo projeto é criado e as tarefas do cronograma são devidamente organizadas:


Uma vez estruturado o cronograma, o responsável poderá atribuir as tarefas aos recursos:


Logo que as tarefas forem atribuídas, os recursos receberão as devidas notificações por e-mail:




Ao clicar nos links disponibilizados, o recurso será direcionado aos detalhes da tarefa:


Lembrando também que os usuários possuem a prerrogativa de desabilitar as notificações que são disparadas pela plataforma, caso queiram:


Até a próxima!

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!


sexta-feira, 30 de abril de 2021

Arquivando projetos no Project for the web

 Olá pessoal –

No começo desse ano publiquei um post aqui no blog falando sobre as boas práticas para arquivar projetos no Project Online. No post de hoje irei falar sobre as opções disponíveis para o Project for the web.

Se você já está utilizando o Project for the web, então deve saber que os recursos e funcionalidades da plataforma são mais simples quando comparadas aos recursos e funcionalidades do Project Online. Nesse sentido, o processo de arquivamento dos projetos também é mais simples e direto.

Porém, antes de iniciarmos os procedimentos técnicos, é preciso responder uma pergunta: quais os motivos para arquivar um projeto? Vejo algumas razões pelas quais um projeto precise ser arquivado:

  • O projeto pode ter sido encerrado e, dessa forma, é preciso garantir que os dados não mais serão alterados
  • O projeto pode ser sido paralisado (cancelado ou temporariamente suspenso) e, enquanto durar essa paralização, é preciso garantir a integridade do cronograma
  • A organização pode estar passando por uma janela de paralização (por exemplo, uma parada de fábrica ou férias coletivas) e durante esse intervalo de tempo os cronogramas devem ser mantidos em modo leitura

Indo agora às tecnicalidades, para arquivar um projeto no Project for the web é preciso inativá-lo. A ação de inativação pode apenas ser feita via aplicativo no Model Canvas (Power Apps) – https://make.powerapps.com.

Ao acessar o aplicativo Projects, basta selecionar o projeto desejado e clicar em Deactivate:


Em seguida será preciso confirmar a inativação do projeto:


Dessa forma, caso os usuários tentem acessar o cronograma, receberão a mensagem de que o projeto encontra-se inativo, estando assim em modo apenas leitura:





Espero que ajude 😉.

terça-feira, 6 de abril de 2021

Filtrando as tarefas de um projeto via Power Automate

 Olá pessoal –

No final de Março/2021 publiquei um post para explicar como é possível filtrar um projeto pelo seu ID no Power Automate. Logo depois de efetuar a publicação do post surgiu uma nova necessidade com um dos clientes com os quais eu trabalho, que acho que vale a pena compartilhar por aqui. Vou procurar explicar com um pouco mais de detalhes:

--- um cliente gostaria que, logo após a criação de um novo projeto, seus marcos fossem obtidos e sincronizados com um sistema externo, que era utilizado por uma área específica da organização para fins de controle.

É importante destacar que nesse post não pretendo explicar como os dados exportados foram adicionados ao sistema externo. Ao invés disso, meu objetivo aqui será detalhar como é possível criar uma ação no Power Automate que utilize o parâmetro do ID do projeto (GUID) para filtrar as tarefas daquele cronograma especificamente. Antes de começar, é importante apenas deixar claro que, no contexto desse cliente, todos os novos projetos criados possuíam um modelo de cronograma associado, ou seja, quando da criação de um novo projeto toda a estrutura básica de tarefas já estaria pronta. Feitos os devidos disclaimers, vamos lá.

O primeiro passo é iniciar o gatilho do flow usando a opção ‘When a new project is created’. Em seguida, paralisamos o fluxo por 2 minutos para garantir que todas as ações de criação do projeto tenham sido processadas pela fila do Project Online. Por fim, uma ação ‘Send an HTTP request to SharePoint’ foi adicionada para que seja possível obter a lista de tarefas:


Após especificar o endereço do PWA e manter o método padrão GET, é preciso determinar que as tarefas a serem obtidas devem ser oriundas do projeto que acabou de ser criado. Se você já está familiarizado com as strings para obter dados da API do Project Online (OData), já deve saber que o ponto final da entidade tarefas pode ser consultado da seguinte maneira (neste exemplo estamos filtrando os marcos do cronograma e obtendo o seu ID, nome e data de término):

/_api/ProjectData/Tasks()?$Select=TaskId,TaskName,TaskFinishDate&$Filter=TaskIsMilestone eq true

Porém, como filtrar as tarefas para que sejam apenas obtidas as tarefas do projeto criado? A resposta é que a API OData é flexível o suficiente para permitir a inclusão de um parâmetro adicional (Projects), que permite a aplicação do filtro desejado. Ficaria assim:

/_api/ProjectData/Projects(guid'[ProjectId] ')/Tasks()?$Select=TaskId,TaskName,TaskFinishDate&$Filter=TaskIsMilestone eq true


Aplicando esta técnica apenas as tarefas necessárias do projeto em vigor serão obtidas, e assim será possível prosseguir com as ações futuras de acordo com as necessidades de negócio.

Espero que ajude e até a próxima 😉.



sexta-feira, 2 de abril de 2021

Reimagine Project Management with Microsoft

 


Olá pessoal –

Passando hoje rapidamente para falar sobre um evento virtual muito importante para a turma que está pensando em adotar o Project for the web (ou para aqueles que já estão em processo de adoção). Nesse mês de Março/2021 a Microsoft disponibilizou as palestras que foram gravadas durante o evento Reimagine Project Management with Microsoft, um evento realizado pelo time de produto e engenheiros que trabalham ativamente no desenvolvimento do Project for the web, discutindo as funcionalidades, recursos e roadmap dessa importante plataforma de gerenciamento de projetos.

A inscrição para o evento é gratuita e pode ser feita no link abaixo:

https://events1.social27.com/reimagine-projectmanagement/page/pre-signup

Só pra vocês terem uma ideia da montanha de conteúdo disponível:


Agora é bloquear a agenda e dar no play 📺


segunda-feira, 29 de março de 2021

Como filtrar projetos pelo ID no Power Automate?

 Olá pessoal –

Conforme eu venho falando há bastante tempo aqui no blog, tenho procurado manter uma longa lista de recursos, funcionalidades e soluções para ajudar os usuários do Project Online na automação de seus processos de gerenciamento de projetos via Power Automate. No post de hoje vou comentar sobre como podemos filtrar um determinado projeto pelo seu ID na ação ‘Send an HTTP request to SharePoint’.  

Uns dias atrás, um cliente precisava realizar uma ação aparentemente simples: quando um novo projeto fosse criado no Project Online, o Power Automate deveria ir até o site de projetos que nasceu junto do projeto e realizar algumas mudanças nos títulos de algumas pastas padrão na biblioteca de documentos compartilhados. O problema é que ele não estava conseguindo filtrar o projeto através do seu ID, usando como parâmetro o gatilho que dispara o flow. Vamos dar uma olhada no flow original que estava sendo criado:


A lógica utilizada era simples:

  1. O gatilho seria disparado com a criação de um novo projeto no Project Online
  2. Em seguida, uma ação de ‘Delay’ foi incluída para paralizar o flow por 5 minutos – o objetivo era dar tempo ao Project Online para que fosse capaz de processar todos os trabalhos relacionados com a criação do novo projeto
  3. Por fim, a instrução era passada à ação ‘Send an HTTP request to SharePoint’ para filtrar o projeto que acabara de ser criado, usando como critério de filtro a coluna ‘Project Id’

E por que o flow não funciona? Bem, enquanto os filtros para a API do Project Online funcionam muito bem quando estamos utilizando termos comuns (por exemplo, poderíamos filtrar pela propriedade ‘ProjectName’ aplicando um filtro simples como ....Projects()?Filter=ProjectName eq 'Implantação do PMO ') infelizmente o mesmo cenário não se aplica quando o campo Project ID está sendo utilizado como parâmetro de filtro. Como o Project Id é um campo interno de identificação única dos projetos, utilizado como chave primária pelo banco de dados do Project Online, ele precisa ser filtrado incluindo o termo GUID (Global Unique Identifier) como prefixo. Dessa maneira, ao invés de utilizar o filtro ....Projects()?Filter=ProjectId eq '[Project Id]', o correto seria configurar o filtro dessa maneira: ....Projects()?Filter=ProjectId eq guid'[Project Id]'


Assim passamos os parâmetros corretos para a string e conseguimos obter as informações necessárias para dar continuidade ao flow.

Espero que ajude 😉.

quarta-feira, 20 de janeiro de 2021

Como escolher o tipo de projeto no Power Automate

 Olá pessoal –

Feliz 2021, e que esse seja um ano repleto de realizações e prosperidade – sempre com muita saúde!

No último ano trabalhei em inúmeros projetos de automatização do Project Online com o apoio do Power Automate, os quais tenho procurado documentar aqui no blog e também no meu canal do YouTube.

Em um dos vídeos postados iniciei uma discussão sobre as opções para criação de novos projetos através da integração entre uma lista do SharePoint e o Project Online. Gentilmente, o usuário Messias Reis postou uma dúvida muito interessante na seção de comentários:


Respondendo à pergunta do Messias, sim, é possível escolher o tipo de projeto que se deseja criar – e esse será o objetivo deste post.

Obtendo os ids dos tipos de projeto

No Microsoft Project Online é possível criar diferentes Tipos de Projeto da Empresa (EPTs) para mapear os processos de gestão e também o ciclo de vida dos projetos corporativos. Ao navegar no ambiente, os usuários podem visualizar e selecionar o EPT desejado para iniciar um novo projeto:


Quando o usuário seleciona um tipo de projeto, o sistema irá direcioná-lo para a URL que especifica o ID interno do EPT escolhido:


A título de exemplo, abaixo está a URL interna do meu ambiente para o EPT ‘Application Development’:

https://m365x353811.sharepoint.com/sites/pwa/_layouts/15/PWA/Wizards/CreateProject.aspx?src=RibbonNewProject#{"stage":1,"eptUid":"6cc4465b-b347-e711-80d1-00155d3c3c16"}

Aqui a lista contendo os IDs internos de todos os tipos de projeto cadastrados no meu ambiente:


Criando o flow

De posse da lista de IDs internos é possível construir o flow no Power Automate. De maneira resumida, você terá de determinar quais serão os parâmetros e as ações que serão realizadas para capturar as ideias dentro da sua organização. O output desse processo será então utilizado pelo Power Automate para criar o novo projeto no Project Online – conforme exemplo discutido no vídeo utilizado como referência nesse post.

Indo direto ao ponto, após capturar o nome que será dado ao novo projeto, você terá de iniciar a ação Send an HTTP Request to SharePoint, combinando o método POST com a URI irá criar o novo projeto (/_api/ProjectServer/Projects/Add). Em seguida, no corpo da instrução, você precisará determinar o nome do projeto e também especificar o ID do tipo de projeto que deverá ser utilizado:


Vale lembrar que você deverá substituir o trecho <inserir o nome do projeto> pelo output obtido nas ações anteriores.


Neste exemplo estou utilizando um EPT fixo para criar o novo projeto (mas também é possível utilizar um EPT dinâmico se o processo assim exigir). Como resultado, todas as vezes em que o flow for acionado, os novos projetos serão criados utilizando o EPT escolhido:


Espero que ajude