✒️ABAP Las BAPIS
ABAP Las BAPIS
BAPI: BUSINESS APPLKICATION PROGRAMMING INTERFACES, son métodos 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 específico. 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 tienen varias funciones:
- Generar reportes.
- Crear objetos en el sistema SAP tales como una Solped.
- Como comunicación entre sistemas SAP o entre sistemas SAP y sistemas no SAP.
- Para la migración de datos.
Teniendo en cuenta esta ú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 Inputs.
- Debido a que las BAPIS son generalmente estándar de SAP, utilizando BAPIS, nos aseguramos que los 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 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 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 BAPOS es muy 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 dificultar 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 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 ú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 con 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 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 BAPI existentes en el sistema, podemos utilizar la transacción estándar BAPI, denominada “Explorador BAPI” podremos acceder a todas las BAPIS existentes en el sistema SAP.
Ej: BAPI_USER_GET_DETAIL: se utiliza para obtener los datos personales de los usuarios de SAP, para buscarla entramos a la Tx BAPI y pulsamos TRATAR – BUSCAR, en la siguiente pantalla introducimos el nombre del objeto que es USER y hacemos clic en continuar, y dentro del menú que vamos a ver a la izquierda de la pantalla, vamos a USER y allí seleccionamos GetDetail.
Si accedemos a la BAPI desde la transacción SE37 y 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 mayoría de los objetos de negocios. Estas BAPIS tienen funciones específicas, como puede ser listar las instancias existentes de un objeto de negocio SAP. Ellas son:
LAS BAPIS ESTÁNDAR PARA LECTURA DE DATOS:
- GetList(): con esta BAPI se pueden seleccionar un rango de objetos como pueden ser sociedades o números de materiales.
- GetDetail(): se utiliza para recuperar los datos de una instancia 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 instancias de objetos de negocios.
- Change(): se utiliza para modificar una instancia de un objeto 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 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().
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 Jean Carlos Lopez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jean Carlos Lopez
Profesión: Ingeniero en Infomática - Venezuela - Legajo: AG33O
✒️Autor de: 75 Publicaciones Académicas
🎓Cursando Actualmente: Consultor en SAP BASIS Nivel Inicial
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Jean Lopez