✒️ABAP - Las Badis

ABAP Las Badis

1 Que son las Badis?

Badis (Busuness Adds-Ins)

Son un nuevo tipo de extensión al sistema SAP, basada 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 filtros para la ejecución de forma tal de poder tener diferentes procesos por ejemplo: países diferentes, estos 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 hacer aplicaciones para negocios específicos como petroleras, papeleras, químicas, etc. Esto hace que las Badis sean muy útiles debido a que poseen una arquitectura Multicapa (SAP, partner, soluciones de clientes, localizaciones, soluciones específicas para industrias etc.)

Audio tips: dado que las Badis en un tipo de ampliación de SAP se debe quedar claro que solo se implementan en el código estándar de Sap, ya que el código z que nosotros desarrollamos, el cual no es estándar puede ser modificado sin inconvenientes ya sea por nosotros o cualquier otro programador

2. Tipos de Badis

Existen dos Tipos de Badis:

Badis Clásicas: Son las primeras que existieron.

Badis Nuevas: también conocidas como Puntos de ampliación o Enhencement Spot que incorporan las últimas tecnologías de SAP.

3. Vista de una Badi

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.

Sabías que: la definición de las Badis viene definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición.

Mediante la transacción SE18 accedemos a la vista de la definición de las Badis.

Transacción SE18

Utilizamos la transacción estándar SE18 para visualizar la definición de una Badi.

Veamos la configuración correspondiente a un punto de ampliación o Enhencement Spot. En la solapa definiciones elem. Punto ampl. Veremos las configuraciones generales de la Badi.

En la solapa Enhencem. Implementations 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.

5. Implementación de una Badi.

A través de la transacción SE19 se accede a la implementación de las Badis.

Transacción SE19

Utilizaremos la transacción estándar 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.

6. Paso a paso en la creación de una implementación

En el siguiente ejemplo vamos a implementar una Badi que permite 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

La transacción estándar FI02 es utilizada para la modificaión de los datos de los bancos existentes en el sistema Sap.

Esta transacción pertenece al módulo de finanzas FI

Para ello, implementamos la Badi ADDRESS_CHECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país.

Lo primero que haremos es acceder a la transacción SE19, utilizamos “Badis 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.

En la siguiente pantalla introducimos un texto breve para la implantación. También vamos a generar los filtros con los cuales se va a ejecutar la Badi.

Audio tips: las grandes ventajas que tienen las Badis es la posibilidad de tener diferentes implementaciones en la misma Badi en base a los valores de los filtros.

Para ello agregaremos una nueva entrada en la sección Valores de filtro.

Generando una nueva entrada para el código de país AR. Es decir, Badi, a implementar solo se ejecutara si el país es AR. Finalmente guardamos los cambios.

Reflexiones: La tabla de valores de filtro está habilitada debido a que en el implementación de la Badi esta tildada la opción dependiente de 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.

Recuerda: 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 utilizaremos la función POPUP_YO_INFORM.

Por último, grabamos y activamos la implementación de la Badi.

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

Finalmente veremos el mensaje en pantalla.

7. Método 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.

Sabías que: 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 asegura 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 de Badi tiene alguna implementación activa, por lo tanto, aun no existe ningún implementación activa para esa Badi particular en el método detectará que existe una Badi en ese punto.

8. Diferencias entre las BADIS y los Customer Exits

Las principales diferencias entre una Badi y un Customer Exit son.

ü Pueden existir varias implementaciones activos en el mismo sistema de una Badi pero solo una de una Customer Exit.

ü Mientras que los Customer Exits utilizan módulos de funciones, las Badis 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.)


Sobre el autor

Publicación académica de Jhon Deibys Cano Pineda, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master

Jhon Deibys Cano Pineda

Profesión: Ingeniero de Sistemas - Colombia - Legajo: WZ11E

✒️Autor de: 118 Publicaciones Académicas

🎓Egresado de los módulos:

Certificación Académica de Jhon Cano Pineda

 

:: Al igual que Jhon ¿Usted está dispuesto a aprender ABAP?

El lunes 25 Octubre 2021 comenzamos la 🎓Carrera Consultor ABAP.
Juntos para realizar sus más grandes desafíos!

 Cargando presentación, aguarde unos instantes...

 

 

+Recursos Gratuitos en CVOSOFT:

¡Lo importante es aprender!, por eso en CVOSOFT la comunidad SAP más grande de habla hispana, ponemos a su alcance los siguientes recursos abiertos libres y gratuitos:

Buscador de Publicaciones:

 

 

Consultas y Soporte

👋Hola! Estamos listos para ayudarle con el soporte que su carrera merece.

Acceda sección contacto y seleccione canal de comunicación más cómodo para usted.

🤝Aguardamos su mensaje, ¡Éxitos!

 


 

👉Que las empresas tomen en serio sus estudios es muy importante para que su inversión educativa tenga sentido.
Las empresas líderes de United States y del Mundo confían a CVOSOFT su recurso más valioso, la formación de su gente.

¿Quieres conocerlas?