Академический Документы
Профессиональный Документы
Культура Документы
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, ….
• 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 la BADI que necesitamos pero nosotros vamos
a explicar un método basado en la transacción ST05 (Performance Analysis).
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ú.
5.- Ahora vamos a filtrar el Trace con los objetos: V_EXT_IMP y V_EXT_ACT. Que
son nuestras vistas.
Pulsamos el botón "Copy (F8)" , Fill Operations: OPEN y pulsamos el botón "Enter"
Todas las “interface class names” de las vista V_EXT_IMP comienzan con IF_EX_.
Este es el prefijo estándar de Sap para las “ BAdI class interfaces “. El nombre de la
BAdI está después de este IF_EX_.
Es decir el nombre de la BADi para IF_EX_ADDR_LANGU_TO_VERS es
ADDR_LANGU_TO_VERS.
En la transacción SE18 puedes ver la definición de la BADI.
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.
Las transacciones con las que vamos a trabajar con las BADI’s son las:
Por lo tanto:
Para hallar detalles de cada método hacer doble click sobre cada uno, por
ejemplo
Doble click sobre GET_DATA
Click en parametros
Aparece como parámetro RE_DATA de tipo MEPOHEADER
Si se hace click sobre MEPOHEADER se vera que es una estructura de datos de
cabecera.
Si no no funcionara.
Bueno, espero que todo esto os sea de ayuda, ya que son varios los miembros de esta
comunidad los que han realizado varias preguntas al respecto.
Un saludo .
__________________
Si precisas una mano, recuerda que yo tengo dos.
Úlima edición por tracer fecha: 14/03/07 a las 09:07:10.
Tracer
Ver Perfil
Encontrar Mensajes
#2
24/04/06, 20:15:46
Fecha de Ingreso: feb 2006
dairolozano Mensajes: 1
Junior Member
Codigo de transacción.
Excelente articulo. Bastante util. Solo una pregunta, el ejemplo se refiere a la
transaccion BP - Tratar interlocutor comercial ?
Cordial Saludo,
Dairo L. Lozano R.
dairolozano
Ver Perfil
Enviar Mensaje Privado
Encontrar Mensajes
#3
05/07/06, 13:14:01
Fecha de Ingreso: jun 2006
francisco.m.torres Mensajes: 1
Junior Member
Alternativa para encontrar BADIS
Otro modo de encontrar las badis que se ejecutan en un proceso /
transaccion, es el siguiente: