Criação de Relatório Master-Detail de Pedidos de Compra (PO) com Vencimento Próximo
1. Objetivo
Esta funcionalidade descreve a criação de um relatório SAP Fiori do tipo Master-Detail (Mestre-Detalhe) utilizando a plataforma Tachyonix.io. O relatório exibirá Pedidos de Compra (PO) com vencimento nos próximos 15 dias para o usuário logado, permitindo a visualização detalhada do cabeçalho e dos itens de cada pedido.
2. Pré-requisitos
Autorizações SAP:
- Acesso para criação e ativação de objetos ABAP (CDS Views, OData Services, Classes ABAP) no ambiente de desenvolvimento SAP.
- Autorização para transporte de objetos ABAP (transações SE09/SE10).
Configuração na Tachyonix:
Acesso à plataforma Tachyonix Builder.
VDM YVDM_PO_PROXIMOS_15_DI já criada e publicada no sistema SAP de backend. Esta VDM é a fonte de dados primária para o relatório e encapsula a lógica de filtragem por usuário corrente e data de vencimento.
Dados de Exemplo:
Existência de Pedidos de Compra (PO) no sistema SAP que atendam aos critérios de filtragem da VDM (YVDM_PO_PROXIMOS_15_DI), ou seja, pedidos com vencimento nos próximos 15 dias e associados ao usuário logado.
3. Passo a Passo Detalhado
Este guia detalha a criação de um relatório Master-Detail na plataforma Tachyonix.io, utilizando uma CDS View existente como fonte de dados.
Acessar a Plataforma Tachyonix Builder e Criar Novo Componente
Navegue até a interface do Tachyonix Builder.
Selecione a opção para criar um novo componente.
Escolha o tipo de componente "Relatório". Este tipo de componente é otimizado para a criação de aplicações analíticas e transacionais no padrão SAP Fiori.
Preencha os seguintes campos para o novo componente:
- Nome do Componente: Z_REL_PO_15_DIAS (Exemplo: "Relatorio de PO com 15 dias")
- Descrição: Relatório de Pedidos de Compra com vencimento em 15 dias (Exemplo: "Relatorio PO 15 dias")
Configurar parâmetros de transporte SAP
- Pacote ABAP: Informe o pacote de desenvolvimento ABAP (Z_PACKAGE ou similar) onde os objetos gerados serão alocados.
- Ordem de Workbench: Forneça uma ordem de transporte de Workbench (tipo K) para os objetos ABAP.
- Ordem de Customizing: Forneça uma ordem de transporte de Customizing (tipo W) se aplicável (geralmente não é necessário para este tipo de componente).
Configurar a Fonte de Dados (Aba "Dados")
Na aba "Dados" do componente, selecione a CDS View YVDM_PO_PROXIMOS_15_DI como a fonte de dados principal. Esta VDM (Virtual Data Model) é uma CDS View de interface (interface view) que já encapsula a lógica de negócio necessária (filtragem por usuário corrente e pedidos com vencimento em 15 dias).
Nota Técnica: A reutilização de VDMs é uma prática recomendada no desenvolvimento SAP Fiori/ABAP, pois promove a consistência dos dados, a performance (devido a otimizações no banco de dados HANA) e a separação de preocupações (lógica de negócio na VDM, apresentação na aplicação). Não é necessário configurar filtros adicionais na aplicação, pois a VDM já provê os dados pré-filtrados.
Configurar a Lista Principal (Master) (Aba "Saída")
Navegue até a aba "Saída" e selecione a seção "Lista Principal". Esta seção define a visualização inicial da aplicação Master-Detail.
Adicione os seguintes campos para exibição na lista principal:
- PURCHASEORDER (Número do Pedido)
- CREATIONDATE (Data de Criação)
- PURCHASINGORGANIZATION (Organização de Compras)
- PURCHASINGGROUP (Grupo de Compradores)
Para cada um dos campos selecionados, habilite a opção "Filtro Visível" (ou "Filter Bar"). Isso permitirá que os usuários filtrem os dados da lista principal diretamente na interface do usuário.
Configurar Ordenação
- Adicione PURCHASEORDER como critério de ordenação primário.
- Adicione CREATIONDATE como critério de ordenação secundário.
Nota Técnica: A ordenação e os filtros são traduzidos para cláusulas ORDER BY e WHERE no serviço OData gerado, otimizando a recuperação de dados do backend.
Criar a Tela de Detalhe (Detail) com Abas
Na aba "Saída", adicione uma nova "Tela de Detalhe".
Selecione o layout "Abas (Tabs)" para a tela de detalhe. Este layout é ideal para organizar informações complexas em seções lógicas.
Crie as seguintes abas:
ABA 1 - "Detalhe PO" (Tipo Formulário)
- Nome da Aba: Detalhe PO
- Tipo de Layout: Formulário (Form)
Dentro desta aba, crie duas "Seções de Título" (Title Sections) para organizar os campos:
Seção 1 - "PO info"
Título: PO info
- PURCHASEORDER (Número do Pedido)
- COMPANYCODE (Código da Empresa)
- SUPPLIER (Fornecedor)
Seção 2 - "Extra info"
Título: Extra info
- PURCHASERELEASESTATUS (Status de Liberação do Pedido)
- INCOTERMSLOCATION1 (Local dos Incoterms)
ABA 2 - "Item" (Tipo Tabela)
- Nome da Aba: Item
- Tipo de Layout: Tabela
Habilite as seguintes configurações para a tabela:
- Exportação de Dados: Permite ao usuário exportar os dados da tabela (ex: para CSV ou Excel).
- Contador de Registros (Row Count): Exibe o número total de itens na tabela.
Configurar os Campos da Tabela de Itens (Aba "Item")
Na aba "Item" da tela de detalhe, selecione a associação (_ITEM ou similar) que representa os itens do pedido de compra na VDM YVDM_PO_PROXIMOS_15_DI. Esta associação é crucial para que a plataforma entenda o relacionamento entre o cabeçalho e os itens do pedido.
Adicione os seguintes campos para exibição na tabela de itens:
- PURCHASEORDERITEM (Número do Item)
- MATERIAL (Material)
- MATERIALTYPE (Tipo de Material)
- MATERIALGROUP (Grupo de Material)
- PURCHASESHORTTEXT (Texto Breve do Item)
- NETPRICEAMOUNT (Preço Líquido)
- DOCUMENTCURRENCY (Código da Moeda do Documento)
Formatar o Campo de Moeda
Para o campo NETPRICEAMOUNT, configure a exibição como valor monetário.
Defina o campo DOCUMENTCURRENCY como o campo de referência para a formatação da moeda.
Nota Técnica: Esta configuração é fundamental para garantir que o valor monetário seja exibido corretamente, considerando o símbolo da moeda, casas decimais e separadores de milhar conforme as configurações de localidade e a moeda específica do documento (ex: R$ 1.234,56 ou $1,234.56). No backend, isso é traduzido para anotações OData como @Semantics.currency.currencyCode: 'DOCUMENTCURRENCY' e @Semantics.amount.currencyCode: 'DOCUMENTCURRENCY'.
Construir a Aplicação (Build)
Após configurar todos os elementos do relatório, clique no botão "Construir" (Build) na plataforma Tachyonix.
Processo de Geração
- CDS Views Adicionais: Serão geradas CDS Views para as entidades de detalhe e para as associações, garantindo a correta exposição dos dados.
- Serviço OData: Um serviço OData completo será criado, com as entidades Master e Detail, incluindo as associações e as propriedades de navegação (_NavigationProperties).
- Aplicação SAP Fiori/UI5: Uma aplicação SAP Fiori/UI5 completa será gerada, incluindo o código JavaScript, XML Views, e componentes necessários para a interface de usuário.
- Ativação e Publicação: Todos os objetos ABAP (CDS Views, Service Definition, Service Binding, OData Service) serão ativados e publicados no Gateway SAP.
Aguarde a conclusão do processo de construção, que pode levar alguns instantes dependendo da complexidade do relatório e do ambiente SAP.
4. Verificação e Teste
Após a conclusão do processo de construção, a aplicação estará pronta para ser testada.
Abrir a Aplicação: A plataforma Tachyonix geralmente fornece um link direto para a aplicação Fiori gerada. Clique neste link para abrir a aplicação em um navegador web.
Verificar a Lista Principal (Master)
- A tela inicial deve exibir a lista de Pedidos de Compra (PO) filtrados pela VDM YVDM_PO_PROXIMOS_15_DI.
- Verifique se os campos PURCHASEORDER, CREATIONDATE, PURCHASINGORGANIZATION e PURCHASINGGROUP estão visíveis.
- Teste os filtros na barra superior para garantir que a filtragem funcione corretamente.
Testar a Tela de Detalhe (Detail)
Aba "Detalhe PO":
- Verifique se os campos PURCHASEORDER, COMPANYCODE, SUPPLIER, PURCHASERELEASESTATUS e INCOTERMSLOCATION1 estão exibindo os valores corretos.
- Confirme organização nas seções "PO info" e "Extra info".
Aba "Item":
- Verifique se a tabela de itens exibe os campos PURCHASEORDERITEM, MATERIAL, MATERIALTYPE, MATERIALGROUP, PURCHASESHORTTEXT, NETPRICEAMOUNT e DOCUMENTCURRENCY.
- Confirme se o campo NETPRICEAMOUNT está formatado corretamente com base na DOCUMENTCURRENCY.
- Verifique se o contador de registros da tabela está funcionando.
Testar Responsividade
- Redimensione a janela do navegador.
- Simule tablet e celular.
- Confirme adaptação automática do layout.
5. Considerações Técnicas Adicionais
Padrão Master-Detail do SAP Fiori: A aplicação gerada segue o padrão de design Master-Detail do SAP Fiori. Este padrão é amplamente utilizado para exibir uma lista de itens (Master) e, ao selecionar um item, mostrar seus detalhes correspondentes (Detail). Isso proporciona uma experiência de usuário eficiente para navegação e consumo de dados.
Geração Automática de Artefatos ABAP: A plataforma Tachyonix.io automatiza a criação de todos os artefatos de backend necessários (CDS Views, Service Definition, Service Binding, OData Service e classes ABAP de implementação). Isso reduz significativamente o tempo de desenvolvimento e a necessidade de codificação ABAP manual para a exposição de dados via OData. O desenvolvedor ABAP deve estar ciente de que esses objetos são gerados e podem ser inspecionados nas transações SE11, SE24, SEGW e IWFND/MAINT_SERVICE no sistema SAP.
Responsividade Nativa: As aplicações SAP Fiori geradas pela plataforma são construídas com SAPUI5, que oferece responsividade nativa. Isso significa que a interface do usuário se adapta automaticamente a diferentes dispositivos (desktops, tablets, smartphones) e tamanhos de tela sem a necessidade de desenvolvimento adicional de layouts específicos para cada dispositivo. O desenvolvedor deve validar essa responsividade durante a fase de testes.
Reutilização de VDMs: A utilização de VDMs (Virtual Data Models) como YVDM_PO_PROXIMOS_15_DI é uma prática fundamental no desenvolvimento com SAP S/4HANA e ABAP on HANA. As VDMs fornecem uma camada de abstração e encapsulamento da lógica de negócio, promovendo a reutilização, a performance (aproveitando o poder do HANA) e a consistência dos dados em diferentes aplicações.
Performance do OData Service: O serviço OData gerado pela Tachyonix.io utiliza as capacidades do ABAP RESTful Application Programming Model (RAP) ou o Gateway Service Builder (SEGW) para expor os dados da CDS View. A performance da aplicação é diretamente influenciada pela otimização da CDS View subjacente (YVDM_PO_PROXIMOS_15_DI) e pela eficiência das consultas geradas pelo framework OData.
Extensibilidade: Embora a plataforma gere a aplicação automaticamente, desenvolvedores ABAP e Fiori podem estender a funcionalidade gerada, seja através de enhancement spots nas classes ABAP geradas, ou através de extensões de código na aplicação UI5, se necessário.