Você está na página 1de 62

Treinamento ABAP/DEBUG

para Funcionais

Jan/2018
Índice

Introdução ................................................................................... 04
1. Introdução ao ABAP
1.1 Repositório R/3 ............................................. 06
1.2 Desenvolvimento – Objetos ............................ 08
1.3 Operadores ..................................................... 15
1.4 Desenvolvimento – Comandos ..................... 17
2. Debug
2.1 Interno x Externo ............................................ 28
2.2 Novo x Clássico ............................................. 29
2.3 Execução via Atalho ....................................... 35
2.4 Manipulação ................................................... 39
3. Tips & Tricks
3.1 Ferramentas Disponíveis ............................... 44
3.2 Manipulação Dados ....................................... 45
3.3 Monitor ........................................................... 50
3.4 Watchpoints ................................................... 54
3.5 Troca de Usuário ........................................... 56
3.6 Cenários Específicos ..................................... 58
3.7 Controle Break Points .................................... 60
Introdução
Introdução
Objetivos

Demonstrar de forma macro o


01 funcionamento e a lógica ABAP

Repasse de Identificar formas de


conhecimento inicialização de DEBUG,
04 02 bem como as
ferramentas disponíveis

Permitir que funcionais consigam


debugar processos e identificar erros, 03
melhorias e objetos

4
Introdução ao
ABAP
Introdução ao ABAP
Repositório R/3

Principais transações em que são realizados desenvolvimentos:

• SE38 – Relatórios, Includes


• SE24 – Classes
• SE37 – Funções
• SE80 – Possui o agrupamento dos anteriores + Grupo de Função e demais
objetos

Principais transações para localizar objetos:


• SE11 – Estruturas, Elemento de Dados, Domínios, Tabelas, SH, etc.
• SE16/SE16N – Identifica o conteúdo de uma tabela

6
Introdução ao ABAP
Repositório R/3

Para verificar a utilização de um objeto em determinada parte do SAP, utilizar


a ferramenta “Lista de Utilizações”, localizada no menu standard.

“Lista de Utilizações”

7
Introdução ao ABAP - Objetos
Desenvolvimento

Todos os objetos declarados dentro de uma rotina ABAP existem


somente durante o tempo de execução desta rotina.

Estes objetos, por sua vez, possuem tipos e objetivos distintos, bem
como suas respectivas formas de declaração e utilização.

Podem ser subdivididos, basicamente em:


• Variáveis (de usuário ou de sistema)
• Tabelas internas
• Estruturas
• Ranges
• Constantes
• Field-symbols

Além disso, suas naturezas podem incluir: local ou global,


dependendo da necessidade de suas aplicação.
• Local: existem somente dentro de um bloco de uma função
• Global: existem em todo o contexto da aplicação
8
Introdução ao ABAP - Objetos
Desenvolvimento

Variáveis

• De usuário:
• Objeto capaz de reter somente uma informação, que represente um
valor ou uma expressão (texto).

• Declaração:

• De sistema:
• No SAP há ainda variáveis de sistema, provindas da estrutura
SYST, que armazenam diversas informações a respeito do
momento de execução de qualquer rotina e do servidor.
• Não podem ser declaradas, pois são reservadas somente à SAP.
• Existem globalmente na rotina.
• Exemplo: SY-SUBRC, SY-DATUM, SY-UNAME, SY-UZEIT
9
Introdução ao ABAP - Objetos
Desenvolvimento

Tabela interna

• Armazenam de 0-N registros;


• Podem possuir N colunas, definidas a partir de uma tabela transparente, de
uma estrutura, de um elemento de dados ou de definição realizada dentro
da rotina.

• Declaração:

10
Introdução ao ABAP - Objetos
Desenvolvimento

Estrutura (workareas)

• Armazenam somente “uma linha” de conteúdo, porém permitindo a


existência de N colunas.
• Quando possuem as mesmas colunas que uma tabela interna, podem ser
responsáveis por apendar* registros nesta.
• Podem ser referenciadas de uma tabela transparente, estrutura ou de
definição realizada dentro da rotina.

• Declaração:

11
Introdução ao ABAP - Objetos
Desenvolvimento

Ranges

• Comportamento semelhante ao de tabela interna*, porém possuem


quantidade de colunas limitadas a: OPTION, SIGN, LOW e HIGH.
• Nestes são permitidos colocar intervalos de valores para auxiliar na busca
de registros e/ou restrição de dados.
• São auxiliares na lógica, tanto inclusivos quanto exclusivos.
• São declarados a partir de um tipo específico.
• São alimentados via workarea.

• Declaração:

12
Introdução ao ABAP - Objetos
Desenvolvimento

Constantes

• Como o próprio nome diz, são variáveis que possuem um valor constante,
ou seja, não se alteram em nenhum momento durante a execução de
determinada rotina.
• São utilizadas como auxiliares, bem como facilitam a manutenção de
códigos.

• Declaração:

13
Introdução ao ABAP - Objetos
Desenvolvimento

Field-Symbol

• Possuem comportamento semelhante ao de uma workarea, porém estes


estão diretamente vinculados à memória em que estão alocados.
• Desta forma, ao fazer/alterar a referência de um valor neste Field-Symbol,
este terá sido alterado em toda a instância da rotina que esteja vinculado.
• Podem assumir formas de estrutura (R/3 ou definição local), de tabela e de
variável – até mesmo permitem declarações dinâmicas sem uma tipificação
exclusiva.

• Declaração:

14
Introdução ao ABAP - Operadores
Desenvolvimento

Os operadores são responsáveis por controlar, diferenciar e/ou


manipular determinadas instruções.

São utilizados na montagem da lógica, baseando-se nos valores


contidos nas variáveis utilizadas em suas referências.

Podem ser subdivididos em:


• De declaração
• Declara variáveis, tabelas internas, estruturas e etc
(conforme demonstrado anteriormente).
• Lógicos
• Relacionam duas ou mais expressões, realizando
comparações entre elas.
• Booleanos
• Relacionam duas ou mais expressões, sendo que seu
resultado se baseia na unção de verdadeiro ou falso.
• Outros
• https://help.sap.com/doc/abapdocu_751_index_htm/7.51/en-
US/abenoperators.htm 15
Introdução ao ABAP - Operadores
Desenvolvimento

Exemplos (mais comuns):


• De declaração
• DATA, TYPES, FIELD-SYMBOLS.

• Lógicos
• NE, <> : Diferente de
• EQ, = : Igual
• GT, > : Maior
• GE, >= : Maior ou Igual
• LT, < : Menor
• LE, <= : Menor ou Igual
• IN : Contém
• BETWEEN: Entre

• Booleanos
• AND (NOT)
• OR (NOT)
16
Introdução ao ABAP - Comandos
Desenvolvimento

Em uma rotina ABAP, vários são os comandos utilizados na


elaboração de determinada lógica.

Alguns destes são responsáveis pela seleção de dados, outros pela


comparação de variáveis ou até mesmo pela chamada de demais rotinas.

Cada um possui sua respectiva peculiaridade, bem como melhores


práticas (para saber mais sobre este assunto, documento anexo na página
XX).

Os mais utilizados são: IF, CASE, LOOP, SELECT, READ,


CONCATENATE, CLEAR, REFRESH, PERFORM, INCLUDE, WRITE,
MESSAGE, CALL, RETURN, EXIT, CONTINUE, etc.

17
Introdução ao ABAP - Comandos
Desenvolvimento

IF/ELSE

Instrução lógica que verifica “Se” determinada condição é satisfeita. Se sim,


executa o bloco que esta contém.

18
Introdução ao ABAP - Comandos
Desenvolvimento

CASE

Semelhante ao IF, porém não exige “else”, pois permite alocar múltiplas
possibilidades. Ao encontrar a correta, executa o bloco que esta contém.

19
Introdução ao ABAP - Comandos
Desenvolvimento

LOOP

Varrem linha a linha de determinada tabela interna. Ao realizar a varredura, é


necessário atribuir a linha selecionada à uma workarea.

Pode ser realizado com ou sem cláusula específica.

Sem cláusula

Com cláusula

20
Introdução ao ABAP - Comandos
Desenvolvimento

SELECT

Seleciona registros da base de dados (únicos ou múltiplos).

É permitido selecionar todas as colunas da base, bem como


somente as que forem necessárias (inclusive em prol das boas práticas).

Além disso, também pode-se realizar JOINS em uma ou mais


tabelas, evitando o acesso múltiplo ao banco de dados (porém possuem o
contra de possível lentidão na busca). Também é possível buscar dados com
base em registros contidos em tabelas internas (chamado “FOR ALL
ENTRIES”).

Está diretamente relacionado com a variável de sistema “SY-


SUBRC”, onde 0 indica que registros foram encontrados e 4 indica que não foi
obtido sucesso.

Obs: para ““FOR ALL ENTRIES”, sempre verificar se a tabela está preenchida, senão a busca será
feita em toda a base 21
Introdução ao ABAP - Comandos
Desenvolvimento

Exemplos:

Estrutura

Tabela Interna

Tabela Interna

22
Introdução ao ABAP - Comandos
Desenvolvimento

READ

Este comando é utilizado para realizar leitura em uma tabela interna,


utilizando para isso pelo menos um tipo de condição.

Está diretamente relacionado com a variável de sistema “SY-


SUBRC”, onde 0 indica que registros foram encontrados e 4 indica que não foi
obtido sucesso.

Pode ser feita com ou sem “BINARY SEARCH” (caso utilizado, deve
ser garantido a ordenação dos registros).

23
Introdução ao ABAP - Comandos
Desenvolvimento

Exemplos:

24
Introdução ao ABAP - Comandos
Desenvolvimento

Exemplos:

25
Introdução ao ABAP - Comandos
Desenvolvimento

OUTROS

• CONCATENATE
• Concatena duas ou mais variáveis

• CLEAR / REFRESH
• “Clear” limpa variáveis e estruturas, enquanto “Refresh” as tabelas
internas

• PERFORM
• Chamam sub-rotinas

• MESSAGE
• Dispara mensagens

• SORT
• Ordenam determinada tabela interna com base nos campos
demonstrados na instrução
26
DEBUG
DEBUG
Interno x Externo

Há dois tipos de DEBUG:

• Interno
• O Interno é quando utilizamos dentro do próprio SAP, ou seja,
quando o debug é chamado internamente pelo usuário.

• Externo
• O externo é quando o processo se inicia fora do SAP; Exemplo:
portal chamando uma função remotamente.

Interno

Externo

28
DEBUG
Novo x Clássico

Somente para demonstração, há duas versões de debug: o


denominado “clássico” e o “novo”.

Ambos possuem a mesma finalidade, que é diagnosticar problemas


ou verificar processos.

A utilização de um ou outro é livre, dependendo da familiaridade do


consultor com cada um deles. Porém, o “novo” é mais indicado por possuir
funcionalidades adicionais em relação ao clássico.

29
DEBUG - Clássico
Novo x Clásico

30
DEBUG - Novo
Novo x Clássico

31
DEBUG – Realizar Troca
Novo x Clássico

Novo > Clássico

32
DEBUG – Realizar Troca
Novo x Antigo

Clássico > Novo

33
DEBUG – Execução
Como Executar

Existem três formas de iniciar uma depuração, sendo estas:


• Break Point Físico
• Inicializado via comando ABAP: BREAK, BREAK-POINT.

• Break Point Lógico


• Via interno ou externo, conforme demonstrado.

• Via comando /H
• /H na tela de menu do SAP.

• Via atalho
• Para debugar popups que não possuem tela de menu, a SAP
permite exportar o Debug para a máquina local e adicioná-lo no
popup; assim, quando alguma ação for tomada, o processo de
depuração se inicializa automaticamente.

34
DEBUG – Execução via Atalho
Como Executar

Realizar os procedimentos abaixo:

1) Clicar no botão “Criar uma ligação”, contido no menu superior.

35
DEBUG – Execução via Atalho
Como Executar

2) Preencher conforme abaixo:

Endereço local

36
DEBUG – Execução via Atalho
Como Executar

3) Clicar em “Completar”

37
DEBUG – Execução via Atalho
Como Executar

4) O atalho será criado no diretório especificado. Para debugar o popup, basta


clicar neste atalho e arrastar/soltar nele. Modo debug será ativado.

38
DEBUG – Manipulação
Como debugar?

O debug é um sistema que permite analisar a execução de uma


rotina linha a linha. Porém, em programas extensos, seria inviável analisar
cada uma individualmente.

Sendo assim, é possível também executar blocos e/ou liberar o


processamento quando não se deseja mais realizar nenhuma análise no
código.

Cada uma destas funcionalidades é representada por uma tecla no


teclado ou indicada na própria de depuração. Desta forma, são determinados
em:

• F5: Executa linha a linha do código. Quando encontrado uma sub-


rotina, acessa seu código.
• F6: Semelhante ao F5; Porém, quando encontrado uma sub-rotina,
NÃO acessa seu código.
• F7: Realiza a saída de uma sub-rotina, voltando para o código
fonte oriundo.
• F8: Libera o processamento até encontrar um próximo “break” ou
até o fim da lógica. 39
DEBUG – Manipulação
Como debugar?

Avançar (F8)

Retorno (F7)

Executar (F6)

Etapa Individual (F5)

40
DEBUG – Manipulação
Como debugar?

Além das formas de depuração apresentadas, há um comando muito


utilizado que auxilia no (re) processamento de partes de rotinas, em
momentos que se perde se deseja depurar novamente para entender o
processo.

Em atalho no teclado, é representado pelo SHIFT + F12.

Para realizá-lo, basta indicar o cursor na linha em que se deseja


adicionar a depuração e acionar o comando via SHIFT + F12 ou então:

Menu “Debugger > Ir para a Instrução”.

A depuração se inicializará a partir da linha onde uma seta em


amarelo está indicada.

41
DEBUG – Manipulação
Como debugar?

Indica em que linha a depuração está


em processamento

42
Tips & Tricks
DEBUG – Ferramentas Disponíveis
Algumas ferramentas disponíveis

O debugger contém algumas ferramentas que auxiliam e agilizam o


processo de análise de código, de dados e de processo.

Algumas destas incluem:


• Manipulação de Dados
• Monitor
• Localizador de rotinas
• Outras Ferramentas
• Watchpoints
• Alteração de usuário “trigger”
• Depuração em cenários específicos

44
DEBUG – Manipulação de Dados
Manipulação de Valores

Durante a depuração, é possível realizar manipulação de valores de


variáveis/dados, no intuito de verificar o comportamento do programa com
estes novos valores.

Este procedimento empírico facilita na análise de padrões de


comportamentos, simulação de erros e, consequentemente, na criação de
soluções.

Inicialmente, para verificar o valor de determinada variável,


basta um duplo clique em cima desta. O objeto será demonstrado a
direita no monitor, bem como o valor que armazena.

45
DEBUG – Manipulação de Dados
Manipulação de Valores

Para alterar o valor de determinada variável, basta adicioná-la no


monitor e clicar no ícone “modificador” ao lado direito desta. Ao clicar, o
campo que possui o valor será aberto para edição. Assim, trocar o dado e
pressionar “Enter”.

1 2

3
Ficará aberto para edição 46
DEBUG – Manipulação de Dados
Manipulação de Valores

Para alterar valores de uma tabela interna, é necessário acessar


outras ferramentas, já que mais de um dado poderá ser editado
simultaneamente.

Assim, fazer:

1) Abrir os valores da tabela (duplo clique no monitor).


2) Clicar em “Serviços da Ferramenta”

47
DEBUG – Manipulação de Dados
Manipulação de Valores

3) Um popup com as opções disponíveis será demonstrado

48
DEBUG – Manipulação de Dados
Manipulação de Valores

4) As opções mais utilizadas são:

Modifica uma linha em específico


Elimina uma linha em específico
Anexa uma nova linha no final com base em outra
Anexa uma nova linha em um índice específico
com base em outra

Elimina uma ou mais linhas, sendo excluídas os


itens indicados no range de índices

49
DEBUG – Monitor
Algumas funcionalidades

O monitor auxilia com a manipulação de variáveis e análise de


códigos. Este, por si, também possui atributos que facilitam sua utilização:

50
DEBUG – Monitor
Localizador de Rotinas

• Localizador de rotinas
• Auxiliam determinar em que objetos determinada rotina se
encontra. Muito utilizada em debugs de processos standard, onde
normalmente possuem cadeias de programas sendo acionados.

Programa Include Linha em Depuração

Tipo de Evento Evento, Sub-rotina, etc.

