Buscar

ABAP para Funcionais Final(2016)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 76 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 76 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 76 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

ABAP PARA FUNCIONAIS 
 
 
 
 
 
Rio de Janeiro, 2016 
Instrutor: 
Edgar de Souza Oliveira
ABAP para Funcionais ABAP para Funcionais 
 
ÍNDICE 
CONCEITOS GERAIS ........................................................................................................................................................4 
CONSIDERAÇÕES GERAIS SOBRE O SAP ABAP ............................................................................................................................. 5 
AMBIENTE ABAP ............................................................................................................................................................6 
REPOSITORY ....................................................................................................................................................................... 11 
WORKBENCH ORGANIZER ..................................................................................................................................................... 13 
PRINCIPAIS TRANSAÇÕES....................................................................................................................................................... 13 
DICIONÁRIO DE DADOS ............................................................................................................................................... 15 
Domínio ...................................................................................................................................................................... 15 
Elemento de Dados .................................................................................................................................................... 16 
Tabela Transparente .................................................................................................................................................. 16 
Estrutura .................................................................................................................................................................... 17 
Categoria de Tabela ................................................................................................................................................... 18 
Visão ........................................................................................................................................................................... 18 
Ajuda de Pesquisa ...................................................................................................................................................... 20 
Objetos de Bloqueio ................................................................................................................................................... 21 
AMPLIAÇÕES ............................................................................................................................................................... 22 
EM PROGRAMAS ABAP ........................................................................................................................................................ 22 
User Exits .................................................................................................................................................................... 22 
Function Module Exit.................................................................................................................................................. 23 
Enhancement Point .................................................................................................................................................... 23 
EM INTERFACES GUI ............................................................................................................................................................ 24 
Menu Exit ................................................................................................................................................................... 24 
EM TELAS .......................................................................................................................................................................... 24 
Screen Exit .................................................................................................................................................................. 24 
Field Exit ..................................................................................................................................................................... 24 
EM TABELAS E ESTRUTURAS .................................................................................................................................................. 26 
Customer Include ....................................................................................................................................................... 26 
Append Structure ....................................................................................................................................................... 26 
BUSINESS ADD-INS (BADI) ................................................................................................................................................... 26 
CARGAS E INTERFACES................................................................................................................................................. 29 
SHDB........................................................................................................................................................................... 29 
BAPI ............................................................................................................................................................................ 29 
DIÁLOGO DE ATUALIZAÇÃO (SM30) ............................................................................................................................. 31 
 .................................................................................................................................................................................... 31 
SAPSCRIPT X SMARTFORMS ........................................................................................................................................ 33 
Sapscript ..................................................................................................................................................................... 33 
Smartforms ................................................................................................................................................................ 34 
LOCALIZAÇÃO DE INFORMAÇÕES NO AMBIENTE SAP .................................................................................................. 35 
Lista de Utilização ...................................................................................................................................................... 35 
Campos na Tela .......................................................................................................................................................... 37 
ABAP para Funcionais ABAP para Funcionais 
 
Mensagens ................................................................................................................................................................. 38 
Function Module Exit.................................................................................................................................................. 39 
Business Add-Ins (BADI) ............................................................................................................................................. 42 
CONHECIMENTO BÁSICO DE PROGRAMAS .................................................................................................................. 43 
Reports .......................................................................................................................................................................43 
Pool de Módulos (Online) ........................................................................................................................................... 43 
Função ........................................................................................................................................................................ 43 
Grupo de Função ........................................................................................................................................................ 44 
Include ........................................................................................................................................................................ 44 
Objetos da programação ABAP .................................................................................................................................. 44 
Fluxo de Processamento ............................................................................................................................................. 50 
PRINCIPAIS INSTRUÇÕES DA PROGRAMAÇÃO ABAP ................................................................................................... 52 
ABAP DEBUGGER ......................................................................................................................................................... 59 
Entendendo as Teclas do Debug ................................................................................................................................ 62 
Visualizar Variáveis, Tabelas e Outros. ...................................................................................................................... 63 
O que são Variáveis de Sistema ................................................................................................................................. 64 
Como Colocar Pontos de Parada em Mensagens ....................................................................................................... 66 
Como criar Watchpoint .............................................................................................................................................. 68 
TRACE .......................................................................................................................................................................... 69 
INTERPRETANDO UM DUMP ....................................................................................................................................... 71 
ABAP QUERY ............................................................................................................................................................... 73 
DICAS PARA UMA ESPECIFICAÇÃO FUNCIONAL ........................................................................................................... 74 
 
 
4 
ABAP para Funcionais ABAP para Funcionais 
 
 
Conceitos GeraisConceitos GeraisConceitos GeraisConceitos Gerais 
 
Pacotes (Classe de desenvolvimento): Armazenam conjunto de objetos de repositório de acordo 
com a sua aplicação. Representam uma forma de organização dos objetos de acordo com a sua aplicação e 
direcionam a forma de transporte com que eles serão transportados para as demais instâncias do sistema. 
Quando um objeto de repositório é criado, é obrigatória a informação do pacote no qual ele será criado e, 
caso este pacote precise ser posteriormente alterado, pode-se realizar esta operação através da entrada de 
menu “Ir para > Entrada catálogo objetos”. 
Exemplo de Pacote: 
 
Request: Armazena as modificações ou customizações feitas e que se deseja transportar para um 
determinado ambiente. Uma vez liberada a ordem de transporte mantém as alterações feitas até aquele 
momento. Novas alterações/customizações no mesmo lugar irão solicitar nova ordem de transporte. 
Objetos Client Dependent: Dependentes do mandante, por exemplo formulários de Sapscript, 
Relatórios de Report Writer/Painter, ABAP QUERY (se criada na área Standard), parametrização / 
customizações, conteúdo de tabelas etc. 
Objetos Client Independent: Independentes de mandante, por exemplo programas Z*, todos os 
programas standards, todas as funções, estrutura de tabelas etc. 
5 
ABAP para Funcionais ABAP para Funcionais 
 
 
Processamento em Background: Execução do programa de forma não interativa, ou seja, execução 
via job ou execução que não acontece através de telas de diálogo. Não é visível para o usuário. 
Variantes: Grupo de características previamente selecionados e armazenados, muito usado para 
execução em background. 
Spool: Registro criado quando uma informação é enviada para impressora ou outro dispositivo. 
Quando executamos um relatório em Background a informação gerada pode ficar armazenada no spool para 
consulta ou pode ser direcionada para a impressora caso o programa esteja preparado para isso, numa 
execução normal geralmente a informação vai para o spool. 
Job: Cadeia de programa(s) executado(s) cronologicamente um após o outro em background. Um 
job é constituído de um ou mais steps. O job pode ser criado quando se deseja: 
- Executar um ou mais programas periodicamente; 
- Executar programas demorados; 
- Executar um conjunto de passos sequenciados, vários programas que dependam da execução um 
dos outros; 
- Executar programas em paralelo. 
Considerações gerais sobre o SAP ABAPConsiderações gerais sobre o SAP ABAPConsiderações gerais sobre o SAP ABAPConsiderações gerais sobre o SAP ABAP 
• Todo comando ABAP termina com um ponto; 
• Toda instrução ABAP pode ser utilizada para mais de um comando. Para isso, deve ser sucedida por 
um “:”. Cada comando deve ser separado por uma “,”, sendo que o último comando do grupo de 
comandos deve ser finalizado por um ponto; 
• As linhas de comentário são iniciadas com o caractere “*” (asterisco). Neste caso, toda a linha do 
código é desconsiderada no momento da execução do programa; 
• Caso seja necessário incluir um comentário a partir de um determinado ponto da linha, utiliza-se o 
caractere “”” (aspas duplas). A partir deste caractere, todo o restante da linha é considerado 
comentário e não é executado; 
• Aspas simples são utilizadas para a definição de valores fixos e literais dentro de um programa ABAP; 
• Todos os programas ABAP devem ser ativados antes de serem executados; 
• A não observância dos padrões de sintaxe geram um erro que impedem a ativação do programa. 
 
 
 
6 
ABAP para Funcionais ABAP para Funcionais 
 
 
Ambiente ABAPAmbiente ABAPAmbiente ABAPAmbiente ABAP 
 
O Ambiente de trabalho ABAP constitui a plataforma de trabalho para desenvolvimentos baseados 
em ABAP, e disponibiliza uma série de ferramentas. As principais estão agrupadas abaixo: 
 
OBJECT NAVIGATOR 
 
O Object Navigator inclui todas as ferramentas necessárias para a criação, edição e visualização 
dos objetos do repositório, tais como pacotes, programas, grupos de funções, classes / interfaces, 
componentes Web Dynpro / interfaces, dentre outros. 
Pode ser acessado da transação SE80 ou do caminho de menu Ferramentas > ABAP Workbench > 
Síntese > Object Navigator. 
A tela do Object Navigator é dividida em duas partes, sendo uma área de navegação (à esquerda) 
e a área da ferramenta (na parte direita da tela). Em ambas está disponível o menu de contexto (funções 
acionadas pelo botão direito do mouse). 
 
 
 
Quando um objeto é selecionado através da área de navegação, automaticamente o Object 
7 
ABAP para Funcionais ABAP para Funcionais 
 
 
Navigator apresenta-o na ferramenta adequada na área direita da tela. A barra de ferramentas é atualizada 
de acordo com a ferramenta selecionada. 
 
 
 
 
ABAP DICTIONARY 
 
O ABAP Dictionary é a ferramenta utilizada para a criação das definições de dados do SAP ERP, tais 
como tabelas, estruturas, elementos de dados, categorias de tabelas, domínios e ajudas de pesquisa. 
Pode ser acessado através da transação SE11, ou docaminho de menu “Ferramentas > ABAP 
Workbench > Desenvolvimento > Dictionary”. 
 
 
 
8 
ABAP para Funcionais ABAP para Funcionais 
 
 
ABAP EDITOR 
 
O ABAP Editor é utilizado para a criação, edição e visualização de programas e seus demais 
componentes, tais como elementos de textos, variantes ou características técnicas. Diferentemente da 
SE80, não apresenta os componentes de maneira hierárquica, o que pode dificultar a navegação. 
Pode ser acessado através da transação SE38, ou do caminho de menu Ferramentas > ABAP 
Workbench > Desenvolvimento > Editor ABAP. 
 
 
 
FUNCTION BUILDER 
 
O Function builder é utilizado para a criação, edição e visualização de módulos de função. É 
possível também acessar os grupos de função, através da utilização da barra de menus. 
É acessado através da transação SE37, ou do caminho de menu “Ferramentas > ABAP Workbench 
> Desenvolvimento > Function Builder”. 
 
 
 
 
 
 
 
9 
ABAP para Funcionais ABAP para Funcionais 
 
 
CLASS BUILDER 
 
O Class Builder é utilizado para a criação, edição ou visualização de classes e interfaces do 
repositório (ABAP Objects), bem como os seus componentes (atributos, métodos, parâmetros de 
métodos, exceções, dentre outros). As classes e interfaces acessíveis através do Class Builder são apenas 
as globais, uma vez que as locais são definidas via código ABAP diretamente no programa onde são 
utilizadas. 
Pode ser acessado através da transação SE24, ou do caminho de menu “Ferramentas > ABAP 
Workbench > Desenvolvimento > Class Builder”. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10 
ABAP para Funcionais ABAP para Funcionais 
 
 
SCREEN PAINTER 
 
O Screen Painter é utilizado para a criação, edição e visualização de telas ABAP. Nele é possível 
visualizar os atributos da tela e de cada um de seus elementos, bem como a sua lógica de processamento. 
A transação utilizada para o acesso ao Screen Painter é a SE51 e o caminho de menu é 
Ferramentas > ABAP Workbench > Desenvolvimento > Interface > Screen Painter. 
Para a visualização de uma tela no Screen Painter é necessário informar o nome do programa ao 
qual a tela pertence, bem como o seu número. 
 
 
 
O Screen Painter permite a visualização em modo gráfico das telas do repositório, se a opção 
“Screen Painter gráfico” estiver habilitada. Para habilitá-la, deve-se utilizar a entrada de menu “Utilitários > 
Opções” – e acionar a aba Screen Painter. 
 
 
 
 
 
 
 
 
 
 
 
 
 
11 
ABAP para Funcionais ABAP para Funcionais 
 
 
MENU PAINTER 
 
O Menu Painter é utilizado para criar, editar ou visualizar status de telas, objetos de interface, lista 
de status, barras de menu, listas de menu, definição de teclas de função, lista de funções e lista de títulos. 
Os objetos criados através do Menu Painter são utilizados para construir as interfaces para programas 
ABAP (menus, teclas de função, barra de títulos, dentre outros). 
Pode ser acessado através da transação SE41, ou do caminho de menu Ferramentas > ABAP 
Workbench > Desenvolvimento > Interface > Menu Painter. 
 
 
RepositoryRepositoryRepositoryRepository 
O Repositório R/3 é o ponto central onde os componentes desenvolvidos no ABAP/4 Development 
Workbench são armazenados. 
O repositório ABAP é onde fica todos os objetos desenvolvidos no ambiente SAP. Alguns dos objetos 
de desenvolvimento são: 
• Programas; 
• Grupos de função; 
• Tabelas; 
• Componentes Web dynpro; 
• Pacotes. 
 
Os objetos de repositório são independentes de mandante e são armazenados de acordo com a sua 
aplicação. Desta forma, é importante a introdução do conceito de pacotes, ou classes de desenvolvimento. 
A estrutura do repositório e subdividida de acordo com os componentes do aplicativo. Dentro de um 
componente de aplicação (por exemplo, FI), existem vários pacotes contendo uma subdivisão mais 
detalhada e logica dos objetos relevantes para aquele pacote. 
Transação SE84. 
12 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
 
 
 
 
 
 
 
13 
ABAP para Funcionais ABAP para Funcionais 
 
 
Workbench OrganizerWorkbench OrganizerWorkbench OrganizerWorkbench Organizer 
Fornece funções para organizar projetos de desenvolvimento, registrar alterações em objetos e 
transportá-las para Qualidade e Produção. 
Está totalmente integrada com as ferramentas de customização o Customizing Organizer e é 
designada para suportar projetos de todos os tamanhos. 
 Transações: SE09 e SE10. 
 
Principais TransaçõesPrincipais TransaçõesPrincipais TransaçõesPrincipais Transações 
 
BAPI BAPI Explorer 
CMOD Ampliações 
GS03 Exibir set 
SE09 Transport Organizer 
SE10 Transport Organizer 
SE11 ABAP Dictionary: atualização 
SE14 Utlitários para tabelas Dictionary 
SE15 Sistema info Dictionary 
SE16 Data Browser 
SE16N Data Browser New 
SE18 BADI Builder - definições 
SE19 BADI Builder - implementações 
SE24 Class Builder 
SE30 Análise tempo execução objetos ABAP 
SAT Análise tempo execução objetos ABAP 
SE32 ABAP/4 Atualização elementos texto 
SE35 Módulos de diálogo ABAP/4 
SE36 Logical Database Builder 
SE37 Módulos de função ABAP/4 
SE38 Editor ABAP 
SE39 Editor de tela dividida (novo) 
SE41 Menu Painter 
SE43 Atualização de menu de área 
SE51 Screen Painter 
SE54 Geração visão de tabela 
SE61 Documentação R/3 
SE62 Utilitários setor industrial 
SE63 1ª tela tradução 
SE71 Formulário SAPscript 
SE72 Estilos SAPscript 
SE78 Administração de Imagens para Sapscript 
SE80 Object Navigator 
SE81 Hierarquia de aplicações 
SE82 Hierarquia de aplicações 
SE84 Sistema info Repository R/3 
SE85 ABAP/4 Dictionary sistema info 
SE91 Atualização de mensagem 
14 
ABAP para Funcionais ABAP para Funcionais 
 
 
SE92 Nova atual.mensags.SysLog a part.4 
SE93 Atualização de códigos de.transação 
SHD0 Variantes de transação e de tela 
SM04 Lista de usuários 
SM12 Exibir e eliminar bloqueios 
SM13 Administrar registros de atualização 
SM30 Chamada da atualização de visões 
SM36 Escalonar job em background 
SM37 Síntese da seleção de jobs 
SM50 Síntese do processo operacional 
SM51 Lista dos sistemas SAP 
SM59 Destinos RFC (exib.e atualização) 
SMARTFORMS SAP Smart Forms 
SFP Formulários interativos Adobe 
SMOD Administração de ampliações SAP 
SO10 SAPscript textos standard 
SQVI SAP Query: Criação de queries 
SQ00 SAP Query: executar queries 
SQ01 SAP Query: atualizar queries 
SQ02 SAP Query: atualizar InfoSet 
SQ03 SAP Query: atualização de grupos usuários 
SQ07 SAP Query: ajuste de idiomas 
ST05 Performance Trace 
ST22 ABAP análise dump 
SU20 Atualização dos campos autorização 
SU21 Atualizar objetos de autorização 
SU24 Verific.obj.autoriz.em transações 
SU53 Análise da verificação autorização 
SWO1 Business Object Builder 
 
15 
ABAP para Funcionais ABAP para Funcionais 
 
 
Dicionário de DadosDicionário de DadosDicionário de DadosDicionário de Dados 
O dicionário de dados representa as definições de modelos de dados no SAP. Nele são realizadas as 
definições de tabelas, seus campos, e características técnicas relacionadas a cada um destes campos. 
 
 
Os principais componentes são os seguintes: 
DomínioDomínioDomínioDomínio 
O domínio contém o tipo de dado e comprimento do campo. Podem conter os valores válidos para o 
campo, através de valores fixos entrados no domínio ou por uma tabela de valores. 
Algumas outras características importantes podem estar associadas diretamente ao domínio, como 
rotinas de conversão (que são executadas a cada vez que um campo com referência ao domínio é impresso 
ou exibido numa tela), informação se o campo aceita valores negativos, no caso de campos numéricos, ou se 
aceitam caracteres maiúsculos e minúsculos, no caso de textos. 
 
 
 
 
16 
ABAP para Funcionais ABAP para Funcionais 
 
 
Elemento de DadosElemento de DadosElemento de DadosElemento de Dados 
Os elementos de dados descrevem o significado de um campo no SAP. Nele são armazenados os 
textosdescritivos do campo e ele pode ou não estar relacionado a um domínio. 
Caso o elemento de dados esteja relacionado a um domínio, o campo assume as características 
técnicas do domínio. É possível a criação do elemento de dados como tipo incorporado, neste caso, as 
características técnicas do elemento de dados são definidas diretamente. 
 
 
O elemento de dados possui uma seção específica para os textos que o identificam no sistema: 
- Texto breve: texto de 10 posições; 
- Texto médio: texto de 20 posições; 
- Texto longo: texto de 40 posições; 
- Título: título de 55 posições. 
Tabela TransparenteTabela TransparenteTabela TransparenteTabela Transparente 
As tabelas transparentes são as tabelas que existem fisicamente no banco de dados e que 
armazenam dados no sistema. 
Na definição de uma tabela estão relacionados os seguintes componentes: 
- Campos: define o nome e o tipo dos campos da tabela. 
- Chave primária: define o registro de forma única. 
- Chaves Estrangeiras (Check Table): define o relacionamento entre a tabela e outras tabelas 
do sistema, usadas para manter a integridade dos dados no BD. 
- Opções Técnicas: controla como a tabela deve ser criada no Banco de Dados. 
- Índices: Para melhorar a performance nos acessos a tabela, pode-se criar índices 
secundários para ela. 
Uma tabela armazena dados de forma persistentes. 
17 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
Uma tabela pode conter ainda declarações do tipo INCLUDE e do tipo APPEND, que são estruturas 
que são incorporadas à definição da tabela e representam campos criados no banco de dados. É desta forma 
que a SAP disponibiliza possibilidades para ampliação de tabelas standard. 
EstruturaEstruturaEstruturaEstrutura 
São aquelas em que os dados são preenchidos quando efetuamos cálculos em programas, passamos 
dados de um programa para outro, movimentamos campos em telas, etc. 
 Os dados gravados em estruturas só são válidos em tempo de execução e não serão 
necessariamente armazenados em bancos de dados como nas tabelas transparentes. 
Apesar de sua definição ser bastante semelhante à de uma tabela transparente, com a presença de 
campos, elementos de dados e uma descrição, a principal diferença entre uma estrutura e uma tabela 
transparente é que a estrutura não é criada ao nível de banco de dados, ou seja, ela não possui nenhum tipo 
de conteúdo, mas apenas uma definição lógica de um agrupamento de informações. 
 
 
 
18 
ABAP para Funcionais ABAP para Funcionais 
 
 
Categoria de TabelaCategoria de TabelaCategoria de TabelaCategoria de Tabela 
Caracterizam-se por ser representações lógicas no dicionário de dados que não são criadas no banco 
de dados. Possuem uma estrutura associada e diferem destas pelo fato de poderem apresentar mais de um 
registro. São utilizadas principalmente como referência em definições de dados em programas e como 
parâmetros em funções ou classes. 
 
VisãoVisãoVisãoVisão 
 É uma representação de relacionamento entre tabelas transparentes. Uma visão pode utilizar dados 
de uma ou mais tabelas transparentes. A visão não possui conteúdo em banco de dados, apenas reflete as 
informações que estão armazenadas nas tabelas transparentes relacionadas. 
Tipos de Visão: 
- Visão de Banco de Dados: é definida através do ABAP Dictionary (transação SE11) e pode 
acessar dados de uma ou mais tabelas transparentes. Esse tipo de visão é o mais comum e 
mais utilizado pelo SAP. 
19 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
- Visão de projeção: é utilizada para ocultar campos de uma tabela de banco de dados. 
Desta forma, quando uma visão de projeção é criada, ela associa uma tabela transparente e 
os campos desnecessários podem ser omitidos. 
 
- Visão de Ajuda: utilizada para a criação de métodos de seleção em ajudas de pesquisa. 
Desta forma, quando uma ajuda de pesquisa é criada para um determinado campo, a visão 
de ajuda é acionada para a seleção dos dados que devem ser exibidos. 
 
20 
ABAP para Funcionais ABAP para Funcionais 
 
 
- Visão de Manutenção: utiliza uma ou mais tabelas dentro de uma lógica e podem criar, 
modificar ou exibir dados deste agrupamento de tabelas relacionadas. Uma grande 
diferença entre visões de banco de dados e visões de manutenção é que as visões de 
manutenção permitem a edição das informações das tabelas. Este tipo de visão é muito 
utilizado para a manutenção de informações de tabelas de configuração mas também 
podem ser utilizadas para a manutenção de informações em tabelas criadas (Transação 
SM30). 
 
Ajuda de PesquisaAjuda de PesquisaAjuda de PesquisaAjuda de Pesquisa 
A ajuda de pesquisa (F4) é uma função standard do sistema R/3. O usuário pode exibir uma lista de 
todas as entradas possíveis para um campo na tela de acordo com parâmetros indicados por ele. Podem 
possuir parâmetros de importação e parâmetros de exportação, que são utilizados como chaves para obter 
as informações no banco de dados disponibilizando, desta forma, os valores possíveis. 
 
 
21 
ABAP para Funcionais ABAP para Funcionais 
 
 
Objetos de BloqueioObjetos de BloqueioObjetos de BloqueioObjetos de Bloqueio 
Os objetos de bloqueio são elementos criados no dicionário ABAP utilizado para realizar controle de 
bloqueio, ou lock, em registros de tabelas do SAP. Quando um objeto de bloqueio é criado no SAP, dois 
módulos de função são automaticamente disponibilizados, um para bloquear e outro para desbloquear os 
registros. 
 
 
 
No caso do objeto de bloqueio EMMARAE, os módulos de função disponibilizados para controlar o 
bloqueio são: 
• ENQUEUE_ EMMARAE – realiza o bloqueio do registro; 
• DEQUEUE_ EMMARAE– realiza o desbloqueio do registro. 
 
Quando um registro é bloqueado através da função ENQUEUE, é criado um registro lógico em todo o 
sistema SAP, que pode ser visualizado e administrado através da transação SM12: 
 
22 
ABAP para Funcionais ABAP para Funcionais 
 
 
AmpliaçõesAmpliaçõesAmpliaçõesAmpliações 
O SAP disponibiliza possibilidades de ampliação no código e nos processos standard. Podemos 
ampliar o sistema nos seguintes níveis: 
• Em programas ABAP (User Exits, Function Module Exit and Enhancement Point) 
• Em interfaces de GUI (Menu exit) 
• Em telas inserindo uma “subscreen” em uma área especificada pela SAP (Screen-Exit) 
• Em telas processando um código que se refere a um campo específico na tela (Field-Exit) 
• No dicionário ABAP em tabelas ou estruturas (Table enhancement) 
• Business Add-Ins (BADI) 
 
Em programas ABAPEm programas ABAPEm programas ABAPEm programas ABAP 
User ExitsUser ExitsUser ExitsUser Exits 
 As USEREXITs constituem subrotinas previstas pela SAP em pontos específicos de programas 
standard que podem receber código de cliente. 
São utilizadas para ampliações nos módulos e geralmente disponibilizam um include que armazenam 
todas as subrotinas previstas. Alguns exemplos de user exits são: 
Programa Objetivo 
MV45AFZZ For entering installation-specific FORM routines and for using user 
exits, which may be required and can be used if necessary. 
MV45ATZZ For entering metadata for sales document processing. User-specific 
metadata must start with "ZZ". 
MV45AOZZ For entering additional installation-specific modules for sales document 
processing which are called up by the screen and run under PBO 
(Process Before Output) prior to output of the screen. The modules 
must start with "ZZ". 
MV45AIZZ For entering additional installation-specific modules for sales document 
processing. These are called up by the screen and run under PAI 
(Process After Input) after data input (for example, data validation). The 
modules must start with "ZZ". 
MV45EFZ1 For entering installation-specific FORM routines and for using user 
exits, which may be required and can be used if necessary. 
 
O include é aberto para modificações pelo cliente e o código contido nas subrotinas é chamado emmomentos específicos de acordo com a sua aplicação. 
Nota: Para mais informações, consulte: 
http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/content.htm 
 
 
 
23 
ABAP para Funcionais ABAP para Funcionais 
 
 
Function Module ExitFunction Module ExitFunction Module ExitFunction Module Exit 
 Exits de função, também chamadas de exits de cliente, são ampliações disponibilizadas sob a forma 
de grupos de função, disponível para um grande número de aplicações standard. 
As exits de cliente são reunidas em projetos de ampliação, que possuem componentes associadas. 
Para visualizar os projetos ampliações disponíveis, utiliza-se a transação SMOD. 
Geralmente são nomeadas utilizando o padrão “EXIT” + nome do programa standard a que se 
aplicam + sequencial numérico dentro do grupo de funções. As exits de programa podem ser visualizadas 
através da transação SE37 e são chamadas no código standard através da instrução CALL CUSTOMER 
FUNCION. 
Transação SMOD: Aqui você tem acesso a todas as ampliações que a SAP disponibiliza para que você 
possa colocar seu código Z no meio do processamento Standard. Nessa transação você também pode 
acessar todos os componentes de uma ampliação, que são as funções, áreas de telas, includes e etc, onde 
você vai codificar de verdade. 
Transação CMOD: Onde você irá criar um novo projeto, que pode agrupar várias ampliações. 
 
 
Enhancement PointEnhancement PointEnhancement PointEnhancement Point 
A partir do ECC 6.0 a SAP disponibilizou uma nova forma de ampliação em programas standard, os 
enhancements. Esta modalidade de implementação tornou mais flexível e ampliou as possibilidades de 
criação de código do cliente nos códigos standard da SAP. 
Entre os enhancements, podem-se distinguir os pontos de ampliação explícitos e os pontos de 
ampliação implícitos. 
Os pontos de ampliação explícitos são pontos de ampliação previstos pela SAP, que podem estar 
presentes em qualquer parte do código de um programa standard: 
24 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
Nos pontos de ampliação implícitos, determinadas seções da maior parte dos programas standard 
da SAP estão preparadas para receber um enhancement, que podem ser utilizados pelo desenvolvedor. Os 
principais pontos de ampliação implícito previstos são: 
Após o final de linhas de código em programas executáveis, grupos de função, module pools, pools 
de subrotinas e programas include; 
o Antes da primeira e depois da última linha em subrotinas; 
o Antes da primeira e depois da última linha em módulos de função; 
o No final de declarações de classes locais; 
o No final de declarações de dados em programas, antes da cláusula END. 
Para uma visualização completa dos pontos de ampliação existentes no código, deve-se acionar a 
opção de menu “Programa > Ampliar” e em seguida “Processar > operações de ampliação > Visualizar 
pontos de ampliação implícitos” 
Em interfaces GUIEm interfaces GUIEm interfaces GUIEm interfaces GUI 
Menu ExitMenu ExitMenu ExitMenu Exit 
 Utilizada para a inclusão de funções específicas do cliente em menus da SAP. 
