✒️ABAP Las BAPIS
ABAP Las BAPIS
Apuntes ING Ezequiel Hurtado Benitez
¿Qué es un BAPI? Sus siglas significan Business Application Interfaces. Son métodos estandarizados que nos permiten realizar acciones sobre los objetos de negocios de SAP, como pueden ser, crear un equipo o hacer un movimiento de mercancía, entre muchísimos otros. Son las interfaces estándar de SAP, con esto nos referimos 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 hacerce 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 negocios de SAP; Tods están definidas como módulos de funciones RFC (Remote Funtion Call); Eviten las ventanas de diálogo durante el procesamiento.
Los objetos de negocios son similares a las clases de la programación orientada a objetos, esto es , una serie de atributos, métodos , eventos y campos para una aplicación de negocios o escenarios específico. Los objetos de negocios se pueden visualizar en un repositorio (BOR - Business Object Repository) accesible desde la transacción estándar SWO1. Como parte de ese espositorio se pueden visualizar los métodos de cada objeto de negocios, que se corresponde a las diferentes BAPIS del sistema. Las BAPIS tienen varias funciones: Generar reportes; Crear objetos en el sistema SAP tales como una solicitud de pedidos; 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 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 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, utilizando BAPIS, nos esegurarmos que ls programas que desarrollemos, serán compatibles con las versiones futuras de SAP. Esto no ocurre 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 con módulos de funciones RFC, en rara ocasión tendremos que crear una nueva.)
Se pueden utilizar BAPIS desde cualquier plataforma de desarrollo que soporte el uso de módulos de funciones RFC.
Las BAPIS al ser estándares utilizan las mismas validaciones que se utilizan en las transacciones estándares del sistema SAP por lo tanto utilizar BAPIS es muy 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 vuelve complejo saber cómo cargar correctamente los parámetros de entrada de las BAPIS de modo que produscan 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 último, vale la pena mencionar que si 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 son:
Una BAPI puede comunicarse con otra BAPI mientras que un módulo de funciones RFC no puede comunicarse con otro 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 BAPI tiene una funcionalidad fija que no se ve afectada por posibles upgrade mientras que un módulo de funciones RFC, dependiendo de status, puede sufrir cambios en la infraestructura y en funcionamiento.
La transacción BAPI Para visualizar las BAPIS existentes en el sistema, podemos utilizar la transacción BAPI. (Transacción BAPI Mediante la transacción estándar BAPI denominada "Explorar BAPI" podremos acceder a todas las BAPIS existentes en el sistema SAP.) Veamos por ejemplo la BAPI BAPI_USER_GET_DETAIL, que se utiliza para obtener los datos personales de los usuarios de SAP. Para buscar seleccionamos en el menú la 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 Usar y allí seleccionamos GetDetail. Si accedemos a la BAPI desde la transacción SE37, Y la ejecutamos con nuestro usuario de SAP, entonces 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 mayoría de los objetos de negocios. Estas BAPIS tienen funciones específicas, como puede ser las instancias de un objeto de negocios SAP. Ellas son:
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 un objeto de negocios.
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 instancias de objetos de negocios; Change(): se utiliza para modificar una instancia de un objetos de negocio; Delete() y Undelete(): se utilizan para borrar y para cancelar el borrado de una instancia de un objeto de negocio.
Las BAPIS estándar para para procesamiento masivo. Las BAPIS para crear o modificar datos pueden ser 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(). Los BAPIS estándar para repliacar instancias de objetos. Las BAPIS Replicante() y SaveReplicante() son utilizadas para copiar instancias de objetos de un sistema a otro.
 
 
 
Sobre el autor
Publicación académica de Ezequiel Hurtado Benitez, en su ámbito de estudios para la Carrera Consultor ABAP.
Ezequiel Hurtado Benitez
Profesión: Ingeniero Mecatrónico - Colombia - Legajo: FD18B
✒️Autor de: 45 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Ingeniero mecatrónico bilingüe con maestría en dirección de ventas y marketing empresarial, con conocimientos y experiencia en programación, diseño, elaboración y pruebas en proyectos de automatizació
Certificación Académica de Ezequiel Hurtado