51
DEBUG – Monitor
Localizador de Rotinas

• Outras Ferramentas – Objetos de rotinas


• Auxiliam identificar objetos instanciados e criados dentro da rotina
em análise.
• Permite verificar quais objetos são locais e os globais, bem como
análises de memórias utilizadas por estes.

Análise de variáveis

Objetos Locais

Objetos Globais

Análise de variáveis Análise de memória


utilizada por determino(s)
objeto(s) 52
DEBUG – Monitor
Localizador de Rotinas

• Outras Ferramentas – Manipulação do Monitor


• Auxiliam na manipulação dos objetos, verificando seus valores,
removendo estes da análise, comparando valores de variáveis e
também onde está sendo utilizado na rotina.

Indica onde o objeto é utilizado


Compara valores de objetos

Elimina linhas em específico


Desmarca tudo
Seleciona tudo

Limpa o monitor (elimina tudo) 53


DEBUG – Watchpoints
Watchpoints

O Watchpoint pode ser classificado como um “break-point”


condicional, ou seja, um break será acionado quando determinada condição
for atingida.

Esse método é muito pertinente em longos processamentos,


principalmente em “Loops”.

Pode ser encontrado no menu principal do monitor:

54
DEBUG – Watchpoints
Watchpoints

Para ativar o watchpoint, indicar a variável de análise e o valor que


deverá acionar a chamada do “break-point”. Verificar se não contém erros e
salvar:

55
DEBUG – Troca de Usuário
Debugar processo de outro usuário

O debug está, por default, configurado para o usuário de logon.

Entretanto, muitas vezes é preciso debugar um processo inicializado


via portal (ou RFCs) que se conectam ao SAP por outro usuário. Vale
salientar que esta funcionalidade é restrita para requisições externas e que é
necessário validar se o usuário a ser adicionado em modo debug possui as
devidas permissões para tal.

Sendo assim, é possível, via ferramenta, realizar a troca do


responsável que acionará a depuração.

Para realizar a configuração, acessar:

Menu > Utilitários > Configurações > Editor ABAP > Depuração

56
DEBUG – Troca de Usuário
Debugar processo de outro usuário

Exemplo, visualmente:

57
DEBUG – Cenários Específicos
Como debugar cenários em específico

Conforme dito, a depuração auxilia a identificação de processos via


análise de códigos, seja por linha ou por blocos.

Entretanto, em alguns cenários, é necessário somente a validação


de comportamentos da rotina, sem a necessidade do entendimento de todo o
código.

Um exemplo para tal caso seria mensagens de erro, disparadas em


programas standard ou “Z”, em que muitas é desconhecido onde estão sendo
chamadas. Seria de árduo esforço buscar linha a linha; então, desta forma, é
possível adicionar um “sinalizador” que será acionado assim que determinado
cenário for encontrado.

Diferentemente do watchpoint, este tipo de debug não precisa indicar


o valor para uma variável, já que busca comandos em específico.

58
DEBUG – Cenários Específicos
Como debugar cenários em específico

Para criar, realizar o seguinte procedimento:


Abrir modo debug > Pontos de Parada > Pto. Parada Em

Note que, além de mensagens, é possível também depurar outros


cenários em específico (ex: métodos, instruções (indicar aqui comandos),
etc).
59
DEBUG – Controle Break Points
Como verificar quais breaks estão ativos; como manipulá-los

Quando um ponto de parada é acionado, para desativá-lo é


necessário clicar neste até indicar que não está mais em funcionamento.

Porém, quando se é adicionado muitos breaks, watchpoints ou


pontos de paradas em instruções comumente chamadas, ao invés de realizar
o processo de desativação manualmente, a SAP disponibiliza junto a seu
monitor, uma ferramenta de controle e manipulação de pontos de parada.

Para acessá-lo, é necessário abrir o modo debug e acessar a aba


“Ptos. Par./watchpts

60
DEBUG – Controle Break Points
Como verificar quais breaks estão ativos; como manipulá-los

Neste local é indicado onde o ponto de parada está adicionado, se


está ativo ou inativo, e etc.

Também é possível manipulá-los em massa ou individualmente,


selecionando suas respectivas linhas.

61
Obrigado!

Beatriz A. Calesco

Você também pode gostar