Em Em Em Em TelasTelasTelasTelas 
Screen ExitScreen ExitScreen ExitScreen Exit 
 Disponibilizam uma área de tela chamada pela aplicação standard na qual é possível incluir campos 
específicos do cliente. 
 
Field ExitField ExitField ExitField Exit 
 Utilizada para inserir lógicas em programas standard. Ex: para validar a entrada de determinado Campo de um 
programa Standard. 
São criadas com referência ao elemento de dados e podem ser realizadas para qualquer campo de 
tela presente numa tela SAP. 
Para a ativação, é necessário acessar a transação CMOD. Em seguida, deve-se digitar na tela de 
comandos o código “PRFB”. Após estes passos, é exibida uma lista de todas as field exits criadas no sistema: 
Para todas as field exits criadas, existe um módulo de função associado, nomeada através do padrão 
25 
ABAP para Funcionais ABAP para Funcionais 
 
 
“FIELD_EXIT” + descritivo, onde o código de validação para o campo pode ser inserido. 
Uma restrição em field exits é que apenas mensagens de erro podem ser utilizadas. Mensagens de 
informação ou aviso não são processadas. 
 
 
 
 
 
 
 
 
 
 
 
 
26 
ABAP para Funcionais ABAP para Funcionais 
 
 
Em Em Em Em Tabelas e EstruturasTabelas e EstruturasTabelas e EstruturasTabelas e Estruturas 
Customer IncludeCustomer IncludeCustomer IncludeCustomer Include 
 Podem ser disponibilizados customer includes para a inclusão de campos específicos do cliente em 
tabelas standard. Geralmente são disponibilizadas via projetos de ampliação. 
 
Append StructureAppend StructureAppend StructureAppend Structure 
 Utilizada para a inclusão de campos específicos em uma tabela Standard. Quando uma APPEND 
structure é criada, os campos nela previstos são automaticamente incorporados à tabela standard ao nível 
de banco de dados. 
 
 
Business AddBusiness AddBusiness AddBusiness Add----Ins (BADI)Ins (BADI)Ins (BADI)Ins (BADI) 
Mais recentemente a SAP ampliou o conceito de modificações em seu código e, neste contexto, 
surgiram as Business Add Ins, ou BADI’S. 
A principal diferença das BADIs em relação às suas predecessoras é que elas são implementadas no 
conceito de orientação a objetos e permitem a reutilização de ampliações. Desta forma, se a BADI aceitar 
implementações múltiplas, pode-se criar uma implementação para cada aplicação específica, o que torna 
mais organizada a implementação de códigos de ampliação. 
As definições de BADIs disponíveis no sistema SAP estão relacionadas através da transação SE18. 
Para implementá-las, deve-se utilizar a transação SE19. 
27 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
 
 
 
28 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
 
 
Assim como as exits de programa, as BADI’s podem disponibilizar: 
• Ampliações de programas; 
• Ampliações de menu; 
• Ampliações de tela. 
 
Quando se utiliza uma BADI, o sistema cria automaticamente uma classe, que contém uma interface 
(atributos, métodos, parâmetros), conforme disponibilizado em sua definição. O código ABAP é inserido nos 
métodos desta classe. É necessário ativar a BADI para que o código seja chamado pelas aplicações standard. 
29 
ABAP para Funcionais ABAP para Funcionais 
 
 
Cargas e InterfacesCargas e InterfacesCargas e InterfacesCargas e Interfaces 
O SAP ERP disponibiliza diversas tecnologias para integração com outras aplicações. 
As mais comuns são: 
• RFCs (remote function call) - são módulos de função que permitem acesso remoto; 
• IDOC (intermediate Document) - proporcionam conexão entre aplicações de diferentes 
aplicações usando um sistema de informações baseadas em mensagens; 
• Webservices – interfaces implementadas sob a forma de serviços, que suportam os padrões 
XML (eXtensible Markup Language), SOAP (Simple Object Access Protocol); Web Service 
Definition Language (WSDL) e Universal Description, Discovery, and Integration (UDDI); 
• SHDB (Batch Input) – O Batch Input é uma técnica standard para a transferência de grandes 
volumes de dados para o Sistema R/3; 
• BAPI – APIs standard SAP implementadas sob a forma de RFC que podem ser utilizadas para 
comunicação entre o SAP e outros sistemas; 
• Interfaces inbound e outbound via transferência de arquivos. 
 
SHDBSHDBSHDBSHDB 
 O SAP ABAP disponibiliza algumas ferramentas de migração de dados de sistemas legados (sistemas 
não SAP) para sistemas SAP. Uma destas ferramentas é o método BDC (Batch Data Comunication). 
Esta ferramenta trabalha, geralmente, realizando uma leitura das informações a serem migradas para uma 
determinada transação SAP a partir de um arquivo de texto ou em formato de planilha e realizando a sua 
entrada no SAP através do processo BDC. Este processo nada mais representa do que a emulação de uma 
transação SAP. 
Para realizar um processo BDC é necessário realizar a gravaçãodo mapeamento dos processos 
(transações) a serem utilizados. Esta gravação pode ser realizada através da transação SHDB. 
BAPIBAPIBAPIBAPI 
 BAPI, abreviação de Businness Application Programming Interface, são módulos de função standard 
que proporcionam processamentos específicos para diversos processos do SAP ERP. 
São implementados como métodos API de objetos de negócio relacionados a um determinado 
cenário de negócio e implementadas sob a forma de módulos de função, que podem ser acessados via SE37. 
Foram disponibilizadas pela SAP desde o release 4.5 A e podem ser utilizadas para a criação de 
interfaces, uma vez que os módulos de função que implementam as BAPIs são do tipo RFC. 
As BAPIs, quando utilizadas para processamento de informações (carga de dados) possuem algumas 
vantagens em relação aos processos BDC: 
• Não é necessário o mapeamento de telas, uma vez que os parâmetros da BAPI são informados 
através dos parâmetros do módulo de função; 
• O tratamento de erros e feito de forma automática, e retorna sob a forma de uma tabela, 
nomeada RETURN para o programa de chamada; 
30 
ABAP para Funcionais ABAP para Funcionais 
 
 
• BAPIs costumam ter performance superior aos processos BDC, uma vez que os processamentos 
são realizados internamente, e não através da emulação de telas. 
Para obter uma lista das BAPIs disponíveis, deve-se utilizar a transação BAPI. 
 
A navegação pode ser realizada através da hierarquia de aplicações SAP ou em ordem alfabética 
pelo nome do objeto de negócios. 
Quando o objeto de negócio referente à aplicação desejada é localizado, uma lista dos métodos 
disponíveis para o objeto pode ser obtida. Cada um dos métodos existentes geralmente representa uma 
BAPI, e toda a documentação para o método pode ser obtida. 
As BAPIs podem ser previamente testadas no ambiente de testes do Function Builder (transação 
SE37), e se o resultado esperado for o que a BAPI realiza, podem ser implementadas no código ABAP via 
chamada através de CALL FUNCTION. 
Teste de BAPI via Function Builder: 
 
 
31 
ABAP para Funcionais ABAP para Funcionais 
 
 
Diálogo de Diálogo de Diálogo de Diálogo de Atualização (SM30)Atualização (SM30)Atualização (SM30)Atualização (SM30) 
 
 
 
O SAP ABAP disponibiliza uma ferramenta de automatização de criação de diálogos para 
atualização de tabelas do cliente. Esta opção está disponível através do dicionário de dados, através da 
opção “Utilitários > Gerador de atualização de tabelas”, ou através da transação SE54. 
 
Quando se opta pela criação, uma tela adicional é exibida e devem ser informados, 
obrigatoriamente: 
• O grupo de atualizações do diálogo de manutenção; 
• Um grupo de funções para a criação da tela; 
• Se a atualização será realizado em nível único (apenas uma tela), ou em dois níveis (duas telas de 
manutenção); 
• O número das telas de manutenção a serem criadas. 
 
Após informação os campos necessários e o botão novo, o sistema automaticamente gera um 
diálogo de manutenção para a tabela, que pode ser utilizado através da transação SM30. 
 
 
32 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
33 
ABAP para Funcionais ABAP para Funcionais 
 
 
Sapscript x SmartformsSapscript x SmartformsSapscript x SmartformsSapscript x Smartforms 
SapscriptSapscriptSapscriptSapscript 
 SAPscripts é uma ferramenta de processamento de textos disponibilizada pelo SAP que tem a 
finalidade de realizar saída de informações em layouts elaborados. Podem ser utilizadas para a saída de 
textos em formulários pré-impressos e também para saída de informações em formato gráfico. 
Os SAPscripts podem ser criados através da transação SE71 e, para a sua execução, necessitam de 
um programa de impressão, que realizam a seleção das informações e acionam os eventos de impressão 
definidos dentro do formulário. 
Os componentes principais de um programa SAPscript são: 
 
 
• Cabeçalho: armazena informações de controle do SAPscript e definições gerais de impressão; 
• Parágrafos e formatos de caracteres: local onde são definidas as características das fontes e 
parágrafos, bem como alinhamento, espaçamento, entre outros; 
• Janelas e elementos de textos: são as áreas de texto do formulário, onde são armazenados os textos 
a serem impressos e os comandos de controle do SAPscript; 
• Páginas: são definições individuais de páginas de um formulário e informações; 
• Janelas de páginas: informação sobre a distribuição das janelas dentro da página, que ajuda a 
determinar o layout de saída do formulário. 
 
O programa de impressão do formulário utiliza as funções OPEN_FORM, WRITE_FORM e CLOSE_FORM 
para realizar a impressão do SAPscript, e as informações entre o formulário e as variáveis e tabelas internas 
globais definidas no SAPscript são visíveis no formulário para utilização na impressão. 
 
 
 
 
 
 
34 
ABAP para Funcionais ABAP para Funcionais 
 
 
SmaSmaSmaSmartformsrtformsrtformsrtforms 
Os smartforms foram introduzidos no SAP a partir da versão 4.6C como os sucessores dos 
SAPscripts. Eles provêm uma interface gráfica amigável para a criação de programas que necessitam efetuar 
saídas de relatórios elaborados. Esta ferramenta possui algumas vantagens em relação à sua predecessora: 
• Criação mais rápida de relatórios; 
• Adaptação de relatórios sem a exigência de conhecimento de programação baseada numa 
interface gráfica com o usuário; 
• Presença de relatórios previamente disponibilizados pela SAP. 
 
Os smartforms são disponíveis através da transação de mesmo nome, SMARTFORMS. 
 
Ao contrário dos SAPscripts, em que a sequência e o fluxo de processamento do formulário é 
determinado pelo programa de impressão, os smartforms recebem os parâmetros do programa de chamada 
através de uma interface e trabalham as informações internamente para a saída mais adequada do layout. 
São sempre associados a um estilo, onde estão definidas as informações de parágrafos (tamanho de 
fonte, alinhamento). 
 
Exemplo de definição de smartform: 
 
35 
ABAP para Funcionais ABAP para Funcionais 
 
 
Localização de Informações no Ambiente SAPLocalização de Informações no Ambiente SAPLocalização de Informações no Ambiente SAPLocalização de Informações no Ambiente SAP 
Na maior parte das telas do SAP ERP está disponível a opção de menu “Sistema > Status”, que 
apresenta uma tela conforme a seguinte: 
 
 
Lista de Utilização Lista de Utilização Lista de Utilização Lista de Utilização 
A partir de qualquer objeto do repositório (programas, tabelas, estruturas, transações), é possível 
criar uma lista de utilizações, e obter uma lista de onde o objeto é utilizado. 
 
 
36 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
 
 
 
 
 
 
 
 
37 
ABAP para Funcionais ABAP para Funcionais 
 
 
Campos na TelaCampos na TelaCampos na TelaCampos na Tela 
A partir de uma tela SAP, pode-se acionar a ajuda para o campo e obter o nome do campo onde se 
encontra a informação no sistema. Quando a informação apresentada for parte de uma estrutura, é possível, 
através da navegação SAP, chegar à tabela transparente em que o campo ocorre, através de pesquisa pelo 
elemento de dados. 
 
F1 para um campo 
 
 
Clicar em “Informação técnica” 
 
 
 
38 
ABAP para Funcionais ABAP para Funcionais 
 
 
MensagensMensagensMensagensMensagens 
Quando uma mensagem ocorre em um programa ABAP, é possível obter o número da mensagem 
gerada e navegar até os programas onde a mensagem é prevista. 
 
 
 
 
 
39 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
 
 
Function Module ExitFunction Module ExitFunction Module ExitFunction Module Exit 
1º Passo) Como Encontrar a User-Exit? 
• /H no standard, e colocar um Breakpoint no comando CALL CUSTOMER-FUNCTION. 
Esse comando e o que chama as funções registradas como componentes em aplicações da 
SMOD. 
• Preencher com *vendas* o campo texto breve assim irátrazer algumas ampliações de SD. 
 
 
 
 
 
 
 
40 
ABAP para Funcionais ABAP para Funcionais 
 
 
 Para o exemplo, utilizar a ampliação V45P0001 de SD: 
 
2º Passo) Criar o Projeto na CMOD: Criar um projeto Z para agrupar ampliações. 
Acessar a transação SMOD, de um nome Z para o projeto. 
• Clicar em Criar, colocar uma descrição; 
 
3º Passo) Adicionar as ampliações da SMOD: 
 
Dentro da tela do Projeto, clicar em modificar, e depois em “Ampliação atribuição” 
Colocar a ampliação que foi encontrada na SMOD e Salvar. 
 
 
4º Passo) Implementar os componentes da ampliação: 
 
Ainda dentro da tela de ampliações do seu projeto, coloque a linha sobre a ampliação que foi 
inserida e clicar em “Componentes”: 
 
 
Será dentro deste componente que deve-se inserir o Código Abap desejado. 
Um duplo-clique no nome da “Exit da Função”, te levara para a criação do Código Z: 
 
41 
ABAP para Funcionais ABAP para Funcionais 
 
 
Uma Include Z já estará vinculada ao Componente selecionado. 
Apesar de ela estar codificada, ela ainda não existe. Deverá ser criada, e para isso basta dar dois 
cliques sobre o nome do include. 
Depois de criar a INCLUDE, incluir o código ABAP desejado, ativar e salvar. 
Voltando a tela de Componentes dentro do projeto criado, Note que o “Impl” agora tem um check 
verde, indicando que aquela exit tem um código. Note também que tem botões de Ativar. Pode-se 
ativar/desativar componentes individualmente em suas ampliações. 
 
 
 
5º Passo) Ativando Implementação Z: 
 
Clicar na linha da Exit da Função que foi criada, e clicar no botão de Ativar. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42 
ABAP para Funcionais ABAP para Funcionais 
 
 
Business AddBusiness AddBusiness AddBusiness Add----Ins (BADI)Ins (BADI)Ins (BADI)Ins (BADI) 
O modo mais fácil e procurando na transação SPRO. Outra maneira e 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. 
Podemos também encontrar uma BADI colocando um Break-Point na Função 
SXV_GET_CLIF_BY_NAME. 
 
 
 
 
43 
ABAP para Funcionais ABAP para Funcionais 
 
 
Conhecimento Básico de ProgramasConhecimento Básico de ProgramasConhecimento Básico de ProgramasConhecimento Básico de Programas 
Um programa ABAP é basicamente constituído por 2 seções, definições de dados onde estão 
contidas as definições de variáveis que serão utilizadas no seu processamento, sua seção principal, onde está 
contida a lógica de processamento. A lógica principal é a seção do programa onde estão contidas as 
instruções principais do programa, tais como acessos ao banco de dados, tratamento das informações, 
gravação de arquivos, chamada de funções de atualização, saídas de lista ou mensagens de informação ao 
usuário. O programa pode ou não possuir uma saída de lista, ou conter uma interação com o usuário sob a 
forma de telas. 
Há diferentes tipos de programas ABAP. Cada um deles tem uma finalidade e aplicação específicas, 
que são detalhadas abaixo. 
 
ReportsReportsReportsReports 
São programas executáveis podem conter todos os blocos de processamento possíveis em ABAP, 
com exceção de módulos de função. 
São iniciados com o comando REPORT e podem ser chamados a partir de outros programas a partir 
do comando SUBMIT. Podem ser criados códigos de transações para associação a um programa do tipo 
executável. 
Pool de Módulos (Online)Pool de Módulos (Online)Pool de Módulos (Online)Pool de Módulos (Online) 
São iniciados através do comando PROGRAM. Com exceção dos blocos de eventos e de módulos de 
função, podem conter todos os blocos de processamento suportados pelo ABAP. 
Um programa do tipo pool de módulos é também conhecido como um programa online, uma vez 
que são utilizados para a criação de diálogos com o usuário. 
A característica principal de um programa do tipo pool de módulos é a presença de uma tela, com 
suas respectivas lógicas de processamento. Só podem ser iniciados a partir de um código de transação, e 
este código de transação necessariamente deve estar associado a um número de tela. 
FunçãoFunçãoFunçãoFunção 
Função é uma ferramenta usada para otimizar programas como rotinas podendo ser usado em 
vários programas ao mesmo tempo. 
44 
ABAP para Funcionais ABAP para Funcionais 
 
 
Grupo de FunçãoGrupo de FunçãoGrupo de FunçãoGrupo de Função 
São introduzidos com o comando FUNCTION-POOL e neste tipo de programa é permitida a 
existência de módulos de função. Como o nome já diz, agrupa funções. 
IncludeIncludeIncludeInclude 
Ao contrário dos demais tipos de programa, os programas do tipo include não podem ser 
compilados separadamente. Funcionam unicamente como um repositório de código fonte ABAP e ajudam 
na organização e modularização dos demais tipos de programa. 
 
Objetos da programação ABAPObjetos da programação ABAPObjetos da programação ABAPObjetos da programação ABAP 
Telas de Seleção 
Uma tela de seleção é uma tela criada por código ABAP, e é utilizada basicamente como a primeira 
tela de um programa, para a entrada de informações iniciais, particularmente nos programas do tipo 
REPORT. 
Quando a definição de uma tela de seleção é incluída num programa ABAP, a tela é 
automaticamente criada e exibida no momento da chamada do programa. 
Os principais comandos utilizados para a criação de telas de seleção são: 
 
