Está en la página 1de 6

Como encontrar la BADI que necesitamos Existen varios mtodos para encontrar la BADI que necesitamos pero nosotros

vamos a explicar un mtodo basado en la transaccin ST05 (Performance Analysis) Esta tcnica de an!lisis se basa en el ec"o de que todas las BADI#$s est!n re%istradas en tablas de #AP Por lo que en cada llamada a una Badi el sistema pasa por estas tablas &as tablas de las BADI# son las si%uientes SXS_INTER, SXC_EXIT, SXC_CLASS y SXC_ATTR A estas tablas #ap siempre accede mediante las vistas _EXT_I!" y _EXT_ACT Por lo que estas vistas ('( #E))) ser!n la base de nuestro an!lisis E*E+P&,( #upon%amos que quiero saber que BADI# son llamadas en la transaccin -+aintain Business Partners. cdi%o B' PA#,#(

#$% Primero c"equeamos que nin%/n otro usuario ('(#+01) o 2obs en fondo ('( #+30)
est!n usando el mismo usuario que t/

&$% 4os vamos a la transaccin #'03 (Performance Analysis) y marcamos el fla%


5Buffer trace56 despus pulsamos el botn -Activate 'race -6 para activar el 'race

'$% Inmediatamente despus ya que el sistema est! ya -7rabando. nos vamos a la


transaccin B' que queremos anali8ar y pulsamos el boton 5,r%ani8ation5 completando los campos con los si%uientes datos de prueba(

Al finali8ar pulsamos el boton salvar

($% 9olvemos a la ventana donde ten:amos abierta la #'03 y pulsamos el botn


5Deactivate 'race5 para finali8ar el trace y pulsamos sobre el botn 5Display 'race56 entonces el popup 5#et ;estrictions for Displayin% 'race5 aparecer!

5$% A"ora vamos a filtrar el 'race con los ob2etos( _EXT_I!" y _EXT_ACT <ue
son nuestras vistas

Pulsamos el botn 5=opy (>?)5 6 >ill ,perations( ,PE4 y pulsamos el botn 5Enter5 A4A&I#I# DE &,# ;E#@&'AD,# ,btendremos un listado parecido a este que interpretaremos de la si%uiente manera(

'odas las -interface class names. de las vista _EXT_I!" comien8an con I>AEBA Este es el prefi2o est!ndar de #ap para las - BAdI class interfaces - El nombre de la BAdI est! despus de este I>AEBA Es decir el nombre de la BADi para I)_EX_ADDR_LAN*+_T,_ ERS es ADDR_LAN*+_T,_ ERS En la transaccin #E)? puedes ver la definicin de la BADI

Aconse2amos durante la reali8acin del 'race no e2ecutar nin%una otra transaccin o comando que no sean los propios de an!lisis si queremos obtener unos resultados lo m!s limpios posibles Bien pues ya podis reali8ar una funcin que propiamente es de analista 4o obstante podemos ver una lista de las BADI$s disponibles "aciendo lo si%uiente( C 9amos a la 'ransaccin #E)? C Pulsamos >1 para desple%ar el matc"code C Dacemos clicE en el icono -#istema de informacin. C Aumentamos el campo -=ant +!xima aciertos. a FFFFFF Dacemos clicE en ,G #e nos listar! de esta forma las BADI# disponibles Como Im-lementar una BADI &as transacciones con las que vamos a traba2ar con las BADI$s son las( SE#. / De0inici1n 2e BADIS SE#3 / Im-lementaci1n 2e BADIS #upon%amos que "emos ele%ido la BADI !E_"R,CESS_",_C+ST y su mtodo =&,#E que cubren necesidades especificas de la creacin y modificacin de pedidos de materiales6 transacciones +EH)4 y +EHH4 Por lo tanto( ,btener la informacin relevante de BADIs reali8ando los si%uientes pasos( C 9amos a la transaccin #E)? con la BADI +EAP;,=E##AP,A=@#' estamos traba2ando en este %rupo de badi (+EH)4) C =licE en visuali8ar C =licE en la solapa Interfase C Doble clicE en =&,#E C =licE en la solapa Parameters6 en este caso vemos a I+ADEADE; En tipo de referencia vemos que su tipo es I)_"+RC4ASE_,RDER_!!

Dallar los mtodos disponibles para cada par!metro( #upon%amos que "emos ele%ido !E_"R,CESS_",_C+ST y dentro de el a ",ST C 9amos a la #E)? con la BADI +EAP;,=E##AP,A=@#' C =licE en visuali8ar C =licE en la solapa Interfase C Doble clicE en P,#' #e presentan sus par!metros =ada uno tiene un tipo de referencia El primero es un simple tipo de datos EBE&4 El se%undo I+ADEADE; en cambio es tipo I>AP@;=DA#EA,;DE;A++ #i se "ace doble clicE sobre I+ADEADE; aparecen los metodos disponibles

=;EA'EAI'E+ 7E'ADA'A 7E'AP;E9I,@#ADA'A Etc Para "allar detalles de cada mtodo "acer doble clicE sobre cada uno6 por e2emplo Doble clicE sobre 7E'ADA'A =licE en parametros Aparece como par!metro ;EADA'A de tipo +EP,DEADE; #i se "ace clicE sobre +EP,DEADE; se vera que es una estructura de datos de cabecera Es importante saber que al principio la implementacin no esta definida6 la primera ves que se entra a #E)F "ay que crear la implementacin con el mismo nombre que ya existe en #E)? =rear la Implementacin del BADI seleccionado C 9as a la 'ransaccin #E)F C =licE en =rear C Darle el nombre Implementacin6 por e2emplo +EAP;,=E##AP,A=@#' C &ue%o pide nombre Definicin6 es la misma +EAP;,=E##AP,A=@#' C Paquete es A+HP C Pide la orden de transporte C =licE en salvar C Pide una clave #AP de modificacin de ob2eto est!ndar C Pide un comentario6 "abitualmente i%ual al de la orden de transporte C =licE en #alvar C =licE en Activar y marcar todo para que se recompile completamente

+odificar el cdi%o fuente de la Implementacion C 9as a la 'ransaccin #E)F con la BADI +EAP;,=E##AP,A=@#' C =licE en +odificar C =licE en solapa interfase C Doble clicE sobre =&,#E C Introducir la clave C Editar el texto del cdi%o fuente Importante6 nunca olvides "acer la activacin formal( C 9as a la 'ransaccin #E)F #E)F C =licE en el men/ superior Implementacin C =licE en activar #i no no funcionara Bueno6 espero que todo esto os sea de ayuda6 ya que son varios los miembros de esta comunidad los que "an reali8ado varias pre%untas al respecto

,tro modo de encontrar las badis que se e2ecutan en un proceso I transaccion6 es el si%uiente( J In%resan en la trx #E?0 J #eleccionamos =lase I Interfase J Dentro de ella colocamos la clase =&AEBI'DA4D&E; J #eleccionamos el metodo 7E'AI4#'A4=E para que se visualice el codi%o de dic"o metodo J =olocamos un B;EAG en la llamada al metodo( call method cl_exithandler=>get_class_name_by_interface exporting instance = instance importing class_name = class_name changing exit_name = exitAname exceptions no_reference = 1 no_interface_reference = 2 no_exit_interface = 3 data_incons_in_exit_managem = 4 class_not_implement_interface = 5 others = 6. A"ora e2ecutamos el procesoItransaccion6 del cual deseamos averi%uar las BADI# que

se instancian6 y al "aber colocado el B;EAG en el metodo anterior6 cada ve8 se intente instanciar la BADI pasara por dic"o punto y el nombre de la BADI la tendremos en el parametro 5exitAname5 (que cambia este metodo) #aludos