✒️ABAP Las Badis
ABAP Las Badis
BADIS (BUSINESS ADDS-INS)
QUE SON LAS BADIS.
Las Badis tienen dos vistas: la vista de definición y la vista de implementación. A continuación veremos en detalle estos dos conceptos
DEFINICION DE UNA BADI
Mediante la transacción SE18 (Transaccion para visualizar la definición de una BADI) accedemos a la vista de definición de las Badis
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 un método veremos los parámetros de entrada y salida del método
IMPLEMENTACION DE UNA BADI
- A través de la 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
PASO A PASO EN LA CREACION DE UNA IMPLEMENTACION
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 (utilizada para la modficación de los datos de los bancos existentes en el sistema SAP
Implementaremos la badi ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país
Primero que haremos es acceder a la transacción SE19, tildamos "Badi clásico", completamos el nombre de la definición y presionamos el botón Crear Implementación
Luego introducimos el nombre de la implementación que será ZADDRESS_CHECK y presionamos Continuar
Sin dudas una de las grandes ventajas que presentan las Badis es la posibilidad de tener diferentes implementaciones de la misma BAdi en base a los valores de los filtros.
Por ejemplo: Supongamos que deseamos implementar una BAdi que tiene relación con un proceso contable particular de una empresa multinacional el cual es diferente según el país en donde nos encontremos. Dada esta situación podemos desarrollar una implementación diferente para cada país creando un filtro por código de país en la BAdi y asignar el desarrollo de cada implementación a un programa ABAP diferente o al equipo de programación ABAP de cada país. En caso que dos países realicen el proceso contable de igual forma podremos asignar la misma implementación a diferentes valores de los filtros.
En la pantalla introducimos un texto breve para la implementacion, luego agregamos una nueva entrada en la seccion 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
Introducimos 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
Dentro del método introducimos el código ABAP. Para generar el mensaje en pantalla utilizamos la función POPUP_TO_INFORM
Guardamos y activamos
Para probar como funciona la implementación accedemos a la transacción FI02, introducimos el país del banco AR (Argentina), la clave de banco 014 y presionamos enter
En la siguiente pantalla seleccionamos el botón Dirección o Address
Luego en el campo País elegimos AR y presionamos el botón Aceptar
Vemos el mensaje en pantalla
METODO PARA ENCONTRAR UNA BADI
Ponemos un BREAKPOINT de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
Para acceder a una clase utilizaremos el Class Builder que es 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
Ponemos 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
DIFERENCIA ENTRE LAS BADIS Y LOS CUSTOMER EXITS
- 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 específicas 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 Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez