✒️ABAP / Las Badis Por Lisimaco Prieto Herrera
ABAP Las Badis

Las Badis
¿Qué son las Badis?
Sus siglas significan Business Add-Ins y son un nuevo tipo de extensión al sistema SAP.
Las Badis se encuentran basadas en la utilización de objetos ABAP para la implementación de validaciones y ampliaciones al código estándar de SAP, sin tener que modificar el código estándar.
Mediante las Badis podremos realizar modificaciones al estándar de modo de poder satisfacer los requerimientos del cliente.
Utilizando Badis podremos definir filtros para la ejecución de forma tal de poder tener diferentes procesos para, por ejemplo, países diferentes. Esto le permite a SAP poder utilizar las Badis para realizar localizaciones del sistema; por eso es que el sistema estándar ya incluye varias implementaciones de Badis.
Mediante las implementaciones de las Badis se pueden hacer aplicaciones para negocios específicos como petroleras, papeleras, químicas, etc. Esto hace que las Badis sean muy útiles debido a que poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones especificas para industrias, etc).
Los tipos de Badis
Existen 2 tipos:
Badis Clásicas: son las primeras que existieron.
Badis Nuevas: también conocidas como Puntos de ampliación o Enhancement Spot que incorporan las últimas tecnologías de SAP.
Las vistas de una Badi
Las Badis tienen 2 vistas: la vista de definición y la vista de implementación. A continuación veremos en detalle estos dos conceptos.
La definición de las Badis viene definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición.
La definición de una Badi
Mediante la transacción SE18 accedemos a la vista de definición de las Badis.
Transacción SE18 para definición de una Badi.
veamos la configuración correspondiente a un Punto de ampliación o Enhancement Spot. En la solapa Definiciones elem.punto ampl. veremos las configuraciones generales de la Badi.
En la solapa Enhancem. Implementations veremos si la Badi está implementada.
Si hacemos doble clic en Interfaces veremos cuál es la interface asociada a la Badi y cuales métodos están asociados a la definición de la Badi.
Si hacemos doble clic en un método veremos los parámetros de entrada y salida del método.
La implementación de una Badi
A través de la transacción SE19 se accede a la implementación de las Badis.
Transacción SE19 para acceder a las implementaciones existentes de una Badi.
Podemos ver los métodos disponibles en la implementación.
Si hacemos doble clic en los métodos, podremos ver la lógica asociada a ellos, por lo tanto se podrá elegir entre utilizar dicha lógica estándar o crear una nueva.
El paso a paso en la creación de una implementación
En el siguiente ejemplo vamos a implementar una Badi que permita mostrar un mensaje cuando se están modificando los datos de dirección de un banco determinado mediante la transacción FI02. Está transacción pertenece al módulo de Finanzas FI y se usa para modificar los datos de los bancos existentes en el sistema SAP.
Para ello implementaremos la Badi ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país.
Lo primero que haremos es acceder a la transacción SE19, tildamos Badi Clásico, completamos el nombre de la definición y hacemos clic en el botón Crean Implementación.
Luego introducimos el nombre de la implementación que será ZADDRESS_CHECK y hacemos clic en continuar.
En la siguiente pantalla introducimos un teto breve para la implementación. También vamos a generar los filtros con los cuales se va a ejecutar la Badi.
Para ello agregamos una nueva entrada en la sección Valores de filtro.
Generando una nueva entrada para el código de país AR. Es decir, la Badi a implementar solo se ejecutará si el país es AR. Finalmente guardamos los cambios.
La tabla de valores de filtro está habilitada debido a que en la implementación de la Badi está tildada la opción dependiente filtro.
Ahora vamos a introducir el código en el método IS_ACTIVE_FOR_COUNTRY. para ello, accedemos a la solapa Interface y hacemos doble clic en el método.
Para modificar la implementación de una Badi activa primero debemos desactivarla.
Dentro del método introducimos el código ABAP. Para generar el mensaje en pantalla usaremos el módulo de funciones POPUP_TO_INFORM.
Por último, guardamos y activamos la implementación de la Badi.
para probar cómo funciona la implementación accedemos a la transacción FI02, introducimos el país del banco AR (Argentina), la(Argentina), la clave de banco 671 y presionamos enter.
En la siguiente pantalla seleccionamos el botón Dirección o Address.
Luego en el campo País elegimos AR y hacemos clic en el botón de la tilde verde.
Y finalmente veremos el mensaje en pantalla.
El método para encontrar una Badi
Para encontrar los lugares en donde existe una Badi se puede usar el siguiente método:
Ponemos un BREAKPOINT de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
Para acceder a una clase usaremos el Class Builder correspondiente a la transacción SE24.
Luego se ejecuta la transacción o programa que queremos verificar y el programa se detendrá en el BREAKPOINT, en la variable EXIT_NAME se mostrarán los nombres de las Badis que implementa el programa.
Este método puede resultar un poco engorroso ya que se detiene muchas veces la ejecución, pero nos aseguramos que si una Badi existe se detendrá en ese punto.
Lo que estamos haciendo es poner un breakpoint en el momento en 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 particular el método detectará que existe una Badi en ese punto.
Las diferencias entre las Badis y los Customer Exits
Las principales diferencias entre una Badi y un Customer Exit son:
Pueden existir varias implementaciones activas en el mismo sistema de una Badi pero solo una de un Customer Exit.
Mientras que los Customer Exits utilizan módulos de funciones, las Badis utilizan métodos de objetos que se disparan en determinados momentos de los procesos.
Las Badis poseen una arquitectura multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones especificas para industrias, etc) mientras que los Customer Exits son doble capa únicamente (SAP y soluciones de cliente).
 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto






Disponibilidad Laboral: FullTime


