Comando Descrição 
SELECTION-SCREEN Utilizado para opções de formatação de layout numa tela de seleção, tais 
como blocos, frame, linhas divisórias, linhas de comentário, linhas em 
branco, entre outros. 
Pode ser utilizado também para definir telas de seleção em programas do 
tipo pool de módulos. Neste caso o número da tela deve ser explicitamente 
declarado. 
Para mais detalhes, consultar a documentação em 
http://help.sap.com/saphelp_45b/helpdata/en/34/8e73f26df74873e1000
0009b38f9b8/content.htm 
PARAMETERS Declara um campo do tipo parâmetro que recebe um valor único na tela. 
Tem algumas opções de formatação, tais como: 
• Referência direta a um tipo ABAP; 
• Referência a um campo de tabela ou estrutura do dicionário; 
• Saída do tipo checkbox; 
• Saída do tipo radiobutton 
SELECT-OPTIONS Declara um campo do tipo parâmetro que pode receber valores múltiplos. 
O campo utilizado como referência no SELECT-OPTIONS deve estar 
declarado no programa ABAP (instruções TABLES ou DATA). 
 
 
 
 
45 
ABAP para Funcionais ABAP para Funcionais 
 
 
Exemplo de Parameters: 
SELECTION-SCREEN BEGIN OF BLOCK bloco1 WITH FRAME. 
PARAMETERS p_lifnr TYPE lfa1-lifnr. 
SELECTION-SCREEN END OF BLOCK bloco1. 
 
 
Exemplo de Select-Options: 
 
TABLES lfa1. 
SELECTION-SCREEN BEGIN OF BLOCK bloco2 WITH FRAME. 
SELECT-OPTIONS s_lifnr FOR lfa1-lifnr. 
SELECTION-SCREEN END OF BLOCK bloco2. 
 
Tipos de Dados 
O ABAP possui um conjunto de tipos de dados elementares, que são utilizados na definição das 
informações que serão utilizadas pelo programa. 
 
Tipo de Dados Tamanho 
inicial do 
campo 
Tamanhos 
válidos para 
o tipo de 
campos 
Valor Inicial Significado 
Tipos numéricos 
I 4 4 0 Número inteiro 
F 8 8 0 Número ponto flutuante 
P 8 1 - 16 0 Número compactado 
Tipos 
alfanuméricos C 1 1 - 65535 ' … ' Campo de texto (alfanumérico) 
D 8 8 '00000000' Campo data (Formato: 
YYYYMMDD) 
N 1 1 - 65535 '0 … 0' Caracteres numéricos 
T 6 6 '000000' Campo hora (formato: HHMMSS) 
Hexadecimal 
46 
ABAP para Funcionais ABAP para Funcionais 
 
 
X 1 1 - 65535 X'0 … 0' Campo hexadecimal 
 
Além dos tipos de dados elementares, existem outras formas para a declaração de informações 
num programa ABAP. As principais são: 
• Referência direta a um elemento de dados; 
• Referência a um campo de tabela ou estrutura; 
• Referência a uma outra variável do próprio programa. 
Definições de Tipos 
 Além dos tipos elementares, tipos complementares podem ser definidosdentro de um programa 
ABAP. Estas definições são realizadas através das instruções TYPES. Os tipos declarados dentro de um 
programa somente podem ser utilizados dentro do próprio programa. As definições de tipos são utilizadas 
principalmente para a criação de tipos de dados complexos que não precisam ser definidos sucessivas vezes 
dentro de um programa e podem ser utilizados na definição de diferentes variáveis e / ou tabelas internas. 
TYPES: BEGIN OF ty_lfa1, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
TYPES: END OF ty_lfa1. 
Variáveis 
As variáveis são definições utilizadas num programa ABAP para a criação de uma área de memória 
identificada que pode ser utilizada para o tratamento de informações em tempo de execução. Quando um 
programa ABAP é executado, as variáveis definidas são criadas pelo interpretador ABAP em tempo de 
execução e podem ser utilizadas para receber e tratar valores que o programa recebe, acessa ou calcula. 
São definidas através da instrução DATA e devem ter um tipo associado. Caso a informação do tipo 
seja omitida na definição de uma variável, o interpretador ABAP criará automaticamente uma variável do 
tipo C de uma posição. 
Exemplos de definições de variáveis: 
DATA: v_char(20) TYPE c, 
 v_number_int TYPE i, 
v_lifnr TYPE lfa1-lifnr, 
v_name1 TYPE lfa1-name1. 
 
Além das variáveis simples, que representam uma área de memória unicamente identificada no 
tempo de execução de um programa, podem ser definidas também variáveis complexas, que caracterizam-
se principalmente pela existência de mais de um campo com uma identificação em comum. 
Seguem alguns exemplos de definições de variáveis complexas num código ABAP: 
 
1. Definições a partir de tipos definidos no programa 
 
TYPES: BEGIN OF ty_lfa1, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
TYPES: END OF ty_lfa1. 
 
DATA wa_lfa1 TYPE ty_lifnr. 
47 
ABAP para Funcionais ABAP para Funcionais 
 
 
2. Definições através do comando DATA: 
 
DATA: BEGIN OF wa_lfa1, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
DATA: END OF wa_lfa1. 
 
3. Definições a partir de estruturas do dicionário: 
 
DATA wa_lfa1 TYPE lifnr. 
Tabela Interna 
Além das variáveis planas, conceituadas previamente, podem ser definidas também tabelas 
internas num programa ABAP. As tabelas internas caracterizam-se pelo fato de, ao contrário das variáveis 
planas, poderem receber várias linhas de características semelhantes. Isto significa que, quando uma 
tabela interna é definida dentro de um programa, a área de memória criada pode receber n registros. 
Há diferentes tipos de tabelas internas que podem ser definidos em um programa: 
Standard É o tipo mais elementar de tabela interna e também o mais utilizado. Este tipo de 
tabela permite a criação de vários registros e as operações nestes registros são 
realizadas através de operações de índice. 
Sorted Uma tabela do tipo SORTED caracteriza- se por possuir uma chave, e os registros 
são automaticamente ordenados quando criados na tabela através desta chave 
Hashed Uma tabela do tipo HASHED caracteriza- se por também possuir uma chave e pelo 
fato de que todas os seus registros deverem possuir uma chave única. Ou seja, 
este tipo de tabela não permite a existência de existir mais de um registro com 
chaves repetidas. 
Uma tabela interna pode ou não possuir uma linha de cabeçalho. Quando a tabela interna é 
definida com cabeçalho, as operações de leitura, modificação de informações ou criação de linhas são 
realizadas através de sua linha de cabeçalho. Quando a tabela interna é definida sem uma linha de 
cabeçalho, é necessário definir uma área de trabalho separadamente para que se possa trabalhar com as 
informações da tabela interna. 
Há diversas maneiras de se declarar uma tabela num programa ABAP. As principais são: 
1. Definição de uma tabela interna a partir de um tipo: 
 
TYPES: BEGIN OF ty_lfa1, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
TYPES: END OF ty_lfa1. 
 
DATA: it_lfa1 TYPE TABLE OF ty_lifnr, 
 wa_lfa1 TYPE ty_lifnr. 
 
A tabela interna IT_LFA1 é criada sem uma linha de cabeçalho e, neste caso, é necessária a 
declaração de WA_LFA1 para que se possa trabalhar com o seu conteúdo. Definição de uma tabela interna 
com os seus campos através do comando DATA e suplemento OCCURS: 
48 
ABAP para Funcionais ABAP para Funcionais 
 
 
DATA: BEGIN OF it_lfa1 OCCURS 0, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
DATA: END OF it_lfa1. 
 
Quando se utiliza o suplemento OCCURS na declaração de uma tabela interna, uma linha de 
cabeçalho é automaticamente criada. 
 
2. Definição de uma tabela interna a partir de uma estrutura: 
 
DATA: it_lfa1 TYPE TABLE OF lfa1, 
 wa_lfa1 TYPE lfa1. 
 
Neste caso, a tabela é criada sem uma linha de cabeçalho, sendo necessário a declaração de 
uma estrutura auxiliar para se trabalhar com as informações do conteúdo da tabela. 
 
3. Definição de uma tabela interna utilizando o comando INCLUDE STRUCTURE: 
 
DATA: BEGIN OF it_lfa1 OCCURS 0. 
INCLUDE STRUCTURE lfa1. 
DATA: END OF it_lfa1. 
 
Neste caso, a tabela é criada com todos os campos existentes na tabela transparente LFA1. 
4. Definição de uma tabela interna a partir de uma categoria de tabela: 
 
DATA it_lfa1 TYPE bbp_lfa1_t. 
 
Neste caso, a tabela é criada a partir de uma categoria de tabela do dicionário de dados, não 
sendo necessária o suplemento OCCURS, uma vez que o interpretador ABAP já compreende que 
trata-se de uma tabela interna. Neste caso, também é necessário definir uma estrutura auxiliar, uma 
vez que a tabela é criada sem uma linha de cabeçalho. 
 
5. Definição de tabelas internas com linha de cabeçalho: 
 
DATA it_lfa1 TYPE bbp_lfa1_t WITH HEADER LINE. 
DATA: it_lfa1 TYPE TABLE OF lifnr WITH HEADER LINE. 
 
TYPES: BEGIN OF ty_lfa1, 
lifnr TYPE lfa1-lifnr, 
name1 TYPE lfa1-name1. 
TYPES: END OF ty_lfa1. 
 
DATA: it_lfa1 TYPE TABLE OF lifnr. WITH HEADER LINE. 
 
49 
ABAP para Funcionais ABAP para Funcionais 
 
 
Constantes 
Uma constante é um tipo de variável que possui um único valor durante todo o tempo de 
execução do programa. Este valor não pode ser alterado pela lógica de programa. A sua definição é 
realizada através da instrução CONSTANTS. 
Na definição de uma constante, o suplemento VALUE é obrigatório. 
CONSTANTS: c_pi TYPE p DECIMALS 10 VALUE '3.1415926536'. 
CONSTANTS: 
BEGIN OF myaddress, 
name TYPE c LENGTH 20 VALUE 'Enhancement ', 
street TYPE c LENGTH 20 VALUE 'Rua sobe e desce', 
number TYPE p VALUE 12, 
postcode TYPE c LENGTH 9 VALUE '11111-000', 
city TYPE c LENGTH 20 VALUE 'Rio de Janeiro', 
END OF myaddress. 
 
Estrutura de Sistema (SYST) 
O ambiente SAP disponibiliza em tempo de execução a estrutura SYST, que contém informações de 
sistema que podem auxiliar no desenvolvimento. Pode ser mapeada também através da nomenclatura 
SY + “-“ + nome do campo. Algumas das informações disponíveis são: 
• Usuário corrente (SY-UNAME); 
• Data do sistema (SY-DATUM); 
• Hora do sistema (SY-UZEIT); 
• Idioma de logon (SY-LANGU). 
Uma lista mais abrangente dos campos de sistema disponíveis através da estrutura SYST. 
 
 
 
 
 
 
 
 
 
 
 
50 
ABAP para Funcionais ABAP para Funcionais 
 
 
Fluxo deFluxo deFluxo deFluxo de ProcessamentoProcessamentoProcessamentoProcessamento 
 
 
Um programa ABAP do tipo executável possui uma sequência lógica de processamento que é 
definida de acordo com a definição de alguns eventos. 
A sequência de comandos contida no evento determina a ordem em que ele será executado pelo 
processador ABAP. Alguns dos principais eventos são: 
INITIALIZATION O evento INITIALIZATION é executado logo após a execução do evento LOAD- 
OF-PROGRAM e antes da exibição da tela de seleção, caso ela exista. 
Pode ser utilizado para definir valores iniciais para parâmetros. 
AT SELECTION-SCREEN O evento AT SELECTION-SCREEN é relacionado ao processamento da tela de 
seleção doprograma, e pode ser executado em diferentes momentos ou ações do 
usuário. Algumas de suas variações são: AT SELECTION-SCREEN OUTPUT: 
Executado no momento em que a tela está sendo construída AT SELECTION-
SCREEN ON: 
Executado no momento em que há alguma ação associada ao elemento de tela 
relacionado ao suplemento ON AT SELECTION-SCREN ON VALUE-REQUEST HELP-
REQUEST FOR: relacionado à ação do usuário (ajuda para pesquisa ou ajuda para 
o campo) relacionada ao campo associado ao suplemento FOR AT SELECTION-
SCREEN: executado em toda e qualquer operação na tela 
START-OF-SELECTION O evento START-OF-SELECTION é executado imediatamente após a tela de seleção 
e geralmente contém as instruções principais de um programa ABAP 
END-OF-SELECTION O evento END-OF-SELETION é executado imediatamente após a execução do 
START-OF-SELECTION. No caso dos programas definidos com bancos de dados 
lógicos, somente é executado após a finalização das atividades de seleção. 
51 
ABAP para Funcionais ABAP para Funcionais 
 
 
TOP-OF-PAGE Executado para cada início de página num programa onde há a saída de lista. Sua 
aplicação principal é a construção de cabeçalhos de listas 
END-OF-PAGE Executado para cada fim de página num programa onde há a saída de lista. Sua 
aplicação principal é a construção de rodapés de listas 
AT USER-COMMAND Executado quando alguma ação da tela relacionada a um botão é executada 
AT LINE-SELECTION Executado quando uma linha da lista da tela é selecionada 
PERFORM (FORM) As sub-rotinas são blocos de processamento que tem a finalidade de 
proporcionar uma modularização do código ABAP bem como proporcionar a sua 
reutilização dentro do próprio programa ou em programas externos. 
 
 
52 
ABAP para Funcionais ABAP para Funcionais 
 
 
Principais instruçõePrincipais instruçõePrincipais instruçõePrincipais instruções da Programação ABAPs da Programação ABAPs da Programação ABAPs da Programação ABAP 
Operações aritméticas / matemáticas 
São comandos utilizados para a realização de operações aritméticas em ABAP. As principais 
variações são: 
ADD dobj1 TO dobj2. 
SUBTRACT dobj1 FROM dobj2. MULTIPLY dobj1 
BY dobj2. 
DIVIDE dobj1 BY dobj2. 
 
Existem outras operações aritméticas além das elementares suportadas pelo ABAP. A saber: 
 
 
Operações condicionais 
O comando IF contém uma estrutura que pode conter sequencias de comandos que serão 
executadas de acordo com uma condição. Pode conter ELSE’s e ELSEIF’s. 
IF log_exp1. 
[statement_block1] 
[ELSEIF log_exp2. 
[statement_block2]] 
... [ELSE. 
[statement_blockn]] 
ENDIF. 
 
O comando CASE tem uma finalidade semelhante ao comando IF, com a diferença que contém um 
operador único e uma sequência de operações definida para cada um dos valores previstos através da 
cláusula WHEN. 
CASE operand. 
[WHEN operand1 [OR operand2 [OR operand3 [...]]]. [statement_block1]] 
... 
[WHEN OTHERS. 
[statement_blockn]] 
ENDCASE. 
53 
ABAP para Funcionais ABAP para Funcionais 
 
 
O comando CHECK contém uma operação condicional, e o código seguinte somente é executado 
se a operação for atendida. 
CHECK log_exp. 
Operadores condicionais suportados pelo ABAP: 
EQ ou = Igual 
NE ou <> Diferente 
GT ou > Maior que 
LT ou < Menor que 
GE ou >= Maior ou igual a 
LE ou <= Menor ou igual a 
CO Contains only 
CN Contais not any 
CA Contains any 
NA Contains not any 
CS Contains string 
NS Contains no string 
CP Cotains pattern 
CL Contains no pattern 
 
Operações com tabelas internas 
O comando LOOP percorre todas as linhas de uma tabela interna e executa a sequência de 
comandos contida entre as cláusulas LOOP e ENDLOOP. Pode conter o suplemento WHERE, que contém 
uma condição para que o passo corrente seja executado. 
LOOP. 
... 
ENDLOOP. 
O comando READ realiza a leitura de apenas uma linha da tabela interna informada, de acordo 
com um índice ou a partir de uma chave. 
READ TABLE itab { table_key | free_key | index } result. 
O comando APPEND cria uma linha na última posição da tabela interna. 
APPEND line_spec TO itab [SORTED BY comp] [result]. 
O comando INSERT cria numa posição específica de uma tabela interna. 
INSERT line_spec INTO itab_position [result]. 
O comando COLLECT considera um campo do tipo texto para definir a chave da tabela, criando um 
novo registro a cada vez que ela é alterada, e somando os valores dos campos numéricos. 
COLLECT wa INTO itab [result]. 
O comando DELETE elimina uma ou mais linhas de uma tabela interna a partir de uma condição. 
54 
ABAP para Funcionais ABAP para Funcionais 
 
 
DELETE { itab_line | itab_lines | duplicates }. 
O comando SORT realiza a classificação dos registros de uma tabela interna a partir – pode ser 
ascendente ou descendente e considerar qualquer número de colunas. 
SORT itab [STABLE] 
{ { [ASCENDING|DESCENDING] [AS TEXT] 
[BY {comp1 [ASCENDING|DESCENDING] [AS TEXT]} 
{comp2 [ASCENDING|DESCENDING] [AS TEXT]} 
... ] } 
| { [BY (otab)] } }. 
O comando DESCRIBE fornece informações de uma tabela interna, tais como o número de linhas, 
por exemplo. 
DESCRIBE TABLE ... 
Comandos de continuidade 
O comando WHILE executa sucessivas vezes as instruções contidas entre WHILE e ENDWHILE 
enquanto a operação lógica a ele associada seja atendida. 
WHILE log_exp [vary] [statement_block] 
ENDWHILE. 
O comando DO executa sucessivas vezes as instruções contidas entre DO e ENDDO enquanto 
a operação lógica a ele associada seja atendida. A determinação do número de vezes em que o DO 
será executado é opcional e, caso esta cláusula seja emitida, o DO executa até que um comando EXIT 
seja executado. 
DO [n TIMES] [varying]. [statement_block] 
ENDDO. 
 
Comandos de controle de fluxo 
O comando STOP somente pode ser executado em programas do tipo executável e passa 
imediatamente para o evento END-OF-SELECTION do programa, caso ele esteja definido. Caso este evento 
não esteja definido, interrompe o processamento do programa do ponto onde é chamado. 
STOP. 
O comando CONTINUE, quando dentro de um DO – ENDDO, LOOP – ENDLOOP ou WHILE – 
ENDWHILE, despreza o passo corrente da sequência de execuções e passa para o passo seguinte. 
CONTINUE. 
O comando EXIT finaliza uma sequência de processamento, quando dentro de um DO – ENDDO, 
LOOP – ENDLOOP ou WHILE – ENDWHILE. 
55 
ABAP para Funcionais ABAP para Funcionais 
 
 
Se utilizado dentro de uma sub-rotina ou módulo de função, sai do bloco de processamento 
processando o comando imediatamente seguinte. 
EXIT. 
Exemplo de utilização de EXIT: 
DATA limit TYPE i VALUE 10. 
DO. 
IF sy-index > limit. EXIT. 
ENDIF. 
WRITE / sy-index. 
ENDDO. 
 
