Você está na página 1de 7

Business Add-Ins

Business Add-Ins

Maurcio Mio
Consultor BC
mauricio.miao@procwork.com.br
SAP Certified
Excludo: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 1

Business Add-Ins
INTRODUO ................................................................................................................................................ 3
ARQUITETURA .............................................................................................................................................. 4
UM POUCO DE ORIENTAO A OBJETOS............................................................................................ 4
COMO ENCONTRAR UMA BADI EM UM PROGRAMA STANDARD ................................................ 5
ANALISANDO A DEFINIO...................................................................................................................... 6
IMPLEMENTANDO A BADI ........................................................................................................................ 6
BIBLIOGRAFIA .............................................................................................................................................. 7

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 2

Business Add-Ins

Introduo
Business Add-Ins, ou resumidamente BADI, uma nova tcnica de enhancement de
programas ABAP que surgiu junto com o ABAP Objects.

O grfico acima mostra uma comparao com outras tcnicas de modificao de


programas ABAP.
Em comparao a customer exits (SMOD/CMOD), BADIS so mais flexveis porm mais
difceis de utilizar, mas esto mais prximas do equilbrio entre flexibilidade e facilidade de
uso.
As BADIs so desenvolvidas em ABAP Objects que a extenso do ABAP para
Orientao a Objetos.
Ao contrrio das customer-exits, onde somente a SAP podia criar os pontos de
modificao, BADIs podem ser criadas por outras empresas de desenvolvimento ABAP
para serem utilizadas nos programas desenvolvidos por elas.
As BADIs podem ser definidas como dependentes de filtros. Isso permite por exemplo a
criao de uma implementao diferente para cada pas.
A SAP garante a compatibilidade de todas as interfaces BADIs em futuros releases.
Upgrades no iro afetar as implementaes atuais.

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 3

Business Add-Ins
Nas novas verses do R/3, os desenvolvedores SAP tem criado um nmero maior de
BADIs em relao a customer exists (SMOD/CMOD).

Arquitetura

Application
O desenvolvedor SAP define em seu programa o ponto em que uma capacidade de
enhancement seria til.
A partir da ele cria no BADI Builder (transao SE19) a definio da BADI, que
basicamente a sua interface.
Aps a criao da definio, ele volta ao programa e insere a chamada aos mtodos
dessa BADI e insere tambm o cdigo que instancia a BADI caso uma implementao
dela exista.
Customer
Quando o SAP est sendo implantando, o desenvolvedor do cliente, aps estudar a
definio da BADI, percebe que a mesma atende as suas necessidades.
Para codificar seu enhancement, ele cria uma implementao dessa BADI via BADI
Implementation (transao SE19) e insere seus cdigos nos mtodos disponveis.

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc

Um pouco de Orientao a Objetos

Inserido: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc

Mtodo

Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 4

Business Add-Ins

So as funes ou procedimentos da classe. onde codificamos as funcionalidades da


da classe.
Interface
o esqueleto de uma classe. Isso significa que na interface voc define os mtodos da
classe sem codifica-los. como um modelo de implementao.
Focando em BADIs, o esboo onde o desenvolvedor SAP define o que a BADI pode
fazer, com quais variveis ela vai trabalhar, quais sero os parmetros de importao e
exportao, deixando a codificao em branco para o desenvolvedor do cliente
preencher.
Classe
A classe a implementao feita na SE19. Onde o desenvolvedor do cliente ir inserir
seu cdigo em cada mtodo que foi definido na interface.
Instancia
Resumidamente o ato de carregar a classe na memria para que seus mtodos possam
ser executados.

Como encontrar uma BADI em um programa standard


O modo mais fcil procurando na transao SPRO Customizing ou na hierarquia de
componentes.
Outra maneira procurar dentro do cdigo do programa standard pelo mtodo da classe
que instancia as BADIs - cl_exithandler-get_instance.
Buscando a declarao da varivel passada ao parmetro instance voc descobre a
interface da BADI que est sendo instanciada.
Report businessaddin.
class cl_exithandler definition load.
data exit type ref to if_ex_businessaddin.
data word(15) type c value 'Business Add-in'.
change
start-of-selection.
call method cl_exithandler=>get_instance
changing instance = exit.
write:/'Please click here'.

"declaration
"interface reference
"string you want to

"factory method call

at line-selection.
write:/ 'Original word: ',word.
call method exit->methode
changing parameter = word.

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

"add-in call

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

Pg. 5

Business Add-Ins

write:/ 'Changed word: ',word.

Nesse exemplo a interface da BADI IF_EX_BUSINESSADDIN, tirando o prefixo IF_EX_


temos o nome da definio da BADI, nesse caso BUSINESSADDIN.
Ainda no existe uma ferramenta fcil para localizar BADIs assim como no existe para
as customer exit.

Analisando a definio
De posse do nome da podemos analisar na SE18 se a BADI atende nossas
necessidades.
Para isso verificamos os parmetros de importao e exportao de cada mtodo.
Somente essas variveis e aquelas que criarmos localmente estaro disponveis para
manipulao em nosso cdigo dentro dos mtodos.
Variveis globais da aplicao no so visveis dentro dos mtodos assim como no so
nas funes.
Dentro dos mtodos tambm no permitido a chamada de telas e a criao de tabelas
internas com header line.
Todas as definies podem ter mais de uma implementao, porm, na maioria delas,
somente uma ativa ao mesmo tempo.
Se o flag Utiliz.mltipla estiver selecionado siginifica que podem existir vrias
implementaes ativas ao mesmo tempo para a definio.

Implementando a BADI
1. Na tela da SE19 insira o nome da sua implementao. um nome qualquer
comeando por Z ou Y.
2. Pressione criar.
3. Insira o nome da definio da BADI (vide arquitetura).

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 6

Business Add-Ins

4. Escolhe a aba Interface

5. Selecione um mtodo via duplo clique. Na prxima tela insira o cdigo desejado.
Retorne para a SE19
6. Ative a implementao
Quando a BADI possui filtro, voc deve informar o valor do filtro para o qual a
implementao vlida.

Bibliografia
1. Changing the SAP Standard (BC) , SAP Library, SAP AG., 2000, caminho Library /
Basis Components / ABAP Workbench (BC-DWB)
2. Business_Add_Ins, SAP AG. 2001

Excludo: C:\Documents and


Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
aes
locais\Temp\curso_badi.doc
Excludo: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc

Pg. 7

Você também pode gostar