Você está na página 1de 17

ABAP Debugger

1. 2. 3. 4. 5. 6. Modo Debugger Overview Expandindo Subestruturas Breakpoints em Programas Breakpoints no Debugger Watchpoints

Modo Debugger

Existem quatro diferentes maneiras de iniciar o modo Debugger:


Atravs do Repositrio Browser(transao SE80), selecionando Test >> Execute; Atravs do Editor ABAP selecionado o boto Debugging; A partir de qualquer tela selecionado System >> Utilities > Debug ABAP; Atravs de breakpoints (pontos de parada) dentro do cdigo fonte e executando o programa;

Overview
1

No modo Debugger, a tela dividida em duas reas. Na rea superior, o sistema apresenta o cdigo do programa. Na rea inferior contm diferentes informaes sobre o cdigo do programa, dependendo dos parmetros que voc selecionar. Voc pode alterar as informaes apresentadas utilizando os pushbuttons no application toolbar. Voc pode expandir a quantidade do cdigo do programa apresentado selecionando Increase prog. section size. Voc pode mover uma linha para o inicio da rea apresentada utilizando um duplo click sobre a mesma; Voc pode apresentar o comando atualmente sendo processado selecionado Display current statement. Este procedimento muito til quando voc est processando Internal Tables. Voc pode apresentar o contedo de at oito campo no Field Display. No rodap da tela do Debugger apresentado os trs mais importantes campos do sistema e seus componentes.

Expandindo Subestruturas

Para apresentar uma estrutura complexa, selecione Goto >> Structured Field. Voc pode navegar dentro da estrutura selecionando duplo click em um componente individualmente; O sistema apresenta o comprimento da estrutura do campo, juntamente com o nome, tipo, tamanho e os seus contedos.

Breakpoints em programas
3

Existem vrias maneiras de atribuir breakpoints em programas: Atravs do Editor: Dentro do Editor ABAP, voc pode atribuir breakpoints antes mesmos de executar o programa. Para isto utilize o comando BREAK-POINT ou selecione Utilities >> Breakpoints >> Set. Linhas que so apresentadas marcadas com o smbolo STOP esto com o breakpoints ativos. Voc tambm pode criar breakpoints que so baseados em contedo de campos (watchpoints).

Breakpoints no Debugger
4

Para criar breakpoint dentro do Debugger, posicione o cursor em cima da linha de cdigo e selecione duplo click. Um smbolo STOP aparece ao lado da linha onde o breakpoint foi criado. Assim como criar breakpoint para linha(line-oriented), voc tambm pode criar breakpoint do tipo statement-oriented no Debugger. O menu Breakpoint permite que voc crie breakpoints para ABAP statement, eventos, subrotinas, funes e Excees de Sistema. Voc pode visualizar um overview dos breakpoints que tem ativos selecionando Breakpoints. Para eliminar um breakpoint posicione o cursor sobre o mesmo e selecione duplo click.

Watchpoints
5

Watchpoints permite que voc interrompa seus programas quando o contedo de um campo for alterado ou a base de comparao com uma constante seja atingida de acordo com um outra constante ou o contedo de outro campo. Voc pode ativar cinco watchpoints. Voc pode unir watchpoints utilizando os operadores AND ou OR.

Nota: Debugar programas em produo pode causar inconsistncia de dados, visto que as funes /N e /I conduzem ao database commit. Similar, o sistema coloca em funcionamento commits implcitos no modo normal.

ONLINE
6

1. Os Componentes Principais de um Dialog Program (On-line) * 2. Screen Painter - ABAP/4 * 3. Comunicao: Tela ABAP/4 module Pool * 4. Definindo o Layout (Graphical Screen Painter) * 5. Visualizaes de Listas de Campo (Field List Views) * 6. Definindo o controle do fluxo * 7. Processando o MODULE POOL * 8. Definindo campos no MODULE POOL * 9. Definindo chamadas (Cdigos de Transao) * 10. Checagem automtica de campo de Entrada * 11. Checando campo de entrada no MODULE POOL com dilogo de erro * 12. Checando Grupo de Campos *