O comando LEAVE é utilizado para o encerramento de programas. 
LEAVE PROGRAM. 
Comandos de reinicialização 
O comando CLEAR reinicializa o valor de uma área de memória, atribuindo a ela o valor inicial 
correspondente ao tipo de dados em que ela foi definida. 
CLEAR dobj. 
O comando REFRESH é utilizado para tabelas internas e elimina todo o conteúdo de uma tabela 
interna quando executado. 
REFRESH itab. 
O comando FREE tem o medo efeito do comando CLEAR, reinicializando o valor da área de trabalho. 
Quando executado para uma tabela interna, o comando FREE tem o mesmo efeito do comando 
REFRESH, com a diferença que desaloca o espaço de memória ocupado previamente pela tabela. 
FREE dobj. 
Comandos de atribuição 
O comando MOVE transfere o valor do campo de origem para o campo de destino. Atribuições 
diretas entre variáveis, sem a utilização da cláusula MOVE também são suportadas pelo ABAP. 
MOVE source TO destination. 
destination = source. 
O comando MOVE-CORRESPONDING transfere o valor dos campos da estrutura 1 para os campos 
da estrutura 2. São utilizados principalmente para movimentação de valores entre variáveis complexas. 
MOVE-CORRESPONDING struc1 TO struc2. 
 
 
56 
ABAP para Funcionais ABAP para Funcionais 
 
 
Chamadas de outros programas 
O comando CALL FUNCTIONé utilizada para a chamada de módulos de função a partir de um 
programa ABAP. Deve conter os parâmetros de importação e exportação do módulo de função a ser 
chamado. 
CALL FUNCTION func { parameter_list| parameter_tables }. 
O comando CALL METHOD é utilizado para a chamada de métodos de uma classe a partir de um 
programa ABAP. Deve conter a assinatura (parâmetros) do método. 
CALL METHOD static_meth parameter_list. 
O comando SUBMIT é utilizado para a chamada de programas do tipo executável a partir de um 
programa ABAP. 
SUBMIT {rep|(name)} [selscreen_options] [list_options] [job_options] [AND RETURN]. 
Passagem de informações entre programas 
Os comandos SET / GET PARAMETER são utilizados para exportar ou importar valores de campo 
para um ID de parâmetro (cadastrados na tabela TPARA). 
SET PARAMETER ID pid FIELD dobj. GET 
PARAMETER ID pid FIELD dobj. 
Os comandos EXPORT TO MEMORY e IMPORT FROM MEMORY são utilizados para exportar ou 
importar informações para a memória. 
TYPES: 
BEGIN OF tab_type, para 
TYPE string, dobj 
TYPE string, 
END OF tab_type. 
 
DATA: 
id TYPE c LENGTH 10 VALUE 'TEXTS', 
text1 TYPE string VALUE ̀ IKE`, 
text2 TYPE string VALUE ̀ TINA`, 
line TYPE tab_type, 
itab TYPE STANDARD TABLE OF tab_type. 
 
line-para = 'P1'. 
line-dobj = 'TEXT1'. 
APPEND line TO itab. 
 
line-para = 'P2'. 
line-dobj = 'TEXT2'. 
APPEND line TO itab. 
 
EXPORT (itab) TO MEMORY ID id. 
57 
ABAP para Funcionais ABAP para Funcionais 
 
 
IMPORT p1 = text2 
p2 = text1 FROM MEMORY ID id. 
Comandos de saída de lista e mensagens 
O comando WRITE é utilizado para saída de informações em listas. 
WRITE {[AT] [/][pos][(len|*|**)]} dobj [int_format_options] 
[ext_format_options] 
[list_elements] [QUICKINFO info]. 
O comando ULINE é utilizado para impressão de uma linha na lista ABAP. 
ULINE. 
O comando SKIP é utilizado para a impressão de uma linha em branco numa lista ABAP. 
 SKIP. 
O comando MESSAGE é utilizado para saída de mensagens numa tela ABAP. 
MESSAGE { msg | txt } [message_options]. 
Comandos para operações em telas 
O comando CALL SCREEN é utilizado para realizar chamadas de telas. 
CALL SCREEN dynnr [STARTING AT 
col1 lin1 [ENDING AT col2 lin2]]. 
O comando SET PF-STATUS é utilizado para definir uma barra de status em uma tela ABAP. 
SET PF-STATUS status [OF PROGRAM prog] [EXCLUDING fcode]. 
O comando SET TITLEBAR é utilizado para definir uma barra de títulos em uma tela ABAP. 
SET TITLEBAR title [OF PROGRAM prog] 
[WITH text1 ... text9]. 
O comando LOOP AT SCREEN é utilizado para percorrer todos os elementos de tela da tela corrente. 
LOOP AT SCREEN [INTO wa]. 
... ENDLOOP. 
 
 
 
 
 
 
58 
ABAP para Funcionais ABAP para Funcionais 
 
 
O comando MODIFY SCREEN é utilizado para modificar propriedades de um elemento de tela 
dentro de um LOOP AT SCREEN. 
Os elementos de tela disponíveis para alteração ou para visualização são: 
Component Length Type Attribute Description 
Name 132 c Name Name 
group1 3 c Group1 Modification group 
group2 3 c Group2 Modification group 
group3 3 c Group3 Modification group 
group4 3 c Group4 Modification group 
required 1 c Required-entry field Mandatory field 
input 1 c Input input-enabled field 
output 1 c Output display field 
intensified 1 c Intensified intensified field 
invisible 1 c Invisible invisible element 
length 1 x visLength Field length 
active 1 c Input/Output/Invisible active field 
display_3d 1 c Two-dimensional Box 
value_help 1 c Input help Input help key 
request 1 c - Input exists 
values_in_combo 1 c Dropdown listbox Value help exists 
 
MODIFY SCREEN [FROM wa]. 
O comando SET CURSOR é utilizado para posicionar o cursor num numa determinada posição ou 
elemento da tela corrente. 
SET CURSOR { { FIELD field [LINE line] [[DISPLAY] OFFSET off] }| { col lin } }. 
O comando GET CURSOR é utilizado obter informações sobre a posição do cursor na tela 
corrente. 
GET CURSOR { { FIELD field [field_properties] }| { LINE line } }. 
O comando SET SCREEN é utilizado para determinar o número da tela a ser processado dentro de 
uma sequência de diálogo. 
SET SCREEN dynnr. 
O comando LEAVE sai da tela corrente e vai para a próxima. Pode ser utilizado com o número da 
próxima tela declarado de forma explícita. 
LEAVE { SCREEN | {TO SCREEN dynnr} }. 
 
59 
ABAP para Funcionais ABAP para Funcionais 
 
 
ABAP DebugABAP DebugABAP DebugABAP Debuggergergerger 
O Depurador ABAP é uma ferramenta integrada de teste do ABAP Workbench. 
No Depurador, podemos executar o código fonte passo a passo, permitindo que se verifique o 
processo lógico e o resultado individual dos comandos. 
Existem duas estratégias para inicializar o Depurador no ABAP Workbench: 
• Definindo pontos de paradas (breakpoints). 
• Rodando o programa em modo depurador. 
 
Podemos inicializar o Depurador das seguintes formas: 
• Através da transação SE38 ou qualquer tela. Selecione o programa e clique no menu: 
Sistema/Utilitários/Depuração. 
• A partir de qualquer tela, digitando "/h" + ENTER no campo de comando antes de clicar em 
algum botão Trace. 
 
60 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
 
Podem-se definir vários break-point em um programa (limitando-se a 30). 
 
No Object Navigator (SE80), podemos usar o menu de contexto (clicando com o botão direito do 
mouse) e selecionar Executar e depois Depuração. 
 
61 
ABAP para Funcionais ABAP para Funcionais 
 
 
 
Continuando no object navigator, na área de edição, podemos selecionar uma linha e colocar um 
ponto de parada usando os ícones em destaque: 
 
 
 
Existe o comando BREAK-POINT e BREAK, que também podem ser inseridos no código: 
 
 
62 
ABAP para Funcionais ABAP para Funcionais 
 
 
Na tela abaixo podemos ver a interface do ABAP Debugger: 
 
 
 
No ABAP debuger podemos ver o conteúdo das variáveis, constantes, estruturas e tabelas internas. 
Podemos seguir acompanhando em tempo de execução linha a linha ou por bloco. Também existe a 
possibilidade de definir pontos de parada clicando duas vezes na linha que quisermos. 
Podemos definir um Watchpoint (ponto de observação) que consiste em dizer ao ABAP Debuger que 
a partir do momento que uma determinada variável tiver o valor “X”, ele pare neste ponto. Resumindo, é 
um breakpoint que depende do valor de uma variável. 
Entendendo as Teclas do DebugEntendendo as Teclas do DebugEntendendo as Teclas do DebugEntendendo as Teclas do Debug 
[ F5 ] Etapa Individual (Step by Step debugging) 
Visualiza linha a linha de um breakpoint, possível visualizar os valores passo-a-passo. 
 [ F6 ] Executar (Skips loops and Subroutines) 
Quase o mesmo que o F5, porém pula as sub-rotinas, ou seja, não conseguirá visualizar o que 
acontece dentro de funções, Performs, Fórmulas, Bapis, etc. 
 [ F7 ] Retorno (Skips the loop or subroutine and returns to the last cursor point) 
Esta opçao ignorar LOOPs ou qualquer subrotina e retornará ao último ponto do Cursor. 
 [ F8 ] Avançar (Execute and come out of debugging) 
Executa e sai do modo de Depuração 
 
 
63 
ABAP para Funcionais ABAP para Funcionais 
 
 
Visualizar Variáveis, Tabelas e Outros.Visualizar Variáveis, Tabelas e Outros.Visualizar Variáveis, Tabelas e Outros.Visualizar Variáveis, Tabelas e Outros. 
Durante o debug uma das coisas mais importantes que temos que aprender é como visualizar o 
conteúdo das informações que estão sendo tratadas em tempo de execução. 
Toda e qualquer variável ou tabela tem o seu conteúdo exibido na janela da direita. Veja destacado 
abaixo. 
 
 
Basta dar duplo clique nos objetos que podem ser visualizados, que automaticamente eles irão para 
a janela da direita. 
Veja abaixo que após um duplo clique na variável FCODE, a mesma foi adicionada na janela da 
direita. 
 
 
Da mesma forma que visualizamos as variáveis, podemos fazer para tabelas. Veja abaixo que depois 
de dar um duplo clique na tabela VALUES, a mesma

Continue navegando