SAP BAdI: Encontrar, mostrar e implementar transacciones y complementos básicos de negocio – ¿Qué son realmente BAdI? Los BAdIs (Business Add-Ins) están en el corazón del concepto moderno de extensiones de SAP. Permiten a los desarrolladores ampliar los programas ABAP de manera específica y, sobre todo, sin modificaciones. La gran ventaja: dado que son opciones de expansión explícitas, tus ajustes individuales también se conservan para actualizaciones del sistema o paquetes de servicio. No importa si quieres optimizar aplicaciones SAP estándar o adaptar los complementos de un socio a tus procesos empresariales específicos.
Tabla de contenido
- ¿Qué son los BAdIs?
- ¿Cuál es la diferencia entre los BAdIs clásicos y los nuevos en SAP?
- ¿Cuáles son las transacciones BAdI más importantes en SAP?
- ¿Cómo se buscan BAdIs clásicos?
- ¿Cómo implementas las salidas clásicas de programas BAdI?
- ¿Cómo se buscan nuevos BAdIs?
- ¿Cómo implementas las nuevas salidas del programa BAdI – Enhancement Spot?
- Posibilidad a través de la clase CL_EXITHANDLER
- Preguntas frecuentes sobre SAP BAdIs (FAQ)

¿Qué son los BAdIs?
Explicación breve: Los BAdIs (Business Add-Ins) son puntos de extensibilidad en SAP. Permiten tu propio código sin cambiar el estándar SAP. Esto significa que los ajustes se mantienen incluso después de las actualizaciones.
Para ser más precisos, SAP BAdIs es una opción de extensibilidad en sistemas SAP. Esto permite extender el código estándar de los programas SAP sin cambiar el código original. También permiten a los desarrolladores implementar lógica de negocio adicional en aplicaciones SAP para establecer requisitos o personalizaciones específicas.
BAdIs son puntos en el código del programa donde se puede insertar código específico del cliente. Estos puntos se conocen como «puntos de compromiso». Una vez alcanzado un punto de integración BAdI, el desarrollador puede escribir código adicional para extender o sobrescribir la funcionalidad predeterminada.
Una ventaja importante de BAdIs es que proporcionan una separación clara entre el código estándar de SAP y el código específico del cliente. Esto facilita la actualización de los sistemas SAP, ya que el código específico del cliente en el BAdIs permanece intacto y solo se actualiza el código estándar.
Los BAdIs también pueden utilizarse en diversas aplicaciones SAP, como los módulos SAP ERP, SAP CRM, SAP SCM y SAP BW. Así, ofrecen una opción de expansión flexible para que las empresas adapten sus sistemas SAP a sus necesidades empresariales específicas. Es completamente independiente de si se trata de programas estándar de SAP o complementos de un socio. Por eso los BAdIs también se denominan opciones explícitas de extension. En el siguiente artículo, le presentaremos brevemente cómo encontrar e implementar estas extensiones.
¿Cuál es la diferencia entre los BAdIs clásicos y los nuevos en SAP?
Los BAdI clásicos se introdujeron en SAP ERP con la tecnología de mejora. Se basan en el concepto clásico de extensión y utilizan transacciones como SE18 y SE19 para la definición y la implementación. Aunque funcionan de forma similar a las salidas de usuario, son orientadas a objetos. Limitación: Solo puede haber una implementación activa a la vez, lo que limita la flexibilidad. Nuevos BAdIs, también conocidos como «Enhancement Framework BAdIs», se introdujeron con SAP NetWeaver 7.0. Además, están completamente integrados en el llamado Marco de Mejoramiento. Los nuevos BAdIs ofrecen conceptos modernos y orientados a objetos, tales como:
- Múltiples implementaciones paralelas
- Diseño dependiente del filtro
- Uso en objetos ABAP (p. ej., SE24, SE80)
- Tecnología uniforme para puntos de extensión, vistas y métodos
Resultado: Los nuevos BAdI son más flexibles, más fáciles de integrar y soportan escenarios de expansión modernos en SAP ECC y S/4HANA. Si desea desarrollar extensiones que se puedan mantener a largo plazo, debe preferir nuevos BAdI.
¿Cuáles son las transacciones BAdI más importantes en SAP?
En SAP, hay una serie de transacciones que son relevantes para trabajar con complementos de negocio (BAdI). Aquí hay una descripción general de las transacciones más importantes:
| Transacción | Tipo | Descripción |
|---|---|---|
SE18 |
Clásico y Nuevo | Definición de BAdIs clásicos y visualización de puntos de mejora |
SE19 |
Clásico | Implementación de BAdIs clásicos |
SE20 |
Nuevo | Actualización de BAdIs en el marco de mejora |
SE24 |
Nuevo | Creación y edición de clases (por ejemplo, para nuevos BAdIs) |
SE80 |
Ambos | Object Navigator – Entorno de desarrollo central |
SE81 |
Clásico | Sistema de información del repositorio (transacción obsoleta – muestra ayuda estructural) |
SE84 |
Ambos | Sistema de Información del Repositorio (Actual – Búsqueda de BAdIs, Clases, etc.) |
SE37 |
SIDA | Visualización de módulos de funciones: útil para el análisis de salida |
SXMB_MONI |
En todos los aspectos | Supervisión de BAdIs en el contexto de PI/PO (opcional, dependiendo de la aplicación) |
En conjunto, estas transacciones constituyen la columna vertebral técnica para el desarrollo e implementación de extensiones mediante BAdIs, tanto en el marco clásico como en el nuevo marco de mejora.
¿Cómo se buscan BAdIs clásicos?
SE84, SE81 o relacionados con el programa
Tienes varias opciones para buscar BAdIs clásicos:
- Búsqueda gratuita mediante transacción SE84 – Lista de BAdIs libremente seleccionados
- Búsqueda relacionada con aplicaciones mediante la transacción SE81 – Lista de BAdI relacionados con aplicaciones
- Búsqueda relacionada con el programa: Busque «GET_INSTANCE» en el programa, el módulo de funciones o en el método. Luego navega hasta la definición de la variable haciendo doble clic en la variable de referencia. También puede establecer un punto de interrupción en el método GET_INSTANCE y llamar al programa. Luego navega a la interfaz haciendo doble clic en la interfaz BAdI. Comience a CL_EX_ la lista de dónde se usa en las clases. Para la transacción SE18 , normalmente encontrarás documentación para el BAdI correspondiente, que definitivamente deberías leer antes de empezar la implementación.
¿Cómo implementas las salidas clásicas de programas BAdI?
Pasos para crear una implementación de BAdI (uso de BAdI)
Para utilizar el BAdI correspondiente en tu caso de uso, procede de la siguiente manera. Primero, utiliza la transacción SE18 para mostrar la definición de BAdI. Utilice la transacción SE18 o la transacción SE19 para elegir Crear implementación. Introduce un nombre para la implementación de BAdI. Para el nombre, recomendamos simplemente poner una Z delante del nombre BAdI para la implementación de BAdI. Para la clase de implementación, usa los nombres ZCL+BAdI. Al hacer doble clic en los métodos, ahora puede implementar los métodos deseados. Luego activa tanto el(los) método(s) de la clase de implementación como la implementación BAdI. ¡Listo!
¿Cómo se buscan nuevos BAdIs?
Básicamente, la nueva técnica BAdI funciona de forma muy similar a la técnica clásica BAdI. Sin embargo, esta técnica es mucho más eficiente, porque aquí no se crean clases adaptadoras. La búsqueda de un BAdI (Punto de Mejora) adecuado es análoga a la búsqueda de BAdIs clásicos. Sin embargo, en la búsqueda relacionada con el programa, no estamos buscando GET_INSTANCE sino GET_BADI.
¿Cómo implementas las nuevas salidas del programa BAdI – Enhancement Spot?
También hay varias maneras de hacer esto. Muestre el punto de mejora deseado a través de la transacción SE18. Utilice el menú Implementar extensión (F6) para crear la implementación. Da un nombre a la implementación de la extensión y a la implementación BAdI. Mantener los atributos para la implementación de BAdI. En el panel de navegación, haga clic en Implementación de clase. Haga doble clic para implementar los métodos deseados. A continuación, habilite los métodos y la implementación de la extensión. Listo.
Posibilidad a través de la clase CL_EXITHANDLER
Cuando se llama BAdIs, se atraviesa la clase clase CL_EXITHANDLER. Esta clase contiene de nuevo el método GET_INSTANCE (véase más arriba). Con la ayuda de un punto de interrupción dentro del método, puedes examinar este BAdI con más detalle. Para ello, utilice la transacción SE80 o la transacción SE24. La variable EXIT_NAME contiene el nombre del BAdI actual. ¿Tienes alguna pregunta sobre SAP BAdIs? Estaremos encantados de asesorarte en una reunión personal.
Preguntas frecuentes sobre SAP BAdIs (FAQ)
¿Qué es un BAdI en SAP?
Un BAdI (Business Add-In) es un punto de extensión en SAP. Te permite usar tu propio código sin cambiar el estándar SAP. Por ello, se conservan los ajustes para las actualizaciones.
¿Cuál es la diferencia entre SE18 y SE19?
Primero, defines y analizas con SE18 BAdIs clásicos. Luego creas la implementación con .SE19 SE18 también muestra la documentación sobre el BAdI.
¿Para qué se usa la transacción SE84?
SE84 es el actual sistema de información del repositorio. Puedes usarlo para encontrar BAdIs, clases y otros objetos. Sustituye la transacción obsoleta SE81.
¿Cuál es la diferencia entre los BAdIs clásicos y los nuevos?
Los BAdIs clásicos solo permiten una implementación activa. Por otro lado, los nuevos BAdIs (Framework de Mejora) permiten múltiples implementaciones y filtros. Los BAdIs nuevos son más eficientes y se recomiendan para S/4HANA.
¿Cómo encuentro el BAdI adecuado en el programa?
Busca ( GET_INSTANCE clásico) o GET_BADI (nuevo) en el código. Un punto de ruptura en el método ayuda con el análisis. La variable EXIT_NAME muestra el nombre del BAdi.



