Você está na página 1de 48

ABAP para Funcionais

Treinamento
de
ABAP
para Funcionais

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Sumrio
Arquitetura SAP ............................................................................................................................. 3
Premissas ABAP ............................................................................................................................. 5
Repositrio de Objetos ................................................................................................................. 8
Dicionrio de dados....................................................................................................................... 9
Tipos Bsicos ............................................................................................................................... 9

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

Criando enhancement Point ............................................................................................... 19


Ativando Implementao .................................................................................................... 20
Cancelando implementao................................................................................................ 20
Apagando Enhancement Implementation .......................................................................... 21
BAPI ............................................................................................................................................. 23
Como pesquisar uma BAPI............................................................................................................ 23

Sapscript x Smartforms ............................................................................................................... 24


Trace ............................................................................................................................................ 25
Debugando Programa ................................................................................................................. 28
Conhecendo o menu do DEBUG .................................................................................................... 30
Entendendo as teclas do DEBUG ................................................................................................... 39
ABAP Debugger ........................................................................................................................... 32

Principais Transaes ABAP ........................................................................................................ 40


Interpretando um Dump ............................................................................................................. 43
Criando uma Especificao Funcional ......................................................................................... 46

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Arquitetura SAP
Antes de
estudar qualquer assunto
relacionado linguagem ABAP necessrio
conhecer a plataforma onde estes programas
so criados e executados.
O SAP usa a to famosa arquitetura
cliente/servidor de trs camadas, so elas:
camada de apresentao, camada de
aplicao e camada de dados.
Camada
de
Apresentao: So
os
componentes
visuais
utilizados
pelos
usurios para interagir com o sistema SAP,
seja ele o SAPGui, um navegador de internet
ou um dispositivo mvel. Esta camada
considerada thin (magra) ou burra, pois toda a lgica de negcio est na camada de aplicao enquanto
esta responsvel apenas por mostrar e coletar informaes do usurio.
Camada de Dados: So os componentes responsveis por interagir com o sistema gerenciador de banco
de dados, seja ele Oracle, DB2 ou qualquer outro homologado pela SAP.
Camada de Aplicao: o crebro do sistema SAP, onde os programas ABAP so iniciados e
executados. Esta camada responsvel por receber as chamadas da camada de apresentao e decidir o
que deve ser feito.
Este
modelo
permite
que
tenhamos vrias mquinas com
papis diferentes, por exemplo: 1
servidor de banco de dados, 4
application server e 100 estaes
de SAPGui.
Os principais componentes do
Application
Server so
o
Dispatcher, o Work Process e
Shared Memory.
O work process uma unidade
bsica de processamento que
responsvel por executar a etapa
do programa que o usurio est solicitando. Toda solicitao da camada de apresentao direcionada
um work process que esteja disponvel atravs do Dispatcher, entenda este componente como um load
balancer interno ao application server. importante frisar que no h como garantir que toda requisio
oriunda de uma mesma sesso ser sempre endereada ao mesmo work process. Portanto necessrio
que todos os dados de sesso estejam disponveis para todos os WP. No SAP este local chamado de
Shared Memory, um repositrio de dados, no s de sesso, mas tambm de cache e informaea de
lock, por exemplo.
O que o SAP garante que toda sesso de usurio sempre direcionada para o mesmo application
server. Quem faz o balanceamento entre os application servers a Central Instance atravs do Messaging
Service.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Podemos notar que a quantidade de work process x quantidade de usurios/processos ativos
pode ser uma dos factores de atraso no tempo de resposta no sistema SAP. Normalmente a quantidade
de WP muito menor que a quantidade de usurios, pois nem todos os usurios estaro executando
programas simultaneamente, alguns podem estar parados na tela olhando um relatrio sem consumir os
recursos de um WP.
Esta apenas uma introduo este assunto que to abrangente. Para quem tem interesse em
aprender mais sobre isto, procure pelos cursos de Basis. O time de Basis responsvel pela montagem,
administrao, manuteno e monitoramento de ambientes SAP. O importante para ns desenvolvedores
termos em mente que durante o desenvolvimento em ABAP grande parte do processamento ocorre no
Application Server e que os work processes possuem um papel fundamental no entendimento da soluo.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Premissas ABAP
A linguagem de programao ABAP (Advanced Business Application Programming) foi criada para
aplicaes de negcios baseadas em dilogo e :

Tipada (converses de tipo e type casting so suportados);

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);

Possui o conceito de orientao a objetos (ABAP Objects a implementao da orientao a


objetos na linguagem ABAP );

independente de plataforma (A sintaxe ABAP independente de plataforma. Isso significa que


sempre tem o mesmo significado ou funo, independente do sistema de base de dados
relacional e do sistema operacional do servidor de aplicao e de apresentao).

Exemplo da sintaxe de um programa ABAP:

Saiba que:

Programas ABAP so feitos de declaraes individuais.


A primeira palavra em uma instruo chamada de uma palavra-chave ABAP.
As palavras devem sempre ser separadas por pelo menos um espao.
Cada instruo deve terminar com um ponto.
As declaraes podem ser identadas.
As declaraes podem ocupar mais de uma linha.
Voc pode ter vrias instrues em uma nica linha.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Uma coisa interessante na linguagem ABAP: ela case insensitive, mas para melhor exemplificar vamos
usar sempre as palavras chaves ABAP em caixa alta.
No ABAP Workbench existe um boto chamado Pretty Printer que faz esse trabalho para ns (pode ser
visto na tela acima, no application toolbar).
Podemos customizar tambm indo a Utilitrios/Configuraes. Selecione a ABA: Editor ABAP e depois a
Aba: Pretty Printer.

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 ().

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Quando estiver escrevendo seu cdigo e reparar que o inicio de duas ou mais linhas se repetem, por
exemplo, na declarao de variveis. Voc poder, na primeira linha, aps a palavra-chave, inserir dois
pontos (:) e remover as repeties de palavras-chaves nas linhas abaixo. Lembrando que entre uma
varivel e outra deve-se usar virgula (,) e na ultima o ponto final (.)

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Repositrio de Objetos
O repositrio o lugar onde ficam armazenados todos os objetos do sistema. Isto , os programas, os
mdulos de funo, as definies de tabelas e outros objetos.
Ele usado para manter tanto os objetos da SAP quanto os desenvolvidos pelo usurio.
O Repositrio se encontra no banco de dados e independente de mandante (client independent). Isso
quer dizer que os objetos dos repositrios podem ser acessados de qualquer mandante.
Alm dele, o banco de dados tambm guarda customizaes de aplicaes e tabelas, que so geralmente
especficas de um mandante, ou seja, existe uma coluna mandt.
A estrutura do repositrio subdividida de acordo com os componentes do aplicativo. Dentro de um
componente de aplicao (por exemplo, FI), existem vrios pacotes contendo uma subdiviso mais
detalhada e lgica dos objetos relevantes para aquele pacote.
Ferramentas de busca no Repositrio

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Dicionrio de dados
O Dicionrio de Dados no R/3 uma abstraco de um (SGBD) Sistema de Gerenciamento de Banco de
Dados, e permite um gerenciamento centralizado de todas as definies de dados. Nele voc pode criar
todos os tipos de dados, para uso em programas ABAP ou em interfaces de mdulo de funo.

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

O Elemento de Dados descreve o significado de um domnio, ou seja, a parte semntica


de um tipo, como ttulo, documentao e ajudas de pesquisa.

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

Uma Tabela Transparente um tipo de objecto composto por um conjunto de campos.


Cada campo possui uma definio semntica (Elemento de Dados), e uma definio
tcnica (Domnio). Ao ser criada no Dicionrio, automaticamente criada no banco de
dados, um tabela espelho, com a mesma estrutura, mesmos nome, campos com o nome
igual tambm, porm o tipo de dados de cada campo traduzido para os tipos de dados
permitidos pelo SGDB.

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).

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Ampliaes (Badi Exit Field-Exit Enhancement)
Voc pode ampliar o sistema R/3 nos seguintes nveis :

Em programas de ABAP (Function Module Exit)

Em interfaces de GUI (Menu exit)

Em telas inserindo uma subscreen em uma rea especificada pela SAP (Screen-Exit)

Em telas processando um cdigo que se refere a um campo especfico na tela (Field-Exit)

No dicionrio ABAP em tabelas ou estruturas (Table enhancement)


*** Field-Exits j so obsoletas e deve ser evitada a sua utilizao ***

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Como encontrar uma BADI em um programa Standard


O modo mais fcil procurando na transaco SPRO. 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 esta sendo instanciada.
Podemos tambem encontrar uma BADI colocando um Break-Point na Funcao
SXV_GET_CLIF_BY_NAME.

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.

O exemplo abaixo a criao de um cdigo Z em uma Exit de Ordens de Vendas:


1 Passo) Como Encontrar a User-Exit?

/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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Para o exemplo, utilizar a ampliao V45P0001 de SD:
2 Passo) Criar o Projeto na CMOD: Criar um projeto Z para agrupar ampliaes.
Acessar a transao SMOD, d um nome Z para o projeto.

Clicar em Criar, colocar uma descrio;


3 Passo) Adicionar as ampliaes da SMOD:
Dentro da tela do Projeto, clicar em modificar, e depois em Ampliao atribuio
Colocar a ampliao que foi encontrada na SMOD e Salvar.

4 Passo) Implementar os componentes da ampliao:


Ainda dentro da tela de ampliaes do seu projeto, coloque a linha sobre a ampliao
que foi inserida e clicar em Componentes:

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:

Uma Include Z j estar vinculada ao Componente selecionado.


Apesar de ela estar codificada, ela ainda no existe. Dever ser criada, e para isso basta
dar dois cliques sobre o nome da include.
Depois de criar a INCLUDE, incluir o cdigo abap desejado, ativar e salvar.
Voltando tela de Componentes dentro do projeto criado, Note que o Impl agora tem
um check verde, indicando que aquela exit tem um cdigo. Note tambm que tem
Newtec Belas Business Park
Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


botes de Ativar. Pode-se ativar/desativar componentes individualmente em suas
ampliaes.

5 Passo) Ativando Implementao Z:


Clicar na linha da Exit da Funo que foi criada, e clicar no boto de Ativar.

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:

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


As informaes importantes dessa rea so o nome do Campo Werks, o nome do
programa SAPMM06E e o nmero da tela 0200.

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

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.

Preencher os campos abaixo conforme o padro.


Deve-se criar um grupo de funes na SE80 caso no exista um.

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

ABAP para Funcionais

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Como o exemplo era do campo Werks a validao ficou da seguinte maneira:

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Aqui deve-se informar se o Exit Campo numrico ou de Caracteres, o nome do
programa e a tela que o campo que voc deseja validar.

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

Para pesquisar enhancement point no programa menu:


Processar->Operaes de ampliao->Visualizar pontos ampliao implcitos

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Cada ponto conforme abaixo um enhancement point

Criando enhancement Point


Apertar SHIFT + F4 para poder criar o ponto.
Selecionar o ponto enhancemnt e clicar em Operaes de ampliao-> Criar

Selecionar o Modo de Ampliacao: Codif.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Clicar no boto Criar (Create enhancement Implementation)

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Apagando Enhancement Implementation


Acessar a Transao: SE80
Clicar em: Processar Objeto
Na aba ampliaes informar a implentao conforme abaixo:

Clicar em exibir lista de objetos.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


BAPI
BAPIS so Mdulos de Funes Standard SAP que possuem infinitas utilizaes. Cada BAPI possui uma
funo especfica totalmente desenvolvida pela SAP. comum solicitarmos aos programadores ABAP para
desenvolver determinado cdigo / programa para desempenhar diversas funes, sem ao menos
pesquisar se dentro do SAP j existe ou no uma funo Standard que atenderia plenamente nossas
necessidades sem termos que reinventar a roda. Dessa forma, importante ressaltar que a Pesquisa
e a Utilizao de BAPIS so boas prticas antes de efectuar qualquer desenvolvimento.

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;

Como pesquisar uma BAPI


No menu SAP, digitar a Tcode BAPI:

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Sapscript x Smartforms
Smart forms e SAP scripts so muito similares.
Ambas so ferramentas muito usadas na criao de layouts, e a partir delas um programa de impresso
criado. Este programa de impresso usado para criar uma tabela interna que ligada ao smart form
pelo campo values mostrado. O SAP Smart Forms foi introduzido na verso 4.6C do SAP Basis como a
ferramenta para criar e manter formulrios. Smart Forms permitem executar modificaes simples na
forma e na lgica de maneira simples, usando ferramentas grficas; em 90% dos casos, isto no inclui
nenhum esforo de programao. Assim, um usurio sem nenhum conhecimento de programao
pode configurar formulrios com dados de um sistema SAP para os processos de negcio relevantes.
Permite ainda a incluso de grficos, que voc pode exibir, como parte do formulrio ou como grficos de
fundo. Voc pode usar imagens de fundo para copiar o layout de um formulrio existente (escaneados) ou
para dar uma olhada nas formas especficas da empresa. Durante a impresso, voc pode suprimir a
imagem de fundo, se desejar.
Alguns dos benefcios so:

O SmartForms permite reduzir consideravelmente os custos de implementao de solues


mySAP.com pois os formulrios podem ser ajustados em tempo mnimo.
possvel criar um formulrio usando graphical Form Painter ou graphical Table Painter. A forma
lgica representada por uma estrutura de hierarquia (estrutura em rvore), que consiste em
ns individuais, tais como os ns de configuraes globais, ns de textos, tabelas de sada para
ns, ou ns para grficos.

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:

Pgina de vrios formatos so possveis em SmartForms, mas em SAPScripts no;


possvel ter uma SmartForm sem uma janela principal;
Os rtulos no podem ser criados em SmartForms;
As rotinas podem ser escritas em ferramenta SmartForms;
SmartForms gera um mdulo de funo, quando ativado;
Ao contrrio dos sapscripts (RSTXSCRP), voc no pode fazer o upload / download de um
SmartForm para o seu disco rgido local.
A proteo e comando em endprotect SAPscript no funciona com SmartForms.
Por exemplo, uma fatura: Os primeiros dados da posio n 80 impresso em uma pgina,
outros dados da posio n 80 impresso na pgina 2.
A principal diferena que o SAP script dependente do cliente, enquanto SmartForm
independente.
Alm disso, existem alguns recursos avanados e interactivos disponveis em SmartForms.
Voc pode usar uma sub-rotina externa chamada editor de SAPscript como:
/: Realizar <form_name> em <program_name> programa
/: Usando <var1>
/: Usando <var2>
.;
.
/: <return1> Mudana
/: <return2> Mudana
/: Endperform

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Trace
O trace uma ferramenta de apoio a depurao ou debug no SAP, um processo de mapeamento de um
aplicativo, sendo ele standard ou desenvolvido . Nestes casos, o mais comum o trace de um processo
standard, para se saber a quantidade de Exits, Badis e/ou tabelas "Z" que o SAP faz leituras ou atualiza.
O trace tambm muito til, principalmente na analise de performance de programas desenvolvidos.
Temos duas principais transaes de Trace, sendo a ST01 , que normalmente utilizo para trace de
autorizaes e a ST05 para trace de comandos SQL.
Em alguns cenrios de clientes, o SAP no faz alguma coisa e no sabemos o que ocorre...
Nestes casos o trace de autorizao pode ser utilizado para se verificar se o problema esta relacionado a
objetos de autorizao.
Passo a Passo:
1) Executar a transao ST01;

2) Marcar o componente de trace "Verificao autoriz.";


3) Ativar o trace, clicando em "Trace ON";
4) Executar a transao a ser mapeada, com /N + Transao;
5) Neste caso o exemplo foi a VA01 (Gravar Ordem de Vendas);
6) Executar novamente a transao ST01;
7) Desativar o trace, clicando em "Trace OFF";
8) Executar a analise do trace, clicando em "Analise";

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

9) Ao executar a analise, deixar marcado apenas a verificao de autorizao, assunto que o trace foi
executado.

Devemos ficar atentos ao retorno do Objeto de autorizao


Sendo RC=0 Ok e RC diferente de zero, um problema de autorizao.

RC ( Return code, cdigo de retorno da funo )


Para mais detalhes, dar um clique duplo na linha do objeto.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Ao clicar no nico cone desta tela, mostrado o comando ABAP AUTHORITY-CHECK, mapeado pelo
Trace.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Debugando Programa
Localizando Programa para Depurao
1.

Atravs da transaco SE93

2.

Atravs de uma mensagem do sistema

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Clicar na linha da mensagem e depois em lista de utilizaes ( ). Ao realizar estes


procedimentos, todos os programas que utilizam essa classe de mensagem e esta mensagem
sero trazidos em tela para que possamos incluir os Break-Point.

Resultado para a Busca: basta entrar no programa desejado e incluir o break-point.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Conhecendo o menu do DEBUG

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:

Statement: pode definir um breakpoint para um determinado comando ABAP, por


exemplo, para em todas as mensagens, basta incluir o comando MESSAGE;

Function Module: define um breakpoint para uma determinada funo;

Message: define um break point atravs do ID da mensagem e nmero.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


7.

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

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


ABAP Debugger
Existem vrias formas para chegarmos ao ABAP Debugger. O mais bivio o boto de Depurao:

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Na transaco SE38 Colocar o nome do programa desejado e clicar em exibir.

Podem-se definir vrios break-point em um programa (limitando-se a 30).

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


No Object Navigator (SE80), podemos usar o menu de contexto (clicando com o boto direito do mouse) e
selecionar Executar e depois Depurao:

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Continuando no object navigator, na area de edio, podemos selecionar uma linha e colocar um ponto
de parada usando os cones em destaque:

Ao usarmos essa funcionalidade o ABAP Debugger aparecer apenas quando o programa executar a linha
selecionada.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Existe o comando BREAK-POINT e BREAK, que tambm podem ser inseridos no cdigo:

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Tambm podemos entrar em modo de debug em tempo de execuo digitanto /h no campo de
comando ou usando o menu Sistema/Depurao ABAP:

Usar o comando /h indicado quando queremos debugar alguma funcionalidade do programa, como
por exemplo, um boto que no est funcionando.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

Na tela abaixo podemos ver a interface do ABAP Debugger:

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

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.

Entendendo as teclas do DEBUG


[ F5 ] Etapa Individual (Step by Step debugging)
Visualiza linha a linha de um breakpoint, possvel visualizar os valores passo-a-passo.
[ F6 ] Executar (Skips loops and Subroutines)
Quase o mesmo que o F5, porm pula as sub-rotinas, ou seja, no conseguir visualizar o que
acontece dentro de funes, Performs, Frmulas, Bapis, etc.
[ F7 ] Retorno (Skips the loop or subroutine and returns to the last cursor point)
Esta opao ignorar LOOPs ou qualquer subrotina e retornar ao ultimo ponto do Cursor.
[ F8 ] Avanar (Execute and come out of debugging)
Executa e sai do modo de Depurao.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Principais Transaes ABAP
As principais transaes para desenvolvimento ABAP so:
SE38 - abre o editor ABAP/4
SE16 - permite a visualizao do contedo de tabelas do SAP
SE11 - permite a visualizao da arquitetura de uma tabela/estrutura do SAP
SE43 - criao de menus
SE93 - criao de transaes customizadas
SE71 - criao e manuteno de formulrios SAPscripts
SE80 - Object Navigation, basicamente todas as transaes relacionado a desenvolvimentos em 1 s.
Transaao SE80
SE 80 Object Navigator Abap Workbench

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:

Editor Abap (ABAP Editor) editor de cdigo fonte;


Dicionrio ABAP (ABAP Dictionary) criar/editar definies de tabelas, etc;
Editor de Tela (Screen Painter) para configurar/desenhar telas;
Editor de Menu (Menu Painter) - para definir as interfaces de usurio (menu bar, standard
toolbar, etc);
Function Builder para manuteno de mdulos de funes;
Class Builder manuteno de classes e interfaces.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

A tela do object navigator dividida em duas partes:

rea de navegao (navigation area), que fica na parte esquerda da tela e;


A rea da ferramenta (tool area) onde mostrada e podemos editar os objetos de
desenvolvimento.

Em ambas as reas podemos utilizar o menu de contexto (boto direito do mouse). Lembrando que o
menu que aparecer depende do objeto clicado.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Na imagem acima mostra a Hierarquia das aplicaes, mas caso escolhesse Programa e no lugar onde
que est escrito Pacotes, informasse o nome de algum programa e apertasse a tecla ENTER, na listagem
em rvore, apareceriam os componentes do programa.
Caso clicasse na primeira seta azul esquerda, a rea de navegao voltaria a mostrar as informaes da
tela acima.
Se fosse de seu interesse poderia adicionar o objeto que est aberto em sua lista de favoritos usando o
terceiro cone da direita para a esquerda.
Voc tambm pode criar objetos usando o menu de contexto ou colocando o nome de um objeto
inexistente no campo do lado esquerdo do cone dos culos.

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Interpretando um Dump
Com todos os pontos de DEBUG vistos acima agora ficar facil fazer uma analise da ST22 (Transao que
armazena todos os DUMPs).

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):

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Caso a analise do programa seja a partir da transacao ST22, basta abrir o DUMP que deseja analisar,
selecione o DUMP (duplo clique na linha):

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 >>>>>

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Criando uma Especificao Funcional
Primeiro ponto a ser definido na hora da criao de uma especificao funcional : qual o tipo de
desenvolvimento que ser realizado. Ou seja, um Relatrio? Ok, mas um relatrio do tipo ALV? Do tipo
Writer? Um relatrio dinmico? E esse relatrio, precisa ter totalizadores? Totalizadores por quais campos?
E nele existem clculos? Quais sero os clculos? Esse relatrio ter alguma ao? Envio de E-mail?
Impresso de formulrio? Todas essas perguntas devem ser feitas antes de iniciar a criao de uma
Especificao Funcional, pois qualquer ponto que no fique claro, poder ter um grande impacto no tempo
de desenvolvimento deste relatrio, por exemplo. Um relatrio do tipo Writer, iremos demorar N tempos a
mais, do que um relatrio ALV. Agora, se for um relatrio Dinmico, este vai demorar o dobro do tempo
de um relatrio ALV.

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.

Uma especificao funcional mal definida, consequentemente implicara o prazo de entrega!

Vamos l:
Primeiro ponto a ser definido: Tipo de Desenvolvimento, ou seja:
o

Relatrio ALV Writer Dinmico?

Formulrio SapScript ou Smartforms?

Implementao de uma BADI?

Implementao de uma User-Exit?

Module Pool (On-Line);

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


1 DESCRIO FUNCIONAL / DESENHO
Neste ponto deve ser descrito a real necessidade deste desenvolvimento: Este relatrio tem por finalidade
selecionar todas as ordens de vendas. No final de todo ms, todas as empresas utilizaro este relatrio na
rea responsvel para realizar uma analise de todas as Ordens Criadas por Cliente.

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

Relatrio de Ordens de Venda


Descrio

Obrigatrio

Campo Referencia

Tipo Campo

VBAK-BUKRS

Ordem de Vendas

VBAK-VBELN

Clientes

VBAK-KUNNR

Empresa

(Legenda) Tipo de Campo:

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:

Com os parmetros de seleo de Empresa, Ordem de Vendas e Clientes, realizar a seleo na


tabela VBAK, utilizando os campos BUKRS VBELN KUNNR respectivamente.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577

ABAP para Funcionais


Com o resultado da tabela VBAK, realizar a seleo na tabela VBAP. Atravs desta seleo vamos
recuperar os campos de Material (VBAP-MATNR), Quantidade (VBAP-KWMENG) e Preo (VBAPNETPR).

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

Relatrio de Ordens de Venda


Empresa: D002 - Distribuidora
Perodo: 01/04/2014 at 24/04/2014
Coluna

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.

Newtec Belas Business Park


Via 1, s/n Edificio Cabinda Sala 101 Talatona Angola
+244 (226) 434-577