✒️ABAP POO Las Badis
ABAP POO Las Badis
BADIS
QUE SON
BADIS (BUSINESS ADD-INS)
Son un nuevo tipo de extensión al sistema 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 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 filtro para la ejecución de forma tal de poder tener diferentes procesos para, por ejemplo, países diferentes. Este permite a SAP poder utilizar las BADIS para realizar localizaciones del sistema; por eso el sistema estándar ya incluye varias implementaciones de BADIS.
Mediante BADIS podemos hacer aplicaciones para negocios específicos como petroleras, químicas, etc.
Las BADIS son muy útiles debido a que poseen una arquitectura Multicapa.
Únicamente se implementan en el código STANDARD de sap, no código Z
TIPOS DE BADIS
BADIS CLASICAS: 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.
VISTAS DE UNA BADI
Las BADIS tienen dos vistas:
· Vista de definición
· Vista de implementación
DEFINICION DE UNA BADI (VISTA DE DEFINCION)
Transacción SE18 para acceder a la visa de definición.
Veremos la configuración correspondiente a un PUNTO DE AMPLIACION o ENHANCEMENT SPOT.
En la pestaña DEFINICIONES ELEM.PUNTO AMPL. Veremos la configuración general de la BADI
En la pestaña ENHANCEMENT.IMPLEMENTATIONS veremos si la BADI está implementada
Si hacemos doble clic en INTERFACE veremos cuál es la interface asociada a la BADI y que métodos están asociados a la definición de la BADI.
Si hacemos doble clic en un método veremos los parámetro de entrada y salida del método.
IMPLEMENTACION DE UNA BADI (VISTA DE IMPLEMENTACION)
Transacción SE19 accedemos a la implementación de la 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
Vamos a implementar un 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.
La FI02 se utiliza para modificar datos de los bancos existente en el sitema SAP, pertenece al módulo FI
Implementaremos la BADI ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país.
Entramos en la transacción SE19
Marcamos “BADI CLASICO”
Complementamos el nombre de definición.
Pulsamos CREAR IMPLEMENTACION.
Entramos el nombre de la implementación que en este caso será ZADDRESS_CHECK
Pulsamos Continuar
Entramos un texto breve para la implementación.
Generamos los filtro con los cuales se va a ejecutar la badi (Seccion TIPO, botn )
Una de las grandes ventajas de las BADI es que puedes tener diferentes implementaciones en base a los filtros.
Agregamos una nueva entrada en la sección VALORES DE FILTRO.
Generamos una entrada nueva para código de país AR
Guardamos cambios.
NOTA: 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.
Vamos a introducir el código en el método IS_ACTIVE_FOR_COUNTRY.
Accedemos a la pestaña INTERFACE
Hacemos doble clic en el método
NOTA: para modificar la implementación de una BADI activa primero debemos desactivarla.
Dentro del método introducimos el código ABAP.
Para general el mensaje en pantalla utilizaremos la función POPUP_TO_INFORM.
Por ultimo guardamos y activamos la implementación de la badi
METODO 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.
NOTA: utilizamos la transacción SE24 para acceder al CLASS BUILDER
Luego ejecutamos la transacción o programa que queremos verificar
El programa se detendrá en el BREAKPOINT
En la variable EXIT_NAME se mostrarán los nombres de las BADIS que implementa el programa.
NOTA: esto 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 dectará que existe una BADI en ese punto.
DIFERENCIAS ENTRA LAS BADIS Y LOS CUSTOMER EXITS
Principales diferencias:
· Pueden existir varias implementaciones activas en el mismo sistema de una BADI
· Solo una implementación de un CUSTOMER EXIT.
· Lo 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 arquitectura MULTICAPA
· Los CUSTOMER EXITES son solo doble CAPA
Revisar documento otros métodos de búsquedas de BADIS.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para el Máster ABAP POO.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial