✒️ABAP Las BAPIS
ABAP Las BAPIS
Las BAPIS
BAPI: Business Application Programming Interfaces.
Son mètodos estandarizados que nos permiten realizar acciones sobre los objetos de negocios de SAP, como crear un pedido, crear un equipo o hacer una movimiento de mercancìas.
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 estàndar SW01. 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 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 esta ùltima funcionalidad, las BAPIS en SAP representan una alternativa a los mètodos tradicionales como los Batch Inputs.
Si comparamos a las BAPIS y a los Batch Inputs vamos a encontrarnos con que las BAPIS presentan algunas ventajas con respecto a 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à. Las BAPIS son estàndar ya que si bien se pueden crear mendiante 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 BAPIS 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 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 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 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 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 BAPIS existentes en el sistema, podemos utilizar la transacciòn estàndar BAPI, denominada explorador BAPI, que nos permite 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 buscarla 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 User y allì seleccionamos GetDetail.
Si accedemos a la BAPI desde la transacciòn SE37 y la ejecutamos con nuestro usuario de SAP 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 lecturas 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() u 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 Ariel Martucci, en su ámbito de estudios para la Carrera Consultor ABAP.
Ariel Martucci
Profesión: Contador Publico - Argentina - Legajo: PJ45S
✒️Autor de: 78 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Un contador público de mediana edad con ganas de seguir aprendiendo carreras nuevas. estudiante avanzado de inglés, preparando mi first certificate, y al mismo tiempo involucrándome en programación.
Certificación Académica de Ariel Martucci