✒️ABAP Las Badis
ABAP Las Badis
BADIS
SON UN NUEVO TIPO DE ESTENSION AL SISTEMA SAP, BASADO EN LA UTILIZACION DE OBJETOS ABAP PARA LA IMPLEMENTACION DE VALIDACIONES Y AMPLIACIONES AL CODIGO ESTANDAR DE SAP, SIN TENER QUE MODIFICAR EL CODIGO ESTANDAR.
MEDIANTE LAS BADIS PODREMOS REALIZAR MODIFICACIONES AL ESTANDAR DE MODO DE PODER SATISFACER LOS REQUERIMIENTOS DEL CLIENTE.
UTILIZANDO BADIS PODREMOS DEFINIR FILTRO PARA LA EJECUCION DE FORMA TAL DE PODER TENER DIFERENTES PROCESOS PARA, POR EJEMPLO, PAISES DIFERENTES. ESTO LE PERMITE A SAP PODER UTILIZAR LAS BADIS PARA REALIZAR LOCALIZACIONES DEL SISTEMA; POR ESO ES QUE EL SISTEMA ESTANDAR YA INCLUYE VARIAS IMPLEMENTACIONES DE BADIS.
MEDIANTE LAS IMPLEMENTACIONES DE LAS BADIS SE PUEDEN HACER APLICACIONES PARA NEGOCIOS ESPECIFICOS COMO PTEROLERAS, PAPELERAS, QUIMICAS, ETC. ESTO HACE QUE LAS BADIS SEAN MUY UTILIES DEBIDO A QUE POSEEN UNA ARQUITECTURA MULTICAPA (SAP, PARTNERS, SOLUCIONES DE CLIENTES, LOCALIZACIONES, SOLUCIONES ESPECIFICAS PARA INDUSTRIA, ETC)
UNICAMENTE SE IMPLEMENTAN EN EL CODIGO ESTANDAR DE SAP.
---------------------------------------------------------------------------------------------------------------
TIPOS DE BADIS
- BADIS CLASICAS: SON LAS PRIMERAS QUE EXISTIERON.
- BADIS NUEVAS: TAMBIEN CONOCIDAS COMO PUNTOS DE AMPLIACION O ENHACEMENT SPOT QUE INCORPORAN LAS ULTIMAS TECNOLOGIAS DE SAP.
---------------------------------------------------------------------
VISTAS DE UNA BADI
LAS BADIS TIENE DOS VISTAS; LA VISTA DE DEFINICION Y LA VISTA DE IMPLEMENTACION.
LA DEFINICION DE LAS BADIS VIENE DEFINIDA EN EL SISTEMA ESTANDAR Y MUY POCAS VECES SERA NECESARIO CREAR UNA NUEVA DEFINICION.
----------------------------------------------------------------------------
DEFINICION DE UNA BADI
MEDIANTE LA TRANSACCION SE18 ACCEDEMOS A LA VISTA DE DEFINICION DE LAS BADIS.
EN LA SOLAPA DEFINICIONES ELEM. PUNTO AMPL. VEREMOS LAS CONFIGURACIONES GENERALES DE LA BADI.
EN LA SOLAPA ENHANCEM. IMPLEMENTATIONS VEREMOS SI LA BADI ESTA IMPLEMENTADA.
SI HACEMOS DOBLE CLIC EN INTERFACE VEREMOS CUAL ES LA INTERFACE (ES UNA ESTRUCTURA INDEPENDIENTE QUE SE PUEDE IMPLEMENTAR EN UNA CLASE PARA EXTENDER EL AMBIENTO DE ESA CLASE) ASOCIADA A LA BADI Y CUALES METODOS (SON PROCEDIMIENTOS INTERNOS DE UNA CLASE QUE DEFINEN EL COMPORTAMIENTO DE UN OBJETO) ESTAN ASOCIADOS A LA DEFINICION DE LA BADI.
SI HACEMOS DOBEL CLIC EN UN METODO VEREMOS LOS PARAMETROS DE ENTRADA Y SALIDA DEL METODO.
-----------------------------------------------------------
IMPLEMENTACION DE UNA BADI
A TRAVES DE LA TRANSACCION SE19 SE ACCEDE A LA IMPLEMENTACION DE LAS BADIS.
PODEMOS VER LOS METODOS DISPONIBLES EN LA IMPLEMNTACION
SI HACEMOS DOBLE CLIC EN LOS METODOS, PODERMOS VER LA LOGICA ASOCIADA A ELLOS, POR LOTANTO SE PODRA ELEGIR ENTRE UTILIZAR DICHA LOGICA ESTANDAR O CREAR UNA NUEVA.
-----------------------------------------------------------------
PASO A PASO EN LA CREACION DE UNA IMPLEMENTACION
EJEMPLO: UNA BADI QUE PERMITA MOSTRAR UN MENSAJE CUANDO SE ESTA MODIFICANDO LOS DATOS DE DIRECCION DE UN BANCO DETERMINADO MEDIANTE LA TRANSACCION FI02.
IMPLEMENTAREMOS LA BADI ADDRESS_CHECK, EN EL METODO IS_ACTIVE_FOR_COUNTRY, EL CUAL PERMITE AMPLIAR LA VERIFICACION DEL PAIS.
LO PRIMERO QUE HAREMOS ES ACCEDER A LA TRANSACCION SE19, TILDAMOS BADI CLASICO, COMPLETAMOS EL NOMBRE DE LA DEFINICION Y PRESIONAMOS EL BOTON CREAR IMPLEMENTACION.
LUEGO INTRODUCIMOS EL NOMBRE DE LA IMPLEMENTACION QUE SERA ZADDRESS_CHECK Y PRESIONAMOS CONTINUAR.
EN LA SIGUIENTE PANTALLA INTRODUCIOMOS UN TEXTO BREVE PARA LA IMPLEMENTACION. TAMBIEN VAMOS A GENERAR LOS FILTROS CON LOS CUALES SE VA A EJECUTAR LA BADI.
VENTAJAS DE BADIS: DIFERENTES IMPLEMENTACIONES CON BASE A LOS FILTROS.
PARA ELLO, AGREGAMOS UNA NUEVA ENTRADA EN LA SECCION VALORES DE FILTRO.
GENERANDO UNA NUEVA ENTRADA PARA EL CODIGO DE PAIS AR. ES DECIR, LA BADI A IPLEMENTAR SOLO SE EJECUTARA SI EL PAIS ES AR. FINALMENTE GUARDAMOS LOS CAMBIOS.
LA TABLA DE VALORES DE FILTRO ESTA HABILITADA DEBIDO A QUE EN LA IMPLEMENTACION DE LA BADI ESTA TILDADA LA OPCION DEPENDIENTE FILTRO.
AHORA VAMOS A INTRODUCIR EL CODIGO EN EL METODO IS_ACTIVE_FOR_COUNTRY PARA ELLO ACCEDEMOS A LASOLAPA INTERFACE Y HACEMOS DOBLE CLIC EN EL METODO.
PARA MODIFICAR LA IMPLEMENTACION DE UNA BADI ACTIVA PRIMERO DEBEMOS DESACTIVARLA.
DENTRO DEL METODO INTRODUCIMOS EL CODIGO ABAP. PARA GENERAR EL MENSAJE EN PANTALLA UTILIZAMOS LA FUNCION POPUP_TO_INFORM.
POR ULTIMO GUARDAMOS Y ACTIVAMOS LA IMPLEMTNACION DE LA BADI.
PARA PROBAR COMO FUNCIONA LA IMPLEMENTACION ACCEDEMOS A LA TRANSACCION FI02, INTRODUCIMOS EL PAIS DEL BANCO AR (ARGENTINA), LA CLAVE DE BANCO 014 Y PRESIONAMOS ENTER.
EN LA SIGUIENTE PANTALLA SELECCIONAMOS EL BOTON DIRECCION O ADDRESS.
LUEGO EN EL CAMPO PAIS ELEGIMOS AR Y PRESIONAMOS EL BOTON ACEPTAR.
Y FINALMENTE VEREMOS EL MENSAJE EN PANTALLA.
---------------------------------------------------------------
METODO PARA ENCONTRAR UNABADI
PONEMOS UN BREAKOINT DE SESION DENTRO DEL METODO GET_INSTANCE DE LA CLASE CL_EXTHANDLER.
PARA ACCEDER A UNA CLASE UTILIZAREMOS ELCLASS BUILDER QUE ES LA TRANSACCION SE24.
LUEGO SE EJECUTA LA TRANSACCION O PROGRAMA QUE QUEREMOS VERIFICAR Y EL PROGRAMA SE DETENDRA EN EL BREAKPOINT, EN LA VARIABLE EXIT_NAME SE MOSTRARAN LOS NOMBRES DE LAS BADIS QUE IMPLEMENTA EL PROGRAMA.
EL METODO PUEDE SER ENGORROSO YA QUE SE DETIENE MUCHAS VECES LA EJECUCION, PERO NOS ASEGURAMOS QUE SI UNA BADI EXISTE SE DETENDRA EN ESTE PUNTO.
AUNQUE NO EXISTA NINGUNA IMPLENTACION ACTIVA PARA ESA BADI PARTICULAR EL METODO DETECTARA QUE EXISTE UNA BADI EN ESE PUNTO.
-----------------------------------------------------------------------------------------------------------
DIFERENCIAS ENTRE LAS BADIS Y LOS CUSTOMER EXITS
- PUEDEN EXISTIR VARIAS IMPLEMENTACIONES ACTIVAS EN EL MISMO SISTEMA DE UNA BADI PERO SOLO DE UN CUSTOMER EXIT.
. MIENTRAS QUE LOS CUSTOMER EXITS UTILIZAN MODULOS DE FUNCIONES, LAS BADIS UTILIZAN METODOS DE OBJETOS QUE SE DISPARAN EN DETERMINADOS MOMENTOS DE LOS PROCESOS.
- LAS BADIS POSEEN UNA ARQUITECTURA MULTICAPA (SAP, PARTNERS, SOLUCIONES DE CLIENTES, LOCALIZACIONES, SOLUCIONES ESPECIFICAS PARA INDUSTRIAS, ETC) MIENTRAS QUE LOS CUSTOMER EXITS SON DOBLE CAPA UNICAMENTE (SAP Y SOLUCIONES DE CLIENTE).
Las Badis se encuentran registradas en las tablas:
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.
Por lo tanto un método para encontrar una badi se basa en la utilización de la transacción ST05 (Performance Analysis).
Se realzará el siguiente procedimiento:
1-Desde la transacción ST05 marcar el flan “Table Buffer Trace” y pulsar el botón “Activate Trace”.
2-Ejecutar en otro modo la transacción sobre la que se desea encontrar una Badi.
3-Volver a la pantalla de la transacción ST05 y hacer clic en el botón “Deactivate Trace” para finalizar el trace. Luego seleccionar el botón “Display Trace” donde se va a filtrar el trace con los objetos V_EXT_IMP y V_EXT_ACT (Vistas).
4-Pulsar el botón “Copy (F8)”, Fill operations: OPEN y “Enter”. Resultado: se obtendrá con todas las “interface class names” de las vistas V_EXT_IMP comenzando con IF_EX*. Este es el prefijo estándar de SAP para las “Badi class interfaces”.
 
 
 
Sobre el autor
Publicación académica de Oscar Guillermo Rodriguez Villate, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Guillermo Rodriguez Villate
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WM49P
✒️Autor de: 103 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Oscar Rodriguez