Hola,
BADI's
-->badi es un término que se refiere a los complementos de negocio.
-->badi significa bussinesaddings y es para mejoras en el área de aplicación. Su principal uso es la reutilización.
-->Cuando el cliente necesita más funcionalidad que el Programa Estándar de SAP (Funcionalidad), entonces podemos agregar funcionalidad adicional a la funcionalidad estándar de SAP a través de Badi.
Badi no puede perturbar el código original (estándar).
Agregar funcionalidad adicional a la estándar no es más que un complemento.
Los Badi no se crean en el programa en sí.
Se crean y mantienen por separado y se llaman cuando necesitamos el Badi.
BAPI's
BAPI
Uno de los grandes beneficios de los BAPI es que la interfaz y la función no deben cambiar. Esto es una gran ventaja cuando se realizan actualizaciones o paquetes de mejora porque la transacción puede cambiar (formato, entradas requeridas, etc.) lo que significa que entonces necesitarías actualizar la llamada a la transacción.
Algunos de los BAPI están mejor documentados y son más fáciles de usar que otros.
Por lo general, necesitas ejecutar el BAPI que realmente realiza el COMMIT después de llamar a tu BAPI.
La codificación del programa para llamar a un BAPI suele ser más limpia que configurar el flujo de pantalla, etc., para la transacción de llamada.
No necesitas preocuparte por circunstancias especiales de datos que interrumpan el flujo de datos normal de las pantallas y causen errores debido a eso.
Los BAPI probablemente tengan un mejor rendimiento ya que no realizan el procesamiento del flujo de pantalla.
En general, si el BAPI existe para la transacción que deseas realizar y puedes averiguar cómo usarlo, probablemente sea la mejor opción.
Esto es solo desde mi experiencia trabajando con BAPI y Transacción de Llamada. He tenido algunos éxitos muy buenos con BAPIs, pero muy ocasionalmente encontré que no podía hacer que el BAPI realizara la actualización que necesitaba.
El concepto de interfaz del clásico R/3 se basa en dos estrategias diferentes: Llamadas de Función Remota (RFC) e intercambio de datos a través de documentos de mensajes IDoc. RFC realiza llamadas directas y síncronas de un programa en el sistema remoto. Si el llamante es un programa externo, llamará a una función habilitada para RFC en R/3 y si el programa que llama es el sistema R/3, llamará a una función RFC en otro sistema R/3 o llamará a un programa no R/3 a través de un proxy de puerta de enlace (generalmente rfcexec.exe).
Los BAPI son un subconjunto de los módulos de función habilitados para RFC, especialmente diseñados como Interfaz de Programación de Aplicaciones (API) para el objeto empresarial de SAP, o en otras palabras: son módulos de función oficialmente lanzados por SAP para ser llamados desde programas externos.
Saludos,
vineela.