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.