Vous êtes sur la page 1sur 7

Business Add-Ins

Business Add-Ins

Maurício Mião
Consultor BC
mauricio.miao@procwork.com.br
SAP Certified

Excluído: C:\Documents and


Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 1
Business Add-Ins

INTRODUÇÃO ................................................................................................................................................ 3

ARQUITETURA .............................................................................................................................................. 4

UM POUCO DE ORIENTAÇÃO A OBJETOS............................................................................................ 4

COMO ENCONTRAR UMA BADI EM UM PROGRAMA STANDARD ................................................ 5

ANALISANDO A DEFINIÇÃO...................................................................................................................... 6

IMPLEMENTANDO A BADI ........................................................................................................................ 6

BIBLIOGRAFIA .............................................................................................................................................. 7

Excluído: C:\Documents and


Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 2
Business Add-Ins

Introdução
Business Add-Ins, ou resumidamente BADI, é uma nova técnica de enhancement de
programas ABAP que surgiu junto com o ABAP Objects.

O gráfico acima mostra uma comparação com outras técnicas de modificação de


programas ABAP.
Em comparação a customer exits (SMOD/CMOD), BADIS são mais flexíveis porém mais
difíceis de utilizar, mas estão mais próximas do equilíbrio entre flexibilidade e facilidade de
uso.

As BADIs são desenvolvidas em ABAP Objects que é a extensão do ABAP para


Orientação a Objetos.

Ao contrário das customer-exits, onde somente a SAP podia criar os pontos de


modificação, BADIs podem ser criadas por outras empresas de desenvolvimento ABAP
para serem utilizadas nos programas desenvolvidos por elas.
Excluído: C:\Documents and
As BADIs podem ser definidas como dependentes de filtros. Isso permite por exemplo a Settings\miguel.paula\Configur
criação de uma implementação diferente para cada país. ações
locais\Temp\curso_badi.doc

A SAP garante a compatibilidade de todas as interfaces BADIs em futuros releases. Inserido: C:\Documents and
Settings\miguel.paula\Configur
Upgrades não irão afetar as implementações atuais. ações
locais\Temp\curso_badi.doc
Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 3
Business Add-Ins

Nas novas versões do R/3, os desenvolvedores SAP tem criado um número maior de
BADIs em relação 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 (transação SE19) a definição da BADI, que
basicamente é a sua interface.
Após a criação da definição, ele volta ao programa e insere a chamada aos métodos
dessa BADI e insere também o código que instancia a BADI caso uma implementação
dela exista.

Customer

Quando o SAP está sendo implantando, o desenvolvedor do cliente, após estudar a


definição da BADI, percebe que a mesma atende as suas necessidades.
Excluído: C:\Documents and
Para codificar seu enhancement, ele cria uma implementação dessa BADI via BADI Settings\miguel.paula\Configur
Implementation (transação SE19) e insere seus códigos nos métodos disponíveis. ações
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
Um pouco de Orientação a Objetos ações
locais\Temp\curso_badi.doc

Método Excluído: D:\Consultoria\Auto


estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 4
Business Add-Ins

São as funções 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 métodos da
classe sem codifica-los. É como um modelo de implementação.
Focando em BADIs, é o esboço onde o desenvolvedor SAP define o que a BADI pode
fazer, com quais variáveis ela vai trabalhar, quais serão os parâmetros de importação e
exportação, deixando a codificação em branco para o desenvolvedor do cliente
preencher.

Classe

A classe é a implementação feita na SE19. Onde o desenvolvedor do cliente irá inserir


seu código em cada método que foi definido na interface.

Instancia

Resumidamente é o ato de carregar a classe na memória para que seus métodos possam
ser executados.

Como encontrar uma BADI em um programa standard


O modo mais fácil é procurando na transação SPRO – Customizing ou na hierarquia de
componentes.

Outra maneira é procurar dentro do código do programa standard pelo método da classe
que instancia as BADIs - cl_exithandler-get_instance.
Buscando a declaração da variável passada ao parâmetro instance você descobre a
interface da BADI que 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 Add-in'. "string you want to
change

start-of-selection.
call method cl_exithandler=>get_instance "factory method call
Excluído: C:\Documents and
changing instance = exit. Settings\miguel.paula\Configur
write:/'Please click here'. ações
locais\Temp\curso_badi.doc
at line-selection. Inserido: C:\Documents and
write:/ 'Original word: ',word. Settings\miguel.paula\Configur
ações
call method exit->methode "add-in call locais\Temp\curso_badi.doc
changing parameter = word. Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 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 definição da BADI, nesse caso BUSINESSADDIN.

Ainda não existe uma ferramenta fácil para localizar BADIs assim como não existe para
as customer exit.

Analisando a definição
De posse do nome da podemos analisar na SE18 se a BADI atende nossas
necessidades.
Para isso verificamos os parâmetros de importação e exportação de cada método.
Somente essas variáveis e aquelas que criarmos localmente estarão disponíveis para
manipulação em nosso código dentro dos métodos.
Variáveis globais da aplicação não são visíveis dentro dos métodos assim como não são
nas funções.
Dentro dos métodos também não é permitido a chamada de telas e a criação de tabelas
internas com header line.

Todas as definições podem ter mais de uma implementação, porém, na maioria delas,
somente uma ativa ao mesmo tempo.

Se o flag Utiliz.múltipla estiver selecionado siginifica que podem existir várias


implementações ativas ao mesmo tempo para a definição.

Implementando a BADI
1. Na tela da SE19 insira o nome da sua implementação. É um nome qualquer
começando por Z ou Y.
2. Pressione criar.
3. Insira o nome da definição da BADI (vide arquitetura).

Excluído: C:\Documents and


Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Inserido: C:\Documents and
Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

C:\DOCUME~1\CONSUL~1\CONFIG~1\Temp\Rar$DI00.125\curso_badi.doc Pág. 6
Business Add-Ins

4. Escolhe a aba Interface

5. Selecione um método via duplo clique. Na próxima tela insira o código desejado.
Retorne para a SE19
6. Ative a implementação

Quando a BADI possui filtro, você deve informar o valor do filtro para o qual a
implementação é válida.

Bibliografia
Excluído: C:\Documents and
Settings\miguel.paula\Configur
1. Changing the SAP Standard (BC) , SAP Library, SAP AG., 2000, caminho Library / ações
Basis Components / ABAP Workbench (BC-DWB) locais\Temp\curso_badi.doc
Inserido: C:\Documents and
2. Business_Add_Ins, SAP AG. 2001 Settings\miguel.paula\Configur
ações
locais\Temp\curso_badi.doc
Excluído: D:\Consultoria\Auto
estudo\BADI\curso_badi.doc

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