Criar Pedido de Compra (PO) via RFC no Tachyonix
1. Objetivo
Esta documentação descreve o processo de criação de uma aplicação Fiori customizada na plataforma Tachyonix.io para interagir com um Módulo de Função (RFC) ABAP existente, com o propósito de criar Pedidos de Compra (PO) no sistema SAP. A aplicação construirá um formulário de entrada de dados com validações e ajudas de pesquisa (search helps) para facilitar a criação do PO.
2. Pré-requisitos
- Módulo de Função ABAP: O Módulo de Função Y_CREATE_PO_TACHYONIX deve estar implementado e disponível no sistema SAP de backend, com os parâmetros de importação para cabeçalho (IS_HEADER) e itens (IT_ITEMS) do Pedido de Compra.
- Autorizações SAP: Acesso para criar e ativar objetos no Dicionário de Dados (SE11) e para testar Módulos de Função (SE37) é recomendado para validação.
- Search Helps Standard SAP: Os seguintes search helps standard devem estar disponíveis e configurados no sistema SAP: H_T001, H_T161, KREDA, H_T052, MAT1, H_T001W, H_T001L.
- Configuração na Tachyonix: Credenciais de acesso válidas para a plataforma Tachyonix.io e permissão para criar novas aplicações customizadas.
3. Passo a Passo Detalhado
Parte 1: Criação da Aplicação e Layout do Formulário
Criar Componente "Aplicação Customizada"
- Navegue até a seção de criação de componentes na plataforma Tachyonix.io.
- Selecione o tipo de componente "Aplicação Customizada".
- No campo "Título", insira "Criar PO via RFC".
- Associe a aplicação a um pacote e a uma ordem de transporte SAP válidos.
Adicionar Fontes de Dados
Na configuração da aplicação, adicione as tabelas SAP EKKO (Cabeçalho do Pedido de Compra) e EKPO (Item do Pedido de Compra) como fontes de dados. A plataforma estabelecerá automaticamente o relacionamento de join entre elas.
Construir Layout do Cabeçalho
Adicione os seguintes campos da tabela EKKO ao formulário, organizando-os em seções com componentes de título:
Seção "Dados PO"
- BUKRS (Empresa)
- BSART (Tipo de documento)
Seção "Datas"
- BEDAT (Data do documento)
- LFDAT (Data de remessa)
Seção "Compras"
- LIFNR (Fornecedor)
- EKORG (Org. de compras)
- EKGRP (Grupo de compradores)
- ZTERM (Condição de pagamento)
Configurar Ajudas de Pesquisa (Search Helps)
Para cada campo do cabeçalho, configure a ajuda de pesquisa correspondente:
- Empresa (BUKRS): Utilize o search help H_T001.
- Tipo de Documento (BSART): Utilize o search help H_T161.
- Fornecedor (LIFNR): Utilize o search help KREDA.
- Condição de Pagamento (ZTERM): Utilize o search help H_T052.
- Grupo de Compradores (EKGRP): Configure uma "Lista de Valores" personalizada, inserindo valores fixos como 001 e 002.
- Organização de Compras (EKORG): Selecione a opção "Lista de Domínio" para que a plataforma busque os valores possíveis do domínio associado ao campo no Dicionário de Dados ABAP.
Parte 2: Criação da Tabela de Itens
Adicionar Tabela de Itens
Insira um componente de "Tabela" no formulário, abaixo da seção de cabeçalho.
Defina a fonte de dados da tabela como EKPO.
Adicione as seguintes colunas à tabela:
- EBELP (Item)
- MATNR (Material)
- TXZ01 (Texto breve)
- MENGE (Quantidade)
- MEINS (Unidade)
- WERKS (Centro)
- LGORT (Depósito)
Configurar Ajudas de Pesquisa para Itens
Para os campos da tabela de itens, configure as ajudas de pesquisa:
- Material (MATNR): Utilize o search help MAT1.
- Centro (WERKS): Utilize o search help H_T001W.
- Depósito (LGORT): Configure uma "Ajuda de Pesquisa Dependente". Selecione o search help H_T001L. Configure a dependência para que o campo LGORT seja filtrado com base no valor do campo WERKS (Centro) da mesma linha da tabela.
Parte 3: Configuração da Ação e Mapeamento para RFC
Criar Ação "Criar PO"
- Adicione um componente de botão ao formulário.
- Defina o título do botão como "Criar PO".
Configurar Chamada de Módulo de Função
- Nas propriedades de ação do botão, selecione a opção "Executar Módulo de Função".
- No campo "Módulo de Função", insira o nome do Módulo de Função ABAP: Y_CREATE_PO_TACHYONIX.
Mapear Parâmetros de Importação
Realize o mapeamento dos campos do formulário para os parâmetros de importação da RFC:
- Cabeçalho: Mapeie os campos da seção de cabeçalho do formulário para a estrutura de importação IS_HEADER do Módulo de Função.
- Itens: Mapeie os campos da tabela de itens do formulário para a tabela de importação IT_ITEMS do Módulo de Função.
Parte 4: Construção e Demonstração
Construir e Executar
- Salve as configurações da aplicação.
- Inicie o processo de construção da aplicação.
- Após a conclusão da construção, abra a aplicação no navegador.
Preencher Formulário
Preencha os campos do cabeçalho do Pedido de Compra, utilizando as ajudas de pesquisa configuradas para selecionar os valores.
Adicione linhas à tabela de itens, preenchendo os campos e utilizando as ajudas de pesquisa para Material, Centro e Depósito. Observe a funcionalidade da ajuda de pesquisa dependente para o Depósito.
Executar Ação
Clique no botão "Criar PO". A aplicação invocará o Módulo de Função Y_CREATE_PO_TACHYONIX no sistema SAP.
4. Verificação e Teste
Após clicar no botão "Criar PO", a aplicação exibirá uma mensagem de sucesso, contendo o número do Pedido de Compra recém-criado (ex: 4500002413).
Verifique no sistema SAP (transação ME23N ou SE16 para EKKO/EKPO) se o Pedido de Compra foi criado corretamente com os dados inseridos na aplicação Fiori.
5. Considerações Técnicas Adicionais
Aplicação Customizada como Frontend para RFC
A "Aplicação Customizada" na plataforma Tachyonix atua como um construtor de interface de usuário (UI) que permite a criação rápida de um frontend Fiori moderno e responsivo. Este frontend pode ser vinculado a qualquer lógica de backend ABAP encapsulada em um Módulo de Função (RFC). Para um desenvolvedor ABAP, isso é análogo a criar um programa ABAP com uma tela de seleção (SE38) que chama a mesma RFC. No entanto, a principal vantagem da abordagem Tachyonix é a geração automática de uma UI Fiori, eliminando a necessidade de desenvolvimento manual de frontend (SAPUI5/JavaScript). O desenvolvedor foca na lógica de negócio ABAP, enquanto a plataforma cuida da apresentação e da interação com o usuário em um ambiente web.
Reutilização de Artefatos ABAP (Search Helps e Domínios)
A plataforma Tachyonix se integra profundamente com o Dicionário de Dados ABAP. A configuração de "Ajuda de Pesquisa" e "Lista de Domínio" dentro da plataforma é um mecanismo para reutilizar a lógica de validação e os valores de ajuda já existentes no sistema SAP. Isso significa que as definições de search helps (H_T001, KREDA, etc.) e os valores de domínios (como para EKORG) são lidos diretamente do SAP e apresentados no frontend Fiori. Esta abordagem não apenas acelera o desenvolvimento, mas também garante a consistência dos dados, pois a aplicação Fiori utiliza as mesmas fontes de verdade e validações que as aplicações SAP GUI, mantendo a integridade do sistema.
Ajuda de Pesquisa Dependente
O conceito de ajuda de pesquisa dependente, exemplificado pela relação entre Centro (WERKS) e Depósito (LGORT), é fundamental para garantir a consistência dos dados. No desenvolvimento ABAP tradicional, para filtrar os depósitos com base no centro selecionado, seria necessário programar um evento AT SELECTION-SCREEN ON VALUE-REQUEST FOR LGORT e, dentro dele, ler o valor do campo WERKS para passar como parâmetro de importação para o search help do depósito. A plataforma Tachyonix abstrai essa complexidade. Ao configurar a dependência declarativamente, o frontend Fiori gerado gerencia automaticamente a passagem de parâmetros entre os campos, garantindo que o search help para LGORT receba o WERKS correto da mesma linha da tabela, sem a necessidade de codificação ABAP adicional no frontend.
Mapeamento de Ação para RFC (Binding)
O processo de mapeamento dos campos do formulário para os parâmetros da RFC é o que chamamos de "binding" entre o frontend e o backend. A plataforma Tachyonix gera o "código de cola" (glue code) necessário para coletar os dados inseridos na UI (tanto no cabeçalho quanto na tabela de itens), estruturá-los corretamente nas estruturas e tabelas ABAP esperadas pela RFC, e então realizar a chamada remota ao Módulo de Função Y_CREATE_PO_TACHYONIX. Isso substitui a necessidade de escrever o código ABAP que leria os parâmetros de uma tela de seleção, realizaria validações e os mapearia manualmente para os parâmetros de importação da função, simplificando drasticamente a integração entre a UI Fiori e a lógica de backend ABAP.