![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las Badis
ABAP Las Badis
![ABAP Las Badis ABAP Las Badis](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/196.jpg)
BADIS
Son un tipo de extensión de SAP, basado en la utilización de objetos ABAP para la implementación de validaciones y ampliaciones al código de estándar de SAP, sin tener que modificar el código estándar.
A través de las badis se pueden definir filtros de la ejecución de forma tal de poder tener diferentes procesos, por ejemplo, paises diferentes. SAP utiliza las Badis para realizar localizaciones del sistema.
Hay dos tipos de Badis, las clasicas y los enhacement spot.
Las badis tienen dos vistas: vista de definición, vista de implementación.
DEFINICION DE UNA BADI O ENHANCEMENT SPOT
Mediante la tx SE18 se accede a la vista de definición de Badis.
En la solapa Definiciones elem.punto ampl. se ve la configuración general de la Badi.
En la solapa Enhacem.Implementations veremos si la Badi está implementada.
haciendo doble clic 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.
Haciendo doble clic en un método veremos los parámetros de entrada y salida del método.
IMPLEMENTACIÓN DE UNA BADI.
Las badis por ser ampliaciones de SAP solo se pueden hacer en código estandar de SAP. ya que el codigo Z puede ser modificado sin inconvenientes por nosotros o por otro programador.
A través de la Tx SE19 se accede a la implementación de las Badis.
Podemos ver los métodos disponibles en la implementación. Si se hace doble clic sobre los métodos, podemos ver la lógica asociado a ellos, así que se puede elegir entre la lógica estandar o crear una nueva.
PASO A PASO CREACIÓN DE UNA IMPLEMENTACIÓN.
Ejemplo modificar la direccion de un banco en la FI02.
Se implementará la badi ADDRESS_CHECK en el método IS_ACTIVE_FOR_COUNTRY, Para proceder con la verificación del país.
1.Ir a la tx SE19, "tildamos Badi clásico", completamos el nombre de la definición (ADDRESS_CHECK) y presionamos el botón Crear Implementación.
2.Introducir el nombre de la implementación que para este caso será ZADDRESS_CHECK y presionamos continuar.
3.Introducir un texto breve para la implementación. tambien generar los filtros con los cuales se va a ejecutar la badi. Los filtros de generan desde el icono con el de la parte inferior de la pantalla.
Para agregar los filtros se pone 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 doble clic en el método, IS_ACTIVE_FOR_COUNTRY.
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 utilizamos la función POPUP_TO_INFORM.
Por ultimo, se guarda y activamos la implementación de la badi.
PROBAR LA IMPLEMENTACION
Para probar debemos acceder a la Tx FI02, se introduce el país del banco AR(Argentina), La clave banco 014 y presionamos enter.
En la siguiente pantalla seleccionamos el boton Dirección o Address. ( Botón enseguida de Documentos de modificación).
Luego en el campo país elegimos AR y presionamos el botón Aceptar.
Finalmente veremos el mensaje en pantalla:
BADI Implementada: ADDRESS_CHECK
Parámetro Imp: FLT_VAL -AR
Parámetro Exp: EX_SUPPRESS_CHECK_BEFORE-1
Método para encontrar un Badi:
Para encontrar los lugares en donde existe un Badi, se puede usar el siguiente método:
Colocar un BREAKPOINT de sesión dentro del método GET_INSTACE den la clase CL_EXITHANDLER. (Para acceder al Class Builder se usa la transacción SE24.) Revisar la V EXIT_NAME.
DIFERENCIAS 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.
*Los Customer exits usan módulos de funciones, las Badis usan métodos de objetos que se disparan en determinados momento de los procesos.
*Las badis poseen una arquitectura multicapa, los customer exits son doble capa.
Multicapa: SAP, partners, soluciones de clientes, localizaciones, soluciones especificas para industriales, etc).
Doble: SAP y soluciones de cliente.
 
 
 
Sobre el autor
Publicación académica de Franco Alfieri Maringota Alvarado, en su ámbito de estudios para la Carrera Consultor ABAP.
Franco Alfieri Maringota Alvarado
Peru - Legajo: GF44M
✒️Autor de: 288 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Avanzado
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP BI / BW BO Nivel Inicial