Dicas ABAP Não, isso não é uma user-exit...

Published on July 19th, 2012 | by Daiane Medeiros

10

BADI’s, User-exits, Enhancements… como encontrá-los?

Faaaala Zumbizada! Estou de volta no modo “zombie = ON” por causa do projeto, testes integrados que estão acabando com a minha vida (e que nunca acabam!) 🙁
Bom, mas chega de mimimi e vamos lá!!! Neste post vou falar sobre alguns métodos para encontrar Enhancements, User-exits, BADI’s e etc. Aposto que isso pode ajudar muito, principalmente para os zumbis mais novinhos. 🙂

Não, isso não é uma user-exit…

 

CALL CUSTOMER FUNCTION

Você pode colocar um BREAK-POINT nesse comando, que é usado para chamar as User-exits . Já falamos dele aqui no blog e se quiser saber mais, clique aqui.

 

BADI’S

Método 1: V_EXT_ACT e V_EXT_IMP

A BADI faz uma seleção nas tabelas de visões V_EXT_ACT e V_EXT_IMP. Então podemos ir na transação ST05 -> Selecionar “SQL Trace” e “Table Buffer Trace” -> Activate Trace -> Executar a transação -> Deactivate Trace -> Display Trace.

Irá aparecer a tela abaixo:

 

Vamos selecionar os seguintes objetos:

 

No resultado final irá mostrar todas as BADI’s na ordem em que elas foram executadas:

 

Método 2: CL_EXITHANDLER=>GET_CLASS_NAME_BY_INTERFACE

Na transação SE24, vamos selecionar a classe CL_EXITHANDLER, ir para o método GET_INSTANCE e colocar um BREAK-POINT.

Através do parâmetro de exportação EXIT_NAME é possível saber o nome da BADI que será chamada.

 

Método 3: FM SXV_GET_CLIF_BY_NAME.

Um outro método é colocando um BREAK-POINT na função SXV_GET_CLIF_BY_NAME, que é chamada toda vez que alguma BADI é executada.

O parâmetro de exportação NAME irá mostrar o nome da BADI.

 

E aí, achou difícil, chato, deprimente? Não se assuste, vou mostrar algumas ferramentas que podem facilitar a sua vida! 🙂

Há algum tempo atrás precisei encontrar uma user-exit de uma transação X, e no meio de um fórum no SCN encontrei um programa bastante útil! Ele lista todas as user-exits e BADI’s de uma transação ou programa.

 

Abaixo está o código-fonte. Não sei quem é o autor e não será coincidência encontrar esse mesmo programa em outros fóruns (é bem manjado).

 

Encontrei também esse outro relatório abaixo. O código-fonte está aqui. Basicamente, tem a mesma funcionalidade, mas eu particularmente prefiro o anterior.

 

Outras ferramentas

SNIF

E você pode estar se perguntando: “não existe nenhum relatório standard?”. Sim, existe! A SAP disponibiliza o SNIF (esse é o nome do programa, não da transação) que lista todos os Costumer Enhancements ativos:

 

 

ABAP X-RAY EYE

Pesquisando um pouco mais encontrei um “SNIF melhorado”, que inclui algumas opções, como por exemplo, exits para Validação e Substituição, fórmulas (VOFM), Screen-exits e Field-exits. Esse projeto está disponível neste link: http://code.google.com/p/abapexitrayeye/ e para implementá-lo você precisará usar o SAP Link.

 

 

Links Úteis:

WIKI: Enhancements and Modifications – BADI, Enhancement Framework, User Exits, BTE

WIKI: Ways to find a userexit

Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Tags: , ,


About the Author

Abapeira desde 2008, curte som underground, arte urbana, bobeiras geek, luta krav maga, fala gírias idosas e jura que é uma pessoa normal.



10 Responses to BADI’s, User-exits, Enhancements… como encontrá-los?

  1. Renato Bonini says:

    Só um pitaco para achar BADIs, standards…
    Por “padrão” as Classes Standard da SAP para BADIs tem a nomenclatura “CL_EX_xxxxxxxx”. Desta forma, acessando a transação SE24 e buscar por “CL_EX_*”, no campo nome da classe. Vai listar quase todas as BADIs… e caso você não consiga chegar na BADI em si pela SE24. Use o complemento do nome da classe na SE18 ou SE19, exemplo:

    classe: CL_EX_AC_DOCUMENT => BADI: AC_DOCUMENT

    []s

  2. Animal o post Daiane, eu não manjava desses relatórios não… eu sou meio old-school, sempre tento acha exits c/ os break-points em funções e etcs! haha. Mas talvez eu tenha que mudar um pouco, esses relatórios que você postou me parecem muito úteis!

    Viva o Open Source, e valeu pelo post!

  3. Danilo Cardoso says:

    Fala galera!
    Esse post ficou muito loko Daiane!

    Eu tbm não manjava esses relatórios não. Curto muito aprender essas paradas, obrigado pelas dicas.

    Estava em conversa com a nossa amiga do coração, Priscila Silva. Falávamos justamente sobre como encontrar BAdIs no sistema e eu escrevi um e-mail para ela detalhando dois métodos. Mas não postarei o e-mail aqui, pois, além de ser uma informação redundante, eu escrevi em inglês (só de brincaiderinha..rs) e utilizei muitas gírias do Bronx … algumas pessoas podem achar meio nocivo (mas a Pri riu pra caramba .. rs).

    Abraços.

    • SERIOUSLY, ARE YOU KIDDING ME ?!? PUT THAT MOTHERFUCKING BREAK POINT IN THE MOTHERFUCKING CALL-CUSTOMER FUNCTION INSTRUCTION OR I’LL SHOOT YOU IN YOUR GODDAMN FACE!

      (foi also assim? heoauheoahe)

  4. Vinicius says:

    Meu método favorito é buscando no SDN! :p

    Outra forma tambem é usando a boa e velha SE84 -> Enhancements -> Business Add-ins -> Definitions -> e ai busco pelo pacote da transação (ME, por exemplo). O mesmo serve pra customer-exits 🙂

  5. Andréa says:

    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 um aperto no meu coração ver código ABAP.. Mais do que eu sinto saudade da minha familia. E eu gostaria de estar brincando hahahaha 😛

  6. Robson says:

    Muito bacana o post!
    Só um detalhe: o link “clique aqui” do item “CALL CUSTOMER FUNCTION” está quebrado.

    Abs!

  7. Bom dia, Daiane!

    Parabéns pela iníciativa, seu site é demais, e uma ótima ferramenta.

    Gostaria de saber se você poderia me indicar dois ABAPs, eu preciso de Trainee/Jr para região do Morumbi e Pleno para região da Av. Paulista. Meu email é [email protected]

    Muito Obrigado!

  8. Renan says:

    Vlw Daiane, vou trabalhar com BADI’s pela primeira vez hoje, e não tenho nenhuma ideia de qual BADI devo usar para transferência de material, como descubro uma BADI que servirá para mim, sem saber onde ela já foi usada ? oh god!

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to Top ↑