You are on page 1of 45

Aprendendo

ABAP com Toco

1 - Fundamental...................................................................................................................4
1.1 Criao de Domnio...................................................................................................4
1.1.1 O que um Domnio?.........................................................................................4
1.1.2 Como criar um Domnio.....................................................................................4
1.2 Criao de Elementos de Dados................................................................................6
1.2.1 O que um Elemento de Dados?........................................................................6
1.2.2 Como criar um Elemento de Dados....................................................................6
1.3 Criao Tabela Customizada......................................................................................9
1.3.1 O que uma Tabela Customizada?.....................................................................9
1.3.2 Como criar uma Tabela Customizada.................................................................9
1.3.3 Criando uma SM30 de uma Tabela...................................................................11
2 Bsico..........................................................................................................................13
2.1 Comandos Insert / Del / Update...............................................................................13
2.1.1 Insert.................................................................................................................13
2.1.2 Delete................................................................................................................13
2.1.3 Update...............................................................................................................14
2.2 Objetos Client Dependent X Client Independent....................................................16
2.2.1 Client Dependent..............................................................................................16
2.2.2 Client Independent............................................................................................16
2.3 Comandos Write / Uline / Skip (Lista Abap)...........................................................17
2.3.1 Write.................................................................................................................17
2.3.2 Uline.................................................................................................................17
2.3.3 Skip...................................................................................................................18
2.4 Variveis do sistema (sy-langu, sy-datum, etc..)......................................................19
2.4.1 O que uma Varivel?......................................................................................19
2.4.2 O que so variveis do Sistema?......................................................................19
2.5 Declarao / Tipo de Variveis................................................................................20
2.5.1 Declarao de variveis....................................................................................20
2.5.2 Tipo de variveis...............................................................................................20
2.5.3 Tipos Bsicos de Varivel no Abap...................................................................20
2.6 Comandos New-page / Top-of-page........................................................................22
2.6.1 New-page..........................................................................................................22
2.6.2 Top-of-page.......................................................................................................22
2.7 Parameter.................................................................................................................24
2.7.1 O que um Parameter?.....................................................................................24
2.8 Elementos de Texto..................................................................................................25
2.8.1 O que um elemento de texto?.........................................................................25
2.8.2 Como criar um elemento de texto.....................................................................25
2.9 Mensagem de Erro / Informao / Sucesso.............................................................27
2.9.1 Mensagem de Erro............................................................................................27
2.9.2 Mensagem de Informao.................................................................................27
2.9.3 Mensagem de Sucesso......................................................................................28
2.10 Declarao de Tabelas Internas..............................................................................29
2.10.1 O que uma Tabela Interna?..........................................................................29
2.11 Seleo de dados (comando Select).......................................................................30
2.11.1 O que o comando Select?.............................................................................30

2.12 Comando de Laos de Repetio (Loop)...............................................................31


2.12.1 O que o comando Loop?..............................................................................31
2.13 Depurao do Programa (Debug)..........................................................................32
2.13.1 O que o Debug?...........................................................................................32
2.13.2 Tela do Debug.................................................................................................32
2.13.3 Modo de Exibio do Debug..........................................................................32
2.13.4 Mostrando o Contedo dos Campos...............................................................34
2.13.5 Mostrando o campo de uma tabela interna.....................................................34
2.13.6 Substituindo valores do campo em tempo de execuo.................................34
2.13.7 Mudando Tabelas Internas em tempo de execuo.........................................35
2.13.8 Excluindo uma linha de uma Tabela Interna...................................................35
2.13.9 Editando uma linha de uma Tabela Interna.....................................................36
2.13.10 Adicionando uma linha em uma Tabela Interna...........................................36
2.13.11 Estratgia de depurao................................................................................38
2.13.12 Uso de Breakpoints.......................................................................................38
2.13.13 Inserindo Breakpoint Esttico.......................................................................38
2.13.14 Inserindo Breakpoints Dinmicos.................................................................38
2.13.15 Exibindo Beakpoints Dinmicos..................................................................39
2.13.16 Inserindo Beakpoints em palavras chaves ou em eventos............................40
2.13.17 Inserindo Watchpoints..................................................................................40
2.13.18 Excluindo e desativando Breakpoints...........................................................41
2.13.19 Excluindo e desativando Breakpoints dinmicos.........................................41
2.13.20 Acessando um editor ABAP dentro de um debugger....................................41
2.14 Funes..................................................................................................................42
2.14.1 O que uma Funo?.....................................................................................42
2.14.2 Criando uma funo........................................................................................42
2.14.3 Chamando uma funo dentro de um programa.............................................44
2.15 Comando Perform..................................................................................................45
2.15.1 O que o comando perform?..........................................................................45
2.15.2 Exemplo de um PERFORM...........................................................................45

1 - Fundamental
1.1 Criao de Domnio
1.1.1 O que um Domnio?
Um domnio descreve as caractersticas tcnicas de um campo como, por exemplo, a
categoria de dados ou o nmero de caracteres do campo. Um domnio define, em
primeiro lugar, um conjunto de valores que descreve os valores de dados vlidos
para os campos, relativos a este domnio.

1.1.2 Como criar um Domnio


Na transao se11 ir em Domnio inserir um nome e clicar no boto Criar
(1.1)

(1.2)

1.2 Criao de Elementos de Dados


1.2.1 O que um Elemento de Dados?
Um elemento de dados (categoria elementar) descreve as caractersticas tcnicas e o
significado do contedo de um campo de tabela ou de estrutura. Campos com o
mesmo significado do contedo referenciam o mesmo elemento de dados.
Um elemento de dados tem qualidade de categoria e pode ser referenciado em
programas ABAP com TYPE. Desta forma, em um programa ABAP possvel definir,
por exemplo, variveis que transferem as caractersticas de categoria de um
elemento de dados.
As caractersticas de categoria de um elemento de dados (categoria de dados
instalada no ABAP Dictionary, comprimento de campo e, caso necessrio, casas
decimais) so transferidas do domnio do elemento de dados.

1.2.2 Como criar um Elemento de Dados


(1.3)

(1.4) Selecionar o tipo Elemento de Dados

(1.5)

(1.6)

Em Seguida ativar o Elemento de Dados (Ctrl + F3).

1.3 Criao Tabela Customizada


1.3.1 O que uma Tabela Customizada?
No ABAP Dictionary, possvel definir tabelas de forma independente do banco de
dados. Para isso, os campos da tabela so definidos com as suas categorias de dados
e seus comprimentos (independentes do banco de dados).
Uma definio de tabela no ABAP Dictionary, constituda pelos seguintes
componentes:
Campos de tabela: Aqui so indicados os nomes de campo e as categorias de
dados dos campos contidos na tabela.
Chave externa: Por meio de chave externa, so determinadas as relaes da tabela
em relao a outras tabelas.
Configuraes tcnicas: Por meio das configuraes tcnicas, controlada a forma
como a tabela criada no banco de dados.
ndices: Para acelerar a seleo de dados a partir da tabela, possvel criar ndices
para a tabela.

1.3.2 Como criar uma Tabela Customizada


(1.7)

(1.8)

A letra C no campo Classe de entrega representa que essa Tabela ser uma tabela
de customizao, que um dos tipos disponveis de tabela customizada.
(1.9)Aba Campos

10

(1.10)Configuraes Tcnicas

1.3.3 Criando uma SM30 de uma Tabela


(1.14)

11

(1.15)

12

2 Bsico
2.1 Comandos Insert / Del / Update
2.1.1 Insert
Insere dados na tabelas.
Cdigo fonte exemplo de Insert.
*&---------------------------------------------------------------------*
*& Report ZInsert
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZInsert

tables ZExemplo.
**Cria campo na tela
parameters:
p_id type persno,
p_nome type znome,
p_dtnasc type zdtnasc,
p_idade type zidade,
p_sexo type zsexo.
zexemplo-ID = p_id.
zexemplo-Nome = p_nome.
zexemplo-dtnasc = p_dtnasc.
zexemplo-idade = p_idade.
zexemplo-sexo = p_sexo.
Insert zexemplo.

2.1.2 Delete
Deleta dados existentes em tabelas.
Cdigo fonte exemplo de Delete
*&---------------------------------------------------------------------*
*& Report ZDelete
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

13

REPORT ZDelete

tables ZExemplo.
**Cria campo na tela
parameters:
p_id type persno.
**Deleta da Tabela Zexemplo a linha cujo o ID Igual fornecido na tela
Delete from zexemplo where Id = p_id.

2.1.3 Update
Altera dados existents na tabela.
Cdigo fonte exemplo de update
*&---------------------------------------------------------------------*
*& Report ZUPDATE
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZUPDATE

tables ZExemplo.
**Cria campo na tela
parameters:
p_id type persno obligatory,
p_nome type znome,
p_dtnasc type zdtnasc,
p_idade type zidade,
p_sexo type zsexo.
* Altera nome
if not p_nome is initial.
update zexemplo
set nome = p_nome
where id = p_id.
endif.
* Altera dtnasc
if not p_dtnasc is initial.
update zexemplo
set dtnasc = p_dtnasc
where id = p_id.
endif.
* Altera idade
if not p_idade is initial.
update zexemplo
set idade = p_idade
where id = p_id.

14

endif.
* Altera Sexo
if not p_sexo is initial.
update zexemplo
set sexo = p_sexo
where id = p_id.
endif.

15

2.2 Objetos Client Dependent X Client Independent


2.2.1 Client Dependent
So objetos dependents de mandantes. Por exemplo um objeto criado em um
mandante 100 o mesmo somente existir no ambiente 100.

2.2.2 Client Independent


So objetos independente de mandantes. Por exemplo se um objeto criado no
mandante 100 o mesmo vlido para todos os mandantes do mesmo sistema.

16

2.3 Comandos Write / Uline / Skip (Lista Abap)


2.3.1 Write
Escreve dados na tela. Os dados a serem escritos podem ser literais diretamente no
cdigo do programa (entre aspas simples) ou variveis (sem aspas).
Cdigo fonte exemplo write
*&---------------------------------------------------------------------*
*& Report ZWRITE
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZWRITE no standard page heading .
**Campo na Tela
parameters:
p_nome(30) type c.
**/ Pula de linha.
write:
015 p_nome,
/030 'teste outra linha'.

2.3.2 Uline
Insere uma linha na tela.
Cdigo fonte exemplo Uline
*&---------------------------------------------------------------------*
*& Report ZULINE
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
**Retira o cabealho padro
REPORT ZULINE no standard page heading.
**Insere uma linha horizontal somente
uline.
**Equivalente ao uline.
write sy-uline.

17

2.3.3 Skip
Pula linha na tela
Cdigo fonte exemplo Skip.
*&---------------------------------------------------------------------*
*& Report ZSKIP
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZSKIP

write 'teste'.
**Comando para pular de linha
Skip.
write 'teste'.

18

2.4 Variveis do sistema (sy-langu, sy-datum, etc..)


2.4.1 O que uma Varivel?
um campo aonde se armazena algum tipo de informao, que pode ser alterada
pelo programa em tempo de execuo.

2.4.2 O que so variveis do Sistema?


So variveis que guardam informaes sobre o sistema que podem ser acessadas
em tempo de execuo.
Todas as variveis do sistema comeam com sy-

19

2.5 Declarao / Tipo de Variveis


2.5.1 Declarao de variveis
Com exceo das variveis de sistema todas as variveis devem ser declaradas antes
de poderem ser utilizadas no programa.
Basicamente a declarao cria a varivel no programa.

2.5.2 Tipo de variveis


Todas as variveis declaradas precisam possuir um tipo, que determina como essas
variveis se comportaro no programa.
O tipo de uma varivel pode ser numrico, texto, data e etc... e de acordo com o tipo
a varivel ser tratada de uma maneira diferente pelo programa.

2.5.3 Tipos Bsicos de Varivel no Abap


(2.1)
Tipo
C
N
D
T
X
I
P
F

Explicao
Texto (caractere)
Texto numrico
Data
Hora
Hexadecimal
Inteiro
Nmero real
Real de ponto flutuante

Tamanho Padro
1
1
8
6
1
4
8
8

Valor Inicial
espao
00...0
00000000
000000
X00
0
0
0

Cdigo fonte exemplo de declarao


data v_variavel(20) type C.
data: palavra reservada do Abap para declarao de variveis, toda declarao deve
comear com data.
v_variavel: nome da varivel, pode ser qualquer nome definido pelo programador.
(20): tamanho da varivel.
Type: palavra reservada do Abap para declarao do tipo da varivel.
C: Tipo bsico da varivel.
Nota:

20

O tamanho da varivel pode ser omitido na declarao. Nesse caso o Abap ir


considerar o tamanho padro do tipo vide tabela (2.1).

21

2.6 Comandos New-page / Top-of-page


2.6.1 New-page
Insere nova pgina na lista abap.
Cdigo fonte exemplo New-page
*&---------------------------------------------------------------------*
*& Report ZNEWPAGE
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
**Declarao do tamanho da pgina.
REPORT ZNEWPAGE Line-Size 175
Line-Count 46
No Standard Page Heading.
Write 'Teste nova pgina.
**Insere nova pgina no programa.
new-page.
write 'Teste nova pgina.

2.6.2 Top-of-page
um evento que chamando no primeiro comando write, e serve para inserir
cabealho no relatrio.
O cabealho inserido com o Top-of-page sempre visvel no topo da pgina mesmo
que o usurio role a tela.
Cdigo fonte exemplo top-of-page
*&---------------------------------------------------------------------*
*& Report ZTOPOFPAGE
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

REPORT ZTOPOFPAGE no standard page heading.


data: v_teste type pa0008-pernr.

22

v_teste = '90000036'.
write v_teste.
top-of-page.
write 'teste top-of-page'.

23

2.7 Parameter
2.7.1 O que um Parameter?
um parmetro de entrada de valores e um dos tipos de campo de tela possveis
de serem inseridos no programa.
Cdigo fonte exemplo de Parameters
*&---------------------------------------------------------------------*
*& Report ZPARAMETER
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZPARAMETER

parameters:
p_nome type sy-datum.

24

2.8 Elementos de Texto


2.8.1 O que um elemento de texto?
So constantes de textos definidas fora do cdigo do programa e que so
traduzveis.

2.8.2 Como criar um elemento de texto


(2.1)

(2.2)

25

(2.3) Mostra como a abreviao do cdigo exibida na tela.

26

2.9 Mensagem de Erro / Informao / Sucesso


2.9.1 Mensagem de Erro
Cdigo Fonte exemplo Mensagem de Erro.
*&---------------------------------------------------------------------*
*& Report ZMENSAGEM
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

REPORT ZMENSAGEM.
message E002(sy) with 'Mensagem de Erro'.

(2.4)

2.9.2 Mensagem de Informao


Cdigo Fonte exemplo Mensagem de Informao.
*&---------------------------------------------------------------------*
*& Report ZMENSAGEM2
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

REPORT ZMENSAGEM2.
message I002(sy) with 'Mensagem de Informao'.

(2.5)

27

2.9.3 Mensagem de Sucesso


Cdigo Fonte exemplo Mensagem de Sucesso.
*&---------------------------------------------------------------------*
*& Report ZMENSAGEM3
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

REPORT ZMENSAGEM3 .
message S002(sy) with 'Mensagem de Sucesso'.

(2.6)

28

2.10 Declarao de Tabelas Internas


2.10.1 O que uma Tabela Interna?
So dados a serem manipulados pelo programa.
Cdigo fonte exemplo Tabela Interna
*&---------------------------------------------------------------------*
*& Report ZTABELAINTERNA
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*

REPORT ZTABELAINTERNA.
*Declarao de Tabelas Transparentes.
tables: pa0001.
*Declatao de Tabelas Internas
Data: Begin of IT_Exemplo OCCURS 0,
Matricula like PERNR-PERNR,
Nome(30) type C,
End of IT_Exemplo.
parameter: c_pernr type PA0001-PERNR.

29

2.11 Seleo de dados (comando Select)


2.11.1 O que o comando Select?
Seleciona dados de uma tabela
Cdigo fonte exemplo comando Select
*&---------------------------------------------------------------------*
*& Report ZSELECT
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZSELECT

*Declarao de Tabelas Transparentes.


tables: pa0001.
*Declatao de Tabelas Internas
Data: Begin of IT_Exemplo OCCURS 0,
Matricula like PERNR-PERNR,
Nome(30) type C,
End of IT_Exemplo.
*Similar a um PARAMETER s que seleciona campos DE / AT
Select-Options: C_PERNR for PA0001-PERNR.
*Realiza um select na tabelas transparentes para guardar o valor nas
*tabelas internas
SELECT PERNR ENAME FROM PA0001
INTO (IT_EXEMPLO-MATRICULA, IT_EXEMPLO-NOME)
WHERE PERNR in C_PERNR.
APPEND IT_EXEMPLO.
ENDSELECT.

30

2.12 Comando de Laos de Repetio (Loop)


2.12.1 O que o comando Loop?
Um comando para realizar lao de repetio.
Cdigo fonte exemplo comando Loop
loop at gt_func.
If v_cont = '1'.
format color col_key.
v_cont = '0'.
Else.
format color col_normal.
v_cont = '1'.
EndIf.
endloop.

31

2.13 Depurao do Programa (Debug)


2.13.1 O que o Debug?
O Debug uma ferramenta para diagnosticar problemas com o cdigo do programa.
Ele permite que o usurio visualize o programa em execuo e determine onde h
problemas com uma instruo, uma varivel ou uma tabela.

2.13.2 Tela do Debug

Botes de controle de
execuo, Single Step,
Execute, Return,
Continue.
Mostra a sentena
corrente
O programa e o evento
que o debugger
est processando.
Cdigo Fonte

2.13.3 Modo de Exibio do Debug


Utilize esses botes
para navegar pelo
programa

Botes de Navegao

32

Botes de Navegao permitem que o usurio escolha 7 modos de exibio: fields,


table, breakpoints, warching, call / callstack, overview e settings.

33

2.13.4 Mostrando o Contedo dos Campos


rea para visualizar
variveis. H variveis
escolhidas pelo usurio
que podem ser
monitoradas enquanto
mudam o valor durante
a execuo.

Formato Hexadecimal

Para exibir o contedo do campo, digite at o nome do campo diretamente no


espao reservado, ou selecione o campo na tela de cdigo com um duploclique.

2.13.5 Mostrando o campo de uma tabela interna


Cdigo da tabela
Interna

Os ndices de uma tabela interna podem ser mostrados usando a funo Table
atravs do boto correspondente.
Para visualizar uma tabela, especifique o nome da tabela no campo apropriado ou d
um duplo clique no nome da tabela na parte de cdigo da tela.

34

2.13.6 Substituindo valores do campo em tempo de execuo


Inserir o novo valor
aqui.
Boto para alterao

possvel modificar o contedo de campos dentro do Debugger, no entanto


necessrio que o usurio tenha a devida autorizao.
Para fazer isso deve-se clicar sobre o boto Fields no alto da tela e entrar com um
novo valor na coluna com o contedo do campo.
Em seguida clique no boto Change.
Todas as mudanas so feitas guardadas em um LOG por usurio.

2.13.7 Mudando Tabelas Internas em tempo de execuo


A Ferramenta debugging permite que o usurio manipule o contedo de uma tabela
interna em tempo de execuo.
Usando o Debugge, o usurio pode:

Deletar uma linha de uma tabela interna.


Editar uma linha de uma tabela interna.
Adicionar uma linha de uma tabela interna.

As linhas so editadas com as funes:

CHANGE
INSERT
APPEND

Obs. Os comandos INSERT e APPEND so usados para adicionar novas linhas


tabela interna.

35

2.13.8 Excluindo uma linha de uma Tabela Interna


A Ferramenta debugging permite que o usurio exclua o contedo de uma tabela
interna em tempo de execuo.
Para fazer isso acesse a tela de exibio de tabelas, entre o nome da tabela no
campo apropriado e pressione <ENTER>.
O sistema mostrar o contedo da tabela.
Coloque o curso na linha que voc deseja.
Remove e click em DELETE.

Boto Excluir

2.13.9 Editando uma linha de uma Tabela Interna


Para editar o contedo de uma tabela interna, necessrio decidir tambm o campo
da tabela que vai ser editado.
Posicionar o cursor no campo e linha que vo ser editados, clique em CHANGE, entre
o novo valor e pressione <ENTER>.

36

Boto Editar

2.13.10 Adicionando uma linha em uma Tabela Interna


Para adicionar uma linha ao final de uma tabela interna clique em APPEND e entre
com um valor para o primeiro campo da linha. Pressione <ENTER> e o sistema vai
inserir o registro com o primeiro campo preenchido.
Para inserir a linha em outras posies, deixe o cursor na linha depois de onde a
linha inserida dever aparecer. Clique em INSERT e prossiga da mesma
forma que no APPEND.

Boto Adicionar

Boto Inserir

37

2.13.11 Estratgia de depurao


H duas estratgias possveis de uso do debugger dentro do ABAP Workbench:

O usurio pode inserir breakpoints (pontos de parada) em um programa e


executa-lo usando a ferramenta debugger.
O usurio pode executar um programa no debugger sem usar breakpoints

2.13.12 Uso de Breakpoints


Um breakpoint um sinal dentro do cdigo que diz ao processador ABAP para
interromper o programa quando o breakpoint acionado. H quatro tipos:

Esttico: escrito diretamente no cdigo do programa.


Dinmico: acionados dentro do editor ABAP ou do Debugger.
Watchpoints: acionados dentro do debugger e so especficos para campos.
Um Watchpoint se transforma em um breakpoint quando o contedo de
um campo muda.
Breakpoint nas palavras chaves: so associados a palavra chaves ou eventos.
Esse breakpoint se torna ativo quando o processador ABAP encontra a
palavra chave ou evento especifico.

2.13.13 Inserindo Breakpoint Esttico


Para utiliza-lo basta entrar no editor ABAP e escrever a palavra BREAK-POINT
diretamente no cdigo do programa.

CASE WORLD_SERIES.
WHEN COLORADO_ROCKIES.
WRITE WORLDS GREATEST TEAM.
WHEN OTHERS.
WRITE MAYBE NEXT YEAR.
BREAK-POINT.
ENDCASE.

2.13.14 Inserindo Breakpoints Dinmicos


Para inserir um breakpoint dinmico deve-se posicionar o cursor na linha que vai ser
interrompida.
Ento deve se selecionar Utilities Breakpoint Set ou clicando sobre o cone
STOP na barra de ferramentas do editor.
Dentro de um debugger deve-se escolher Utilities Breakpoint Set/delete
ou atravs de um duplo click na linha.

38

2.13.15 Exibindo Beakpoints Dinmicos


A tela de exibio de breakpoints dinmicos permite que o usurio navegue at um
determinado breakpoint ou exclua um ou todos breakpoints do programa.
Para visualizar todos os breakpoints dinmicos use Utilities Breakpoint
Display no editor

Boto de excluso
Boto de navegao

39

2.13.16 Inserindo Beakpoints em palavras chaves ou em eventos


Um programa pode ser interrompido antes que uma certa palavra chave, evento ou
sub-rotina for chamada.
Para isso deve-se: Breakpoint Breakpoint at e ento escolher Statement,
Subroutine, Function Module e System Excention.
Em seguida informa-se em qual rotina, evento ou palavra chave ser feita a
interrupo.

2.13.17 Inserindo Watchpoints


Para inserir um watchpoint deve-se clicar no boto
na barra de
ferramentas e ento definir se local/global e por fim definir o campo que vai
acionar o watchpoint.
Boto para
criar watchpoint

Tela de criao
de watchpoints

Operadores lgicos
entre watchpoints

Lista de watchpoints
existetentes

40

2.13.18 Excluindo e desativando Breakpoints


Para desativar um breakpoint esttico remova-o no editor ABAP. Os breakpoints
estticos no podem ser removidos ou desativados se o debugger foi iniciado.
Os breakpoints em palavras chaves ou em eventos podem ser excludos e
desativados da mesma maneira que os breakpoints dinmicos.
Para remover watchpoints, selecione a tecla Watchpoints e clique no boto
Delete do watchpoint a ser deletado.

2.13.19 Excluindo e desativando Breakpoints dinmicos


Breakpoints dinmicos podem ser apagados ou temporariamente desativados no
processo de depurao.
Para se excluir um breakpoint dinmico: Breakpoint Set/Delete ou clicar no
cone
STOP no editor.
Para desativar temporariamente um breakpoint coloque o curso na linha apropriada
e selecione Breakpoint Deactivate/Activate.
Para remover todos os Breakpoints: Breakpoint Delete all.
Viso geral dos breakpoints existentes: Goto Breakpoints.
Um clique duplo no cone esquerda do cdigo durante o debugger tambm
desativa um breakpoint.

2.13.20 Acessando um editor ABAP dentro de um debugger


O usurio pode sair de um debugger para o editor ABAP a qualquer momento.
Isso til se um erro for identificado ao utilizar a ferramenta debugger e o usurio
quer corrigi-lo imediatamente.
Para retorna ao editor usa-se o menu: Development ABAP Editor.

41

2.14 Funes
2.14.1 O que uma Funo?
Uma funo um bloco de instrues que executado quando chamada de algum
ponto do programa.
Uma funo criada na transao SE37 e armazenada em uma biblioteca podendo
ser chamada em diversos programas diferentes.

2.14.2 Criando uma funo


Transao SE37

Insira o nome da funo comeando sempre com as letras Z ou Y e click no boto

Na guia IMPORT deve ser passado todos os parmetros de importao de sua


funo.

42

Na guia EXPORT deve ser passado todos os parmetros de exportao de sua


funo.

Na guia EXCEPTIONS deve ser passado todos os parmetros de excees de sua


funo.

Na guia SOURCE CODE deve ser passado o cdigo de sua funo.

Salve e ative sua funo.

43

2.14.3 Chamando uma funo dentro de um programa


Dentro de seu programa click no boto

Dentro de Call Function coloque o nome da funo criada.

44

2.15 Comando Perform


2.15.1 O que o comando perform?
Procedures so trechos de cdigo que so separados do fluxo principal do programa
e podem ser chamadas uma ou mais vezes, o que desvia temporariamente o fluxo
para o seu corpo, que executado e, ao fim, retorna para o lugar de onde foi
chamada.

2.15.2 Exemplo de um PERFORM


*--- PERFORM ---*
PERFORM f_verifca_dados
USING p_valor1 p_valor2 p_tsinal v_result.
*&---------------------------------------------------------------------*
*&
Form f_verifca_dados
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_P_VALOR1 text
*
-->P_P_VALOR2 text
*
-->P_P_TSINAL text
*----------------------------------------------------------------------*
FORM f_verifca_dados USING p1_valor1
p2_valor2
p3_tsinal
p4_result.
CASE p3_tsinal.
WHEN '+'.
p4_result = p1_valor1 + p2_valor2.
WHEN '-'.
p4_result = p1_valor1 - p2_valor2.
WHEN '*'.
p4_result = p1_valor1 * p2_valor2.
WHEN '/'.
IF p1_valor1 = '0'.
MESSAGE s002(sy)
WITH 'Diviso por 0 entre com outro valor' RAISING divzero.
ELSEIF p2_valor2 = '0'.
MESSAGE s002(sy) WITH 'Diviso por 0 entre com outro valor'.
EXIT.
ELSE.
p4_result = p1_valor1 / p2_valor2.
ENDIF.
ENDCASE.
ENDFORM.
" f_verifca_dados

45

You might also like