Adicionar Gráfico Analítico em Relatório Master-Detail

1. Objetivo

Esta funcionalidade estende um relatório Master-Detail existente, incorporando um componente analítico (gráfico) na tela de detalhe. O gráfico exibirá valores agregados dos itens de um pedido de compra específico, proporcionando uma visualização contextualizada dos KPIs.

2. Pré-requisitos

Relatório Master-Detail Existente: O relatório Master-Detail desenvolvido nas aulas anteriores (Master-Detail Report com YVDM_PO_PROXIMOS_15_DI) é o ponto de partida e deve estar disponível no Tachyonix Builder.

Autorizações SAP: Acesso a transações para ativação de serviços OData e geração de objetos de dicionário (ex: PFCG para roles, SU01 para usuários, SEGW para serviços OData, SE11 para dicionário ABAP).

Configuração na Tachyonix: Acesso ao Tachyonix Builder com permissões para criar e modificar componentes (Fontes de Dados, Data Views, Relatórios).

Dados de Exemplo: Existência de pedidos de compra com itens no sistema SAP para que o gráfico possa exibir dados.

3. Passo a Passo Detalhado

3.1. Criação da Fonte de Dados Auxiliar para o Gráfico

Criar Novo Componente de Fonte de Dados:

No Tachyonix Builder, navegue até a seção de criação de componentes.

Selecione o tipo "Fonte de Dados" e, em seguida, "Serviço (OData)".

Preencha o campo "Título" com VMD KPI dos Itens.

Preencha o campo "Nome Técnico" com YVDM_KPI_DOS_ITEMS.

Confirme a criação.

Selecionar Fonte de Dados Base:

Na tela de configuração da nova fonte de dados YVDM_KPI_DOS_ITEMS, selecione a CDS View YVDM_PO_PROXIMOS_15_DI como a fonte de dados base.

Definir Campos de Saída:

Navegue até a aba "Saída".

Expanda a associação _PurchaseOrderItem.

Selecione os seguintes campos:

  • PURCHASEORDER (Campo Chave)
  • PURCHASEORDERITEM (Campo Chave)
  • NETAMOUNT (Campo de Valor/Medida)
  • GROSSAMOUNT (Campo de Valor/Medida)
  • EFFECTIVEAMOUNT (Campo de Valor/Medida)

Construir Fonte de Dados:

Clique no botão "Construir" (Build) para gerar e ativar o serviço OData correspondente a esta fonte de dados auxiliar no backend SAP.

3.2. Criação do Gráfico (Data View)

Criar Data View a partir da Fonte de Dados:

Após a conclusão da construção da fonte de dados YVDM_KPI_DOS_ITEMS, localize a opção "Criar DataView" diretamente a partir dela.

Preencha o campo "Nome do Componente" com KPIitem_aula004.

Confirme a criação.

Configurar o Gráfico:

Na tela de configuração do Data View KPIitem_aula004:

No campo "Tipo de Gráfico", selecione "Barras" (Bar Chart).

Na seção "Medidas (Measures)", adicione os seguintes campos:

  • NETAMOUNT
  • GROSSAMOUNT
  • EFFECTIVEAMOUNT

Na seção "Dimensões (Dimensions)", adicione os seguintes campos:

  • PURCHASEORDER
  • PURCHASEORDERITEM

3.3. Inserção do Gráfico no Relatório Principal

Editar Relatório Existente:

Abra o componente do relatório principal ("Relatório de PO com 15 dias") para edição no Tachyonix Builder.

Inserir Data View:

Navegue até a aba "Saída".

Acesse a formatação da tela de detalhe "Detalhe PO".

Localize a opção para inserir um novo componente e selecione o Data View KPIitem_aula004 recém-criado.

Configurar Layout do Gráfico:

No Data View KPIitem_aula004 inserido na tela de detalhe:

  • No campo "Layout", selecione "Tab" (aba).
  • No campo "Descrição da Aba", insira "KPI".
  • No campo "Ícone da Aba", selecione o ícone sap-icon://bar-chart.
  • No campo "Altura", selecione "Médio".

3.4. Vinculação de Dados (Binding) entre Relatório e Gráfico

Configurar Filtro de Vinculação:

No Data View KPIitem_aula004 inserido no relatório principal, localize a seção de configuração de filtros.

Crie um novo filtro.

No lado esquerdo (campo do Data View), selecione PURCHASEORDER.

No lado direito (campo do contexto do relatório principal), selecione PURCHASEORDER.

Esta configuração estabelece que o valor do PURCHASEORDER do registro selecionado no relatório principal será passado como filtro para o serviço OData do Data View.

