✒️ABAP Las Badis
ABAP Las Badis
Lección 6 Badis
Badis: Son un nuevo tipo de extensión al sistema SAP, basado en la utilización de objetos ABAP para la implementación de validaciones al código estándar de SAP, sin tener que modificar el código estándar. Mediante las Badis, se pueden realizar modificaciones al estándar de modo de poder satisfacer los requerimientos del cliente. Se podrán definir los 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, el sistema estándar ya incluye varias implementaciones de Badis. Permite hacer aplicaciones para negocios específicos y son muy útiles debido a que poseen una arquitectura Multicapa.
NOTA: Únicamente se implementan en el código estándar de SAP, ya que el código Z que no es estándar puede ser modificado sin inconvenientes por cualquier programador.
Tipos de Badis:
- Badis Clásicas: son las primeras que existieron.
- Badis Nuevas: También son 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, la vista de definición y la vista de implementación. La definición de las Badis viene definida en el sistema estándar y muy pocas veces será necesario crear una nueva definición.
Definición de una Badi: SE18, poner el "punto de ampliación´o Enhancement Spot" y Visualizar. En la pestaña Definiciones elem.punto ampl.: están las configuraciones de la Badi.y en la pestañá Enhancem.Implementatios: veremos si la Badi está implementada. Si se pulsa dos veces en “Interface”, se verá cual es la interface asociada a la Badi y qué métodos están asociados a la definición de la Badi. Si se pulsa dos veces sobre un método, se verán los parámetros de entrada y salida del método.
Implementación de una Badi: SE19, se ha de poner el nombre de la "Implementación ampliación" y visualizar. Se podrán ver los métodos disponibles en la implementación (pestaña "Elementos implementación ampl."). Si se pulsa dos veces en los métodos, se podrá ver la lógica asociada a ellos, por lo tanto se podrá elegir entre utilizar dicha lógica estándar o crear una nueva.
SE19: se utiliza para acceder a las implementaciones existentes de una BADI.
Pasos para la creación de una implementación:
- SE19 en "BAdI clásico poner "ADDRES_CHECK" (Nombre definición) y picar en botón "implement"
- En "Nom.implementación" poner "ZADDRESS_CHECK" y continuar.
- Poner un texto breve para la implementación y generar filtros (botón Generar Filtros)
- Se agrega la entrada "AR" en la sección "Valores de filtro", es decir, la badi sólo se ejecutará si el país es Argentina. La tabla de valores de filtro está habilitada debido a que en la implementación de la Badi está marcada la opción “Dependiente filtro”.
- Ahora, se introduce el código en el método “IS_ACTIVE_FOR_COUNTRY”. Para ello, hay que acceder a la pestaña “Interface” y pulsar dos vece en el método. Para modificar la implementación de una Badi activa, primero hay que desactivarla.
- Dentro del método, se introduce el código ABAP. Para generar el mensaje en pantalla, se utiliza la función “POPUP_TO_INFORM”.
- Por último, se guarda y se activa la implementación Badi.
- Para probar cómo funciona la implementación, se accede a la transacción FI02, se introduce el país del banco “AR”, la clave del banco “014” y se pulsa enter. En la siguiente pantalla, se selecciona el botón “Dirección o Address”. Después, en el campo “País” hay que elegir “AR” y pulsar aceptar. Por último, se verá el mensaje en pantalla.
FI02: tx. que se utiliza 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, en la pestaña "Interface".
NOTA: Un ejemplo sería la implementación de una Badi que tiene relación con un proceso contable particular de una empresa multinacional, el cual es diferente según el país de donde se encuentre. Se podría realizar 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 programador diferente o al equipo de programación de cada país. En caso que dos países realicen el proceso contable de igual forma, se podrá asignar la misma implementación a diferentes valores de los filtros.
Método para encontrar una Badi: Para encontrar los lugares donde existe una Badi, se puede usar el siguiente método, poner un breakpoint de sesión dentro del método “GET_INSTANCE” de la clase “CL_EXITHANDLER”. Luego, se ejecuta la transacción o programa que se quiere verificar y el programa se detendrá en el breakpoint. En la variable “EXIT_NAME” se mostrarán los nombres de las Badis que implementa el programa. Este método puede bastante pesado, ya que detiene muchas veces la ejecución, pero asegura que si una Badi existe, se detendrá en ese punto. Lo que se está realizando 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.
SE24: tx Class Builer para acceder a una clase.
Diferencias entre las Badis y los Customer Exists:
- Pueden existir varias implementaciones activas en el mismo sistema de una Badi, pero solo una de un customer exit.
- Mientras que los customer exits utilizan módulos de funciones, las Badis utilizan métodos de objetos que se lanzan en determinados momentos del proceso.
- 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 (SAP y soluciones de cliente).
Audio Tip 1: dado que las badis son un tipo de ampliacion de sap, es importante dejar claro que unicamente se implementan en el codigo estandar de sap. ya que el codigo z, es decir el codigo que nosotros como programadores creamos,el cual no es estandar, puede ser modificado sin inconvenientes ya sea por nosotros o por cualquier otro programador.
 
 
 
Sobre el autor
Publicación académica de Felipe Estepa Quintero, en su ámbito de estudios para la Carrera Consultor ABAP.
Felipe Estepa Quintero
Profesión: Tecnologo en Gestion Logistica - Colombia - Legajo: QH16V
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Felipe Estepa