Introdução
Com apenas duas semanas, um grupo ambicioso de desenvolvedores SAP S/4HAHA Cloud trabalhando em Faturamento de Vendas recentemente se propôs a mostrar quão rápido poderiam construir uma solução empresarial personalizada simples (mas viável!) em um ambiente de desenvolvimento na nuvem ABAP Cloud.
A ideia era criar um aplicativo simples com uma interface de usuário altamente simplificada, baseada no Modelo de Programação de Aplicações Restful ABAP (RAP), que aproveitasse as interfaces de objetos comerciais (BOIs) publicadas recentemente para Faturamento de Vendas no SAP S/4HANA Cloud, edição pública.
Nossa visão era permitir que os usuários criassem faturas de clientes "manuais" rapidamente e facilmente (ou seja, faturas sem um documento de venda ou entrega prévio) sob demanda no SAP S/4HANA Cloud, edição pública, evitando as dependências habituais que frequentemente retardam a criação de faturas. Informar apenas o cliente e o produto vendido deveria idealmente ser suficiente para criar a fatura necessária.
Continue lendo para um resumo de nossas ideias e resultados.
Para uma breve demonstração do aplicativo em ação, consulte o vídeo abaixo:
Motivação
A história empresarial que impulsiona nosso caso de uso selecionado vem do cenário de vendas diretas, que permite às empresas vender bens "espontaneamente" (por exemplo, rejeições de fábrica com desconto) sem passar pelo processo padrão de venda a partir do estoque e a cadeia de documentos SD associada, contabilização de inventário, etc. Esse cenário exige a capacidade de criar faturas de clientes rapidamente sob demanda, para que possam ser apresentadas aos clientes e contabilizadas na contabilidade financeira.
Nossa visão técnica exigia um novo objeto comercial personalizado que permitisse a persistência flexível baseada em rascunhos dos dados de faturamento que o usuário insere para sua fatura. Procurando um nome tanto para esse novo objeto quanto para o projeto em si, optamos por "Solicitação de Fatura Manual" (MIR).
Implementação e Realização
Enquanto alguns desenvolvedores do grupo tinham experiência anterior com desenvolvimento na nuvem ABAP e criação de novos objetos comerciais RAP, outros estavam entrando em um mundo completamente novo.
Guiados por
este tutorial oficial de RAP
, conseguimos criar a primeira versão de nossa interface de usuário em apenas dois dias. Além da definição de tabelas de banco de dados para o cabeçalho e os itens do novo objeto MIR, o resto foi basicamente fornecido "pronto para uso" pelo modelo RAP predefinido, incluindo o tratamento de rascunhos!
O gráfico a seguir fornece uma visão geral dos componentes necessários para nosso aplicativo.
Para manter simples, nosso novo objeto comercial consiste apenas de duas entidades, que representam o nível de cabeçalho e de itens da solicitação de fatura manual. O nome do cliente e a descrição do produto foram obtidos dos dados mestres relevantes do sistema central por meio de associações.
Naturalmente, criar uma fatura de cliente requer dados adicionais além dos IDs do cliente e do produto vendido. Portanto, introduzimos o conceito de uma "unidade de faturamento" para fornecer essas informações. A unidade de faturamento compreende a unidade de venda e a planta, e, para simplificar, também a moeda do documento a ser utilizada. As unidades de faturamento foram atribuídas a cada funcionário por meio de uma segunda tabela personalizada.
Para obter dados comerciais como montantes líquidos e impostos do backend do SAP S/4HANA Cloud, escolhemos implementar uma etapa obrigatória de "Preparar Fatura" que o usuário ativa manualmente. Essa etapa passa os dados inseridos pelo usuário da solicitação de fatura manual, juntamente com a tabela personalizada da unidade de faturamento, para o
BOI Solicitud de Documento de Facturación
na forma de uma solicitação de EML (Linguagem de Manipulação de Entidades).
O sistema responde criando uma solicitação de documento de faturamento em segundo plano, que então serve como um documento preliminar (invisível para o usuário) da fatura do cliente. A resposta inicial nos permite estabelecer (e depois atualizar) os dados comerciais e o status de processamento da solicitação de fatura manual.
O trecho de código a seguir fornece um exemplo de tal solicitação de EML ao BOI Solicitud de Documento de Facturación:
MODIFY ENTITIES OF I_BillingDocumentRequestTP
ENTITY BillingDocumentRequest
EXECUTE CreateFromExternalData AUTO FILL CID
WITH