✒️ABAP Las Badis
ABAP Las Badis
Unidad-3-Lección-6: Badis 1) ¿Qué son las Badis?
Badis (Bussines 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 ellas podremos realizar modificaciones al estándar de modo de poder satisfacer los requerimientos del cliente. Utilizándolas 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 su implementación se pueden hacer aplicaciones para negocios específicos como petroleras, papeleras, químicas, etc. Esto hace que sean muy útiles debido a que poseen una arquitectura Multicapa (SAP, partners, soluciones de clientes, localizaciones, soluciones específicas para industrias, etc.).
NOTA (Audio Tip 1): Dado que las Badis son un tipo de ampliación de SAP, solo se implementan en el código estándar de SAP ya que el código Z puede ser modificado sin inconvenientes.
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 Enhancement Spot, que incorporan las últimas tecnologías de SAP.
3) Vistas de una BADILas Badis tienen dos vistas: Vista de Definición y Vista de Implementación.
NOTA: La definición de las Badis viene definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición.
4) Definición de una BADI.Mediante la SE18 se accede a la vista de definición de las BADIs.
Configuración correspondiente a un Punto de Ampliación o Enhancement Spot:
En la pestaña Definiciones Elem. Punto Ampl. veremos las configuraciones generales de la BADI.
En la pestaña Enhancem. Implementations veremos si la BADI está implementada.Si hacemos doble click en Interface (pestaña Definiciones Elem. Punto Ampl.) se ve la interfaz asociada a la BADI y cuáles métodos están asociados a la definición de la BADI.
Si hacemos doble click en un método se verán los parámetros de entrada y salida del método.
5) Implementación de una BADIA través de la SE19 se accede a la implementación de las Badis.
Introducimos el nombre de la BADI, hacemos click en el botón Visualizar y luego doble click en alguno de los métodos para poder ver la lógica asociada a ellos. Esto nos permite 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 de la implementación de una BADI que permita mostrar un mensaje cuando se están modificando los datos de dirección de un banco determinado mediante la FI02 (utilizada para la modificación de los datos de los bancos existentes en el sistema SAP. Pertenece al módulo de Finanzas FI).
Implementaremos la BADI ADDRESS_CECK, en el método IS_ACTIVE_FOR_COUNTRY, el cual permite ampliar la verificación del país.
1) Accedemos a la SE19, seleccionamos BAdi clásico, completamos el nombre de la definición y se hace click en botón Crear Implementación.
2) Luego introducimos el nombre de la implementación (ZADDRESS_CHECK) y hacemos click en Continuar.
3) En la siguiente pantalla introducimos un texto breve para la implementación. También generamos los filtros con los cuales se va a ejecutar la BADI.
NOTA (Audio Tip 2): Sin dudas una de las grandes ventajas que presentan las Badis es la posibilidad de tener diferentes implementaciones de la misma BAdi en base a los valores de los filtros.
Por ejemplo: Supongamos que deseamos implementar una BAdi que tiene relación con un proceso contable particular de una empresa multinacional el cual es diferente según el país en donde nos encontremos. Dada esta situación podemos desarrollar una implementación diferente para cada país creando un filtro por código de país en la BAdi y asignar el desarrollo de cada implementación a un programa ABAP diferente o al equipo de programación ABAP de cada país. En caso que dos países realicen el proceso contable de igual forma podremos asignar la misma implementación a diferentes valores de los filtros.
4) Agregamos una nueva entrada en la sección Valores de Filtro. Se genera una nueva entrada para el código de país AR (se implementa solo si el país es Argentina).
NOTA: la tabla de Valores de Filtro está habilitada debido a que en la implementación de la BAdi está seleccionada la opción Dependiente Filtro.
5) Ahora introducimos el código en el método IS_ACTIVE_FOR_COUNTRY (desde el tab Interface y hacemos doble click en el método).
Recordatorio: Para modificar la implementación de una BAdi primero debemos desactivarla.
6) Dentro del método se introduce el código ABAP, para generar el mensaje en pantalla se utiliza la función POPUP_TO_INFORM, luego, se guarda y activa
7) Guardamos y activamos la implementación de la BAdi.
NOTA: para modificar la implementación de una BADI activa primero se debe desactivar.
Para probar la implementación se accede a la FI02, se introduce el país (AR), la clave del banco (014) y presionamos Enter. En la siguiente pantalla se presiona el botón Dirección (o Address).
En el Campo País se elige AR y el botón Aceptar.
A continuación tiene que mostrarse el mensaje.
7) Método para encontrar una BADIPoner un BreakPoint de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER.
NOTA: para acceder a una clase se utiliza el Class Builder: SE24 .
Luego se ejecuta la transacción o programa que se quiere verificar y se detendrá en el BreakPoint; en la variable EXIT_NAME se mostrarán los nombres de las BAdis que se implementan en 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 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 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 Exits.
· 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 doble capa únicamente (SAP y soluciones de cliente).
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez