quinta-feira, 18 de abril de 2019

Criando relatórios para o Project Roadmap - parte 1

Olá pessoal –

Em alguns posts anteriores aqui no blog, procurei explorar um pouco mais sobre a nova plataforma da Microsoft, o Project Roadmap. Em Outubro de 2018 publiquei o primeiro post com a visão geral do Roadmap; já em Dezembro eu tive o prazer de escrever um artigo junto ao Kenneth Steiness para explicar em mais detalhes os contextos nos quais o Roadmap poderia ser utilizado; finalmente, em Janeiro deste ano eu escrevi um terceiro post para discutir alguns recursos e funcionalidades da plataforma.

Os posts e artigos escritos anteriormente tinham como objetivo iniciar a conversa sobre o Project Roadmap, assim como explorar cenários sobre como a plataforma pode contribuir com o planejamento estratégico das organizações. A partir de agora, a ideia é entrar em alguns detalhes mais técnicos, principalmente no que se refere à criação de relatórios, painéis e dashboards com dados oriundos do Roadmap.

Como você já deve ter lido em algum dos posts anteriores, quando novos roadmaps são criados, os dados são armazenados no CDS (Common Data Services for Apps), e não no tradicional banco de dados OData que armazena dados dos projetos criados no Project Online. Nesse sentido, o resultado prático é que administradores do Project Online, que por padrão possuem acesso ao serviço de relatórios do Project Online (ou seja, podem estabelecer conexões com o banco OData para criar seus relatórios), não terão as mesmas permissões no CDS, e assim não irão conseguir acessar o banco de dados para extrair as informações de que precisam.

Com base nesse contexto, neste post vamos entender um pouco mais sobre o processo de extração de informações do CDS, os bloqueios existentes e os ajustes que precisam ser feitos para garantir que os usuários sejam atribuídos às permissões devidas.

Como saber onde os dados do roadmap são armazenados?

O primeiro passo para construir relatórios com dados dos roadmaps é descobrir a URL que contém o endereço da instância do Dynamics 365 onde os dados estão armazenados. Para isso, abra o navegador e digite https://powerapps.microsoft.com. Na página inicial do PowerApps, clique na engrenagem e então Personalizações Avançadas > Recursos para desenvolvedor:



A página seguinte irá exibir a URL da API do Dynamics a qual você deverá se conectar para obter dados dos roadmaps construídos na sua organização:




Para o meu ambiente de demonstração, a URL do Dynamics 365 é: https://org48c5c3c8.crm2.dynamics.com/


Obtendo dados de roadmaps
Uma vez com o endereço da URL do Dynamics 365 teríamos condições de, em teoria, estabelecer uma conexão com o CDS para obter os dados dos roadmaps e iniciar a construção dos relatórios. No Power BI Desktop, podemos clicar em Obter Dados > Online Services > Common Data Service for Apps (Beta):



Em seguida deve ser inserida a URL com a fonte de dados:



Ao clicar em OK deve-se entrar com as credenciais que farão a autenticação junto ao Dynamics 365. Uma vez realizada a autenticação, será possível identificar todas as entidades disponíveis no ambiente do Dynamics 365. É possível pesquisar o termo ‘roadmap’ para facilitar a identificação de todas as entidades relacionadas ao Roadmap, que são:


- msdyn_roadmap
- msdyn_roadmapitem
- msdyn_roadmapitemlink
- msdyn_roadmapRowLink

- msdyn_usersetting


No próximo post iremos discutir em mais detalhes cada uma das entidades, incluindo como as informações estão estruturadas em cada uma delas e como devemos utilizá-las para construir os nossos relatórios, painéis e dashboards. Por enquanto, ainda temos uma barreira a superar.

O problema atual é que, após selecionar as entidades do Roadmap e clicar em carregar, nenhuma informação é exibida:


Ao clicar no Editor de Consultas do Power BI é possível entender o motivo de os dados não terem sido carregados:


A mensagem de erro apresentada é clara: Expression:Error: Access to the resource is forbidden – ou seja, a conta utilizada não possui as permissões necessárias para obter os dados do Dynamics 365.

Concedendo permissões para leitura de dados dos roadmaps no dynamics 365

Para resolver o problema de permissionamento, você precisará da ajuda de alguém que possua permissões globais no ambiente do Office 365 da sua empresa. Essa pessoa deverá: 1) criar uma nova função (role) que terá as devidas permissões de leitura nas entidades do Roadmap; 2) atribuir a nova função aos usuários que irão consumir os dados do Roadmap para criar os relatórios. O passo-a-passo para está listado abaixo:

1. Acessar o ambiente do PowerApps (https://powerapps.microsoft.com) e clicar na engrenagem > Funções de segurança


2. Na página seguinte, clicar em New para criar uma nova função


3. Neste exemplo, irei nomear a nova função como ‘Roadmap Reporting


4. Em seguida, clicar em Custom Entities para determinar o tipo de permissão a ser associada às entidades do Roadmap para os usuários que forem atribuídos à esta função. A permissão Read (leitura) deve ser combinada com a Key Organization



5. Clicar em Save and Close

6. Na janela seguinte, junto à nova função, clicar no link do Business Unit para acessar as configurações personalizadas da organização


7. Em seguida deve-se selecionar o(s) usuário(s) que será(ão) atribuído(s) à função. Clicar em More Actions > Assign Roles


8. Por fim, basta associar os usuários com a nova função para que eles tenham condições de extrair dados referentes aos roadmaps


Uma vez que as devidas permissões forem corrigidas, você deverá estar apto a obter os dados que serão utilizados no relatório:


Fique ligado pois nos próximos posts falaremos mais sobre a construção dos relatórios, painéis e dashboards com dados do Roadmap.

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