SAP BAPI
O conector SAP BAPI permite integrar seu fluxo com o ERP SAP por meio das Business Application Programming Interfaces (BAPIs), que são funções padronizadas para acessar processos e dados de negócio no sistema SAP.
Em outras palavras, uma BAPI é como uma “porta oficial” que o SAP disponibiliza para que sistemas externos possam consultar ou manipular dados e processos sem precisar acessar diretamente as tabelas internas ou escrever código ABAP.
O que é possível fazer:
-
Consultar dados
-
Obter informações de clientes, fornecedores, materiais, pedidos de venda, estoques etc.
Exemplo:
BAPI_CUSTOMER_GETDETAILretorna os dados completos de um cliente.
-
-
Criar registros
-
Inserir novos dados de negócio no SAP.
Exemplo:
BAPI_SALESORDER_CREATEFROMDAT2cria um pedido de venda.
-
-
Atualizar registros
-
Alterar dados já existentes.
Exemplo:
BAPI_EMPLOYEE_CHANGEatualiza dados de um funcionário.
-
-
Executar operações de negócio
-
Acionar processos internos do SAP (liberar documentos, executar cálculos, gerar lançamentos contábeis).
Exemplo:
BAPI_GOODSMVT_CREATEregistra uma movimentação de estoque.
-
-
Testar conexão e disponibilidade
-
Validar se o SAP está respondendo.
Exemplo:
STFC_CONNECTION(retorna informações do sistema, client, usuário etc.).
-
Estrutura da instrução (sintaxe)
A comunicação com este conector utiliza uma estrutura específica de chave-valor para mapear os parâmetros da BAPI.
-
Comando: inicia sempre com
CALL FUNCTION <NOME_DA_BAPI>. -
Parâmetros: são definidos após o sinal de dois-pontos ":".
-
Agrupamentos
-
Parênteses ( ): envolvem um par chave-valor único ou um objeto.
-
Colchetes [ ]: envolvem listas de itens ou múltiplos parâmetros.
-
-
Sintaxe
CALL FUNCTION NOME_BAPI: [ (PARAMETRO_1: VALOR), (TABELA: [ (CAMPO: VALOR) ]) ]
Exemplos
Confira exemplos de instruções para o conector SAP BAPI:
Validação de conectividade
-
Instrução
Na instrução abaixo, o conector SAP BAPI chama a função
STFC_CONNECTIONno SAP. Essa função é uma BAPI padrão do SAP, usada para testar conectividade entre o sistema cliente (no caso, o Sensedia Integrations) e o servidor SAP.CALL FUNCTION STFC_CONNECTION: []
Os colchetes [] indicam que não foram passados parâmetros adicionais na chamada. -
Retorno (log)
-
O trecho do log mostra a execução bem-sucedida do conector SAP BAPI ao chamar a função de teste
STFC_CONNECTION. -
O SAP respondeu a requisição confirmando a conexão com informações sobre sistema, client, usuário e data/hora.
-
O status HTTP 200 garante que não houve erro de integração.
{ "message": { "payload": "{\"STFC_CONNECTION\":{\"INPUT\":{\"REQUTEXT\":\"\"},\"OUTPUT\":{\"ECHOTEXT\":\"\",\"RESPTEXT\":\"SAP R/3 Rel. 740 Sysid: ERQ Date: 20250912 Time: 130104 Logon_Data: 300/APISENSEDIA/E\"}}}", "status": 200 } }Leia sobre detalhes dos logs.
-
Leitura de tabela
-
Instrução
A instrução abaixo lê as 5 primeiras linhas da tabela T001 no SAP, retornando apenas os campos BUKRS e BUTXT, separados por ponto e vírgula.
CALL FUNCTION RFC_READ_TABLE: [ (IMPORTING: [ (QUERY_TABLE: T001), (DELIMITER: ;), (ROWCOUNT: 5) ]), (TABLES: [ (FIELDS: [ (FIELDNAME: BUKRS), (FIELDNAME: BUTXT) ]) ]) ] -
Partes da instrução
-
FUNCTION RFC_READ_TABLE: define que será executada a função de leitura de tabelas.
-
IMPORTING: contém os parâmetros de entrada simples que configuram a chamada da função.
-
QUERY_TABLE: T001: indica a tabela que será consultada (T001, que contém informações sobre Company Codes). -
DELIMITER: ;:define que os campos retornados serão separados por ponto e vírgula. -
ROWCOUNT: 5: limita o retorno às 5 primeiras linhas da tabela.
-
-
TABLES: define os parâmetros em formato de tabela, usados para enviar ou receber listas de registros.
-
FIELDS: especifica os campos da tabela que devem ser retornados (se omitido, retorna todas as colunas, o que pode causar lentidão ou estouro de memória).-
BUKRS`: código da empresa (Company Code). -
BUTXT: descrição da empresa (Company Name).
-
-
-
-
Retorno (log)
Confira dois trechos do payload de resposta registrado nos logs:
-
INPUT: mostra os parâmetros de consulta: tabela consultada, número máximo de registros, delimitador e opções adicionais.
{\"INPUT\":{\"QUERY_TABLE\":\"T001\",\"ROWCOUNT\":5,\"GET_SORTED\":\"\",\"NO_DATA\":\"\",\"USE_ET_DATA_4_RETURN\":\"\",\"ROWSKIPS\":0,\"DELIMITER\":\";\"} -
DATA (trecho): traz os valores retornados da consulta.
DATA\":{\"item\":[{\"WA\":\"300;0001;SAP Brazil ;Sao Paolo ;BR ;BRL ;P;INT ;10;K4;2;000001; ; ; ; ; ; ; ;00000000;2; ; ; ; ;0001; ; ; ;X; ; ; ; ; ; ; ; ; ; ; ;0001; ;0001;0001; ; ;0001; ; ; ; ; ;IE;SE;1; ;X;X; ; ;FMRE; ; ;0; ; ; ; ; ; ; ; ; ; ; ; ; ; ;\"}Neste exemplo:
-
O campo WA (Work Area) traz os dados concatenados pelo delimitador escolhido
-
300: MANDT (Cliente SAP)
-
0001: BUKRS (Código da Empresa)
-
SAP Brazil: BUTXT (Nome da Empresa)
-
Sao Paolo: ORT01 (Cidade)
-
BR: LAND1 (País)
-
BRL: WAERS (Moeda)
-
-
Possíveis erros de configuração
Abaixo listamos alguns erros comuns que podem ocorrer ao utilizar o conector SAP BAPI e as soluções recomendadas.
-
Error calling BAPI function in SAP: erro genérico de execução.
-
Verifique se o usuário configurado tem permissão de acesso (objeto
S_TABU_DIS) à tabela solicitada ou permissão de execução na BAPI. -
Verifique se os nomes dos campos em
FIELDSexistem na tabela.
-
-
Retorno vazio (DATA: []): nenhum registro corresponde aos critérios definidos em
OPTIONS.-
Verifique se a data está no formato AAAAMMDD.
-
Verifique se os valores estão em letras maiúsculas, pois o SAP diferencia maiúsculas de minúsculas para dados.
-
-
ROWCOUNT ignorado: o SAP retornou mais linhas do que o solicitado.
Isso ocorre em certas versões do módulo de função quando não há índice primário no filtro. -
Aplique um componente de script ou filtro no seu fluxo para eliminar as linhas excedentes.
-
Share your suggestions with us!
Click here and then [+ Submit idea]