-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
BADIs, User-exits,Enhancements como encontr-los?Faaaala
Zumbizada! Estou de volta no modo zombie = ON porcausa do projeto,
testes integrados que esto acabando com aminha vida (e que nunca
acabam!) Bom, mas chega de mimimi e vamos l!!! Neste post vou falar
sobrealguns mtodos para encontrar Enhancements, User-exits, BADIs
eetc. Aposto que isso pode ajudar muito, principalmente para
oszumbis mais novinhos.
Dicas A
Published on July 19th, 2012 | by Daiane Zigiotto 9
Navigation
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
No, isso no uma user-exit
CALL CUSTOMER FUNCTION
Voc pode colocar um BREAK-POINT nesse comando, que usadopara
chamar as User-exits . J falamos dele aqui no blog e se quisersaber
mais, clique aqui.
BADIS
Mtodo 1: V_EXT_ACT e V_EXT_IMP
A BADI faz uma seleo nas tabelas de vises V_EXT_ACT eV_EXT_IMP.
Ento podemos ir na transao ST05 -> SelecionarSQL Trace e Table
Buffer Trace -> Activate Trace -> Executar atransao ->
Deactivate Trace -> Display Trace.
Ir aparecer a tela abaixo:
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Vamos selecionar os seguintes objetos:
No resultado final ir mostrar todas as BADIs na ordem em que
elasforam executadas:
Mtodo 2:CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE
Na transao SE24, vamos selecionar a classe CL_EXITHANDLER,ir
para o mtodo GET_INSTANCE e colocar um BREAK-POINT.
Atravs do parmetro de exportao EXIT_NAME possvel saber onome da
BADI que ser chamada.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Mtodo 3: FM SXV_GET_CLIF_BY_NAME.
Um outro mtodo colocando um BREAK-POINT na
funoSXV_GET_CLIF_BY_NAME, que chamada toda vez que algumaBADI
executada.
O parmetro de exportao NAME ir mostrar o nome da BADI.
E a, achou difcil, chato, deprimente? No se assuste, vou
mostraralgumas ferramentas que podem facilitar a sua vida!
H algum tempo atrs precisei encontrar uma user-exit de
umatransao X, e no meio de um frum no SCN encontrei um
programabastante til! Ele lista todas as user-exits e BADIs de uma
transao
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
ou programa.
Abaixo est o cdigo-fonte. No sei quem o autor e no
sercoincidncia encontrar esse mesmo programa em outros fruns (bem
manjado).
12345678910111213141516171819202122232425262728293031323334
REPORT z_enhancement_finder NO STANDARD PAGE HEADING LINE-SIZE
201. TABLES : tstc, tadir, modsapt, modact, trdir, tfdir, enlfdir,
sxs_attrt , tstct. DATA : jtab LIKE tadir OCCURS 0 WITH HEADER
LINE.DATA : field1(30).DATA : v_devclass LIKE tadir-devclass.
PARAMETERS : p_tcode LIKE tstc-tcode,p_pgmna LIKE tstc-pgmna . DATA
wa_tadir TYPE tadir. START-OF-SELECTION. IF NOT p_tcode IS INITIAL.
SELECT SINGLE * FROM tstc WHERE tcode EQ p_tcode. ELSEIF NOT
p_pgmna IS INITIAL. tstc-pgmna = p_pgmna. ENDIF. IF sy-subrc EQ 0.
SELECT SINGLE * FROM tadir WHERE pgmid = 'R3TR'
Default
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
3536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
AND object = 'PROG' AND obj_name = tstc-pgmna. MOVE :
tadir-devclass TO v_devclass. IF sy-subrc NE 0. SELECT SINGLE *
FROM trdir WHERE name = tstc-pgmna. IF trdir-subc EQ 'F'. SELECT
SINGLE * FROM tfdir WHERE pname = tstc-pgmna. SELECT SINGLE * FROM
enlfdir WHERE funcname = tfdir-funcname. SELECT SINGLE * FROM tadir
WHERE pgmid = 'R3TR' AND object = 'FUGR' AND obj_name EQ
enlfdir-area. MOVE : tadir-devclass TO v_devclass. ENDIF. ENDIF.
SELECT * FROM tadir INTO TABLE jtab WHERE pgmid = 'R3TR' AND object
IN ('SMOD', 'SXSD') AND devclass = v_devclass. SELECT SINGLE * FROM
tstct WHERE sprsl EQ sy-langu AND tcode EQ p_tcode. FORMAT COLOR
COL_POSITIVE INTENSIFIED OFF. WRITE:/(19) 'Transaction Code - ',
20(20) p_tcode, 45(50) tstct-ttext. SKIP. IF NOT jtab[] IS INITIAL.
WRITE:/(105) sy-uline. FORMAT COLOR COL_HEADING INTENSIFIED ON. *
sorting the internal table SORT jtab BY object. DATA : wf_txt(60)
TYPE c, wf_smod TYPE i , wf_badi TYPE i , wf_object2(30) TYPE c.
CLEAR : wf_smod, wf_badi , wf_object2. *GET the total smod. LOOP AT
jtab INTO wa_tadir. AT FIRST. FORMAT COLOR COL_HEADING INTENSIFIED
ON. WRITE:/1 sy-vline, 2 'Enhancement/ Business Add-in', 41
sy-vline , 42 'Description', 105 sy-vline. WRITE:/(105) sy-uline.
ENDAT. CLEAR wf_txt. AT NEW object. IF wa_tadir-object = 'SMOD'.
wf_object2 = 'Enhancement' . ELSEIF wa_tadir-object = 'SXSD'.
wf_object2 = ' Business Add-in'.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
ENDIF. FORMAT COLOR COL_GROUP INTENSIFIED ON. WRITE:/1 sy-vline,
2 wf_object2, 105 sy-vline. ENDAT. CASE wa_tadir-object. WHEN
'SMOD'. wf_smod = wf_smod + 1. SELECT SINGLE modtext INTO wf_txt
FROM modsapt WHERE sprsl = sy-langu AND name = wa_tadir-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF. WHEN 'SXSD'.* for badis
wf_badi = wf_badi + 1 . SELECT SINGLE text INTO wf_txt FROM
sxs_attrt WHERE sprsl = sy-langu AND exit_name = wa_tadir-obj_name.
FORMAT COLOR COL_NORMAL INTENSIFIED ON. ENDCASE. WRITE:/1 sy-vline,
2 wa_tadir-obj_name HOTSPOT ON, 41 sy-vline , 42 wf_txt, 105
sy-vline. AT END OF object. WRITE : /(105) sy-uline. ENDAT.
ENDLOOP. WRITE:/(105) sy-uline. SKIP. FORMAT COLOR COL_TOTAL
INTENSIFIED ON. WRITE:/ 'No.of Exits:' , wf_smod. WRITE:/ 'No.of
BADis:' , wf_badi. ELSE. FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'No userexits or BADis exist'. ENDIF. ELSE. FORMAT
COLOR COL_NEGATIVE INTENSIFIED ON. WRITE:/(105) 'Transaction does
not exist'. ENDIF. AT LINE-SELECTION. DATA : wf_object TYPE
tadir-object. CLEAR wf_object. GET CURSOR FIELD field1. CHECK
field1(8) EQ 'WA_TADIR'. READ TABLE jtab WITH KEY obj_name =
sy-lisel+1(20). MOVE jtab-object TO wf_object. CASE wf_object. WHEN
'SMOD'. SET PARAMETER ID 'MON' FIELD sy-lisel+1(10). CALL
TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Encontrei tambm esse outro relatrio abaixo. O cdigo-fonte
estaqui. Basicamente, tem a mesma funcionalidade, mas
euparticularmente prefiro o anterior.
Outras ferramentas
SNIF
E voc pode estar se perguntando: no existe nenhum
relatriostandard?. Sim, existe! A SAP disponibiliza o SNIF (esse o
nomedo programa, no da transao) que lista todos os
CostumerEnhancements ativos:
173174175
WHEN 'SXSD'. SET PARAMETER ID 'EXN' FIELD sy-lisel+1(20). CALL
TRANSACTION 'SE18' AND SKIP FIRST SCREEN. ENDCASE.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
ABAP X-RAY EYE
Pesquisando um pouco mais encontrei um SNIF melhorado, queinclui
algumas opes, como por exemplo, exits para Validao eSubstituio,
frmulas (VOFM), Screen-exits e Field-exits. Esseprojeto est
disponvel neste link:http://code.google.com/p/abapexitrayeye/ e
para implement-lovoc precisar usar o SAP Link.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Links teis:
WIKI: Enhancements and Modifications BADI, EnhancementFramework,
User Exits, BTE
WIKI: Ways to find a userexit
Tags: badi, enhancement, user-exit
About the Author
Daiane Zigiotto Abapeira desde 2008, curte som
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
underground, arte urbana, bobeiras geek, luta kravmaga, fala
grias idosas e jura que uma pessoanormal.
Related Posts
9 Responses to BADIs, User-exits, Enhancementscomo
encontr-los?
User-Exit No deixe as brechasdescontroladas Parte 2
SMOD/CMOD
ABAPZombie Guide to ABAP Parte 20 CALL CUSTOMER-FUNCTION
User-Exit No deixe as brechasdescontroladas Parte 1 Clssicas
Renato Bonini says:July 20, 2012 at 4:23 pm
S um pitaco para achar BADIs, standardsPor padro as Classes
Standard da SAP para BADIs tem anomenclatura CL_EX_xxxxxxxx. Desta
forma, acessando atransao SE24 e buscar por CL_EX_*, no campo nome
daclasse. Vai listar quase todas as BADIs e caso voc noconsiga
chegar na BADI em si pela SE24. Use o complementodo nome da classe
na SE18 ou SE19, exemplo:
classe: CL_EX_AC_DOCUMENT => BADI: AC_DOCUMENT
[]s
Reply
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Mauricio Cruz says:July 23, 2012 at 10:16 am
Animal o post Daiane, eu no manjava desses relatrios noeu sou
meio old-school, sempre tento acha exits c/ os break-points em
funes e etcs! haha. Mas talvez eu tenha que mudarum pouco, esses
relatrios que voc postou me parecem muitoteis!
Viva o Open Source, e valeu pelo post!
Reply
Danilo Cardoso says:September 5, 2012 at 7:10 pm
Fala galera!Esse post ficou muito loko Daiane!
Eu tbm no manjava esses relatrios no. Curto muito aprenderessas
paradas, obrigado pelas dicas.
Estava em conversa com a nossa amiga do corao, PriscilaSilva.
Falvamos justamente sobre como encontrar BAdIs nosistema e eu
escrevi um e-mail para ela detalhando doismtodos. Mas no postarei o
e-mail aqui, pois, alm de ser umainformao redundante, eu escrevi em
ingls (s debrincaiderinha..rs) e utilizei muitas grias do Bronx
algumaspessoas podem achar meio nocivo (mas a Pri riu pra caramba
..rs).
Abraos.
Reply
Mauricio Cruz says:September 5, 2012 at 10:53 pm
SERIOUSLY, ARE YOU KIDDING ME ?!? PUT THATMOTHERFUCKING BREAK
POINT IN THEMOTHERFUCKING CALL-CUSTOMER FUNCTIONINSTRUCTION OR ILL
SHOOT YOU IN YOURGODDAMN FACE!
(foi also assim? heoauheoahe)
Reply
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Vinicius says:September 20, 2012 at 11:35 am
Meu mtodo favorito buscando no SDN! :p
Outra forma tambem usando a boa e velha SE84 ->Enhancements
-> Business Add-ins -> Definitions -> e ai buscopelo
pacote da transao (ME, por exemplo). O mesmo serve
pracustomer-exits
Reply
Andra says:November 11, 2012 at 9:12 am
Aii que orgulho, DAIII!
Nunca tinha lido um post da sua autoria, mujer!
Congrats!Adorei
E me ajudou muito a relembrar Ai ai, d uma saudade e umaperto no
meu corao ver cdigo ABAP.. Mais do que eu sintosaudade da minha
familia. E eu gostaria de estar brincandohahahaha
Reply
Robson says:November 25, 2012 at 2:25 pm
Muito bacana o post!S um detalhe: o link clique aqui do item
CALL CUSTOMERFUNCTION est quebrado.
Abs!
Reply
Mauricio Cruz says:November 28, 2012 at 10:48 am
Opa, corrigido. Valeu Robson!
Reply
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
Estevam Vieira says:December 13, 2013 at 8:34 am
Bom dia, Daiane!
Parabns pela inciativa, seu site demais, e uma
timaferramenta.
Gostaria de saber se voc poderia me indicar dois ABAPs,
eupreciso de Trainee/Jr para regio do Morumbi e Pleno pararegio da
Av. Paulista. Meu email [email protected]
Muito Obrigado!
Reply
Leave a ReplyYour email address will not be published. Required
fields are marked*
Name *
Email *
Website
Comment
You may use these HTML tags and attributes:
Notify me of followup comments via e-mail. You can also
subscribe without
commenting.
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
806Fans
561Followers
RSSSubscribe
Back to Top
Popular Comentrios
Novatos no Mundo SAP Por ondposted on July 1, 2011
No se perca no mundo mgico dposted on April 9, 2013
Novo ABAP Debugger Porque laposted on January 27, 2011
E a tal Desvalorizao do Mercposted on August 9, 2012
Converso de variveis Hoo tposted on January 26, 2011
War Report Estrutura tudo,posted on May 16, 2012
ABAPZombie - Prevenindo consultores de virarem zumbis desde
Dezembro de 2010.Criado por Mauro Laranjeira e Mauricio Cruz.
July 2012
M T W T F S S
1
2 3 4 5 6 7 8
-
ABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
http://www.abapzombie.com/dicas-abap/2012/07/19/badis-user-exits-enhancements-como-encontra-los/[20/03/2014
11:43:08]
2013 ABAPZombie Brainporation
Cdigos e Exemplos FAQ Guias Equipe
Back to Top
Jun Aug
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
abap alv at authority-check autorizao bol commands CRM
cdigo debug guide nonsense off-topic OO Orientao a Objetos
pi sap sap inside track segurana tela de seleo user-exit
webdynpro xi
abapzombie.comABAP Zombie BADIs, User-exits, Enhancements como
encontr-los?
MtY29tby1lbmNvbnRyYS1sb3MvAA==: select0: #
MtY29tby1lbmNvbnRyYS1sb3MvAA==: form1: s:
MtY29tby1lbmNvbnRyYS1sb3MvAA==: form3: author: email: url:
submit: subscribe-reloaded: yescomment: