sexta-feira, 31 de julho de 2020

Project Online: Erro 23000(0x59D8)

Olá pessoal –

Recentemente um cliente começou a enfrentar um problema ao tentar publicar um cronograma no Project Online:


Ao clicar em More Info, os detalhes do erro são exibidos:


<?xml version="1.0" encoding="utf-16"?>

<errinfo>

      <general>

             <class name="Microsoft.Office.Project.Server.BusinessLayer.Queue.Message">

                   <error id="23000" name="ProjectPublishFailure" uid="bbe7f23f-d3af-ea11-b0c0-00155dd85201" projectuid="82526c60-91ef-e911-b09a-00155de0cb15" messagetype="Microsoft.Office.Project.Server.BusinessLayer.QueueMsg.PublishProjectMessage" messageID="12" stage="" blocking="Block"/>

             </class>

             <class name="Queue">

                   <error id="26000" name="GeneralQueueJobFailed" uid="bce7f23f-d3af-ea11-b0c0-00155dd85201" JobUID="bb6e6439-d3af-ea11-92f7-5ccd5b0bb796" ComputerName="2af58245-7478-4133-bc68-6f050af4d94b" GroupType="ProjectPublish" MessageType="PublishProjectMessage" MessageId="12" Stage="" CorrelationUID="09f75c9f-c0af-0000-52fa-8920d708dbee"/>

             </class>

      </general>

</errinfo>


Enquanto é difícil saber o que efetivamente estaria causando o erro (muito provavelmente esse caso se trata de um cronograma corrompido), a boa notícia é que é possível corrigi-lo. Mas, para entender o processo de correção, é preciso entender um pouco da estrutura e do esquema dos bancos de dados do Project Online.

No Project Online, os projetos podem estar salvos em até 3 bancos de dados diferentes: Draft, Published e Archived. O banco de dados Published tem como responsabilidade armazenar os projetos conforme eles foram publicados – ou seja, aquilo que o usuário visualiza na Central de Projetos é oriundo desse banco de dados (em resumo, são as informações mais recentes e representam a última atualização do projeto).

Enquanto isso, o banco de dados Draft tem como objetivo armazenar as informações dos projetos que foram modificados e salvos, mas que ainda não foram publicados. Por exemplo: um gerente de projetos acessa o cronograma via Project Professional, efetua algumas modificações nas tarefas, salva o arquivo mas não efetua a publicação. Dessa maneira, o que os usuários irão visualizar na Central de Projetos não será as modificações realizadas pelo gerente de projetos, mas sim as informações do projeto com base na última vez em que ele foi publicado. Daí, quando o projeto é finalmente publicado, as informações do banco Draft são espelhadas no banco Published.

Pois bem, voltando à correção do erro, para resolver o problema de publicação foi necessário acessar a área de exclusão de projetos (Administração do Banco de Dados e Fila > Excluir Objetos da Empresa) e escolher a opção de exclusão de apenas projetos publicados:


Perceba que você NÃO deve marcar a opção de excluir os Sites do SharePoint conectados.

Dessa forma, o projeto será removido do banco de dados Published, mas continuará ativo no banco de dados Draft. Então, bastará pedir para o gerente de projetos abrir o cronograma novamente a partir do Microsoft Project e publicar o projeto 😊.

Espero que ajude!


domingo, 26 de julho de 2020

Configurando a data de término nas views do Project for the web

Olá pessoal –

Dando continuação aos posts que estão complementando os vídeos sobre o Project for the web, hoje irei falar um pouco sobre o último vídeo publicado no meu canal sobre essa série, que trata da criação de views:


Eu não sei se vocês já chegaram a notar, mas ao acessar uma view padrão do Project for the web a partir do Dynamics 365, a coluna da data de término é apresentada no formato data e hora, diferentemente da coluna data de início, que é exibida apenas no formato data (perceba a diferença entre as colunas Start Date e Finish Date na imagem abaixo):


Essa situação acontece em virtude da maneira como o campo Data de Término foi configurado no Project for the web: ao acessar o campo a partir do Dynamics 365, podemos verificar que o seu tipo é Date and Time:


No exemplo do meu vídeo lá no YouTube, é latente a divergência entre as colunas de início e término:


Se isso te incomodar (e confesso que me incomoda um pouco 😊), é possível resolver o problema através da criação de um novo campo personalizado no Project for the web.

Navegando nos bastidores da solução, é possível criar um novo campo personalizado do tipo Date Only; perceba que o Dynamics 365 permite a criação do campo com o mesmo nome de um campo nativo existente (como o meu ambiente está em inglês, resolvi chamar o novo campo de Finish Date):


Como esse campo não irá permitir a entrada manual dos valores (uma vez que ele deve ser a representação do campo nativo data de término), basta configurá-lo como uma fórmula, de modo que ele esteja associado ao campo data de término:


Perceba que o Dynamics 365 irá salvar o nome dos campos e também seus atributos de maneira diferente, permitindo a rápida identificação e diferenciação do campo nativo e do campo personalizado:


Dessa forma você poderá modificar suas views para que exibam o campo personalizado ao invés do campo nativo, de modo que as colunas de início e término exibam o mesmo tipo de informação:


Penso que se trata de uma solução simples, porém é bem eficiente!

Um abraço e até a próxima!



quinta-feira, 2 de julho de 2020

MVP renovado: 2020-2021



Olá pessoal,

 Todo começo de Julho é sempre uma grande expectativa para todos os MVPs. Afinal, é nesse período em que a Microsoft faz uma avaliação das contribuições dos MVPs ao longo do último ciclo anual para então decidir quem será renovado e quem não mais fará parte do programa.

Uma coisa que pouca gente sabe é que o MVP é uma premiação dinâmica: ela se baseia no seu último ano de contribuições, e não em todo o seu histórico ao longo do tempo em que você está no programa. Isso quer dizer que um MVP de longa data pode não renovar caso não tenha contribuído significativamente nos últimos 12 meses – o que é muito bom, já que privilegia e reconhece quem é ativo junto à comunidade. Outra coisa boa que acontece em virtude desse critério é que sempre há espaço para novas pessoas chegarem, de forma que o programa MVP não se torna um grupo exclusivo e restrito sempre às mesmas pessoas.

Pois hoje sinto-me muito honrado e feliz em saber que fui renovado como MVP de Project, indo assim para o meu quinto ano consecutivo no programa. Para se ter uma ideia, na área da minha premiação existem apenas cerca de 30 profissionais reconhecidos como MVP em todo o mundo – sendo que 4 deles são brasileiros (além de mim, há os véios de guerra Allan Rocha e André Xavier e o Mário Trentim).

Então é isso pessoal... é um prazer enorme e uma responsabilidade maior ainda em fazer parte de um time com tantas feras. Meu dever agora é continuar o trabalho, compartilhando conhecimento e contribuindo com a comunidade do Microsoft Project, Project Online, Planner, Project for the web e muito mais!

Vamos juntos que tem muita coisa pela frente!


domingo, 28 de junho de 2020

Configurando os conjuntos de opções no Project for the web

Olá pessoal –

Como comentei no último post, recentemente iniciei uma playlist no meu canal do YouTube onde estou gravando vídeos para falar com um pouco mais de profundidade sobre as possibilidades de extensão do Microsoft Project for the web. No vídeo número #003 da série abordei o tópico de como criar formulários personalizados através da interface do Power Apps, para que seja possível coletar e exibir os atributos personalizados dos projetos:

Na medida em que vou publicando novos vídeos no YouTube, irei também escrever alguns complementos aqui no blog com dicas e truques sobre como potencializar as personalizações.

Conforme discutido no vídeo, os formulários deverão conter os campos personalizados que fazem parte do ciclo de vida do processo de gerenciamento de projetos em vigor na organização. Um recurso bem bacana que pode ser implementado é o de configurar os campos do tipo ‘Conjunto de Opções’ para que apresentem um visual mais moderno em relação à sua visualização padrão, permitindo aos usuários visualizar todos os valores de uma única vez e então selecionando o valor desejado, ao invés do convencional drop-down. Como é difícil explicar em palavras, vou usar os exemplos de imagens que falam por si só.

Usando como exemplo o campo personalizado ‘Prioridade’, essa é a maneira como o campo é apresentado de maneira padrão em um formulário:


Como podemos ver, trata-se de um campo de seleção baseado em drop-down, com o qual já estamos acostumados.

Com a configuração personalizada que pode ser aplicada ao campo, teríamos o seguinte resultado:


Para configurar o campo dessa forma, basta seguir os passos abaixo:

1. Acesse o formulário a ser configurado e coloque-o em modo de edição

2. Em seguida, na barra superior, clique em Switch to classic

3. Na página clássica do Power Apps, selecione o campo desejado (no exemplo atual o campo Prioridade) e então efetue duplo-clique sobre o campo (ou então clique na opção Change Properties, disponível na Faixa de Opções)

4. Clique então na aba Controls e clique em Add Control. Selecione a opção Option Set


5. Marque as opções para que este controle seja utilizado nos formulários que pretende utiliza (Web, telefone, tablet) e então clique OK.

6. Para finalizar salve e publique o formulário

Desse modo, ao cadastrar novos projetos pela interface do Dynamics 365 (aplicativo do Project) a nova visualização estará disponível para os usuários 😊

Importante: a configuração do conjunto de opções para os campos personalizados, até o presente momento, só funciona com campos de até 3 opções.

Um abraço e até a próxima!



domingo, 14 de junho de 2020

Campos personalizados do tipo fórmulas no Project for the web

Olá pessoal –

Recentemente iniciei uma playlist no meu canal do YouTube onde estou gravando vídeos para falar com um pouco mais de profundidade sobre as possibilidades de extensão do Microsoft Project for the web. No vídeo número #002 dessa série abordei o tópico de como criar campos personalizados através da interface do Power Apps, de modo que seja possível coletar atributos personalizados a respeito dos projetos:

Um item que acabei não discutindo no vídeo foi a possibilidade de criar campos personalizados que sejam baseados em fórmulas, então decidi escrever esse post como complemente ao vídeo.

A título de exemplo, suponha que uma determinada empresa queira descobrir qual o retorno sobre investimento de um determinado projeto. Para isso ela precisará coletar dois atributos – Custo Proposto e Retorno Financeiro – que deverão ser adicionados ao Microsoft Project for the web na forma de campos personalizados do tipo currency (moeda), conforme comentei no vídeo. Então, a empresa precisará criar um terceiro atributo (ou seja, um campo personalizado) chamado ROI, que será baseado na divisão entre o Retorno Financeiro pelo Custo Proposto.

Vamos então botar a mão na massa e criar o campo no nosso ambiente.

Retorno sobre investimento – roi

Uma vez no ambiente do Dynamics (https://make.powerapps.com), selecione a solução com a qual você está trabalhando (caso tenha criado uma solução) e em seguida clique na entidade Projetos. Em seguida, na lista de comandos na parte superior, clique em + Add field. Você poderá determinar o nome do novo campo personalizado, assim como suas demais características. Em Data type, selecione número decimal (Decimal number), e em seguida clique em +Add para adicionar um cálculo:


O Power Apps irá solicitar que você salve o trabalho para continuar. Em seguida é importante ficar atento, pois a criação do novo campo será feita em uma nova janela (via um pop-up), e caso o seu navegador esteja com o bloqueador de pop-ups ativado, você poderá ter problemas em abrir a nova janela:


Habilite o pop-up para poder continuar, e caso a janela não seja aberta automaticamente, clique no link disponibilizado pelo sistema:


Uma vez com a nova janela aberta, bastará definir os parâmetros do campo calculado. O Microsoft Dynamics organiza a lógica de construção oferecendo condições e ações, de modo que seja possível construir campos personalizados simples ou complexos, a depender da necessidade apresentada.

Para este exemplo, clique na opção de adicionar uma condição (Add condition). O grupo será então expandido para que seja possível determinar todas as condições necessárias:


A lógica a ser aplicada deverá verificar se o campo é igual a zero (pois, caso o Custo Proposto seja zero, não será necessário efetuar a divisão, uma vez que não é possível dividir um número por zero):


Logo, se o valor do Custo Proposto é zero, a resposta também será zero. Para isso, adicione uma nova ação (Add action) e digite o número zero na área de resposta:


Porém, caso o valor do Custo Proposto não seja zero, então o cálculo do ROI deverá ser realizado. Para isso, adicione uma nova seção para continuar avaliando a fórmula, clicando em Add Else:


Como não será necessário analisar uma segunda condição, bastará adicionar uma nova ação que irá determinar o cálculo a ser feito (Add action):


Uma vez que todas as condições e ações tenham sido adicionadas, clique em Save and Close para finalizar a construção do novo campo.

Dessa maneira, todas as vezes em que um novo projeto for criado no ambiente, o cálculo do ROI será executado de acordo com os parâmetros definidos.


terça-feira, 9 de junho de 2020

Copiando projetos no Project for the web

Olá pessoal –

Mais um post sobre as novidades que a Microsoft vem implementando no Project for the web (conforme já havia comentado aqui e aqui).

Na página User Voice do Project há uma ideia que sugere a inclusão de modelos de cronograma no Project for the web – afinal, a grande maioria das organizações possui modelos de cronograma que devem ser utilizados quando um novo projeto é iniciado:


Levando em conta o feedback da comunidade, a Microsoft começou a fazer o roll-out parcial dessa funcionalidade, de modo a permitir que os usuários possam iniciar novos projetos a partir de um projeto existente – veja que não se trata de iniciar a partir de um modelo (como sugerido inicialmente), mas sim a partir de uma cópia de um projeto existente.

Hoje, ao acessar o meu ambiente do Project for the web, já me deparei com o comunicado:


Como o próprio comunicado já deixa claro, o processo para copiar um projeto é simples, bastando clicar no nome do projeto a partir do qual a cópia será feita e então optar por copiá-lo. Baseado nisso, resolvi experimentar e ter minhas impressões.

O que acontece quando você copia um projeto?


Ao copiar um projeto, algumas informações do projeto existente são carregadas para o novo projeto, enquanto outras não são. Abaixo os detalhes:

O que é mantido:

  • Toda a estrutura de tarefas, com seus vínculos, durações e datas

  • Os buckets oriundos do projeto original

  • As anotações que foram realizadas nas tarefas do projeto original

O que não é mantido:

  • O percentual de conclusão das tarefas (todas as tarefas no novo projeto são zeradas)

  • As atribuições dos recursos (o novo projeto nasce sem membros e sem atribuições)

  • O cálculo do Tempo necessário (esforço em horas) – como o novo projeto nasce sem recursos/atribuições, a distribuição das horas não é feita como no projeto anterior, que aloca o montante de horas por recurso em relação à duração das tarefas (comportamento padrão)

  • O novo projeto também, por padrão, não é associado a nenhum grupo. É possível, no entanto, associá-lo a um grupo existente ou criar um novo grupo exclusivo para este projeto

Pois é, em resumo, é o que temos pra hoje. Particularmente, penso que a Microsoft precisa aperfeiçoar esse recurso – pois eu ainda prefiro utilizar modelos de cronograma. Modelos são, essencialmente, criados para servir como o padrão oficial aprovado na organização no que se refere à construção de cronogramas. Eles determinam as tarefas principais, sua sequência lógica de relacionamento, e devem considerar as boas-práticas de gerenciamento de projetos e agendamento de tarefas, somando-se aos processos em vigor na companhia.

Quando começamos um projeto copiando um cronograma existente, corre-se o risco de que o cronograma sendo utilizado como referência não esteja seguindo essas boas práticas, comprometendo a qualidade do novo cronograma desde o princípio.

A Microsoft ainda está pedindo feedbacks a respeito do que os usuários estão achando sobre essa nova funcionalidade, portanto vale bastante a pena testá-la e então ir lá no portal User Voice e compartilhar suas sugestões para que a funcionalidade possa ser melhorada.

https://microsoftproject.uservoice.com/forums/914203-project-for-the-web/suggestions/38916190-add-templates-to-project-for-the-web

Continuarei a ficar de olho nas funcionalidades, na medida em que forem lançadas.

Um abraço!

quarta-feira, 3 de junho de 2020

Acesso de leitura do Project for the web para usuários E5

Olá pessoal –

Conforme eu havia comentado no post sobre as novidades do Project for the web, a Microsoft iniciou o roll-out relacionado ao novo modelo de licenciamento para a plataforma, de modo a garantir que qualquer usuário do Office 365 que esteja associado a uma licença E5 possua acesso de leitura aos projetos criados no Project for the web. O anúncio oficial foi publicado na última sexta-feira, 29 de Maio de 2020.

Uma vez que a nova funcionalidade entrou em vigor, resolvi conferir para entender melhor o seu funcionamento.

Acesso de leitura na prática

Do ponto de vista do gerente de projeto, para garantir que os usuários com licença E5 tenham condições de visualizar um determinado projeto, é necessário adicioná-los como membros do grupo que está associado ao projeto. Para isso, basta adicioná-los diretamente ao grupo na página do projeto – ou então atribuí-los a uma tarefa, o que automaticamente irá adicionar os usuários ao grupo.

No exemplo abaixo, um usuário chamado Roberto Gomes foi atribuído a algumas tarefas do projeto:


Perceba que, ao atribuir uma ou mais tarefas ao Roberto, ele é automaticamente adicionado ao grupo relacionado ao projeto:


Da perspectiva do usuário, o que acontece é o seguinte: ao acessar o Project for the web https://project.microsoft.com, o nosso usuário irá visualizar os projetos que foram compartilhados com ele. Perceba que, na página inicial do Project for the web (Project Home), o comando Novo projeto em branco, que permite a criação de novos projetos para usuários com licenças do Microsoft Project (P1, P3 e P5), estará oculto:


O usuário poderá então acessar o projeto que desejar. Ao visualizar as tarefas do projeto, todas as tarefas aparecerão bloqueadas com a mensagem Esta célula é somente leitura:


Dessa forma, mesmo ao clicar no comando que permite a exibição dos detalhes da tarefa, seu conteúdo permanecerá bloqueado:


Mais boas notícias

Ainda no anúncio realizado na última semana de Maio, a Microsoft informou que a funcionalidade de acesso somente leitura ao Project for the web será estendida a outros tipos de licença do Office 365.

Esse movimento abre um leque muito grande de possibilidades para garantir visibilidade dos projetos e empreendimentos em toda a organização, sem restrições e custos adicionais. Bola dentro da Microsoft!


domingo, 31 de maio de 2020

Atualizando múltiplos projetos

Olá pessoal –

Nesse mês de Maio/2020 publiquei um vídeo no meu canal do YouTube onde explico como é possível construir, via Power BI, um relatório que consolide múltiplos cronogramas criados no Microsoft Project:

Uma vez publicado, o vídeo gerou uma excelente repercussão, e recebi muitos comentários e mensagens com dúvidas complementares. Uma dúvida em particular que me chamou a atenção estava relacionada a possibilidade de atualizar múltiplos cronogramas de uma única vez:

“Eu tenho múltiplos cronogramas para gerenciar, e periodicamente preciso acessar cada um deles individualmente no MS Project para atualizar as tarefas, e esse é um trabalho manual, repetitivo e que consome muito tempo. O que eu queria saber é se é possível atualizar todos os cronogramas de uma forma centralizada, para ser mais eficiente e economizar tempo. Pode me ajudar?”

Essa é uma dúvida muito pertinente e interessante, então gostaria de explorá-la um pouco mais nesse post. Há cerca de dois anos, publiquei um post aqui no blog para discutir em detalhes a importância de se trabalhar com a Data de Status no momento da atualização dos cronogramas. Adicionalmente, no meu canal no YouTube, publiquei um vídeo de 50 minutos com as boas práticas para atualização de cronogramas e inserção das informações reais do andamento do projeto:

Nesse sentido, se você ainda não conhecia esses dois materiais, sugiro reservar um tempo para estudá-los, pois os conceitos que vamos discutir abaixo utilizam informações do post e do vídeo como referência 😉.

Atualizando múltiplos projetos

Voltando ao ponto central do post de hoje, caso você queira atualizar múltiplos cronogramas de maneira centralizada, poderá criar um projeto em branco (temporário) no Microsoft Project e então adicionar cada um dos cronogramas individualmente para que seja possível efetuar as ações de atualização de maneira mais simplificada e eficiente – um conceito parecido com o recurso de Projetos Mestre e Subprojetos.

Inicie o trabalho abrindo um novo projeto em branco no Project:


Em seguida, você poderá adicionar os projetos a serem atualizados clicando em Projeto > Subprojeto:



Uma vez que os cronogramas que você deseja atualizar estejam inseridos no projeto temporário, você poderá expandi-los para exibir todas as tarefas. Como eu explico no post e no vídeo que deixei como referência, o ideal é definir a Data de Status para que seja possível referenciar o status de cada uma das tarefas dos projetos inseridos. Após definir a Data de Status, você poderá adicionar a coluna Status à tabela atual para que seja possível filtrar, por exemplo, as tarefas atrasadas:




Uma vez que você tenha identificado as tarefas atrasadas em cada um dos cronogramas, poderá atualizá-las conforme a situação de cada uma delas.

Quando o trabalho de atualização tiver sido concluído, você terá que fechar o projeto temporário (Projeto1), mas não deverá salvá-lo. A maneira mais segura de efetivar essa ação é clicando em Arquivo > Fechar. Quando o Project perguntar se deseja salvar as mudanças em Projeto1, clique Não:


Logo em seguida, o software irá perguntar se você deseja salvar as mudanças realizadas em cada um dos projetos. Nesse caso a resposta é Sim, pois desejamos que as alterações feitas nos cronogramas sejam salvas. Como podemos ter atualizado vários cronogramas de uma única vez, o mais fácil é escolher a opção Sim para tudo:


Dessa forma as alterações serão aplicadas em cada um dos projetos de maneira individualizada, mas não iremos criar projetos mestre e nem subprojetos. Simples e eficiente.

Importante lembrar uma coisa: o fato de termos definido uma data de status no projeto temporário irá permitir a identificação e seleção das tarefas atrasadas de todos os subprojetos inseridos, mas não irá efetivamente definir a data de status de cada um dos projetos individuais. Se desejar atualizar a data de status de cada um dos cronogramas, ainda precisará atualizá-los individualmente.

E você, tem algum processo preferido para atualização dos cronogramas periodicamente? Deixe o seu comentário para que possamos compartilhar outras maneiras lidar com atualizações múltiplas.

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


domingo, 26 de abril de 2020

Adicionando a Data de Status nos relatórios

Olá pessoal –

Um post bastante famoso aqui do blog é um que falo sobre o conjunto de relatórios personalizados para o Microsoft Project que eu construí e disponibilizei de forma gratuita para os usuários do software. Até hoje, os arquivos com os relatórios foram baixados 2.472 vezes (!), um número que eu jamais imaginei que pudesse alcançar. No meu canal no YouTube eu também falei sobre como construir os relatórios do zero, para os casos nos quais o conjunto que eu havia disponibilizado não atender necessidades específicas.

Recentemente recebi um e-mail de uma pessoa que havia feito o download e estava usando os relatórios. A pessoa havia comentado que o Project era um software fundamental na empresa, e que eles sempre utilizavam a Data de Status para atualizar os cronogramas. Porém, havia um problema: o time do PMO havia realizado algumas modificações nos relatórios, e identificaram que o campo contendo a Data de Status não estava disponível para ser inserida nos relatórios 😕

Poxa Microsoft, que bola fora! Deixar de fora dos campos disponíveis para os relatórios uma informação tão importante? Mas acontece que, como somos todos inconformados, fomos lá tentar resolver o problema 😁

É interessante perceber que, ao acessar a área de relatórios e expandir a seção de Datas, várias informações estão disponíveis – como por exemplo a Data Limite, Data de Restrição, e as datas de Início e Término dos sprints – mas a bendita da Data de Status não está lá.

Então, para dar um jeito nessa situação, temos que criar um campo personalizado do tipo Data que seja uma réplica da Data de Status. O passo-a-passo:

1. Clicar em Projeto > Campos Personalizados > selecionar o tipo Data
2. Selecionar o primeiro campo de data disponível e clicar em Renomear. Eu renomeei o meu campo para Data Status, mas você pode ficar à vontade para renomear o campo de acordo com a sua necessidade
3. Em seguida, clicar em Fórmula. Na caixa de diálogo, clicar em Campo > Projeto > Data > Data de Status


4. Em Cálculo das linhas de resumo de tarefa e de grupo selecionar Usar Fórmula

Em seguida você deve garantir que a Data de Status está definida para o seu projeto. Ao retornar ao seu relatório personalizado, expanda a visualização da Lista de Campos e então a subseção Data. Em Personalizado você deverá encontrar o campo que acabou de ser criado, e então poderá adicioná-lo ao relatório:


Problema resolvido:


🚀🚀🚀