¿Qué es una BADI ?
Las BADI’s (Bussiness Ad-ins) son unas herramienta de programación abap orientada a objetos que se utilizan en sap para implementar validaciones y ampliaciones en el código standard de sap en versiones a partir de la 4.6c
Es decir sirven para acomodar los requerimientos específicos de un cliente a las transacciones estándar de sap. Para los que acaban de adentrase en sap vamos a explicar esto un poco más el resto se puede saltar el siguiente párrafo.
El código generado por SAP en sus transacciones estándar (para
realizar un pedido,…) no se puede modificar (salvo para implementar un parche
de SAP ), ya que se perdería el soporte que este ofrece a su producto. Pero
pongamos que cuando termino de hacer un pedido de comprar por ME21N necesito
guardar ciertos datos de este pedido en una tabla ZPEDIDOS que yo he creado.
Pues para esto están las ampliaciones (BADI’s, user exits, field exits) que al
fin y al cabo no son más que fragmentos de código que me permite SAP meter
dentro de su código estándar para realizar ciertas operaciones a medida, en
este caso meter la información que necesito en una tabla cuando se crea el
pedido en concreto.
Básicamente cumplen la misma función que las USER EXITS y las FIELD EXITS amen de algunas diferencias que vamos a exponer.
No las confundamos con las BAPI’s que de una forma llana y sencilla podríamos decir que son simplemente funciones abap que pueden consultarse desde la transacción BAPI y llamadas desde otros sistemas y que realizan funciones concretar con los parámetros que se les pasa como crear pedidos, modificarlos, crear documentos de material, ….
Diferencia entre BADI y las USER EXITS
Básicamente cumplen la misma función que las USER EXITS y las FIELD EXITS amen de algunas diferencias que vamos a exponer.
No las confundamos con las BAPI’s que de una forma llana y sencilla podríamos decir que son simplemente funciones abap que pueden consultarse desde la transacción BAPI y llamadas desde otros sistemas y que realizan funciones concretar con los parámetros que se les pasa como crear pedidos, modificarlos, crear documentos de material, ….
Diferencia entre BADI y las USER EXITS
- BADI se puede
utilizar todas las veces que quieras, donde las users exits solo se pueden
usar una sola vez. Ejemplo: Si asignas una user-exit a un proyecto usando
la transacción CMOD, entonces no puedes volver a asignarlo a otro
proyecto. Es decir varios programadores pueden implementar la misma BADI
independientemente.
- Las BADI’s son mucho más moldeables a las necesidades del programador en cuento a que podemos definir los puntos de salida, junto con la lógica de programación que necesitemos. Es decir posee todas las propiedades de una programación orientada a objetos.
Existen varios métodos para encontrar
Esta técnica de análisis se basa en el echo de que todas las BADIS’s están registradas en tablas de SAP. Por lo que en cada llamada a una Badi el sistema pasa por estas tablas. Las tablas de las BADIS son las siguientes SXS_INTER, SXC_EXIT, SXC_CLASS y SXC_ATTR. A estas tablas Sap siempre accede mediante las vistas V_EXT_IMP y V_EXT_ACT. Por lo que estas vistas (T: SE11) serán la base de nuestro análisis.
EJEMPLO:
Supongamos que quiero saber que BADIS son llamadas en la transacción “Maintain Business Partners” código BT
PASOS:
1.- Primero chequeamos que ningún otro usuario (T:SM04) o jobs en fondo (T: SM50) están usando el mismo usuario que tú.
2.- Nos vamos a la transacción ST05 (Performance Analysis) y marcamos el flag "Buffer trace", después pulsamos el botón “Activate Trace “, para activar el Trace.
3.- Inmediatamente después ya que el sistema está ya “Grabando” nos vamos a la transacción BT que queremos analizar y pulsamos el boton "Organization" completando los campos con los siguientes datos de prueba:
4.- Volvemos a la ventana donde teníamos abierta
5.- Ahora vamos a filtrar el Trace con los objetos: V_EXT_IMP y V_EXT_ACT. Que son nuestras vistas.lsmw
Pulsamos el botón "Copy (F8)" , Fill Operations: OPEN y
pulsamos el botón "Enter"
ANALISIS DE LOS RESULTADOS
Obtendremos un listado parecido a este que interpretaremos de la siguiente manera:
ANALISIS DE LOS RESULTADOS
Obtendremos un listado parecido a este que interpretaremos de la siguiente manera:
Es decir el nombre de
En la transacción SE18 puedes ver la definición de
Aconsejamos durante la realización del Trace no ejecutar ninguna otra
transacción o comando que no sean los propios de análisis si queremos obtener
unos resultados lo más limpios posibles. Bien pues ya podéis realizar una
función que propiamente es de analista
.
No obstante podemos ver una lista de las BADI’s disponibles haciendo lo siguiente:
- Vamos a la Transacción SE18
- Pulsamos F4 para desplegar el matchcode
- Hacemos click en el icono “Sistema de información”
- Aumentamos el campo “Cant. Máxima aciertos” a 999999
Hacemos click en OK.
Se nos listará de esta forma las BADIS disponibles.
No obstante podemos ver una lista de las BADI’s disponibles haciendo lo siguiente:
- Vamos a la Transacción SE18
- Pulsamos F4 para desplegar el matchcode
- Hacemos click en el icono “Sistema de información”
- Aumentamos el campo “Cant. Máxima aciertos” a 999999
Hacemos click en OK.
Se nos listará de esta forma las BADIS disponibles.
No hay comentarios:
Publicar un comentario