Lendo Cdigos de Funo em Programas *


13. Seqncia Dinmica de Tela: Overview * 14. Ajustando a Prxima Tela Dinamicamente * 15. Menu Painter - Overview * 16. Definindo a Interface I * 17. Definindo a Interface II *

Definio Automtica de cones para Teclas de Funo *


18. Definindo Menus de rea *

1. Os Componentes Principais de um Dialog Program (On-line)

Voc usa o Screen Paiter e o Menu Painter para criar e desenhar telas modelas e programas de telas.
Voc define o processamento lgico no module pool do programa ABAP/4 . Estruturas de dados so definidas no Dicionrio ABAP/4. Voc pode acessar esses estruturas do programa ABAP/4 e quando define campos de tela. O processador de dilogo controla o fluxo do seus programa dilogo.

2. Screen Painter - ABAP/4


Para criar uma tela, siga os seguintes passos: o Defina as caractersticas bsicas da tela (screen atributes) o Projete um layout de tela (in full screen editor) o Defina os atributos dos campos (field list) o Escreva o fluxo lgico da tela (programa) Os componentes do programa ABAP/4 mais importantes so encontrados nos seguintes objetos: o Global data ou Estruturas do Dicionrio no programa include TOP (declaraes data) o Module PBO (Process Before Output Processos antes de Apresentar a Tela) o Module PAI (Process After Input Processos aps Entrada de Dados) o Sub-rotinas (se necessrio)

3. Comunicao: Tela ABAP/4 module Pool


O fluxo lgico da tela dividido em dois eventos para cada tela: o O evento PBO executado antes da tela ser apresentada. o O evento PAI executado aps o usurio pressionar ENTER. O sistema processa os mdulos de evento numa seqncia Em cada mdulo, o controle passa do processador de dilogo para o processador ABAP/4. Depois do processamento, o controle retornado para o processador de dilogo. Quando todos os mdulos do PBO forem processados, o contedo dos campos da rea de trabalho (work rea) ABAP/4 so copiados para os campos de mesmo nome da rea de trabalho (work rea) da tela. Antes do mdulo PAI processado. O contedo dos campos na rea de trabalho da tela (work rea) so copiados para campos de mesmo nome na rea de trabalho (work rea) ABAP/4.

4. Definindo o Layout (Graphical Screen Painter)


Para projetar telas, voc usa o Screen Painter. A interface do Graphical Screen Painter contm funes fceis de usar para definir os vrios elementos da tela (ex.: campos de entrada e sada, campos textos, caixas, etc.). Voc escolhe cada elemento da tela e posiciona na tela usando o mouse. Para deletar elementos da tela, voc seleciona o elemento com o mouse e ento escolhe Delete. Para mover elementos da tela, voc usa o mouse para arrastar o elemento para a posio desejada.

Note: Na verso 3.0, a Graphical Screen Painter suportada pelo Windows NT, Windows 9x and UNIX. Se voc est usando outro sistema operaciona,. Voc usa a Alphanumeric Screen Painter.

5. Visualizaes de Listas de Campo (Field List Views)


o o o o o o o Field types Texts/templates General attributes Display attributes Modification groups Matchcode/reference H seis visualizaes de listas de campos para manuteno dos atributos dos campos da tela. Alternativamente, voc pode defini-los de uma das listas. Manuteno de atributos para um campo tambm possvel no fullscreen editor. Voc pode descobrir o correspondente do tipo de dado externo para o tipo de dado interno (ex.: tipos de dados ABAP/4) pela referida documentao da palavra chave TABLES no ABAP/4. Exemplos so os seguintes:

Tipo de dados do dicionrio ABAP/4 Tipo de dados no ABAP/4 CHAR C NUMC N

6. Definindo o controle do fluxo


PORCESS BEFORE OUTPUT. MODULE INITIALIZE. PROCESS AFTER INPUT. MODULE READ_SPFLI.

o o

Voc especifica a definio de seus Mdulos de comandos na lgica do fluxo. Se voc escolhe um mdulo com duplo clique, o sistema cria os comandos adequados MODULE ... ENDMODULE no programa include apropriado. Este conhecido como navegao adiantada. Se no existe o programa include, o sistema criar um se voc permitir. Ele tambm insere um comando INCLUDE no programa principal.

7. Processando o MODULE POOL


MODULE INITIALIZE OUTPUT. CLEAR SPFLI. ENDMODULE. MODULE READ_SPFLI INPUT. SELECT SINGLE * FROM SPFLI WHERE CARRID = SPFLI-CARRID AND CONNID = SPFLI-CONNID. . .

. ENDMODULE.

Os comandos do ABAP/4 do MODULE para PBO contm uma adio OUTPUT, quando os comandos do mdulo for do mdulo PAI contm uma adio INPUT.

8. Definindo campos no MODULE POOL


Top include MTALATOP
PROGRAM SAPMTALA. TABLES: SPFLI. DATA: ... .

Ou GLOBAL DATA
DATA: ... .

No processamento de dilogo, o dado passado entre as telas e o processamento do programa ABAP/4. O sistema executa esta comunicao automaticamente, mas voc deve usar nomes idnticos nas telas e no MODULE POOL. Defina os campos relevantes como dados globais no programa include TOP. Para fazer isso, voc processa o programa include como um todo ou relacionando sees de dados globais ou estruturas do Dicionrio. Mesmo que, o programa include TOP est implicitamente no controle.

9. Definindo chamadas (Cdigos de Transao)


STMP Programs SAPMTALA Create Transactions Escolher Cdigo de Transao TALA Tipo de Transao X Dialog transaction Continue Transaction code TALA Transaction text Test

10

Program SAPMTALA Screen number 100 o o o Voc pode iniciar um programa de dilogo ABAP/4 (transao) com um especfico cdigo de transao. Tansaes customizadas devem comear com Z ou Y. O sistema cria suas especificaes na tabela TSTC (ao invs de criar uma transao na lista de objetos, voc pode dar manuteno na tabela voc mesmo)

10.
o

Checagem automtica de campo de Entrada


Aps o usurio ter finalizado uma tela (ex. ter entrado dados e pressionado a tecla ENTER ou ter acionado alguma outra funo), mas antes dos mdulos do PAI serem processados, o processador de dilogo executa um nmero de checagens automticas. O primeiro destes s ser certificado so os campos requeridos na entrada de dadops. Uma chave estrangeira executada somente se um campo da tela se referir a um campo do Dicionrio pela qual a checagem da tabela tem de estar definida e o atributo apropriado tem de estar selecionado. Em alguim momento, a funcionalidade F4 ativada. Isso significa que possvel a entrada de dados para um campo. Ex.: a chave de valores da tabela de checagem so apresentadas.

o o

11. Checando campo de entrada no MODULE POOL com dilogo de erro


PROCESS AFTER INPUT. FIELD <screen field> MODULE <module>.

MODULE module INPUT. . . . MESSAGE E... . ENDMODULE.

11

Se voc quer checar valores de entrada no MODULE POOL e iniciar um dilogo de erro de um resultado negativo, voc usa o comando FIELD com a adio MODULE. Isto significa que o relevante mdulo executado somente para o campo especificado no comando FIELD. Se o mdulo resulta numa mensagem de erro (E) ou warning (W), a tela reapresentada sem o processamento dos mdulos PBO. O texto da mensagem apresentado e somente o campo checado por este mdulo apresentado para entrada de dados novamente. Note que somente o comando FIELD responsvel por fazer a leitura do campo para entrada novamente. Se voc formular uma mensagem num mdulo sem chamar o mdulo no comando FIELD, a mensagem apresentada, mas o campo no lido para entrada de dados novamente.

12.

Checando Grupo de Campos

PROCESS AFTER INPUT. CHAIN. FIELD: screen field1, screen field2, ... screen fieldn. MODULE module. ENDCHAIN. MODULE module INPUT. ... MESSAGE E ... . ENDMODULE.

o o

o o

Se voc quer checar muitos campos para entrada de dados novamente no evento de um erro de dilogo, voc deve especificar todos no comando FIELD e concatenar estes junto com o comando MODULE para checagem no CHAIN. Um campo pode ser usado em diferentes CHAINs. Note que o comando FIELD no somente faz a leitura para entrada de dados novamente. Qualquer um dos campos modificado durante o processamento do PAI somente se torna visveis no evento do erro se eles so tambm especificados no camando FIELD do referido CHAIN. Lendo Cdigos de Funo em Programas Cada boto deve ter um cdigo de funo Quando o usurio pressionar o boto, o mdulo PAI acionado.

12

Quando o usurio chama uma funo (pelo significado do boto, menu de entrada ou tecla de funo), o cdigo de funo aparece no campo que voc entra no na lista de campo que os atributos pr-definidos de tamanho 4 e formato OK. Isto conhecido como campo de OK code. Poder reagir a um cdigo de funo no module pool do ABAP/4, voc define um identificador nomeado Ok code. Este contm o cdigo da funo atual depois do campo ter sido transportado. Voc est recomendado a usar uma verso de backup do campo de okcode para evitar enviar uma tela que j tem um cdigo de funo.

13.
o

Seqncia Dinmica de Tela: Overview


Voc pode modificar uma seqncia de tela dinamicamente por Usando SET SCREEN para atualizar a prxima tela temporariamente Usando CALL SCREEN para inserir um processamento de uma ou mais telas antes da tela atual. O processamento da tela atual continua com os comandos aps esta chamada.

14.
o o o o

Ajustando a Prxima Tela Dinamicamente


O comando SET SCREEN nnnn altera temporariamente a prxima tela. A tela nnnn deve ter uma tela no mesmo module pool. A prxima tela processada depois da tela atual, a menos que voc termine a tela atual com o comando LEAVE SCREEN. Se voc quer encerrar a tela atual e ir diretamente para a prxima tela num nico passo, voc pode usar o comando LEAVE TO SCREEN nnn.

15.
o

Menu Painter - Overview


Voc usa o Menu Painter para definir funes na tela no stautus particular e determina-as para a barra de menus prpria. Para cada status, voc define que as funes de menu esto ativas ou inativas.

16.
o o

Definindo a Interface I
Numa request, o sistema prope valores padres par a barra de menu e define a tecla de funo, mas voc pode modificar isso. Barras de menu podem contger at oito menus. Voc pode definir at seis destes vov mesmo, mas os menus System e Help so adicionados automaticamente pelo sistema. Um nico menu contm at 15 entradas, incluindo as funes e suas descries, nomes de sub-menus e linhas separadoras. Voc poderia especificar tambm todas as funes que so ativadas num status como ativa na barra de menu.

o o

17.
o

Definindo a Interface II
Voc determina as funes ativas que um usurio provavelmente mais precisa no situao atual para a barra de botes. Antes de voc fazer iss, o cdigo de funo deve ser determinado para uma tecla de funo.

13

Voc determina cdigos de funo para teclas de funo pelas entradas destas em "Configuraes Recomendadas de Teclas de Funes" ou "Sees de Teclas de Funo Definidas Livremente" . O sistema automaticamente define as teclas de funo no padro barra de ferramentas para teclas de funo especial.

Definio Automtica de cones para Teclas de Funo

Tecla de Funo Significado Icon (Smbolo) Enter Enter "ticado" F11 Salvar Pasta F3 Voltar Seta p/ a esquerda Shift+F3 Sair (programa) Seta p/ cima F12 Cancelar (tela) "X" Ctrl+P Imprimir Impressora Ctrl+F Pesquisar Binculo Ctrl+G Continuar Pesquisando Binculo "+" Ctrl+Screen up Primeira Pgina Pgina com seta dupla Screen up Pgina Anterior Pgina com seta p/ cima Screen down Prxima Pgina Pgina com seta p/ baixo Ctrl+Screen down ltima Pgina Pgina com seta dupla F1 Help Interrogao o o O sistema define automaticamente cdigos de funo que voc define na barra de ferramentas padro para teclas de funo especial. Para descobrir quais definies aplicadas para as funes no status atual, clique no termo "Barra de Ferramentas Padro".

18.

Definindo Menus de rea 14

Quando for dar manuteno em Menus de rea (que so desenvolvimentos de objetos de classes), voc usa uma verso especial do Menu Painter. Aqui, voc define os cdigos de transao para programas dilogos chamados ao invs de especificar cdigos de funo. Esses cdigos de transao no tm tipos especiais de funo. Eles trabalham como CALL TRANSACTION.

ABAP Runtime Analysis


1. 2. 3. 4. Overview Limitando a Anlise Obtendo os Dados Analisando os Resultados

Overview
Para acessar a tela inicial do ABAP Runtime Analysis, utilize a transao SE30, ou a partir da tela inicial do R/3 selecione System >> Utilities >> Runtime analysis >> Execute. O ABAP Runtime Analysis permite que se analise um objeto individualmente, objetos como transaes, programas, mdulos de funo ou at mesmo sub-objetos em tempo de execuo. O ABAP Runtime Analysis especialmente utilizado individualmente para objetos que consumem muita CPU, ou seja, levam muito tempo executando para obter o resultado. Os resultados do ABAP Runtime Analysis so salvos em um system file no application server corrente por 8 dias. O arquivo de resultado pode ser acessado dentro do ABAP Runtime Analysis do frontend a qualquer hora. O parmetro de sistema abap/atrasizequota especifica quanta memria deveria ser reservada dentro do system file para armazenar os dados de resultados. O parmetro de sistema abap/atrapath especifica onde os dados de resultados esto armazenados no system file.

Limitando a Anlise
Nesta fase voc decide qual objeto deve ser analisado. Voc tambm decide qual tipo de agregao ser utilizada( full aggregation, aggregation per calling position ou no aggregation) e a utilizao de filtros para anlise. 15

Obtendo os Dados
Voc pode obter a anlise da execuo para a seo corrente do usurio, isto , a seo atual na qual o ABAP Runtime Analysis executado. Alternativamente, em modo paralelo, voc pode inicial o ABAP Runtime Analysis para um work process do R/3 e gravar os dados de runtime para um objeto que foi inicialmente processado por este work process.

Avaliando os Resultados
Para analisar um objeto, na tela inicial do ABAP Runtime Analysis , especifique o objeto a ser analisado (transao, programa ou function module). Para executar o objeto, selecione Execute. Este procedimento causa a execuo do objeto na mesma seo do usurio que est executando o ABAP Runtime Analysis. Aps a execuo do objeto, retorne para a tela inicial do ABAP Runtime Analysis e voc ter na tela um "frame" com os resultados para voc iniciar sua anlise. Selecionando o boto Analyze ser apresentada uma tela com um grfico de barras comparando a distribuio do tempo de execuo entre o processamento ABAP, o banco de dados e o prprio sistema R/3. Com estes dados voc ter uma base de onde comear a analisar em seu objeto analisado. Desta tela de overview, voc pode acessar vrios outros detalhes. Selecione os cones na barra de ferramentas ou do menu, selecione Goto >>:

Hit list: Lista todas as partes do programa utilizadas ou comandos utilizados; Group hit list: Lista todos os comandos de acordo com a categoria; Table his list: Lista todos os acessos as tabelas de banco de dados; Hit list of internal tables: Lista todas as tabelas internas; Call hierarchy: Lista os objetos analisados em ordem cronolgica;

16

17