✒️ABAP Las Badis
ABAP Las Badis
BADIS
1.- Què son las Badis.
Son un nuevo tipo de extensiòn al sistema SAP, basado en la utilizaciòn de objetos ABAP para 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 ùtiles debido a que poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones especìficas para industrias, etc).
2.- Tipos de Badis: Existen dos 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 ùtlimas tecnologìas de SAP.
3.- Vistas de una Badi.
Existen dos vistas "vista de definiciòn" y la "vista de implementaciòn".
"La definicòn de las Badis viene definida en el sistema estàndar y muy pocas vees serà necesario crear una nueva definiciòn".
4.- Definiciòn de una Badi: Utilizamos la transacciòn estàndar SE18 para visualizar la definiciòn de una BADI.
Configuraciòn correspondiente a un "Punto de ampliaciòn".- 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.
Al hacer doble click en "Interface" aquì se observa cuàl es la interface asociada y cuales datos 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 del mètodo.
5.- Implementaciòn de una Badi: Utilizamos la transacciòn SE19 se accede a l implementaciòn de las Badis.
Si hacemos doble click 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.
6.- Paso a Paso en la creaciòn de una Implementaciòn.
Ejemplo para 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, esta transacciones pertenece al mòdulo de finanzas F1.
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.
Luego introducimos el nombre de la implementaciòn que serà ZADRESS_CHECK y presionamos continuar.
En a siguiente pantalla introducimos un texto 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 estrada para el còdigo de paìs AR. Es decir, la badi a implementar sòlo se ejecutarà si el paìs es AR Finalmente guardamos los cambios.
"En esta caso 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 click en el màtodo.
"Para modificar la implementaciòn de una badi, primero debemos desactivarla"
Dentro de mètodo introducimos el còdigo ABAP. Para generar el mensaje en pantalla utilizamos la funciòn POPUP_TO_INFORM.
Por ùltimo, guardamos y activamos la implementaciòn de la badi.
Para probar, 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 le campo Paìs elegimos AR y presionamos el botòn Aceptar.
Y finalmente se observa el mensaje en la pantalla.
7.- Mètodo para encontrar una Badi.
- Usar un Break pointer 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 dentendrà en el BREAKPOINT en la variable EXIT_NAME se mostraràn los nombres de las Badis que implementa el programa.
Es mètodo puede resultar un poco laborioso porque 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.
8.- Diferencias entere las BADIS y los CUSTOMER EXITS.
- Pueden existir varias implementaciones activas en el mismo sistema de una Badi, pero sòlo 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 de doble capa (SAP y soluciones de cliente).
Otros mètodos para encontrar BADIS en SAP.
Las Badis se encuentran registradas en tablas:
SXS_INTER
SXS_EXIT
SXC_ATTR
1. Se acceden a travès de las vistas: V_EXT_IMP y V_EXT_ACT..
2. Desde la transacción SE80, fijar un breakpoint en el método “ACT_IMPS_PER_FLT_VAL” de la clase “CL_BADI_FLT_DATA_TRANS_AND_DB” justo después del SELECT encabezado con el comentario “read BADI attributes”.
3 Obtener el paquete o clase de desarrollo de la transacción que se desea analizar mediante la transacción SE93. En la transacción SE18, en la búsqueda ampliada, buscar filtrando por el paquete anteriormente encontrado y el sistema devolverá todas la badis relacionadas a ese paquete.
Ventajas:
Diferentes implementaciones de la misma BADI en base a los valores de los filtros.
Es importante dejar en claro que las BADIS se implementen ùnicamente en el còdigo estàndar de SAP.
 
 
 
Sobre el autor
Publicación académica de Miguel Angel Acosta Acosta, en su ámbito de estudios para la Carrera Consultor ABAP.
Miguel Angel Acosta Acosta
Profesión: Ingeniero de Sistemas - Ecuador - Legajo: TF64C
✒️Autor de: 238 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial
- Máster ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Profesional de ingeniería de sistemas en computación e informática, con experiencia en la implantación y soporte de proyectos informáticos para empresas del sector industrial y financiero.
Certificación Académica de Miguel Acosta