✒️ABAP / Las Badis Por Oscar Aravena Muller
ABAP Las Badis

Introducción: Las BAdIs (Business Add-Ins) son la evolución de las ampliaciones en SAP, utilizando tecnología orientada a objetos para ofrecer una forma más flexible, potente y organizada de personalizar el sistema sin modificar el código estándar.
Teoría Esencial: ¿Qué son las BAdIs?
-
Definición: Son puntos predefinidos en el código estándar de SAP donde se puede "enchufar" lógica personalizada, implementada a través de clases y métodos ABAP.
-
Objetivo Principal: Permitir que SAP, partners y clientes amplíen la funcionalidad para industrias específicas (petrolera, química, etc.) o requisitos locales (países) de manera estructurada y sin conflictos.
-
Arquitectura Multicapa: Su gran ventaja es que soportan múltiples implementaciones activas al mismo tiempo (de SAP, de partners y propias) que se ejecutan en un orden definido.
Tipos de BAdIs
| BAdIs Clásicas | Las primeras en aparecer. Más simples. | Interfaz única |
| BAdIs Nuevas (Enhancement Spots) | Más modernas, flexibles y con mejor gestión. | Utilizan Enhancement Spots e Enhancement Implementations |
Vistas de una BAdI: Definición vs. Implementación
Para entender las BAdIs, es crucial diferenciar estos dos conceptos:
-
Definición (Transaction SE18):
-
Es la especificación técnica de la BAdI. SAP define aquí dónde, cuándo y qué se puede ampliar.
-
Contiene la Interfaz con los métodos disponibles y los parámetros de entrada/salida.
-
El usuario casi nunca crea una definición nueva; utiliza las miles predefinidas por SAP.
-
-
Implementación (Transaction SE19):
-
Es el código ABAP personalizado que "responde" a la definición de la BAdI.
-
Aquí es donde el desarrollador escribe la lógica de negocio específica.
-
Se pueden tener múltiples implementaciones activas para una misma BAdI.
-
Guía Paso a Paso: Implementar una BAdI Clásica
Objetivo: Mostrar un mensaje al modificar la dirección de un banco en Argentina (transacción FI02) usando la BAdI ADDRESS_CHECK.
-
Crear la Implementación:
-
Ve a la transacción SE19.
-
Elige "Badi clásico", ingresa el nombre de la definición (ADDRESS_CHECK) y haz clic en "Crear Implementación".
-
Asigna un nombre a tu implementación (debe comenzar con Z, ej: Z_ADDRESS_CHECK_AR) y una descripción.
-
-
Configurar Filtros (Opcional pero Poderoso):
-
Muchas BAdIs permiten usar filtros. Esto hace que tu código solo se ejecute bajo ciertas condiciones (ej: para un país específico).
-
En la sección "Valores de filtro", agrega una nueva entrada. Para el campo COUNTRY, ingresa AR (Argentina).
-
-
Codificar la Lógica:
-
En la pestaña "Interface", haz doble clic en el método que quieres implementar (ej: IS_ACTIVE_FOR_COUNTRY).
-
Escribe tu código ABAP en el editor. Por ejemplo, para mostrar un mensaje:
-
Activa la implementación.
-
-
Probar:
-
Ejecuta la transacción FI02, ingresa un banco de Argentina (AR) y navega a la dirección. ¡Tu mensaje personalizado aparecerá!
-
¿Cómo Encontrar la BAdI Correcta?
Encontrar qué BAdI usar para un proceso específico es el mayor desafío. Una técnica común es:
-
En la transacción SE24 (Class Builder), abre la clase CL_EXITHANDLER.
-
Pon un breakpoint en el método GET_INSTANCE.
-
Ejecuta la transacción estándar que quieres ampliar (ej: VA02).
-
El debugger se detendrá cada vez que el sistema consulte por una BAdI. La variable EXIT_NAME te mostrará el nombre de las BAdIs que se están chequeando.
Diferencias Clave: BAdIs vs. Customer Exits
| Tecnología | Orientada a Objetos (Métodos) | Procedural (Módulos de Función) |
| Múltiples Implementaciones | Sí. Varias pueden estar activas. | No. Solo una implementación activa. |
| Arquitectura | Multicapa (SAP, Partners, Cliente) | Doble capa (SAP y Cliente) |
| Filtros | Sí. Ejecución condicional muy potente. | No. |
Conclusión:
Takeaway principal: Las BAdIs son la técnica de ampliación más moderna y poderosa en SAP. Permiten múltiples implementaciones y el uso de filtros, haciéndolas ideales para desarrollos complejos y específicos.
Advertencia final: La curva de aprendizaje es más alta que con los Customer Exits. Dominar cómo encontrar la BAdI correcta es la clave del éxito.
Términos Clave
-
BAdI (Business Add-In): Punto de ampliación que utiliza clases e interfaces ABAP para permitir personalizaciones.
-
Definición (Definition): La especificación técnica de la BAdI, que define sus métodos y parámetros. Se gestiona en la transacción SE18.
-
Implementación (Implementation): El código ABAP personalizado que responde a una definición de BAdI. Se gestiona en la transacción SE19.
-
Interfaz (Interface): El conjunto de métodos (con sus parámetros) que una BAdI pone a disposición para ser implementados.
-
Filtro (Filter): Mecanismo que permite que una implementación de BAdI se ejecute sólo cuando se cumple una condición específica (ej: país = 'AR').
-
Enhancement Spot / Implementation: La tecnología detrás de las "BAdIs nuevas", que ofrece una gestión más avanzada.
 
 
 
Sobre el autor
Publicación académica de Oscar Aravena Muller, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Oscar Aravena Muller
Profesión: Futuro Analista Programador - Chile - Legajo: ZT54U
✒️Autor de: 90 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor SAP BTP Fiori
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























