✒️ABAP Las Badis
ABAP Las Badis
BADIS (BUSINESS ADINS)
Son un nuevo tipo de extensión al sistema SAP basado en la utilización de objetos ABAP. Se usa para la implementación de validaciones y ampliaciones al código estándar de SAP sin tener que modificar el código estándar.
Podemos definir filtros para la ejecución utilizando BADIS así pode tener diferentes proceso para, por ejemplo, diferentes países.
Mediante BADIS se pueden hacer aplicaciones para negocios específicos.
NOTA:UNICAMENTE se implementan en el código estándar SAP
TIPOS DE BADI
Badis Caliscas:son las primeras que existieron
Badis Nuevas: también conocidas como puntos de ampliación o Enchancement spot que incorporan las últimas tecnologías SAP
VISTAS DE UNA BADI
Vista de definición
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.
VISTA DE DEFINICION DE UNA BADI
Mediante la transacción SE18 accedemos a las vistas de definición de las BADIS
VISTA DE IMPLEMENTACION
En las pestaña DEFINICIONES ELEM.PUNTO AMPL veremos la configuraciones generales de la BADI
En la pestaña ENHANCEM IMPLEMENTATION veremos si la badi esta implementada
Si hacemos doble clic en INTERFACE veremos cuál es la interface asociada a la badi y los métodos asociados a la definición de la BADI
Si hacemos clic en el método veremos los parámetros de entrada salida del método
IMPLEMENTACION DE UNA BADI
Abrimos la transacción SE19
Seleccionamos el tipo de badi (NUEVO o CLASICO)
Introducimos el nombre y pulsamos en visualizar
NOTA usaremos SE19 para acceder a las implementaciones existentes de una BADI
Podremos ver los métodos disponibles y su lógica o crear una nueva.
CREACION DE UNA IMPLEMENTACION PASO A PASO
Ejemplo que permite mostrar un mensaje cuando modificamos datos de dirección de un banco mediante la transacción FI02
Implementamos la badi ADDRESS_CHECK en el método IS_ACTIVE_FOR_COUNTRY que permite ampliar la verificación del país.
Abrimos SE19
Marcamos Badi clásico
Completamos el nombre ADDRESS_CHEK de la definición y presionamos el botón CREAR IMPLEMETACION
Introducimos el nombre de la implementación: ZADDRESS_CHECK
Entramos un texto breve para la implementación
Creamos los filtros con los que se va a ejecutar la badi
NOTA: Los filtros nos permiten tener diferentes implementaciones de la badi en base a los filtros
Generamos una entrada nueva para el código de país AR (solo se ejecutara para el país AR)
NOTA: la tabla de valores de filtro está habilitada debido a que en la implementación de la badi está tildada la opción dependiente de filtro.
En la pestaña interface introducimos el método IS_ACTIVE_FOR_COUNTRY
Pulsamos doble clic sobre el método
NOTA: Para modificar la implementación de una badi activa, primero debemos desactivarla.
Dentro del método entramos el codigo ABAP.
Para generar mensajes en pantalla usamos la función POPUP_TO_INFORM
Guardamos y activamos la implementación de la BADI
METODOS PARA ENCONTRAR UNA BADI
Ponemos un BREAKPOINT de sesión dentro del método GET_INSTANCE de la clase CL_EXITHANDLER
Nota: para acceder a una clase utilizaremos la transacción SE24 CLASS BUILDER
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 mostrarán los nombres de las BADIS que implementa el programa.
Este método es un poco engorroso ya que se detiene muchas veces en la ejecución, pero nos aseguramos que si una Badi existe se detendrá en ese punto.
Lo que hacemos es poner un BREAKPOINT en el momento en que SAP verifica si una definición de BADI tiene alguna implementación activo, 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 ENTRA LAS BADIS Y LOS CUSTOMER EXITS
Pueden existir varias implementaciones activas en el mismo sistema de una BADI pero solo una de CUSTOMER EXIT
Los CUSTOMER EXITS utilizan modulos de funciones, las BADIS 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) las customer exits son doble capa (SAP y soluciones de cliente)
OTRO METODOS PARA ENCONTRAR BADIS
Metodo 1
Revisar la tabla SXS_INTER, SXC_EXIT, SXC_ATTR
Sap accede a dichas tablas mediante las vistas V_EXT_IMP y V_EXT_ACT
En cada llamada existente a una badi el sistema pasa por las tablas antes mencionadas
Un método para entontrar una badi se basa en la utilización de la transacción ST05
Marcar TABLE BUFFER TRACE
Pulsar ACTIVATE TRACE
Ejecutar en otro modo la transacción sobre la que se desea encontrar una badi
Volvemos a la transacción ST05
Pulsamos el botón DEACTIVATE TRACE
Pulsamos DISPLAY TRACE
Filtramos por los objetos V_EXT_IMP y V_EXT_ACT
Pulsar el botón COPY (F8)
Fill operation OPEN y enter
Resultado: obtendremos todas las “interface class names” de las vistras V_EXT_IMP comenzando con IF_EX* este es el prefijo estándar de sap para las badi class interfaces
El nombre de la badi se encuentra a continuación del prefijo IF_EX_
METODO 2
Desede la transacción SE80 fijar un breakpoiunt en el método ACT_IMPS_PER_FLT_VAL de la clase CL_BADI_FLT_DATA_TRANS_AND_DB justo después del SELECT encabezado con el comentario “READ BADI ATTRIBUTES”
Luego ejecutamos la transacción, por cada parada del BREAKPOIN examinamos los campos EXIT_NAME e INTERNAL
METODO 3
Obtener el parque o clase de desarrollo de la transacción que se desea analizar mediante la transacción SE93. En la transacción SE18 en la búsqueda ampliada, buscar filtrando por el paquete anteriormente encontrad y el sistema devolverá todas las badis relacionadas a ese paquete.
 
 
 
Sobre el autor
Publicación académica de Josep Antoni Lopez Moyano, en su ámbito de estudios para la Carrera Consultor ABAP.
Josep Antoni Lopez Moyano
Profesión: It Manager - España - Legajo: QP26P
✒️Autor de: 375 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP HCM Nivel Inicial
- Carrera Consultor Basis NetWeaver Nivel Avanzado
- Carrera Consultor Basis NetWeaver Nivel Inicial
- Máster Funcional ABAP
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial