Olá pessoal –
Esta é a parte 2 da série de posts
sobre a criação de relatórios utilizando dados do Project Roadmap. Se você
ainda não leu a primeira parte, volte lá pois é importante.
Bem, agora que nós já sabemos como
estabelecer uma conexão com o CDS, como configurar as permissões adequadas para
termos direito a obter os dados, e quais as tabelas que armazenam as
informações do Roadmap, vamos entender um pouco melhor a estrutura das tabelas
mais importantes para criarmos nosso primeiro relatório.
A primeira tabela que iremos
analisar no contexto atual é a tabela msdyn_roadmap.
Como seu próprio nome sugere, esta tabela armazena dados gerais dos roadmaps
criados na organização. Dentre as várias colunas existentes na tabela, as mais
relevantes (e que iremos utilizar para construir o nosso relatório) são:
Nome
da coluna
|
Detalhes
|
msdyn_name
|
O
nome do roadmap ou dos itens (linhas) criados para cada roadmap
|
msdyn_roadmapip
|
O
código único identificador do roadmap ou item (chave primária)
|
msdyn_type
|
O
tipo de dado (0 = Roadmap | 1 = RoadmapRow)
|
msdyn_type_display
|
O
nome por extenso do tipo de dado
|
Ao analisar a estrutura
desta tabela, é interessante notar que, por mais que seu nome seja msdyn_roadmap, ela não armazena apenas
informações dos roadmaps criados... a tabela também é responsável por armazenar
as linhas (rows) criadas para cada roadmap. Para evitar qualquer confusão e
criar uma estrutura de dados que mantenha uma organização mais lógica, eu
prefiro segmentar a tabela para que ela exiba apenas informações a nível dos
roadmaps, sem incluir as linhas. Assim, apliquei um filtro na coluna msdyn_type
para que apenas sejam selecionados dados onde o valor seja igual a 0 (zero):
O passo seguinte foi
duplicar a tabela msdyn_roadmap e
criar uma nova tabela chamada msdyn_roadmaprow,
a qual será responsável por incluir apenas dados onde o valor da coluna msdyn_type
seja igual a 1 (um), ou seja, as linhas (rows) de cada roadmap:
Após duplicar a tabela e alterar o
filtro, uma ação complementar foi realizada: a coluna msdyn_parentroadmapid
foi adicionada à tabela. A inclusão desta coluna é muito importante e deve ser
feita na tabela duplicada, uma vez que cada uma das linhas (rows) estará
conectada a seu respectivo roadmap. Em outras palavras, cada linha é um filho
do roadmap (pai).
Após
realizar as alterações, vamos dar uma pausa para estabelecer um relacionamento
entre as duas colunas, de modo a compreender melhor como será a sua
comunicação:
A imagem acima deixa as coisas mais
claras: para cada roadmap existente, podem haver múltiplas linhas (rows) criadas.
Faz sentido pra você?
Então vamos lá...
O
próximo passo será organizar as informações disponíveis na tabela msdyn_roadmapitem. Esta tabela tem como
finalidade apresentar todas as tarefas e marcos cadastrados em cada uma das linhas
existentes nos roadmaps. Está ficando complicado? Dê uma olhada na imagem
abaixo, que tenta demonstrar cada um dos elementos disponíves em um roadmap:
Então, vamos em frente!
Da tabela msdyn_roadmapitem vamos precisar das seguintes colunas:
Nome da coluna
|
Detalhes
|
msdyn_duedate
|
A
data de vencimento do item
|
msdyn_name
|
O
nome do item
|
msdyn_roadmapid
|
O
id do roadmap ao qual o item está relacionado
|
msdyn_startdate
|
A
data de início do item
|
msdyn_status_display
|
O
status do item, conforme definido no Roadmap
|
msdyn_type_display
|
O
tipo de item (fase ou data key date)
|
O passo seguinte será
estabelecer um relacionamento um-para-muitos entre a coluna msdyn_roadmapid da
tabela msdyn_roadmaprow e a coluna msdyn_roadmapid da
tabela msdyn_roadmapitem, pois para
cada linha de um roadmap podem haver múltiplos itens:
Agora está ficando legal.
Se voltarmos para a área de relatórios do Power BI, será possível criar uma
visão inicial de um relatório, usando informações dos roadmaps, das linhas e
dos itens:
Porém... (já reparou que sempre há
um porém?), temos um pequeno problema: o Project Roadmap permite que key dates
sejam criados sem que necessariamente estejam associados às linhas. Estes são
key dates que pertencem ao roadmap de maneira geral, não estando vinculados às
linhas existentes. Quando isso acontece, por não estarem associados à nenhuma
das linhas, os key dates do roadmap acabam ficando órfãos no relatório – é
essencialmente o que está acontecendo com os quatro primeiros itens da visão
acima.
Na
imagem abaixo, é possível visualizar os key dates do roadmap:
Para resolver o problema, vamos
tomar as seguintes ações:
1) Duplicar a tabela msdyn_roadmapitem, criando uma nova tabela
chamada msdyn_roadmapkeydates
2) Aplicar um filtro na nova tabela para
que os dados da coluna msdyn_type_display
seja apenas do tipo KeyDate
3)
Remover a coluna msdyn_duedate da
tabela
Por fim, deve ser criado um
novo relacionamento do tipo um-para-muitos entre a coluna msdyn_roadmapid da
tabela msdyn_roadmap e a coluna msdyn_roadmapid da
tabela msdyn_roadmapkeydates:
Uma vez realizados os
ajustes e configurações necessárias em cada uma das tabelas principais, com
seus respectivos filtros e relacionamentos, você poderá começar a montar o seu
dashboard. Aqui um exemplo visual de possíveis resultados que podemos obter:
Próximos passos
Além das configurações sugeridas
neste post, você também pode utilizar as tabelas adicionais (msdyn_roadmapitemlink, msdyn_roadmapRowLink e msdyn_roadmapusersetting) para
estabelecer conexões entre os dados dos roadmaps e os projetos existentes no
seu ambiente do Project Online. Neste cenário, além de exibir informações
relacionadas aos roadmaps, você também poderia exibir informações gerais dos
projetos e das tarefas dos cronogramas, de modo a criar uma visão muito mais
abrangente do relacionamento existente entre os projetos e tarefas com os roadmaps.
Vou ficando por aqui, e espero que
você tenha gostado do post!
Um forte abraço.