3.5. Construção Final e Demonstração

Reconstruir a Aplicação:

Clique no botão "Construir" (Build) no relatório principal para aplicar todas as alterações e regenerar a aplicação Fiori.

4. Verificação e Teste

Abra a aplicação Fiori gerada em um navegador.

Na lista mestre, selecione um pedido de compra.

Navegue para a tela de detalhe do pedido.

Clique na nova aba rotulada como "KPI".

Verifique se o gráfico de barras é exibido, mostrando os valores NETAMOUNT, GROSSAMOUNT, e EFFECTIVEAMOUNT para cada item (PURCHASEORDERITEM) pertencente apenas ao pedido de compra selecionado na lista mestre.

5. Considerações Técnicas Adicionais

5.1. Componentização com Data Views

Um "Data View" na plataforma Tachyonix.io é um componente analítico reutilizável, análogo a um relatório ALV encapsulado em um componente UI5, porém com uma camada de abstração OData. Ele é projetado para consumir seu próprio micro-serviço OData, que é gerado automaticamente a partir de uma fonte de dados definida no Tachyonix Builder.

Reutilização: Data Views podem ser inseridos em múltiplos aplicativos e telas, promovendo a reutilização de componentes de visualização.

Desacoplamento: A arquitetura de Data Views desacopla a lógica analítica da aplicação principal. O Data View é responsável apenas por exibir os dados que seu serviço OData fornece, sem depender diretamente da fonte de dados primária da aplicação que o hospeda. Isso melhora a modularidade e a manutenibilidade.

Performance: Ao ter seu próprio serviço OData, o Data View pode ser otimizado para buscar apenas os dados necessários para sua visualização específica, reduzindo o payload de dados e melhorando a performance.

5.2. Binding de Dados (Contextualização)

O processo de vinculação (binding) de dados entre o relatório principal e o Data View é fundamental para a contextualização da informação. Para um desenvolvedor ABAP, este conceito é análogo à passagem de parâmetros para um Function Module (FM) ou método de classe.

Mecanismo: Quando um Data View é inserido em uma aplicação, é possível configurar filtros de vinculação. Estes filtros mapeiam um campo do contexto da aplicação principal (ex: PURCHASEORDER do registro selecionado) para um campo correspondente no Data View.

Funcionamento: Ao selecionar um registro no relatório principal, o valor do campo mapeado (ex: o ID do pedido de compra) é capturado. Este valor é então passado como um parâmetro de filtro para a requisição OData que o Data View faz ao seu micro-serviço.

Exemplo: No cenário descrito, o PURCHASEORDER selecionado na lista mestre é passado como um filtro para o serviço OData do Data View YVDM_KPI_DOS_ITEMS. Isso garante que o gráfico exiba apenas os itens (PURCHASEORDERITEM) pertencentes àquele pedido de compra específico, contextualizando a visualização. A requisição OData resultante seria similar a /sap/opu/odata/tachyonix/YVDM_KPI_DOS_ITEMS_SRV/YVDM_KPI_DOS_ITEMS?$filter=PURCHASEORDER eq '4500000001'.

5.3. Fontes de Dados Auxiliares

A criação de uma fonte de dados auxiliar (YVDM_KPI_DOS_ITEMS) para o gráfico, em vez de reutilizar a VDM principal (YVDM_PO_PROXIMOS_15_DI), é uma boa prática de performance e design.

Payload Otimizado: A fonte de dados auxiliar é configurada para expor e trafegar apenas os campos estritamente necessários para a visualização do gráfico (neste caso, PURCHASEORDER, PURCHASEORDERITEM, NETAMOUNT, GROSSAMOUNT, EFFECTIVEAMOUNT). Se a VDM principal fosse utilizada diretamente, ela traria todos os campos do pedido de compra, muitos dos quais seriam irrelevantes para o gráfico.

Performance da Rede: Um payload menor resulta em menos dados transferidos pela rede, o que se traduz em respostas mais rápidas do serviço OData e uma melhor experiência do usuário, especialmente em ambientes com latência de rede.

Otimização de Backend: O serviço OData gerado para a fonte de dados auxiliar pode ser otimizado no backend SAP para buscar apenas os dados e agregações relevantes para o gráfico, evitando operações desnecessárias em tabelas grandes.

Separação de Preocupações: Esta abordagem promove a separação de preocupações. A VDM principal atende às necessidades do relatório Master-Detail, enquanto a VDM auxiliar atende especificamente às necessidades analíticas do gráfico, cada uma com seu próprio contrato de serviço OData.