SAP BAPI
El conector SAP BAPI permite integrar su flujo con el ERP SAP a través de las Business Application Programming Interfaces (BAPIs), que son funciones estandarizadas para acceder a procesos y datos de negocio en el sistema SAP.
En otras palabras, una BAPI es como una "puerta oficial" que SAP pone a disposición para que sistemas externos puedan consultar o manipular datos y procesos sin necesidad de acceder directamente a las tablas internas o escribir código ABAP.
Lo que es posible hacer:
-
Consultar datos
-
Obtener información de clientes, proveedores, materiales, pedidos de venta, inventarios, etc.
Ejemplo:
BAPI_CUSTOMER_GETDETAILdevuelve los datos completos de un cliente.
-
-
Crear registros
-
Insertar nuevos datos de negocio en SAP.
Ejemplo:
BAPI_SALESORDER_CREATEFROMDAT2crea un pedido de venta.
-
-
Actualizar registros
-
Modificar datos ya existentes.
Ejemplo:
BAPI_EMPLOYEE_CHANGEactualiza datos de un empleado.
-
-
Ejecutar operaciones de negocio
-
Activar procesos internos de SAP (liberar documentos, ejecutar cálculos, generar asientos contables).
Ejemplo:
BAPI_GOODSMVT_CREATEregistra un movimiento de inventario.
-
-
Probar conexión y disponibilidad
-
Validar si SAP está respondiendo.
Ejemplo:
STFC_CONNECTION(devuelve información del sistema, cliente, usuario, etc.).
-
Estructura de la instrucción (sintaxis)
La comunicación con este conector utiliza una estructura específica de clave-valor para mapear los parámetros de la BAPI.
-
Comando: inicia siempre con
CALL FUNCTION <NOMBRE_DE_LA_BAPI>. -
Parámetros: se definen después del signo de dos puntos ":".
-
Agrupaciones
-
Paréntesis ( ): envuelven un par clave-valor único o un objeto.
-
Corchetes [ ]: envuelven listas de elementos o múltiples parámetros.
-
-
Sintaxis
CALL FUNCTION NOMBRE_BAPI: [ (PARAMETRO_1: VALOR), (TABLA: [ (CAMPO: VALOR) ]) ]
Ejemplos
Consulte ejemplos de instrucciones para el conector SAP BAPI:
Validación de conectividad
-
Instrucción
En la instrucción siguiente, el conector SAP BAPI llama a la función
STFC_CONNECTIONen SAP. Esta función es una BAPI estándar de SAP, utilizada para probar la conectividad entre el sistema cliente (en este caso, Sensedia Integrations) y el servidor SAP.CALL FUNCTION STFC_CONNECTION: []
Los corchetes [] indican que no se pasaron parámetros adicionales en la llamada. -
Retorno (log)
-
El fragmento del log muestra la ejecución exitosa del conector SAP BAPI al llamar a la función de prueba
STFC_CONNECTION. -
SAP respondió a la solicitud confirmando la conexión con información sobre el sistema, cliente, usuario y fecha/hora.
-
El estado HTTP 200 garantiza que no hubo error de integración.
{ "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 } }Lea sobre detalles de los logs.
-
Lectura de tabla
-
Instrucción
La instrucción siguiente lee las 5 primeras líneas de la tabla T001 en SAP, devolviendo solo los campos BUKRS y BUTXT, separados por punto y coma.
CALL FUNCTION RFC_READ_TABLE: [ (IMPORTING: [ (QUERY_TABLE: T001), (DELIMITER: ;), (ROWCOUNT: 5) ]), (TABLES: [ (FIELDS: [ (FIELDNAME: BUKRS), (FIELDNAME: BUTXT) ]) ]) ] -
Partes de la instrucción
-
FUNCTION RFC_READ_TABLE: define que se ejecutará la función de lectura de tablas.
-
IMPORTING: contiene los parámetros de entrada simples que configuran la llamada de la función.
-
QUERY_TABLE: T001: indica la tabla que será consultada (T001, que contiene información sobre Company Codes). -
DELIMITER: ;: define que los campos devueltos serán separados por punto y coma. -
ROWCOUNT: 5: limita el retorno a las 5 primeras líneas de la tabla.
-
-
TABLES: define los parámetros en formato de tabla, utilizados para enviar o recibir listas de registros.
-
FIELDS: especifica los campos de la tabla que deben ser devueltos (si se omite, devuelve todas las columnas, lo que puede causar lentitud o desbordamiento de memoria).-
BUKRS: código de la empresa (Company Code). -
BUTXT: descripción de la empresa (Company Name).
-
-
-
-
Retorno (log)
Consulte dos fragmentos del payload de respuesta registrado en los logs:
-
INPUT: muestra los parámetros de consulta: tabla consultada, número máximo de registros, delimitador y opciones adicionales.
{\"INPUT\":{\"QUERY_TABLE\":\"T001\",\"ROWCOUNT\":5,\"GET_SORTED\":\"\",\"NO_DATA\":\"\",\"USE_ET_DATA_4_RETURN\":\"\",\"ROWSKIPS\":0,\"DELIMITER\":\";\"} -
DATA (fragmento): trae los valores devueltos de la 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; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;\"}En este ejemplo:
-
El campo WA (Work Area) trae los datos concatenados por el delimitador elegido
-
300: MANDT (Cliente SAP)
-
0001: BUKRS (Código de la Empresa)
-
SAP Brazil: BUTXT (Nombre de la Empresa)
-
Sao Paolo: ORT01 (Ciudad)
-
BR: LAND1 (País)
-
BRL: WAERS (Moneda)
-
-
Posibles errores de configuración
A continuación listamos algunos errores comunes que pueden ocurrir al utilizar el conector SAP BAPI y las soluciones recomendadas.
-
Error calling BAPI function in SAP: error genérico de ejecución.
-
Verifique si el usuario configurado tiene permiso de acceso (objeto
S_TABU_DIS) a la tabla solicitada o permiso de ejecución en la BAPI. -
Verifique si los nombres de los campos en
FIELDSexisten en la tabla.
-
-
Retorno vacío (DATA: []): ningún registro corresponde a los criterios definidos en
OPTIONS.-
Verifique si la fecha está en el formato AAAAMMDD.
-
Verifique si los valores están en letras mayúsculas, ya que SAP diferencia entre mayúsculas y minúsculas para los datos.
-
-
ROWCOUNT ignorado: SAP devolvió más líneas de las solicitadas.
Esto ocurre en ciertas versiones del módulo de función cuando no hay índice primario en el filtro. -
Aplique un componente de script o filtro en su flujo para eliminar las líneas excedentes.
-
Share your suggestions with us!
Click here and then [+ Submit idea]