![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las BAPIS
ABAP Las BAPIS
![ABAP Las BAPIS ABAP Las BAPIS](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/308.jpg)
Que es un BAPI: Sus siglas significan Business Applicationg Interfas. Son metosdos estandarizados que nos permitenreakizar acciones sobre los objetos de negocios de SAP, como puede ser, crear un pedido, crear un equipo o hacer un movimiento de mercancias, entre muchisimos 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ódulo de funciones, usadas en la integración entre componentes de SAP, asi como son componentes externos.
Todo los procesos que hasta ahora haciamos mediante um Batch Input pueden hacerse mediante la ejecución de BAPIS.
Todas las BAPIS tiene una serie de caracteristicas en común:
- Son metodos de un objeto de negocio de SAP.
- Todas estan definidas como módulo 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 objeyos de negocio se pueden visualizar en un repositorio (BOR - BUSINESS OBJECT REPOSITORY) accesible desde la transacción estándar SW01. Como parte de ese repositorio se pueden visualizar los métodos de de cada objeto de negocio, que se coresponden a las diferentes BAPIS del sistema.
Las BAPIS tienen varias funciones:
- Generar reportes.
- Crear objetos en el sistema SAP tales como una solicitud de pedido.
- Como comunicación entre sistema SAP o entre sistema SAP y sistema no SAP.
- Para la migración de datos.
Teniendo en cuenta está ultima funcionalidad, las BAPIS en SAP representan una alternativa a los métodos tradicionales como los Batch Inputs.
Ahora bien si comparamos a las BAPIS y a los Batch Inputs entoces vamos a econtrarnos con que las BAPIS presentan las siguientes ventajas sobre los Batch Inputs:
- Debido a que las BAPIS son generalmente estándar de SAP, utilizamos BAPIS, nos aseguramos que los grogramas que desarrollemos, serán compatibles con las verciones futuras de SAP. Esto no ocurre con los Batch Input, ya que entre los distitas 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 puede crear mediante la transacción SE37 como módulos de fuciones RFC, en rara ocación tendremos que crear una nueva.
- Se pueden utilizat BAPIS desde cualquier plataforma de desarrollo que soporte el uso de módulos de funciones RFC.
- Las BAPIS al ser estándares utiliza la misma validaciones que se utilizan en las transacciones estámdares del sistema SAP por lo tanto utilizar BAPIS es miy seguro a nivel de integridad de los datos y los resultados que deseamos obtener con la ejecución del sistema.
Pero como todo, también las BAPIS presentan desventajas que son las siguientes:
- La mayor dificultad está en encontrar la BAPI adecuada para lo que necesitamos hacer en el sistema.
- Otra gran dificultad que se encuentra en la utilización de BAPIS, está en la carga correcta de los valores de las tablas internas de entrada. Es decir en ocasiones se vueve complejo saber cómo cargar correctamente los parámetros de entrada de las BAPIS de modo que produzcan el resultado que deseamos. 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 útimo, vale la pena mencionar que si bien todas las BAPIS son módulos fe funciones RFC, no todos los módulos de funciones RFC son BAPIS. las principales diferencias entre las BAPIS y los módulos de funcones RFC son:
- Una BAPIS puede comunicarse con otras BAPIS mientras que un módulo de funciones RFC no puede comunicarse con otros módulo de funciones RFC.
- Las BAPIS utilizan conceptos propios de la programación orientada a objetos mientras que los módulos de funciones RFC utilizan conceptos orientados a procedimientos o subrutinas.
- Una BAPIS tiene una interfaz y funcionalidad fija que no se ve afectada por posibles UPGRADE mientras que un módulo de funciones RFC, dependiente del status, puede subrir cambios en la interfaz y en el funcionamiento.
La transacción BAPI.
Para visualizar las BAPI existentes en el sistema, podemos utilizar la transacción estándar BAPI.
Veamos por ejemplo la BAPI BAPI_USER_GET_DETAIL. que se utiliza para obtener los datos personales de los usuarios de SAP. Para buscarlas seleccionamos en el menú la opcion 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 Usar y alli seleccionamos GestDetail. Si accedemos a la BAPI desde la transacción SE37. Y la ejecutamos con nuestro usuario de SAP. Entonces podremos acceder a los datos personales de nuestro usuario de SAP.
Las BAPIS estándar.
Existen ciertas BAPIS que son estándares y pueden ser implementadas para la mayoria de los objetos de negocios. Estas BAPIS tienen funciones especificas, como puede ser lista las instancias existentes de un objeto de negocio SAP. Ellas son:
Las BAPIS estándar para lectura de datos
- GetList(): con esta BAPI se puede seleccionar un rango de objetos como pueden ser sociedades o números de materiales.
- GetDetail(): se utiliza para recuperar los datos de una instalación de un objeto de negocio.
- GetStatus(): se utiliza para obtener el status de un objeto de negocio.
- ExistenceCheck(): chequea si existe una entrada determinada de un objeto de negocio.
Las BAPIS estándar para crear o modificar datos.
- Create() o CreateFromData(): se utilizan para crear instacias de objetos de negocios.
- Change(): se utiliza para modificar una instancia de un objeto de negocio.
- Delete() y Undelete(): se utiliza para borra y para cancelar el barrador de una instancia de un objrto de negocio.
Las BAPIS estándar para procesamiento masivo
Las BAPIS para crear o modificar datos pueden se utilizadas 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() or DeleteMultiple().
Las BAPIS estándar para replicar instancias de objetos.
Las BAPIS Replicate() y SaveReplicate() son utilizadas para copiar instancias de objetos de un sistema a otro.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 80 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
Certificación Académica de Javier Angel