C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. 1
SUM!I" INTRODUO..................................................................................................................................................3 ARQUITETURA................................................................................................................................................4 UM POUCO DE ORIENTAO A OBJETOS..............................................................................................5 COMO ENCONTRAR UMA BADI EM UM PROGRAMA STANDARD..................................................5 ANALISANDO A DEFINIO........................................................................................................................6 IMPLEMENTANDO A BADI..........................................................................................................................6 BIBLIOGRAFIA................................................................................................................................................7 C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. # Introduo Business Add$Ins% ou resumidamente BADI% & uma no'a t&cnica de en(ancement de programas ABAP )ue surgiu *unto com o ABAP "+*ects. " grfico acima mostra uma compara,-o com outras t&cnicas de modifica,-o de programas ABAP. .m compara,-o a customer e/its 0SM"D1CM"D2% BADIS s-o mais f3e/4'eis por&m mais dif4ceis de uti3i5ar% mas est-o mais pr6/imas do e)ui34+rio entre f3e/i+i3idade e faci3idade de uso. As BADIs s-o desen'o3'idas em ABAP "+*ects )ue & a e/tens-o do ABAP para "rienta,-o a "+*etos. Ao contrrio das customer$e/its% onde somente a SAP podia criar os pontos de modifica,-o% BADIs podem ser criadas por outras empresas de desen'o3'imento ABAP para serem uti3i5adas nos programas desen'o3'idos por e3as. As BADIs podem ser definidas como dependentes de fi3tros. Isso permite por e/emp3o a cria,-o de uma imp3ementa,-o diferente para cada pa4s. A SAP garante a compati+i3idade de todas as interfaces BADIs em futuros re3eases. Upgrades n-o ir-o afetar as imp3ementa,7es atuais. 8as no'as 'ers7es do !19% os desen'o3'edores SAP tem criado um n:mero maior de BADIs em re3a,-o a customer e/ists 0SM"D1CM"D2. C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. 9 Arquitetura Application " desen'o3'edor SAP define em seu programa o ponto em )ue uma capacidade de en(ancement seria :ti3. A partir da4 e3e cria no BADI Bui3der 0transa,-o S.1;2 a definio da BADI% )ue +asicamente & a sua interface. Ap6s a cria,-o da defini,-o% e3e 'o3ta ao programa e insere a c(amada aos m&todos dessa BADI e insere tam+&m o c6digo )ue instancia a BADI caso uma imp3ementa,-o de3a e/ista. Customer <uando o SAP est sendo imp3antando% o desen'o3'edor do c3iente% ap6s estudar a defini,-o da BADI% perce+e )ue a mesma atende as suas necessidades. Para codificar seu en(ancement% e3e cria uma implementao dessa BADI 'ia BADI Imp3ementation 0transa,-o S.1;2 e insere seus c6digos nos m&todos dispon4'eis. C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. = Um pouco de Orientao a Objetos Mtodo S-o as fun,7es ou procedimentos da c3asse. > onde codificamos as funciona3idades da da c3asse. Interface > o es)ue3eto de uma c3asse. Isso significa )ue na interface 'oc? define os m&todos da c3asse sem codifica$3os. > como um mode3o de imp3ementa,-o. @ocando em BADIs% & o es+o,o onde o desen'o3'edor SAP define o )ue a BADI pode fa5er% com )uais 'ari'eis e3a 'ai tra+a3(ar% )uais ser-o os parAmetros de importa,-o e e/porta,-o% dei/ando a codifica,-o em +ranco para o desen'o3'edor do c3iente preenc(er. Classe A c3asse & a imp3ementa,-o feita na S.1;. "nde o desen'o3'edor do c3iente ir inserir seu c6digo em cada m&todo )ue foi definido na interface. Instancia !esumidamente & o ato de carregar a c3asse na mem6ria para )ue seus m&todos possam ser e/ecutados. Como encontrar uma BADI em um programa standard " modo mais fci3 & procurando na transa,-o SP!" B Customi5ing ou na (ierar)uia de componentes. "utra maneira & procurar dentro do c6digo do programa standard pe3o m&todo da c3asse )ue instancia as BADIs $ cl_exithandler-get_instance. Buscando a dec3ara,-o da 'ari'e3 passada ao parAmetro instance 'oc? desco+re a interface da BADI )ue est sendo instanciada. Report businessaddin. class cl_exithandler definition load. "declaration data exit type ref to if_ex_businessaddin. "interface reference data word(15) type c value 'Business dd!in'. "strin" you want to chan"e start!of!selection. call #ethod cl_exithandler=>get_instance "factory #ethod call chan"in" instance $ exit. write%&''lease clic( here'. at line!selection. write%& ')ri"inal word% '*word. call #ethod exit!+#ethode "add!in call chan"in" para#eter $ word. C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. C write%& ',han"ed word% '*word. 8esse e/emp3o a interface da BADI & I@D.EDBUSI8.SSADDI8% tirando o prefi/o I@D.ED temos o nome da defini,-o da BADI% nesse caso BUSI8.SSADDI8. Ainda n-o e/iste uma ferramenta fci3 para 3oca3i5ar BADIs assim como n-o e/iste para as customer e/it. Analisando a definio De posse do nome da podemos ana3isar na SE! se a BADI atende nossas necessidades. Para isso 'erificamos os parAmetros de importa,-o e e/porta,-o de cada m&todo. Somente essas 'ari'eis e a)ue3as )ue criarmos 3oca3mente estar-o dispon4'eis para manipu3a,-o em nosso c6digo dentro dos m&todos. Fari'eis g3o+ais da ap3ica,-o n-o s-o 'is4'eis dentro dos m&todos assim como n-o s-o nas fun,7es. Dentro dos m&todos tam+&m n-o & permitido a c(amada de te3as e a cria,-o de ta+e3as internas com (eader 3ine. Godas as defini,7es podem ter mais de uma imp3ementa,-o% por&m% na maioria de3as% somente uma ati'a ao mesmo tempo. Se o f3ag "tili#$m%ltipla esti'er se3ecionado siginifica )ue podem e/istir 'rias imp3ementa,7es ati'as ao mesmo tempo para a defini,-o. Implementando a BADI 1. 8a te3a da S.1; insira o nome da sua imp3ementa,-o. > um nome )ua3)uer come,ando por H ou I. #. Pressione criar. 9. Insira o nome da defini,-o da BADI 0'ide ar)uitetura2. C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. J =. .sco3(e a a+a Interface C. Se3ecione um m&todo 'ia dup3o c3i)ue. 8a pr6/ima te3a insira o c6digo dese*ado. !etorne para a S.1; J. Ati'e a imp3ementa,-o <uando a BADI possui fi3tro% 'oc? de'e informar o 'a3or do fi3tro para o )ua3 a imp3ementa,-o & '3ida. Bibliografia 1. Changing the SAP Standard (BC) , SAP Library, SAP AG., 2000, caminho Library / Basis Components / ABAP Workbench (BC-WB! 2. Business_Add_Ins, SAP AG. 200" C:\Documents and Settings\fpcastro\Desktop\BADI.doc Pg. K