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.