✒️ABAP Las BAPIS
ABAP Las BAPIS
Las BAPIS
¿Que es una BAPI?
BAPIS: Business Application Programming Interfaces
Son método estandarizados que nos permiten realizar acciones sobre los objetos de negocio de SAP, como pueden ser, crear un pedido, crear un equipo o hacer un movimiento de mercancías, entre muchísimos otros.
Son las interfaces estándar de SAP, con esto nos referimos en concreto a que son piezas de código en forma de módulos de funciones, usadas en la integración entre componentes de SAP, así como con componentes externos.
Todos los procesos que hasta ahora hacíamos mediante un Batch Input pueden hacerse mediante la ejecución de BAPIS.
Todas las BAPIS tienen una serie de características en común:
Son métodos de un objeto de negocio de SAP
Todas están definidas como módulos de funciones RFC (Remote Function Call)
Evitan las ventanas de diálogo durante el procesamiento
Los objetos de negocio son similares a las clases de la programación orientada a objetos, esto es, una serie de atributos, métodos, eventos y campos clave para una aplicación de negocio o escenario especifico.
Los objetos de negocio se pueden visualizar en un repositorio (BOR - Business Object Repository) accesible desde la transacción SWO1. Como parte de ese repositorio se pueden visualizar los métodos de cada objeto de negocio, que se corresponden a las diferentes BAPIS del sistema.
Las BAPIS tiene varias funciones:
Generar reportes.
Crear objetos en el sistema SAP tales como una solicitud de pedido.
Como comunicación entre sistemas SAP o entre sistemas SAP y sistemas no SAP.
Para la migración de datos.
Teniendo en cuenta está última funcionalidad, las BAPIS representa una alternativa a los métodos tradicionales como los Batch Input.
Ahora bien si comparamos a las BAPIS y alos Batch Input entonces vamos a encontrarnos con que las BAPIS presentan las siguientes ventajas sobre los Batch Input.
Debido a que las BAPIS son generalmente estándar de SAP, usando BAPIS, nos aseguramos que los programas que desarrollemos, serán compatibles con las versiones futuras de SAP. Esto no cocurre con los Batch Input, ya que entre las distintas versiones de SAP, es común que se modifiquen las pantallas de las transacciones, por lo tanto la ejecución del Batch Input fallará.
Decimos que las BAPIS son generalmente estándar ya que si bien se pueden crear mediante la transacción SE37 como módulos de funciones RFC, en rara ocasión tendremos que crear una nueva.
Se pueden usar BAPI desde cualquier plataforma de desarrollo que soporte el uso de módulos de funciones RFC.
Las BAPIS al ser estándares usan las mismas validaciones que se usan en las transacciones estándares del sistema SAP por lo tanto usar BAPIS es muy seguro a nievl de integridad de los datos y los resultados que deseamos obtener con la ejecución del sistema.
Pero como tod, también las BAPIS presenta desventajas que son las siguientes:
La mayor dificultad este en encontrar la BAPI adecuada para lo que necesitamos hacer en el sistema.
Otra gran dificultad que se encuentra en el uso de BAPIS, esta en la carga correcta de los valores de las tablas internas de entrada. Es decir en ocasiones se vuelve complejo saber como cargar correctamente los parámetros de entrada de las BAPIS de modo que produzcan el resultado que esperamos. Para superar esta dificultad, podemos investigar en la web en general, buscando ejemplos de su uso y en particular en la SDN, en donde vamos a encontrar mucha información.
Por último, vale la pena mencionar que s bien todas las BAPIS son módulos de funciones RFC, no todos los módulos de funciones RFC son BAPIS. Las principales diferencias entre las BAPIS y los módulos de funciones RFC.
Una BAPI puede comunicarse con otra BAPI mientras que un múdlo de funciones RFC no puede comunicarse con otro módulo de funciones RFC.
Las BAPIS usan conceptos propios de la programación orientada a objetos mientras que los módulos de funciones RFC usan conceptos orientados a procedimientos o subrutinas.
Una BAPI tiene una interfaz y funcionalidad fija que no se ve afectada por posibles upgrade mientras que un módulo de funciones RFC, dependiendo del status, puede sufrir cambios en la interfaz y en el funcionamiento.
La transacción BAPI
Para visualizar las BAPI existentes en el sistema SAP, se usa esta transacción.
Denominada Explorador BAPI, podemos acceder a todas las BAPIS existentes en el sistema SAP.
Veamos un ejemplo con la BAPI BAPI_USER_DET_DETAIL, que se usa para obtener los datos personales de los usuarios de SAP.
Se busca en el menú opción Tratar/Buscar:
Introducimos el nombre del objeto que es USER y hacemos clic en continuar.
Y dentro del menú que vemos a la izquierda de la pantalla, vamos a User y allí seleccionamos GetDetail.
Si accedemos a la BAPI desde la transacción SE37 tal como vemos en la siguiente imagen:
Y la ejecutamos con nuestro usuario de SAP:
Entonces podremos acceder a los datos personales de nuestro usuario de SAP:
Las BAPIS estándar para lectura de datos
GetList(): con está BAPI se pueden seleccionar un rango de objetos como pueden ser sociedades o números de materiales.
GetDetal(): se usa para recuperar los datos de una instancia de un objeto de negocio.
GetStatus(): se usa para obtener el status de un objeto de negocio.
ExistenceCheck(): cheque si existe una entrada determinada de un objeto de negocio.
Las BAPIS estándar para crear o modificar datos
Create() o CreateFromData(): se usan para crear instancias de objetos de negocio.
Change(): se usa para modificar una instancia de un objeto de negocio.
Delete() y Undelete(): se usa para borrar y para cancelar el borrado de una instancia de un objeto de negocio.
Las BAPIS estándar para procesamiento masivo
Las BAPIS para crear o modificar datos pueden ser usadas para procesamiento masivo, es decir para procesar grandes cantidades de datos. Para ello será necesario agregar el sufijo Múltiple al nombre de los métodos. Por ejemplo: ChangeMultiple() CreateMultiple() o DeleteMultiple().
Las BAPIS estándar para replicar instancias de objetos
Las BAPIS Replicate() y SaveReplicate() son usadas para copiar instancias de objetos de un sistema a otro.
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto