✒️ABAP POO Las Badis
ABAP POO Las Badis
BADIS – LECCION 4-6
¿QUE SON LAS BADIS?
(BUSINESS ADDS-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 estandar 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, 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 específicas para industrias, etc.).
TIPOS DE BADIS
Existen dos tipos de badis
- 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, las vistas de definición y la vista de implementación. A continuación, veremos en detalle estos dos conceptos
NOTA, la definición de las badis vienen definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición
DEFINICION DE UNA BADI
Mediante la transacción SE18 accedemos a la vista de definición de las badis
Veamos la configuración correspondiente a punto de ampliación o enhancement spot. En la solapa definiciones elem.punto ampl. Veremos las configuraciones generales de las badi
En la solapa enhandcem.implimentations veremos si la badi esta implementada
Si hacemos doble clic en interface 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
IMPLEMENTACION DE UNA BADI
A través de la transacción SE19 se accede a la implementación de las badis
Transacción SE19, utilizamos la transacción estandar 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 verla lógica asociada a ellos, por lo tanto, se podrá elegir entre utilizar dicha lógica estándar o crear una nueva
PASOS A PAOS EN LA CREACION DE UNA IMPLEMENTACION
En el siguiente ejemplo vemos 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
Transacción FI02, es utilizada para la modificación de los datos de los bancos existentes en el sistema SAP – esta transacción pertenece al módulo de finanzas FI
Para ello, implementaremos la dabi ADDRESS_CHECK en el metodo IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país
Lo primero que hacemos es acceder a la transacción SE19 tildamos BADI CLASICO, completamos el nombre de la definición y presionamos el botón CREAR IMPLEMENTACION
Luego introducimos el nombre de la implementación que será ZADDRESS_CHECK y presionamos continuar
En la 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 filtros
Generando una nueva entrada para el código del país AR. Es decir, la badi a implementar solo se ejecutará si el país es AR. Finalmente guardamos los cambios.
NOTA, la tabla de valores de filtro está habilitada debido a que en la implementación de la badi esta 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
NOTA, para modificar la implementación de una badi activa primero debemos desactivarla
Dentro del metodo introducimos el código ABAP. Para generar el mensaje en pantalla, utilizamos la función POPUP_TO_INFORM
Por ultimo, 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 clave del banco 014 y presionamos enter
En la siguiente pantalla seleccionamos el botón DIRECCION o ADDRESS
Y luego en el campo Pais elegimos AR y presionamos el botón aceptar
METODO PARA ENCONTRAR UNA BADI
Para encontrar los lugares de donde existe una badi, se puede usar el siguiente método
Ponemos en BREACKPOINT de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER
NOTA, 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 mostraran 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, por lo tanto, aunque no exista ninguna implementación activa para esa badi particular el método detectara que existe una badi en ese punto
DIFERENCIAS ENTRE LAS BADIS Y LOS CUSTOMER EXITS
Las principales diferencias entre una badi y un user exit son
- Mientras que los customer exit 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 exit son doble capa únicamente (SAP y soluciones de cliente)
 
 
 
Sobre el autor
Publicación académica de Cristian Darwin Arteaga Diaz, en su ámbito de estudios para el Máster ABAP POO.
Cristian Darwin Arteaga Diaz
Profesión: Abap Developer - Argentina - Legajo: GP81Q
✒️Autor de: 165 Publicaciones Académicas
🎓Cursando Actualmente: Master Funcional para Consultores ABAP
🎓Egresado de los módulos:
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Me considero una persona responsable, siempre estoy investigando y capacitandome para adquirir nuevos conocimientos, tengo el gusto de iniciarme en el mundo de abap como desarrollador, es genial.
Certificación Académica de Cristian Arteaga