Escolar Documentos
Profissional Documentos
Cultura Documentos
Treinamento
de
ABAP
para Funcionais
Domnio ................................................................................................................................. 9
Elemento de Dados ............................................................................................................... 9
Estruturas .............................................................................................................................. 9
Tabelas Transparentes .......................................................................................................... 9
Vises .................................................................................................................................... 9
Ajuda de Pesquisa ................................................................................................................. 9
Ampliaes (Badi Exit Field-Exit Enhancement) ................................................................. 10
BADI .......................................................................................................................................... 10
User-Exit ..................................................................................................................................... 11
Field Exit ..................................................................................................................................... 13
Enhancement Point ...................................................................................................................... 18
D possibilidade de criar aplicaes em vrias lnguas (Usando elementos do texto, voc pode
desenvolver aplicativos para vrios idiomas facilmente);
Possibilita o acesso direto a linguagem SQL do banco de dados (O padro Open SQL embutido
no ABAP, o que permite acesso direto ao banco de dados);
Saiba que:
Comentrios em cdigo ABAP: Se quiser deixar a linha inteira comentada, deve-se usar o asterisco
(*). Agora se quiser comentar apenas uma parte da linha, dever usar aspas dupla ().
Lembre que isso no melhora a desempenho, pois o interpretador ABAP, entende como se fosse uma linha
para cada. Isto apenas uma forma de escrever o cdigo mais bonito.
Toda vez que for executada uma instruo ABAP, o sistema escreve dentro da varivel de ambiente sysubrc, um cdigo de retorno informando qual o status da execuo. Por exemplo, caso tenha xito, o
contedo do sy-subrc ser 0 (zero).
Se quiser saber os outros retornos possveis, voc pode consultar a documentao, posicionando o cursor
na palavra-chave sy-subrc e apertar a tecla F1.
Falando nisso, voc pode fazer esse procedimento em qualquer palavra-chave da linguagem ABAP.
O Repository Information System adequado para uma pesquisa que no seja especfica para
determinada aplicao. Como por exemplo, procurar programas de determinado desenvolvedor ou todos
os mdulos de funo que foram alterados em determinada data.
Tipos Bsicos
Domnio
o
O Domnio descreve a caracterstica dos valores de determinado tipo, definindo seu tipo
de dados e seu tamanho. Define tambm, a faixa de valores que o tipo pode assumir. O
Domnio parte tcnica de um tipo.
Elemento de Dados
o
Estruturas
o
Estruturas so tipos de dados que possuem campos, mas que no possuem uma
definio criada no banco de dados, ou seja, no usada para armazenar dados. mais
usada, para evitar definies redundantes de tipos de dados.
Tabelas Transparentes
o
Vises
o
Vises so objectos que permitem que campos de uma ou mais tabelas sejam
agrupados para acesso mais gil.
Ajuda de Pesquisa
o
Ajudas de Pesquisa, utilizada para fornecer ao usurio, quando solicitado (F4), uma
lista de valores possveis para determinado campo (search-help - antigo match-code).
Em telas inserindo uma subscreen em uma rea especificada pela SAP (Screen-Exit)
BADI
o
(Business Add-Ins)
uma nova tcnica de enhancement de programas ABAP que surgiu junto com o ABAP
Objects. 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 (Orientado 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. A SAP garante a
compatibilidade de todas as interfaces BADIs em futuros releases. Upgrades no iro
afetar as implementaes atuais. Nas novas verses do R/3, os desenvolvedores SAP
tem criado um nmero maior de BADIs em relao a custormer exits (SMOD/CMOD).
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 Bilder (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 implementado, 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.
User-Exit
Transao SMOD: Aqui voc tem acesso todas as ampliaes que a SAP prov
para que voc possa colocar seu cdigo Z no meio do processamento Standard. Nessa
transao voc tambm pode acessar todos os componentes de uma ampliao,
que so as funes, reas de telas, includes e etc, onde voc vai codificar de verdade.
Transao CMOD: Onde voc ir criar um novo projeto, que pode agrupar vrias
ampliaes.
/H no standard, e colocar um Break-point no comando CALL CUSTOMERFUNCTION. Esse comando o que chama as funes registradas como
componentes em aplicaes da SMOD.
Preencher com *vendas* o campo texto breve assim ira trazer algumas
ampliaes de SD.
Ser dentro deste componente que deve-se inserir o Codigo Abap desejado.
Um duplo-clique no nome da Exit da Funo, te levar para a criao do Cdigo Z:
Field Exit
Para que serve um field exit?
Para inserir lgicas em programas standard. Ex: para validar a entrada de determinado
campo de um programa Standard, (esse exemplo ser usado abaixo para explicar o
funcionamento.)
Como fazer?
Para criar um Field Exit, necessrio saber qual campo e qual programa deseja alterar e
para e isso acessar o programa, clicar com o boto direito no campo, e clicar em F1
Ajuda, ser aberta uma popup, com alguns botes clicar no boto Informaes
Tcnicas:
Com essas informaes, acessar a transao CMOD, porm a mesma ser usada
apenas como ponte para a transao PRFB, onde se cria nosso Field Exit.
Dentro da transao PRFB, clicar no boto Exit Campo e Criar Para Criar a Field Exit.
Na primeira coluna mostra o elemento de dados que aquele Field Exit vai verificar, na
segunda o status na terceira mostra se a validao especifica para um programa ou se
global e por fim na quarta coluna exibida a tela que o field exit ser executado.
Colocar o nome do elemento de dados que sera includa a validao, neste caso WERKS:
O Field Exit, j est criado, porm sem nenhuma implementao, aps confirmar na tela
anterior a mesma levar para esta tela onde deve criar um modulo de funo que ir
funcionar como implementao do Field Exit.
Ao criar, ser direcionado para a tela abaixo, a varivel INPUT que j vem criada, a
variavel que recebe os dados do que o usurio digita no campo (ela ser usada para
desenvolver a lgica de validao do campo).
Newtec Belas Business Park
Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577
A variavel Output o resultado esperado para o campo aps a validao, por exemplo:
o usurio digita um valor dentro de um campo de moeda, aps a validao o campo
output recebe o valor de R$ antes dos nmeros digitados.
Por fim, esta a rea onde implementar o cdigo de validao do seu campo.
Aps a criao, o field exit fica criado como global, para associar o mesmo para um
programa especifico deve-se flegar seu field exit e clicar no boto Atribuir prog/tela.
Enhancement Point
Com o Enhancement podemos Customizar codigos Z nos programas Standards.
Pesquisando enhancement point
Informar programa que deseja pesquisar para implementar o cdigo Z
Inserir
Composite
Selecionar o enhancement criado
Implementar o cdigo Z
Ativando Implementao
Cancelando implementao
Selecionar a parte do cdigo que foi implementada e selecionar no menu: Operaes de
ampliao-> Anular.
BAPIS quando comparadas com Batch Input (SHDB) so infinitamente superiores pelos seguintes
principais motivos:
No necessrio mapear todas as possveis telas de erros e de avisos, assim como feito no
mapeamento do Batch Input;
Se algum erro ocorrer durante o processamento, o Sistema poder pular para a prxima etapa de
processamento e ao trmino exibir um relatrio de erros standard;
BAPI costuma possuir uma velocidade de processamento superior quando comparado com Batch
Input;
O SAP Script foi a primeira ferramenta para elaborao e impresso de documentos criada pela SAP.
um meio de processamento para gerar os documentos de negcios que so frequentemente utilizados nos
sectores de produo, sectores de servios e estabelecimentos comerciais.
Alguns dos documentos de negcios so da ordem do cliente, como nota fiscal, ordem de compra,
requisies de compra etc. O Smart Forms como uma evoluo do SAP Script, sendo mais rpido e
interactivo, embora algumas funes presentes no SAP Script no estejam presentes no Smart Forms,
outras como a gerao de documentos de negcios, citada anteriormente, pode ser implementada atravs
de ajustes com funes.
A seguir, as principais diferenas entre SAP SmartForms e SAP Scripts:
9) Ao executar a analise, deixar marcado apenas a verificao de autorizao, assunto que o trace foi
executado.
Ao clicar no nico cone desta tela, mostrado o comando ABAP AUTHORITY-CHECK, mapeado pelo
Trace.
2.
Na Transaco SE91, em classe de mensagem incluir V1. E o nmero da mensagem 045. Por
padro os primeiros caracteres sempre sero a classe de mensagem e os 3 ltimos nmeros o
nmero da mensagem a ser procurada.
1.
2.
3.
4.
5.
6.
Eliminar todos os pontos de parada: uma vez utilizada esta opo todos os pontos sero
eliminados e tero que ser recriados se necessrio;
Desativar todos os pontos de parada: todos os pontos sero desativados neste momento do
Debug, porm ao processar novamente o programa os mesmos estaro ativos novamente;
Ativar todos os pontos de parada: ativa os pontos novamemente;
Criar ponto de parada: atalho para a opo Breakpoint at;
Ponto de parada de Linhas: Cria/Ativa ou Elimina/Desativa um ponto de parada na linha
posicionada;
Breakpoint at:
As opes mais utilizadas so:
Criar Watchpoint: podemos criar um ponto de parada por determinada condio, por
exemplo, dentro de um Loop da tabela IT_MARA, podemos atravs do watchpoint dizer que,
queremos que ative um breakpoint quando o valor de IT_MATA-MATNR for igual a XXXX
Ao usarmos essa funcionalidade o ABAP Debugger aparecer apenas quando o programa executar a linha
selecionada.
Usar o comando /h indicado quando queremos debugar alguma funcionalidade do programa, como
por exemplo, um boto que no est funcionando.
No ABAP debuger podemos ver o contedo das variveis, constantes, estruturas e tabelas internas.
Podemos seguir acompanhando em tempo de execuo linha a linha ou por bloco. Tambm existe a
possibilidade de definir pontos de parada clicando duas vezes na linha que quisermos.
Podemos definir um Watchpoint (ponto de observao) que consiste em dizer ao ABAP Debuger que a
partir do momento que uma determinada varivel tiver o valor X, ele pare neste ponto. Resumindo,
um breakpoint que depende do valor de uma varivel.
O ABAP Debuger uma ferramenta muito importante para qualquer desenvolvedor ABAP. Ver apenas em
um post na internet no vai ajudar muito no seu trabalho/aprendizado. O importante nesse caso
praticar, testar o que tem, mexer em todas as abas e por a vai.
O ABAP Workbench inclui todas as ferramentas necessrias para a criao e edio de objetos do
repositrio (programas, tabelas, customizaes, pacotes, etc.).
As principais so:
Em ambas as reas podemos utilizar o menu de contexto (boto direito do mouse). Lembrando que o
menu que aparecer depende do objeto clicado.
Quando selecionamos um objeto na rea de navegao, ele aparece na ferramenta adequada, na rea de
ferramenta, ilustrada na imagem acima.
Por exemplo, se selecionarmos uma classe, a ferramenta apresentada ser o Class Builder, se for um
programa, a ferramenta apresentada ser o Editor Abap e assim por diante.
Assim como na rea de nagevao, aqui tambm temos as setas azuis, para navegar entre objetos.
Ao Executar um programa e o mesmo ocorrer o DUMP, veja que no topo ao lado esquerdo da janela
possivel a visualizao do boto Debugger. Ao clicar neste boto, sera aberto o modo de depuracao
exatamente no ponto em que o DUMP ocorreu, como podemos ver abaixo (linha 23):
Na opo Analise do Erro teremos uma breve descricao do que pode ter sido a causa do problema.
O ponto que iremos mais utilizar para realizar a analise do DUMP a partir da ST22 (iniciar um DEBUG) ser
na opo Segmento Texto Fonte. Veja que ao clicar duas vezes sobre esta opo, mostrar o codigo
abap que ocorreu o DUMP, e a linha exata que o mesmo aconteceu ser indicada por >>>>>
Clicando sobre a linha que esta sendo indicada como a linha causadora do DUMP, o programa original ser
carregado. Desta maneira podemos realizar o Debug do modo que foi visto no topico anterior deste
material.
Quanto mais clara a especificao funcional estiver quanto a todas essas definies, o desenvolvedor
ABAP ser muito mais assertivo em sua estimativa de tempo de desenvolvimento, consequentemente
gerando menos retrabalho tambm.
Vamos l:
Primeiro ponto a ser definido: Tipo de Desenvolvimento, ou seja:
o
Etc;
Sabendo qual o tipo do desenvolvimento, j teremos meio caminho andado, pois sabendo disso, sua
especificao ser mais fcil de ser criada, pois ter a orientao necessria;
Utilizando como base nosso modelo de Especificao Funcional, iremos criar um modelo de uma
especificao de um Relatrio de Ordem de Vendas, onde na tela de seleo preciso que exista os filtros
de Empresa (Obrigatrio), Ordem de vendas e data, e na sada do relatrio a informao de Ordem de
Vendas, Data, Cliente, Material, Preo, Quantidade, Valor Total. Este relatrio tambm deve estar
totalizado por Valor Total e Quantidade.
2 JUSTIFICATIVA
Atualmente todo este trabalho realizado manualmente, ou seja, todas as informaes so extradas das
tabelas do SAP, exportadas para uma planilha Excel onde os dados so tratados, formatados e alguns
grficos so retirados para serem enviados para a Diretoria da rea Comercial.
3 FLUXO DO PROCESSO
Selecionar Dados das Ordens Vendas
4 OBJECTOS DE AUTORIZAO
Deve-se incluir objeto de Autorizao por Empresa (BUKRS).
Cada empresa poder visualizar apenas suas Ordens de Vendas.
5 RELATRIO
Parmetros de Seleo
Obrigatrio
Campo Referencia
Tipo Campo
VBAK-BUKRS
Ordem de Vendas
VBAK-VBELN
Clientes
VBAK-KUNNR
Empresa
P: Parmetro Simples
S: Selection Options (Range)
C: Check-Box
R: RadioButton
Descrio do Processamento:
Descrever da maneira mais clara possvel como os dados sero selecionados. Neste ponto no precisa ser
tcnico, ou seja, nada de cdigo ABAP. O Funcional deve ter mente todas as tabelas a serem utilizadas,
como o exemplo abaixo:
Para a seleo da descrio dos materiais a ser apresentada no relatrio, acessar a tabela MAKT
e recuperar o campo MAKTX, utilizando como chave o campo VBAP-MATNR.
Para a seleo do nome do Cliente, acessar a tabela LFA1 e recuperar o campo NAME1, utilizar
como chave de seleo o campo VBAK-KUNNR.
Sada do Relatrio
Ttulo da Coluna
Visvel
Soma
Campo Referencia
Empresa
VBAK-BUKRS
Ordem de Vendas
VBAK-VBELN
Cliente
VBAK-KUNNR
Nome do Cliente
LFA1-NAME1
Item
VBAP-POSNR
Material
VBAP-MATNR
Descricao
MAKT-MAKTX
Preco Liquido
VBAP-NETPR
Quantidade
VBAP-KWMENG
10
Valor Total
Clculo
Coluna 8 * Coluna 9
6 CENARIOS DE TESTES
Um ponto muito importante da especificao funcional so os cenrios de testes. Eles iro garantir que a
entrega do ABAP esteja muito prxima ao que o Cliente realmente espera. E principalmente com os dados
validados. Para este exemplo que criamos, o mais importante passar o cdigo de uma Empresa e um
Periodo que existe movimentaes de Ordens vendas para que todos os clculos sejam validados e a
verificao de seleo dos registros.
Para especificaes Funcionais de BADI, User-Exit, o melhor deixar um cenrio montando que ir
garantir que as modificaes realizadas passaro pelo cdigo includo. Ou seja, para uma User-Exit de
Ordem de Vendas, onde deve-se validar que determinado cdigo de material no possa mais ser utilizado.
O ideal passar na especificao o passo a passo para a criao desta ordem de vendas, e o resultado
esperado. No nosso caso, o ambiente de DEV-520 o correto para todas as validaes.