Aula 15: Crie relatórios personalizados com várias funções no SAP
Relatório Completo com Object Header
1. Objetivo
Esta funcionalidade descreve a criação de um relatório Fiori completo na plataforma Tachyonix.io, combinando uma lista de Pedidos de Compra (PO) com uma tela de detalhe rica. A tela de detalhe inclui um Object Header com microcharts e múltiplas abas, exibindo informações provenientes de diferentes fontes de dados e associações.
2. Pré-requisitos
- Autorizações SAP: Acesso para visualizar a CDS View I_PURCHASEORDER e as tabelas YRELAC_DOCS e ZCADASTRO.
- Configuração na Tachyonix: Acesso à plataforma Tachyonix.io com permissões para criar e configurar componentes do tipo "Report".
- Dados de Exemplo: Necessário ter dados consistentes nas tabelas I_PURCHASEORDER, YRELAC_DOCS e ZCADASTRO para que o relatório exiba informações relevantes.
3. Passo a Passo Detalhado
3.1. Configuração do Relatório e Fontes de Dados
Criar Componente "Report"
- Navegue até a seção de criação de componentes.
- Selecione o tipo de componente "Report".
- Preencha o campo "Título" com "Relatorio Completo - Aula015".
Definir Fontes de Dados
- Acesse a aba "Data" do componente recém-criado.
- Adicione a CDS View I_PURCHASEORDER como a primeira fonte de dados.
- Adicione a tabela/view YRELAC_DOCS como a segunda fonte de dados.
- Adicione a tabela ZCADASTRO como a terceira fonte de dados.
Configure os INNER JOINs entre as fontes:
- Una I_PURCHASEORDER com YRELAC_DOCS utilizando o campo de pedido de compra (PURCHASEORDER de I_PURCHASEORDER e EBELN de YRELAC_DOCS).
- Una I_PURCHASEORDER com ZCADASTRO utilizando o campo de pedido de compra (PURCHASEORDER de I_PURCHASEORDER e EBELN de ZCADASTRO).
Configurar Lista Principal (Main List)
- Acesse a aba "Output".
- Configure a tela principal para exibir os seguintes campos da fonte de dados principal:
- Purchase Order Number
- Creation Date
- Created By User
- Supplier
Defina a ordenação decrescente (Descending) pelo campo Creation Date.
3.2. Configuração da Tela de Detalhe com Object Header e Abas
Adicionar Object Header
- Na tela de detalhe, adicione um componente "Header".
- Configure o "Header" para exibir "Quick Insights".
- Configure três microcharts (Bullet, Radial, Harvey) utilizando valores da tabela ZCADASTRO.
Adicionar Aba Oculta
- Adicione uma nova aba.
- Defina a propriedade Visible desta aba como No.
- Utilize esta aba para armazenar os dados da tabela ZCADASTRO que alimentam os microcharts do Object Header.
Criar Abas de Detalhes
Adicione três novas abas para exibir informações detalhadas:
- Aba "Detail PO": Configure para exibir campos do cabeçalho do pedido de compra.
- Aba "Company": Configure para exibir campos da empresa, utilizando a associação _CompanyCode da CDS View I_PURCHASEORDER.
- Aba "Fornecedor": Configure para exibir campos do fornecedor, utilizando a associação _Supplier da CDS View I_PURCHASEORDER.
Adicionar Tabela de Itens
- Adicione um componente "Table" dentro de uma das abas de detalhe (ou em uma nova aba dedicada).
- Defina o "Título" da tabela como "Detail - Item PO".
- Configure a tabela para listar os seguintes campos dos itens do pedido de compra:
- Item Number
- Material
- Short Text
- Net Value
- Gross Value
Configure a formatação de moeda para os campos Net Value e Gross Value.
3.3. Build e Verificação
Construir e Executar
- Salve todas as configurações do componente.
- Execute o processo de "Build" para gerar a aplicação Fiori.
- Abra a aplicação gerada em um navegador web.
Verificar Resultado
- Observe a lista de pedidos de compra na tela principal.
- Selecione um item da lista para navegar para a tela de detalhe.
- Verifique se o Object Header exibe os microcharts com os dados corretos da tabela ZCADASTRO.
- Navegue pelas abas ("Detail PO", "Company", "Fornecedor") e confirme se as informações detalhadas são exibidas corretamente, inclusive as provenientes das associações da CDS View.
- Verifique se a tabela de itens ("Detail - Item PO") exibe os itens do pedido com os valores formatados corretamente.
4. Verificação e Teste
Para verificar a correta implementação da funcionalidade, execute o aplicativo Fiori gerado. A tela inicial deve apresentar uma lista de pedidos de compra. Ao selecionar um pedido, a tela de detalhe deve ser exibida contendo:
- Um Object Header com três microcharts (Bullet, Radial, Harvey) exibindo dados da tabela ZCADASTRO.
- Três abas visíveis: "Detail PO" (com dados de cabeçalho do PO), "Company" (com dados da empresa via associação _CompanyCode) e "Fornecedor" (com dados do fornecedor via associação _Supplier).
- Uma tabela de itens do pedido ("Detail - Item PO") com os campos Item Number, Material, Short Text, Net Value e Gross Value, com os valores monetários formatados.
5. Considerações Técnicas Adicionais
Composição de Múltiplas Fontes de Dados
A plataforma Tachyonix.io permite a união de múltiplas fontes de dados (CDS Views, tabelas) através de INNER JOINs visuais. Para um desenvolvedor ABAP, esta funcionalidade é análoga a criar uma CDS View complexa ou uma View de Banco de Dados (SE11) que une várias tabelas. A plataforma abstrai a complexidade da sintaxe DDL, permitindo que o desenvolvedor se concentre na lógica de negócio e na seleção dos campos relevantes, sem a necessidade de codificar a sintaxe SQL diretamente.
Uso de Associações da CDS View
As abas "Company" e "Fornecedor" são preenchidas utilizando as associações (_CompanyCode e _Supplier) já existentes na CDS View I_PURCHASEORDER. A plataforma Tachyonix.io reconhece e expõe essas associações, permitindo que o desenvolvedor as utilize para exibir dados relacionados sem a necessidade de criar joins manuais adicionais. Isso é análogo a navegar por associações em uma consulta ABAP SQL (por exemplo, SELECT FROM I_PURCHASEORDER ASSOCIATION _CompanyCode INTO ...) ou em um ALV com hierarquia, onde os dados relacionados são acessados diretamente a partir da entidade principal.
Aba Oculta para Dados da UI
A prática de usar uma aba ou painel oculto (Visible: No) serve para armazenar dados que são necessários para a lógica da UI (neste caso, para alimentar os microcharts do Object Header), mas que não precisam ser exibidos diretamente ao usuário final. Em um contexto ABAP, isso é comparável a utilizar tabelas internas (internal tables) ou estruturas auxiliares em um programa para armazenar dados temporários ou de lookup. Esses dados são processados e utilizados para cálculos ou para a lógica de exibição (por exemplo, preencher campos de tela ou alimentar controles ALV), mas não são diretamente renderizados em uma tela Dynpro ou em um relatório clássico.