✒️ABAP Las Badis
ABAP Las Badis
Lección 6: Badis
1| Que son las Badis?
- Son un nuevo tipo de extensión SAP, basado en la utilización de objetos Abap para la implementación de validaciones y ampliaciones al código estándar de Sap, sin modificar este. Utilizando Badis podremos definir filtros para la ejecución de diferentes procesos, para por ejm. realizar localizaciones. Ya se incluyen varias implementaciones de Badis.
Mediante estas implementaciones son muy útiles debido a que poseen una arquitectura multicapa.
Es importante saber que las Badis solo se implementan en el código estándar mas no en el Z.
2| Tipos de Badis
Existen dos tipos de badis:
- Las Badis clásicas; son las que existieron primero
- Las Badis nuevas; también conocidas como Puntos de ampliación o Enhancement spot que incorpora las últimas tecnologías de Sap
3| Vista de una Badi
Las Badis tienen dos vistas: La vista de definición y la vista de implementación. La definición de las Badis viene definida en el sistema estándar y muy pocas veces sera necesario crear una nueva.
4| Definición de una Badi
Accedemos mediante la tx SE18 a la vista de definición de las Badis
Veamos un punto de ampliación o Enhancement spot en la solapa Definiciones elem.punto ampl.
En la solapa Enhancem.Implementations veremos si la Badi esta implementada.
Hacemos doble click en Interface veremos cual es la interface asociada a la Badi y cuales métodos están asociados a la definición de la Badi.
Si hacemos doble click en un método veremos los parámetros de entrada y salida.
5| Implementación de una Badi
Con la Tx SE19 se accede a la implementación de las Badis
Vemos los métodos disponibles en la implementación
Con doble click podremos ver la lógica asociada
6| Pasos a paso en la creación de una implementación
Damos un ejemplo al mostrar un mensaje cuando se este modificación la dirección de un banco con la tx FI02. Para ello implementamos la badi ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país.
En la SE19, tildamos Badi clásico, completamos el nombre de la definición y presionamos el botón Crear Implementación.
Indicamos el nombre de la ampliación, texto breve. Y generamos los filtros con los cuales se ejecuta
Es ventajoso saber que las BADIS pueden tener diferentes implementaciones de la misma Badi en base a los valores de los filtros, pues si se desea implementar una Badi que tiene relación con un proceso contable en una empresa multinacional el cual es diferente en cada país, podríamos crear un filtro por código de país en la Badi y asignar el desarrollo de cada implementación al equipo Abap de cada país.
Una nueva entrada para el código de país AR. Y guardamos los cambios.
La tabla de valores de filtro es habilitada debido a que en la implementación tildamos dependiente filtro.
Ahora introducimos el código en el método IS_ACTIVE_FOR_COUNTRY. Accedemos a la solapa Interface y doble click en el método. Si vamos a modificar la implementación de una Badi activa primero se debe desactivar
Dentro del método ingresamos el código Abap y para generar el mensaje en pantalla utilizamos la función POPUP_TO_INFORM
Activamos la implementación
Probamos con la tx FI02, introducimos el país AR la clave de banco 014y enter. Y luego Dirección o Adrress
Luego en el campo país elegimos AR y presionamos el botón aceptar.
Y finalmente veremos el mensaje.
7| Método para encontrar una Badi
Para encontrar los lugares donde existen Badis,se puede usar el método:
ponemos Breakpoint dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
Para acceder a una clase utilizaremos el Class Builder que es la tx SE24
El programa se detendrá en su ejecución y en la variable EXIT_BNAME, se muestra los nombres de las Badis que implementa el programa
En este punto se detendrá el programa al momento que Sap verifica si una definición de Badi tiene alguna implementación activa; por lo tanto aunque no exista ninguna implementación activa para esa Badi el método detectara que existe una Badi en ese punto.
8| Diferencias entre las Badis y los User Exits
Las principales son:
° Pueden existir varias implementaciones activas en el mismo sistema de una Badi pero solo una de un User Exit.
° Los User Exits utilizan módulos de función, las Badis utilizan métodos de objetos que se disparan en determinados momentos de los procesos.
° Las Badis posee una arquitectura multicapa mientras que los User Exits son doble capa unicamente.
 
 
 
Sobre el autor
Publicación académica de Hernan Cabezas, en su ámbito de estudios para la Carrera Consultor ABAP.
Hernan Cabezas
Peru - Legajo: ZM88T
✒️Autor de: 117 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Hernan Cabezas