✒️ABAP Las Badis
ABAP Las Badis
1. QUÉ son las BADIS?
Son un nuevo tipo de Extensión al Sistema SAP. Se basa en el uso de objetos ABAP para la implementación de validaciones y ampliaciones al código estandar SAP, sin tener que modificarlo.
Nos permiten definir filtros para la ejecución (p.ej. para distinguir por países). Poseen una arquitectura Multicapa (SAP, Partners, Clientes, Localizaciones, IS). Son muy usadas en negocios específicos como petroleras, químicas, papeleras.
Se implementan en el código estándar de SAP.
2. TIPOS de BADIS
Existen 2 Tipos:
- Badis Clásicas: son las primeras que existieron
- Badis Nuevas: tb llamadas Puntos de Ampliación o Enhancement Spot
3. VISTAS de una BADI
Las Badis tienen 2 vistas:
- Vista de Definición. Las Badis se definen en el Sist. estándar y rararemente será necesario crear una nueva definición
- Vista de Implementación
4. DEFINICIÓN de una BADI
Se accede a la vista de definición de las BADIS desde la tr. SE18.
Para el caso de una Badi tipo Punto de Ampliación, podremos ver las configuraciones generales en la solapa Definiciones elem.punto ampl. Si hacemos doble click sobre Interface, veremos cuál es la interface asociada y los métodos asociados a la definición de la Badi. Al hacer doble click sobre un Método, veremos los parámetros de Entrada y Salida del Método.
En la solapa Enhancem. Implementations veremos si la Badi está implementada
5. IMPLEMENTACIÓN de una BADI
Se accede a la vista de implementación de las BADIS desde la tr. SE19.
Podemos ver los métodos disponibles en la implementación (En solapa Elementos Implementación Ampl.). Si hacemos doble click sobre los métodos podremos ver la lógica asociada a ellos (Código ABAP) y se podrá elegir entre la lógica estándar o crear una nueva.
6. PASO a PASO en la CREACIÓN de una IMPLEMENTACIÓN
Ej. Implementar una BADI que permita mostrar un mensaje cuando se están modificando los datos de dirección de un banco determinado mediante la tr. FI02. Para ello, implementaremos la badi ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, que permite ampliar la verificación del país. Pasos:
- Tr. SE19, Seleccionamos "Badi clásico", completamos el nombre de la definición (ADDRESS_CHECK) y pulsamos el botón Crear implementación
- Introducimos el nombre de la implementación: ZADDRESS_CHECK y pulsamos Continuar.
- Introducimos un texto breve para la implementación. Generamos los filtros pulsando el botón de añadir ( ). Gran ventaja de BADIs: Filtros-->Código ABAP diferente según el valor de una variable (País).
- Agregamos una nueva entrada en la sección Valores de filtro. P.ej. si ponemos el código de país AR, la badi sólo se ejecutará si el país es AR. Guardamos los cambios. Los valores de filtro están habilitados pq en la implementación de la Badi está activo el flag "Dependiente Filtro"
- Vamos a la solapa Interface y hacemos doble click en el método IS_ACTIVE_FOR_COUNTRY. Si queremos modificar una badi activa, primero debemos desactivarla.
- Dentro del método, usamos la función ABAP "POPUP_TO_INFORM"
- Guardamos y activamos la implementación de la BADI
Probamos la BADI:
- Ejecutamos la tr. FI02
- Introducimos el país del banco AR, clave de banco 014 y pulsamos Enter
- Pulsamos el botón Address
- En el campo País, elegimos AR y pulsamos Enter
- Aparece en pantalla el Mensaje: Badi implementada(ADDRESS_CHECK), ....
7. MÉTODO para ENCONTRAR una BADI
Para encontrar Badis se puede usar el siguiente método:
- Poner un Breakpoint de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER (Class Builder : tr. SE24)
- Ejecutamos la transacción o programa a verificar. Al pararse por el breakpoint, la variable EXIT_NAME mostrará los nombres de las Badis que implementa el programa
Estamos poniendo un breakpoint cuando SAP verifica si una definición de Badi tiene alguna implementación activa.
8. DIFERENCIAS entre BADIS y CUSTOMER EXITS
- Pueden existir varias implementaciones activas de una Badi pero sólo una de un Customer Exit
- Los Customer Exits usan Módulos de Funciones, las Badis usan Métodos de Objetos que se disparan en determinados momentos de los procesos
- Las Badis poseen una arquitectura Multicapa (SAP, Partners, Solucs. Cliente, Localizaciones, IS,..) Los Customer Exits son doble capa (SAP y Soluciones Cliente)
 
 
 
Sobre el autor
Publicación académica de David Campillo Martinez, en su ámbito de estudios para la Carrera Consultor ABAP.
David Campillo Martinez
Profesión: Administrador de Sistemas - España - Legajo: PC32Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de David Campillo