Você está na página 1de 60

Doc. n.

º:
Tecnologia da Informação
Versão 0.1
Treinamento ABAP Básico
Data:
Fl.: 1 de 60
04/09/2011

Doc: 654015960.doc

Treinamento

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:
Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 2 de 60

Doc: 654015960.doc

ÍNDICE

1. VISÃO GERAL........................................................................................................................... 3

2. TRANSAÇÕES IMPORTANTES................................................................................................ 3

2.1 SE93............................................................................................................................................ 3

2.2 SE91............................................................................................................................................ 8

2.3 SE80.......................................................................................................................................... 12

2.4 SE38.......................................................................................................................................... 13

2.5 SU24.......................................................................................................................................... 14

3. ENCONTRAR CAMPOS DE TELA EM TABELAS..................................................................15

4. INCLUSÃO DE AUTHORITY-CHECKS...................................................................................19

5. EXECUÇÃO DE DEBUG DE JOB............................................................................................20

6. CRIAÇÃO DE VISÃO DE ATUALIZAÇÃO...............................................................................24

7. IMPLEMENTAÇÃO E VISUALIZAÇÃO DE NOTAS................................................................30

8. CONSTRUÇÃO DE SELECTS COM USO DE ÍNDICES..........................................................35

9. DEBUG..................................................................................................................................... 41

10. ST22.......................................................................................................................................... 54

11. PADRÕES................................................................................................................................ 57

11.1 - NOMENCLATURA DE TRANSAÇÕES E PROGRAMAS.....................................................57


Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 3 de 60

Doc: 654015960.doc

11.2 – MÓDULOS E TIPOS............................................................................................................. 57

1. Visão geral

Este manual aborda transações e processos importantes no SAP.

2. TRANSAÇÕES IMPORTANTES

2.1 SE93

Utilizada para criar, modificar e visualizar transações

Existem 5 tipos de transação

As principais utilizadas são:


 Transação de dialogo – Em uma transação de diálogo, a execução do programa é determinada pela
seqüência de telas. Telas que devem ser chamadas dentro de uma transação, fazem referência a
um pool de módulos ABAP

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 4 de 60

Doc: 654015960.doc

Exemplos dessas transações utilizadas na RJR são ZSDAC500, ZMMAC661 e ME2x.


 Transação de report – A mais utilizada em programas Z, o processo de um report, geralmente,
efetua uma entrada de dados no início (tela de seleção) através de um processamento de dados
para uma saída de dados (como um ALV)

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 5 de 60

Doc: 654015960.doc

OBS: transações de seleção sempre chamam a tela 1000 por padrão

Exemplos dessas transações utilizadas na RJR são ZHRAC500 e ZPMMT501


 Transação de parâmetro – Utilizada para chamar programas já com parâmetros predefinidos. É
muito utilizada para chamar a SM30, pois se pode chamar a atualização de tabela diretamente,
pulando a tela inicial da SM30

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 6 de 60

Doc: 654015960.doc

Exemplos dessas transações utilizadas na RJR são ZWFMT509 e ZSDMT540

Outras menos utilizadas são:

 Transação OO – utilizada para chamar métodos de classes diretamente


 Transação de variantes – utilizada para chamar outras transações com variantes predefinidas na
transação SHD0

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 7 de 60

Doc: 654015960.doc

Outras informações
Pode-se descobrir qual é o programa de uma transação através da SE93

Ao invés de ter que colocar objetos de autorização dentro do programa, podemos colocá-los diretamente na
transação através da SE93, exigindo um esforço muito menor

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 8 de 60

Doc: 654015960.doc

2.2 SE91

Utilizada para criar, modificar e visualizar mensagens

Tela com mensagens de uma Classe de mensagens.

Caso queira colocar variáveis em mensagens, utiliza-se o & ou &1, &2... até quatro variáveis.
Se for necessário utilizar uma explicação maior sobre a informação a ser passada, o é necessário
desmarcar o campo “auto-explicativo”.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 9 de 60

Doc: 654015960.doc

Abre-se a tela abaixo

Que resulta em:

Podemos chamar a mensagem com a sua classe no próprio comando, ou podemos atribuir a classe de
mensagens no programa assim não é necessário fazê-lo no comando MESSAGE.

A classe de mensagem está atribuída no programa

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 10 de 60

Doc: 654015960.doc

A Classe de mensagem está atribuída no comando mensagem


Existem seis tipos de mensagens, são eles S(sucesso), I(Informação), E(Erro), W(aviso/erro),
A(Cancelamento) e X(gerador de dump).

Mensagens do tipo S(sucesso),


Gera o texto na barra de status do SAP como o exemplo abaixo

Assim que o programa exibe a mensagem ele continua seu processamento normalmente, por isso caso haja
alguma outra mensagem depois da de sucesso, a primeira é “encoberta” pela segunda.

Mensagens do tipo I(Informação),


Gera o texto na em um Pop-Up.

Assim que o programa exibe a mensagem ele espera pela ação do usuário.

Mensagens do tipo E(Erro),


Gera o texto na barra de status do SAP como o exemplo abaixo

Assim que o programa exibe a mensagem, o processamento é interrompido

Mensagens do tipo W(aviso/erro),


Mensagens do tipo W se comportam de maneira distinta dependendo de onde são utilizadas.
Caso seja utilizada em reports ou processos que não requerem uma nova entrada de dados pelo usuário, é
exibido uma mensagem como a do tipo E(erro).

Se a mensagem for utilizada em área de onde se requere a entrada de dados, ela é exibida e o campo com
a entrada fica setado.

Assim que o programa exibe a mensagem, o processamento é interrompido.

Mensagens do tipo A(cancelamento),


Gera o texto na em um Pop-Up.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 11 de 60

Doc: 654015960.doc

Assim que o programa exibe a mensagem, a transação inteira é interrompida.


Mensagens do tipo X(gerador de dump),
Gera dump na transação

Assim que o programa exibe a mensagem, a transação inteira é interrompida.


Um recurso interessante é a adição DISPLAY LIKE, com isso é possível gerar um tipo de mensagem, mas
exibi-la com outro.

Por exemplo, podemos gerar uma mensagem de erro e exibi-la como sucesso, ou como informação e etc...

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 12 de 60

Doc: 654015960.doc

Nesse caso a mensagem cancelaria o processamento, mas seria exibida como informação (note o texto de
erro no cabeçalho do Pop-Up).

2.3 SE80
Utilizada para visualizar, criar e modificar vários tipos de objetos, como funções, programas, tabelas,
classes, requests e etc...
Utilizando ela em um programa, podemos verificar todos os objetos do mesmo

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 13 de 60

Doc: 654015960.doc

2.4 SE38
Ela nada mais é que uma versão reduzida da SE80 utilizada apenas para programas

A partir de sua tela inicial podemos entrar diretamente no fonte do programa, em suas características,
elementos de texto e etc.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 14 de 60

Doc: 654015960.doc

2.5 SU24
Utilizada para atribuição de objetos de autorização em transações.

Além de colocar os objetos de autorização na SE93, é necessário incluir também na SU24 para que o
pessoal do perfil consiga atribuir as autorizações.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 15 de 60

Doc: 654015960.doc

Caso já se tenha atribuído o authority-check na SE93, basta entrar na SU24 com a transação desejada,
clicar em modificar para trazer os objetos atribuídos e salvar (as configurações já serão baixadas
diretamente da SE93).

3. Encontrar Campos de tela em Tabelas

Existem várias maneiras de tentar descobrir qual o campo de tabela está ligado a um campo de tela.
A maneira mais simples de encontrar um campo de tabela em uma tela é apertar F1 no com o cursor no
campo desejado e depois em “informações técnicas”

Vai aparecer uma subtela com todas as informações sobre o campo setado

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 16 de 60

Doc: 654015960.doc

Se de atribuição do campo for categoria “tabela transparente”, significa que o nome da tabela e do campo
são exatamente os mesmos que aparecem na tela.

Caso essa categoria for “estrutura”, significa que o campo da tela não está atribuído diretamente ao campo
da tabela e sim de uma estrutura.
Nesse caso, também podemos procurar a origem da informação pelo elemento de dados do campo.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 17 de 60

Doc: 654015960.doc

Basta dar 2 cliques no elemento, depois em lista de utilizações

Selecione a utilização em campos de tabela e execute

Aparecerá uma lista com todas as tabelas que utilizam esse elemento de dados

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 18 de 60

Doc: 654015960.doc

Agora basta procurar nas tabelas exibidas.


Caso o campo contenha ajuda de pesquisa, uma outra forma é entrar na estrutura no qual o campo está
contido, nesse caso é RF05A

Procurar o campo correspondente e entrar na guia “Entradas possíveis/verificação”, lá é mostrado de como


a ajuda de pesquisa é montada, nesse exemplo ela é pega direto da tabela TBSL

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 19 de 60

Doc: 654015960.doc

Obs: Nem todos os matchcodes são referenciados em tabelas. Algumas estão ligadas diretamente no
domínio, outras em ajudas de pesquisa criadas na SE11

4. Inclusão de authority-checks

A inclusão já foi discutida nos tópicos anteriores.


Ao invés de ter que colocar objetos de autorização dentro do programa, podemos colocá-los diretamente na
transação através da SE93, exigindo um esforço muito menor

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 20 de 60

Doc: 654015960.doc

Depois disso basta seguir o procedimento da transação SU24.

5. Execução de debug de JOB

É Possível debugar um programa que está sendo executado por job, independente se ele ainda está sendo
executado ou não.

Entre na SM37, marque todos os Status e execute para a data desejada.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 21 de 60

Doc: 654015960.doc

Caso a execução já tenha terminado, Coloque um break-point no programa, volte a SM37, clique com o
mouse no job, escreva JDBG no campo de comando e aperte ENTER.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 22 de 60

Doc: 654015960.doc

O programa irá passar por alguns códigos Standards, mas basta apertar F8 que o cursor irá para o ponto
onde foi colocado o break.
Obs.: o que a execução de um programa já terminado faz é executá-lo novamente com os mesmos campos
de entrada enviados ao job, portanto, caso o programa tenha sido alterado, o debug também pode ter um
final diferente.

Se o job ainda estiver sendo executado

Entre na transação SM50, lá mostrará os processos atuais.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 23 de 60

Doc: 654015960.doc

Selecione a linha com o programa que você deseja debugar e entre na guia como na figura abaixo

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 24 de 60

Doc: 654015960.doc

Clique em “Sim”

E o programa abrirá uma nova janela com o debug desejado.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 25 de 60

Doc: 654015960.doc

6. Criação de visão de atualização

Alguns requerimentos pedem que criemos programas apenas para visualizar ou atualizar alguma tabela do
SAP (geralmente uma Z).
Por isso existe a ferramenta de visão de atualização que é gerada automaticamente na tabela, fazendo com
que o usuário possa ter acesso a tabela pela transação SM30(ou por uma transação Z do tipo de
parâmetros, como visto acima).
Na SE11, ir em utilitários e “Gerador de atualização de tabela”.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 26 de 60

Doc: 654015960.doc

Será aberta a seguinte tela

Preencha o grupo de autorização, caso não haja, por padrão é utilizado “&NC&”, depois o grupo de funções,
pode ser algum especifico para atualizadores de tabela ou não.

Podemos criar visões de tela única ou dupla.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 27 de 60

Doc: 654015960.doc

Para tela única (comumente utilizada), marque “nível único” e digite o número da tela no campo “tela de
síntese”.
Podemos também pegar um número de tela proposto pelo SAP, utilizado caso o grupo de funções já exista.
Assim pegamos uma tela que ainda não foi criada no grupo.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 28 de 60

Doc: 654015960.doc

Clique em “criar” e ele irá pedirá um pacote e uma request

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 29 de 60

Doc: 654015960.doc

Agora, basta ir na SM30 e verificar a atualização de tabela

Também podemos criar visões de duas telas.


Basta marcar “dois níveis” e criar.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 30 de 60

Doc: 654015960.doc

A SM30 da tabela terá duas telas, a de síntese que é como a tela individual e a tela de detalhes

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 31 de 60

Doc: 654015960.doc

7. Implementação e visualização de notas

Para implementar uma nota ou mesmo visualizá-la caso não se tenha acesso ao portal da SAP, podemos
utilizar a transação SNOTE

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 32 de 60

Doc: 654015960.doc

Obs: nem todas as notas aparem para o seu usuário, por isso podemos utilizar o browser de notas para
procurar checar se a nota a ser buscada já foi baixada e qual o status.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 33 de 60

Doc: 654015960.doc

Digite o número da nota e execute

Aparece a nota, o responsável e o status

Existem vários status das notas baixadas, podemos visualizar qual o significado de cada um pelo caminho
abaixo

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 34 de 60

Doc: 654015960.doc

Dando dois cliques na nota, conseguimos visualizar suas informações

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 35 de 60

Doc: 654015960.doc

Notas podem ser apenas informativas, implementadas automaticamente ou para implementação manual.
Algumas notas só podem ser implementadas, depois de outras terem sido, podemos ver se á alguma nota
como pré-requisito no documento da nota.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 36 de 60

Doc: 654015960.doc

Caso não se saiba quais as versões de componentes instalados no SAP, basta ir no menu Sistema, depois
em Status.
Na janela que se abre, clique no botão de informações de componentes, busque o componente e veja a
release

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 37 de 60

Doc: 654015960.doc

8. Construção de selects com uso de índices

Utilizar índices em selects é importante para diminuir o tempo da seleção.


Existem dois tipos de índices, os primários e os secundários. Os índices primários nada mais são que as
chaves primárias da tabela
No caso da tabela AUFK, as chaves são MANDS e AUFNR, logo o índice primário é composto pelos dois
campos

Os índices secundários podem ser definidos diretamente na SE11, no botão “Índices”.

Basta dar dois cliques em algum desses índices para ver o conteúdo completo deles

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 38 de 60

Doc: 654015960.doc

Não podemos simplesmente colocar todos os campos de uma tabela como índice por que toda vez que ela
é atualizada, o índice também é atualizado, ou seja, quanto mais índices, mas demorado é para incluir,
modificar ou apagar dados de uma tabela.

Para verificar se um índice está sendo utilizado em uma seleção, podemos usar a transação ST05

Basta clicar em “Activate Trace”, executamos o programa desejado, clicamos em “Deactivate Trace” e por
ultimo “Display trace”.
Testando no programa abaixo

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 39 de 60

Doc: 654015960.doc

Temos a seguinte informação no trace da ST05

Procuramos a tabela selecionada na segunda coluna, veremos o select que é feito. Basta posicionar o
cursos na linha e clicar em “Explain”. Veremos dados como processamento, tempo, índice utilizado e etc...

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 40 de 60

Doc: 654015960.doc

Vemos que foi utilizado o índice SRV

Agora se fizermos a seleção pelo campo MTAR

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 41 de 60

Doc: 654015960.doc

Veremos que não foi utilizado nenhum índice

Caso a seleção seja feita em campos de mais de um índice, podemos escolher qual utilizar através de
“hints” do Banco de Dados

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 42 de 60

Doc: 654015960.doc

Na seleção abaixo, o índice padrão a ser acessado é o SRV, mas através do hint, podemos trocar pelo Z01

O primeiro campo depois do parêntesis é a tabela e o segundo é o nome do índice, podemos ver isso na
parte de índices da tabela na SE11(como foi visto anteriormente).

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 43 de 60

Doc: 654015960.doc

9. Debug

Há duas telas de debug a clássica e a nova, para alterar entre uma e outra, basta ir no menu “depuração” e
em mudança para ABAP debugger novo ou clássico, dependendo de onde você está.

Tela do debugger novo

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 44 de 60

Doc: 654015960.doc

Tela do debugger clássico

OBS: As dicas desse manual serão passadas com base no modo novo de debug, portanto podem funcionar de maneira
diferente quando executadas no modo clássico

Os Comandos básicos do debugger são:


 F5 – Altera para a próxima instrução
 F6 – Executa instruções como Forms, funções, métodos e etc. sem entrar nelas
 F7 – Sai da instrução atual (ex: se estiver em um form, voltamos para o programa que o chamou)
 F8 – Executa até o fim do programa ou até a próxima parada
Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 45 de 60

Doc: 654015960.doc

Chamadas do programa

Para verificar quais os pontos já foram executas, podemos verificar as chamadas do programa que fica na
aba “DESKTOP 2”.

Podemos ver no exemplo abaixo que desde o inicio do processamento o programa já passou pelo form
F_BUSCA_DADOS e depois pelo F_BUSCA_EMPREGADO (onde está atualmente).

Podemos também ver o ponto em que a chamada foi feita, basta dar dois cliques em qualquer das linhas do
quadro direito.
No exemplo vamos clicar na linha de nível 1.
Assim podemos ver por onde o programa já passou

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 46 de 60

Doc: 654015960.doc

WATCHPOINTS

Uma ferramenta importante na hora de debugar um programa são os Watchpoints.


Eles são como pontos de parada dinâmicos, ou seja, ao invés de indicarmos o ponto exato da parada, como
é feito nos Breakpoints, podemos indicar que o programa só entre no debug quando alguma variável for
alterada.

No exemplo que veremos, vamos criar um watchpoint na estrutura T_SEL-LOW, para que ao apertarmos
F8, o programa pare quando a estrutura for igual a “99991231” ( 31/12/9999).

Para isso, basta clicar no botão “Watchpoint”. Abrirá uma tela nova para que ele seja criado.
Clique no botão de condição adicional e coloque = ‘99991231’.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 47 de 60

Doc: 654015960.doc

Quando apertamos F8, vemos que o programa para logo após a instrução que preenche a variável com o
valor desejado e é mostrada a mensagem de watchpoint obtido.

Caso não se coloque nada no parâmetro de condição adicional, o watchpoint será obtido sempre que a
variável mudar de valor, independente de qual seja.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 48 de 60

Doc: 654015960.doc

Para gerenciar os Watchpoints, vamos na aba “pontos de parada/watchpoint” e subaba Watchpoints

Podemos criar, apagar, desativar, etc.... Tanto Watchpoints como Breakpoints.

BREAKPOINTS

Além dos breakpoints comuns que são colocados clicando na linha, podemos direcioná-los para que parem
em pontos específicos, mesmo não sabendo onde eles estão no programa.

Clique no menu “Pontos de parada” e vá em “criar pontos de paradas” (ou simplesmente aperte F9).

Abrir-se-á a seguinte tela

Na primeira aba podemos indicar comandos para que sempre pare quando os comandos indicados forem
atingidos. É muito utilizado para achar mensagens(basta colocar o comando MESSAGE)

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 49 de 60

Doc: 654015960.doc

A segunda aba é usada para parar em métodos de classes(programação OO). Colocamos a classe a qual o
método pertence, depois o método e setamos se a classe é global(vista pela transação SE24), se ela foi
criada dentro de um programa ou criada dentro de outra classe.

A terceira aba é utilizada para colocar breakpoints em chamadas de funções criadas pela SE37

Na quarta aba podemos procurar FORMS dentro de programas citados.

A quinta é utilizada para exceções de classe ou de sistema

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 50 de 60

Doc: 654015960.doc

A última aba serve para colocar pontos de paradas em linhas especificas dentro do programa

Trabalhando com tabelas internas, variáveis e estruturas

Para verificar o valor de uma variável, basta dor dois cliques nela. Para modificar, clicamos no ícone de
lápis a direita do valor, alterar o valor e apertar ENTER

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 51 de 60

Doc: 654015960.doc

Uma tabela interna pode conter uma estrutura contida nela ou ter que trabalhar com uma estrutura
declarada separadamente.

Caso você dê dois cliques em uma tabela e apareça o ícone , significa que ela contém uma estrutura
(também chamada de cabeçalho) contida na tabela.
Assim, caso você dê dois clique no ícone, seremos levados para a visualização da tabela, e caso demos
dois clique no nome, veremos a o cabeçalho dela

Tabela com
estrutura

Tabela sem
estrutura
Visão da tabela

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 52 de 60

Doc: 654015960.doc

Visão da estrutura

Visão da tabela junto com estrutura

Para essa visão, temos que tirar os colchetes no campo tabela

No select abaixo, podemos ver que iremos selecionar todos os registros da tabela PA0465 com o campo
SUBTY igual a 0006, ENDDA igual a 31/12/9999 e PERNR igual a todos os PERNRs da tabela interna
T_PA00_01. O resultado da seleção será transferido para a tabela interna T_PA0465

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 53 de 60

Doc: 654015960.doc

Sempre que o parâmetro “FOR ALL ENTRIES IN tabela_interna” for utilizado temos que verificar se a
tabela_interna está preenchida, caso contrario serão selecionados todos os registros.

Estrutura SYST

A estrutura SYST, ou simplesmente SY é uma estrutura padrão que está disponível em qualquer programa
do SAP, nela podemos verificar o usuário de execução, tempo de sistema, código de retorno e vários
outros.

Para verificar todos os campos, podemos ir na SE11 e entrar na categoria de dados SYST.
Os campos mais utilizados são:

 SUBRC – código de retorno de instrução


 TABIX – Índice de tabela interna
 UCOMM – comando executado pelo usuário
 LANGU – verifica linguagem de logon do sistema
 BINPT – verifica se o programa é executado em batch input
 BATCH – verifica se o programa é executado em background
 DYNNR – tela em execução
 MSGID, MSGTY, MSGNO, MSGV1...MSGV4 - mensagens

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 54 de 60

Doc: 654015960.doc

SY-SUBRC

O campo SUBRC da estrutura SYST é utilizado para verificar o retorno de um determinado comando.

Cada comando tem seus códigos de retorno, mas geralmente “0” significa que ele ocorreu corretamente.

Para verificar os valores SUBRC específicos de algum comando, basta apertar F1 com o cursor dentro dele
e selecionar o termo mais adequado

Uma tela se abrirá com a explicação sobre o comando requerido e também os códigos de retorno que ele
pode utilizar.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 55 de 60

Doc: 654015960.doc

No caso do READ TABLE verificamos é “0” significa que algum registro na foi encontrado na tabela interna,
“4” e “8” não foi encontrado nada.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 56 de 60

Doc: 654015960.doc

10. ST22

A Transação ST22 é utilizada para verificar os erros em tempo de execução (Dumps) causados pelos
programas.

Há dois botões de seleção rápida (HOJE e ONTÉM) e mais o de deleção baseada nos parâmetros da tela

Vemos a tela abaixo, com o usuário do programa, data, e nome do erro.

Dando dois cliques na linha, verificamos mais exatamente o que ocorreu

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 57 de 60

Doc: 654015960.doc

O tópico que melhor explica o que aconteceu fica em “Análise de erro”.


Na figura acima podemos ver que o que causou o erro foi uma divisão por 0.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 58 de 60

Doc: 654015960.doc

Na parte de “segmento de texto fonte” podemos visualizar a parte do programa que deu erro

E em “variáveis selecionadas” vemos os valores dos campos

No caso do VDIV, vemos que ele realmente está zerado. O valor válido é sempre o da primeira linha.

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 59 de 60

Doc: 654015960.doc

11. Padrões

11.1 - Nomenclatura de transações e programas

Transações:

As transações devem seguir o formato ZMMTTSSS onde:


Z: Padrão para desenvolvimentos
MM: Módulo relacionado
TT: Tipo da transação
SSS: Seqüencial, sendo o primeiro disponível a partir de 500 até 699

Programas:

Os programas devem seguir o formato ZRJ_MMTTSSS onde:


ZRJ_: Fixo
MM: Módulo relacionado
TT: Tipo do programa
SSS: Seqüencial, sendo o primeiro disponível a partir de 500 até 699

Programas temporários devem seguir o seguinte formato:


ZRJ_TEMP_NOME
Os mesmos não possuem transação.

Programas que forem refeitos para melhora de performance, devem ser copiados em um novo de
forma que o antigo se mantenha utilizável para fins comparativos.
O novo programa deve seguir o padrão, mas caso já esteja no padrão o nome deve ter o sufixo _OT

11.2 – MÓDULOS E TIPOS

Módulos:

AP: Contas a pagar


AR: Contas a receber
AF: Ativo Fixo
BC: Basis Component
BW: Business Warehouse
MM: Administração de materiais
CF: Contabilidade financeira
CO: Controladoria
CR: CRM (Customer Relationship Management)
CP: Compras
EB: EBP (Enterprise Buyer professional edition)
EC: Equipamentos Frios
FI: Contabilidade Financeira
GL: Razão
HR: Recursos Humanos
Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo
Doc. n.º:
Tecnologia da Informação
Versão 0
Treinamento ABAP Básico
Data: 01/09/2011 Fl.: 60 de 60

Doc: 654015960.doc

IS: Soluções setoriais


LF: Modulo Fiscal
MM: Administração de materiais
PM: Manutenção
PP: Planejamento de produção
QM: Administração de Qualidade
OS: Sistema de projetos
SD: Vendas e distribuição
TR: Tesouraria
WF: Workflow

Tipos:
RP: Report
CM: Cargas massivas (Batch Input / Direct Input, BAPI)
AC: Programa de atualização de dados
MT: Manutenção de tabelas
BI: Interface BI

Elaboração do Documento
Elaborado por: 1ª Aprovação: 2ª Aprovação:

Marcelo M bovo

Você também pode gostar