<!--:pt-->Procurar uma BADI no palheiro<!--:-->
O SAP é um enorme palheiro. E os ABAPers são pessoas que trepam por esse palheiro acima e nele vasculham e escarafuncham em busca de agulhas de todo o género. Às vezes, desesperados, deitam-se a descansar e vêm uma quantidade enorme de bicharocos que vivem no palheiro fazer-lhes comichão. Para evitar que isso aconteça, o Artur Moreira propõe-nos uma série de diferentes técnicas para procurar BADIs neste grande palheiro que é o SAP.
Aqui ficam. É escolher ao gosto do freguês:
Transacção desejada Ir à transação desejada e ir ao menu:
System > Status, fazer duplo click em cima do programa desejado Procurar por “CALL CL_EXITHANDLER” Na transação SE24 ir ao método GET_INSTANCE da class CL_EXITHANDLER Colocar aqui um breakpoint; Quando a transação for chamada, o programa para nesse método; O conteúdo da variável EXIT_NAME vai dar-nos o nome da BADI disponível.
Por este método, apanhamos os diferentes episódios (chamadas de BADIs), e como tal temos de identificar qual o episódio que nos interessa no meio de todos os que são sucessivamente apresentados. Diria que este método é o mais imediato.
Transacção ST05 Activar o Trace ( com a opção para o Table Buffer Trace); Executar a transação desejada; Desactivar o Trace e fazer o Display do LOG; Pesquisar pelos seguintes objectos: - V_EXT_IMP - V_EXT_ACT
O nome das Interface Classes começa sempre por IF_EX_XYZ,onde XYZ é a BADI que procuramos; Podemos ainda procurar directamente na VIEW V_EXT_IMP, as BADIs, seguindo o principio anterior que os interfaces IF_EX_XYZ apontam para a BADI XYZ.
Por este método, temos acesso imediato à lista de todos os episódios; Identificar na lista qual é o que pretendemos utilizar/visualizar;
Transação SE93 Indicar a transação para a qual procuramos a BADI; Escolher: Display; Obter o nome do “Package Name” Na transação SE84 ir ao menu: Enhancements >Business Add-Ins > Definition Indicar o “Pagkage Name” e Executar; Aí está a lista das BADIs para o Package associado à nossa transação.
Tendo em conta que esta informação surge ao nível do Package, é mais lata e abrangente (episódios de várias séries);
Transacção SE18 Nesta transacção fazer F4 -> Procurar BADIs pelo “Package” Esta é uma pesquisa ao nível do repositório de BADIs.
Módulo de função SXV_GET_CLIF_BY_NAME Colocar um break-point neste módulo de função. Mais uma visualização dos episódios de BADIs uma a uma.
Programas específicos Para quem quiser pesquisar na internet, existem programas que listam BADIs por transação – Isso fica para trabalho de casa. Têm como inconveniente terem de ser criados no sistema e nem sempre vemos onde é efectuada a chamada, daí todas as sugestões anteriores.
Tabelas úteis - SXS_ATTRT - BAdi Definition list - V_EXT_ACT - Active implementations of an exit - V_EXT_ IMP - Implementation class for an interface+filter - V_EXT_M - BAdi’s with filters
Transações uteis para implementar BADIs - SE18 - Business Add-in builder - SE19 – Implementation of Badi - SE24 – Class/Interface Builder
Muito obrigado ao Artur Moreira pela colaboração!
O Abapinho saúda-vos.
