Você está na página 1de 389

Academia SAP ABAP

Gplux Treinamento SAP

EC400 – Overview ABAP Workbench

GPLUX TREINAMENTO SAP 1


Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Objetivos do Curso
Este curso tem por objetivos dar algumas noções básicas do que venha
a ser o ABAP Workbench.
Serão Abordados aspectos técnicos da arquitetura, das partições de
memória onde os programas são executados, sintaxes de comandos ABAP,
variáveis, estruturas, tabelas internas, eventos,técnicas para modularizar
um programa com sub rotinas, módulos de função, programação orientada
a objetos, telas de filtro, dicionário de dados e seus objetos, acessos à
tabelas do banco de dados, como funciona e se aplica uma checagem de
autorização, link entre programas e ferramentas para análise de um
programa.
Para todos os aspectos abordados, haverão exercícios referente a teoria
vista , onde serão praticadas as respectivas matérias.

2
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Índice
• Arquitetura do Sistema, Configurações e Fluxo de um Programa ABAP...................................................... Pag. 003

• Introdução ao ABAP WorkBench, Repositório, Desenvolvimento e Organização de um ABAP.............. Pag. 048

• Elementos Básicos da Linguagem ABAP ......................................................................................... ............. Pag. 110

• Técnicas de Modularização – Sub rotinas, Módulos de Função e Programação Orientada a Objetos .. Pag. 137

• Data Objects complexos, Estruturas e Tabelas................................................................................. ............. Pag. 252

• Dicionário de Dados e seus Objetos........................................................................................... .................... Pag. 281

• Acessando Tabelas do Banco de Dados......................................................................................................... Pag. 295

• Checagem de Autorização...................................................................................................... .......................... Pag. 314

• Tela de Filtro para Programas do Tipo Report, consistências, Variantes..................................................... P ag. 321

• Chamadas de programas, Links entre programas do tipo Module Pool e Reports..................................... Pag. 361

• Ferramentas para Análise de Programas ....................................................................................... ................. Pag. 377

• Outros Cursos Avançados...................................................................................................... .......................... Pag. 389


3
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

4
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

5
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

6
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

7
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

8
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

9
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

10
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

11
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

12
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

13
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

14
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

15
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

16
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

17
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

18
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

19
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

20
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

21
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

22
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

23
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

24
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

25
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

26
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

27
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

28
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

29
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

30
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

31
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

32
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

33
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

34
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

35
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

36
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

37
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

Transação
SM59

38
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

Transação
SWO1

39
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

Transação
BAPI

40
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

41
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

42
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

43
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

44
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

45
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

1 2

46
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon

Mandante/
Client

Usuário

Linguagem

47
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


SAP Logon
Menu do
Usuário

Menu
Completo
da SAP

48
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

49
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

50
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

51
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Transação
SE80
Opção
Package

52
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

53
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

2
54
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

3
4
55
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

4 5
56
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

57
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

58
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

59
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

60
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para quando se
9 deseja montar
uma equipe

10

61
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

11

62
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 1 – Criar um pacote com o nome
de ZPACOTE_## e posteriormente a
respectiva request, .

63
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

SE80

Transações

SE38

Reports

SE11
SE37
SE24
64
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

65
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

66
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

67
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

68
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

69
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

70
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Não se
informa
quantidad
e de Bytes

Informa-se quantidade
de Bytes, max. 65535

Max. 16
bytes
71
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comando TYPES,
é para se definir
atributos/
características.

72
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Dicionário de
Dados SE11, onde
temos tipos
globais definidos,
como;
Data Element,
Estruturas,
Tabelas,
Campos em
Estruturas/Tabela
s

73
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos
então criar
variáveis em
um programa
ABAP,
baseado e
atributos
definidos
localmente
e/ou Dic.
Dados ou usar
tipos
standard.
74
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

75
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Arquitetura do Sistema

76
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Se10
ou
SE09
Para lib.
As Tasks
77
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Se10
ou
SE09
Para lib.
A Request

78
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

79
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

80
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

81
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

82
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

83
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

84
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

85
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

86
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

87
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

88
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Clicando em Pretty
Printer, você faz a
identação do teu
código fonte
89
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Check de Syntax para


ver se existem erros
de codificação a serem
corrigidos

90
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando não houver mais


erros de syntax, devemos
ativar o objeto programa
para testar
91
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Confirmar a
ativação do objeto
programa

92
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Depois de ativado o
programa, devemos
testa clicando neste
icone ou acionar a
tecla F8 93
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Ao executar o programa a primeira coisa


que aparece é a tela de filtro para
restrição do processamento, preenche-se
os campos e clica-se no icone execute ou a
tecla F8.
94
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para Imprimir

Este é o relatório gerado pelo


programa.
Para retornar clicar em BACK.

95
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Retornar tela
anterior 96
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Na tela de entrada do editor


ABAP, transação SE38,
podemos executar um
programa clicando no icone
execute ou tecla F8.
97
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Editor antigo

98
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para mudar de editor,


clicar no menu
horizontal em Utilities
e optar por Settings.

99
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Aqui poderemos sempre


optar pelo velho ou novo
editor ABAP, conforme
conveniência.

100
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Após selecionar o
Editor, neste caso o
novo editor,
confirmar clicando
ENTER.

101
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Novo Editor

102
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Pode-se retrair ou
expandir comandos.

103
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O Novo editor sujere


comando, para aceitar é
só clicar em TAB.

Toda vez que


precisar imprimir
literais, estas
deverão estar entre
aspas simples.

104
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Tanto a SE10
ou SE09,
ambas as
transações
servem para
liberar
objetos para
liberar tasks
para
transporte
105
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

106
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Seleciona-se a TASK e
depois clica-se no
icone, para liberar
desenvolvimento já
testado e ativo para
que seja transportado

107
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Após as tasks serem


liberadas para transporte, o
responsável pelo projeto
libera a request,
selecionando a request e
clicando no icone.

108
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 2 – Criar um programa ABAP
chamado ZABAP_P01_##, que deverá dar o
display dos dois campos digitados em uma
tela de filtro.
Criar uma tela de filto com dois campos do
tipo caracter de 25 bytes.
Executar o programa dando display dos
dois campos digitados na tela de filtro.

109
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

110
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Text Symbols, são elementos de


texto que poderemos utilizar em
um programa ABAP. Estes Na tela do Text
elementos devemos utilizar Symbol, através
toda vez que precisarmos de do menu,
uma literal. Double click sobre o utilities ->
text symbol para criar. tradução 111
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Tipos Locais,
são exclusivos,
enquanto que
tipos globais
são
compatilhados

112
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comando Clear,
inicializa os
campos
conforme o
tipo, se for alfa
recebe brancos,
se for
numérico,
recebe zeros.

113
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Compute é uma
comando para
efetuar calculos,
mas como no
COBOL ele pode
ser inibido, ou
seja, é opcional

114
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comandos
Condicionais, onde o
IF é encerrado por
ENDIF e o case é
encerrado por
ENDCASE.
115
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

116
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O Comando DO que é
encerrado por ENDDO,
WHILE que é encerrado
por ENDWHILE, SELECT
para leitura de tabelas
sequêncialmente é
encerrado por
ENDSELECT e o
comando LOOP que é
utilizado para leitora de
tabelas internas é
encerrado por
ENDLOOP.

117
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Variáveis
que o
sistema
disponibiliz
a em um
programa
ABAP.

118
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

A variável SY-SUBRC, é
uma variável muito
importante em um
programa ABAP, pois
através dela
poderemos saber se
uma comando
imediatamente
anterior foi executado
com sucesso, exemplo
sy-subrc = 0 neste
caso, foi para saber se
registro foi lido ou não,
sempre devemos ter
uma lógica para ambas
as situações. 119
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

As
Mensagens
são
cadastradas
por classe de
mensagem
em uma
tabela T100,
transação
SM30.

120
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

121
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Cross-Client,
significa que não 4
depende de
client/mandante. 122
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando a classe de
5 mensagem não existe,
primeiro devemos criar
esta classe, do contrário só
criamos as mensagens
propriamente dita.
123
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Entramos com uma


descrição para a
classe de mensagens
para só depois
6 criarmos as
mensagens.

124
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

125
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

9 Em uma
mensagem onde
encontramos &,
esta poderá ser
substituída por
uma variável,
uma mensagem
poder ter no
máx. 4 variáveis
acompanhando
o texto.
126
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

10

Após a
conclusão
do
cadastrame
nto das
mensagens,
clicar em 11
BACK para
sair. 127
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
* Comando Message, acompanhado de no máx. 4 variáveis/literais,
* desde que esteja previsto na mensagem com &.
MESSAGE i000(zabap) with pa_ola 'I´m Here' sy-datum pa_digit.

Mensagem do tipo I, Informativa, esta mensagem aparece


em um PoPup.
128
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Mensagem do tipo S, aparece no


rodapé da próxima tela e ser
apresentada.
MESSAGE S000(ZABAP) WITH ...... .

129
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

DEBUG é uma
ferramenta
para depurar
um programa
e/ou
acompanhar a
lógica de
execução de
uma programa
ABAP.
Podemos sair
debugando um
programa
desde o início.
130
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos
debugar um
programa a partir
de um
determinado
momento,
colocando um /H
no campo
command field
ou p/o ABAPEIRO
OK-CODE,
posteriormente
tecla ENTER.

131
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Este icone,
single step, é
para
acompanhar
passo a passo a
execução das
instruções de
um programa
ABAP.

132
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Este quarto icone,
CONTINUE, deve
ser clicado quando
desejamos
interromper o
debug ou quando
desejamos
continuar o
processamento
até um outro
ponto de parada.
Double click em
tempo de debug
em um outro
comando você
determina um pto
de parada. 133
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Você pode determinar


um ponto de
observação pelo
WatchPoint, ou seja,
quando um campo
atinge um determinado
valor, o sistema deverá
entrar no modo debug.

134
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em tempo de
DEBUG você pode
alterar o conteúdo
de uma variável.
1-clicar icone lápis
2-abre o campo
3-alterar conteúdo

135
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 3 – Criar um programa ABAP chamado
ZABAP_P03_##, que deverá ter 3 campos na tela de filtro.
Criar uma tela de filtro com dois campos do tipo I e um campo
do tipo C de 1 bytes, neste campo a pessoa poderá digitar os
operadores +, -, /, * e %.
Executar o programa fazendo o cálculo de acordo com que foi
digitado na tela de filtro.
O resultado da operação deverá ser dado em um campo tipo P
com duas decimais. Mensagem 002 para operador inválido e
mensagem 003 para divisão por zero da classe de mensagem
ZABAP.
Utilizar text symbols, no caso utilizarem literais.
Após a conclusão e teste do programa, o mesmo deverá ser
debugado nas suas diversas maneiras, experimentando as
funções passo a passo, consulta conteúdo de variável e o
execute.
136
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Subrotinas

Com o objetivo de ficamos Módulos de


repetindo lógicas repetitivas
em um programa ou mesmo
Função
em um sistema, optamos por
encapsular estas lógicas e toda
vez que ela for necessária, nós Métodos
a incorporamos ao programa,
desta forma evitamos
redundâncias também,
facilitando a manutenção.
137
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

138
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Não devemos, mas


podemos chamar
subrotinas ou
métodos definidos
em outros
programas, mas
para isso se tornar
possível, devemos
fazer passagem de
parâmetros.

139
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

SE37 SE24
140
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em ambos os casos, não podemos fazer


acesso diretos as variáveis, nem de um lado
e nem do outro.
141
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

A comunicação
entre as lógicas
sempre se da
através da
passagem de
parâmetros ,
nos dois
sentidos.

142
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Chamada de
uma Subrotina

Subrotina

143
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Se uma
subrotina, em
sua lógica for
utilizar variáveis
globais, ela
passa a ser uma
subrotina
exclusiva, ou
seja, não poderá
ser
compartilhada
por outros
programas.
144
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em princípio a
subrotina deveria
ser independente do
programa, para
tornar isso possível, As variáveis
devemos então globais a na
fazer a passagem de subrotina é F1 e
parâmetros, assim a b passa a ser F2.
lógica da subrotina
passa a ser
independente, mas
atenção, a lógica
tem de usas como
variável os
parâmetros.
145
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

146
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

A chamada da
subrotina,
passando os
parâmetros.

Como definir o
recebimentos
dos parâmetros.

147
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Conveniente,
mas não
obrigatório,
determinar o
tipo de
parâmetro que
a subrotina
deseja para
executar a
lógica sem
erros.

148
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos em
uma subrotina
criar variáveis
através do
comando
DATA, porem a
visibilidade é
apenas local,
ou seja, a
variável só
existe na
memória, em
tempo de
execução da
rotina.
149
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Neste
exemplo o
único campo
habilitado
para sofrer
alteração na
subrotina é o
camo
gv_result que
na subrotina é
representado
pelo nome
cv_pc.

150
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

151
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

2
1

3
4

152
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Qdo se define uma
subrotina
automaticamente, o
sistema por default
pega o nome dos
campos originais e
concatena um ( P_ )
como prefixo, mas eu
posso mudar p/o nome
que desejar, exemplo,
poderia chamar os
campos de
A, B e R.

153
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O resultado do
cálculo na
rubrotina vai estar
na variavel7

154
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em tempo de
DEBUG, se clicar
em Execute, o
sistema executa a
rotina sem
mostrar o passo a
passo, ou seja, vai
para a instrução
seguinte do
perform, Return
significa, sair de
uma rotina e vai
p/a instrução
seguinte .
155
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

SE38

156
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Clicar em COPY

157
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

1
2

4
5
Clicar em
Selecionar tudo

Copiar

158
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

7
6

Check de
Ativar
syntax

9
159
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Testar
Antes de se alterar uma cópia,
devemos ter certeza de que a
cópia foi feita corretamente,
após a cópia executar o
10 programa para sabermos se ele
funciona como o original.

11

160
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 4 – Copiar o programa ABAP
ZABAP_P03_## para ZABAP_P04_## , e
nesta nova versão de programa, fazer o
cálculo do percentual em uma subrotina.

161
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando falamos em módulos de


função, primeiramente temos que
ter em mente de que deve haver
um grupo de funções, pois é ele
que vai acomodar um módulo de
função.
Caso o grupo não exista, vou na
SE37 e crio um que comece com a
letra Z/Y, o systema por sua vez vai
criar um programa ABAP que
começa com SAPLZ/Y.....

162
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Primeiramente, vamos na
transação SE37, podemos
também criar grupos de função
pela SE80, o exemplo será pela
SE37.

163
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estando ne
transação
SE37, seguir
menu.

Preencher nome do
grupo de funções, que
deve começar com
Z ou Y e sua respectiva
descrição, clicar em
SAVE.
164
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Pela SE80,
sequência de
passos para
se criar um
grupo de
funções.

165
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Depois que salvas, associar um


pacote e request de transporte,
poderá ir na transação SE38 e
visualizar o programa que o sistema
criou, SAPL Zmeu_grupo_funcoes,
podendo editá-lo.

166
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Para vocês não se
atrapalharem na criação de
funções, vocês devem ativar
este programa, vejam
também que o sistema já
criou dois includes, um com
final TOP e outro com final
UXX.

167
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Ativar tudo relativo ao grupo de funções, vocês podem


observar isso pelo nome do grupo de funções que derem,
no meu exemplo chama-se ZMEU_GRUPO_FUNCOES.
Neste include com final TOP, que faz parte do grupo de
funções, vocês poderão promover a comunicação entre as
funções, uma vez que as funções não tem comunicação
direta entre elas.

168
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 5 – Criar um Grupo de funções
com o nome de ZGRP_##, com a descrição
de Funções do Grupo ##.

169
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

A Função é uma
lógica encapsulada e
independentes de
qual quer coisa ou
programa.
Uma função
consegue se
comunicar com um
programa através de
parâmetros, pode
receber parâmetros,
executar a lógica e
exportar parâmetros.

170
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Como podemos
ver na fugura ao
lado, uma
função só se
comunica com
um meio
externo por
parâmetros e
como as lógias
são
independentes,
elas só
conseguem se
comunicar com
o que for global.
171
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

172
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando criamos
um novo
módulo de
função na SE37,
primeiramente Pela ordem devemos começar;
devemos 1-Import parameters, sugestão de prefixo IM_
informar os 2-Export parameters , sugestão de prefixo EX_
parâmetros, 3-Changing Parameters, sugestão de prefixo CH_
antes de 4-Tables, sugestão de prefixo TB_
começar o 5- Exceptions, possíveis erros de consistência de
código fonte da Parâmetros, identificados por lógica de
lógica programação
propriamente 6-Por último fazemos então a lógica pelo Souce
dita. Code.
173
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando
terminamos
um módulo de
função,
devemos fazer
a
documentação
e fazer o teste
da lógica antes
de liberar.

174
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Grupo de Funções pela


SE80

175
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Selecionamos
Grupo de
Funções

176
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos também
fazer os
desenvolvimentos
por aqui, utilizando
menu de contexto,
botão direito do
mause, sobre o
objeto.

177
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Na SE37, entrar com o


nome para o Módulo
de Função que deve
começar com Z_ ou Y_
e clicar em Criar.

Na sequencia, entrar com o nome


do Grupo de Funções e uma
descrição, clicar em SAVE.

178
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Primeiro definir os
Import Parameters

Definir os parâmetros a serem


importados, sugestão im_ de prefixo,
Definir seus tipos, se não o fizer, assume
os tipos correspondentes do programa. 179
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Definir os Export
Parameters.

Definir as exceptions,
possíveis
inconsistências para
executar a lógica.180
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Por último o Source Code, onde


faremos a lógica desta função,
como podemos observar, todos os
parâmetros que informamos
anteriormente estão aqui
comentadas e a nossa lógica
deverá agora utilizar estes nomes.
A lógica deverá ser programada
depois dos comentários e antes do
ENDFUNCTION.
181
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Ao terminarmos a lógica,
devemos fazer check de
syntax, identação com Pretty
Printer e por último ATIVAR.

182
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Depois de pronto, antes de liberar para ser


utilizado em programas, devemos fazer um
bom teste para saber se a lógica está
funcionando.

183
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Retornar para
novo teste.

Resultado to teste da
lógica

184
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Novo teste, deixando um


campo em branco.

Exceção que deu


Para seguir por não termos
respondido a um
campo.
185
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 6 – Criar um Módulo de Função
z_calcula_percent_##, com dois valores de
input parameters do tipo Inteiro e um export
parameters do tipo compactado com duas
decimais, fazer o cálculo de percentual. O
campo resultado deverá ter o tipo
DEMO_FOCC-PERCENTAGE.

186
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Como um
programa ABAP
deve chamar
uma função.

187
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Selecionar o
botão Call
Function
digitar a
Uma função NUNCA deverá ser função
digitada manualmente, no editor desejada e
ABAP tem um facilitador que se depois ENTER.
chama Pattern ou Modelo em Na syntax que o sist.
português, clicar nele. Monta, preocupe-se
apenas com seus 188
campos.
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Como tratar as
Exceções, após a
chamada da
função, consultar
a variável do
sistema sy-subrc,
se for igual a 0
está ok, lógica
executada com
sucesso e se for
diferente de 0, é
porque ocorreu
uma exceção.
189
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Marquei o
comando perform e
com menu de
contexto estou
comentando este
comando que
desejo substiruir
com a chamada da
função.
190
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Depois de
posicionar o
cursor, clicar em
Pattern/Modelo.

Uma vez que anulei o


comando anterior,
posiciono o cursor na
linha onde desejo entrar
com o comando da
chamada da função.

191
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Selecione o Call Function e


entre com o nome da função.

Depois de Indicar o nome


da função, clique em
ENTER. 192
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Discomente as linhas
comentadas usando
menu de contexto.

193
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

194
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Agora compare o comando


Perform com o call function, veja
as variáveis que estou utilizando.
Veja também as exceções que
estou verificando através da
variável sy-subrc.
195
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Caso a mensagem
não exista, basta dar
um double click sobre
o código

196
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Caso a mensagem não exista, vem a
pergunta se desejo criar, clico em SIM.

Digito a mensagem desejada e


clico em SAVE.

197
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Clicar em Check
de Syntax.

Clicar em Pretty
Printer.

Clicar em ATIVAR.

198
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 7 – Copiar o programa ABAP
ZABAP_P04_## para ZABAP_P05_## , e
nesta nova versão de programa, comentar o
comando perform e substituir pela chamada
da função desenvolvida no exercício
anterior para fazer o cálculo do percentual.
Ativar programa, testar e debugar.

199
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Uai, o que será


que veio
primeiro, o ovo
ou a galinha ?

200
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Quais são as
partes que
conhecemos
de um
ovo ?

201
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Casca

Clara

Gema

202
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Casca

Visibilidade
Clara

Gema

203
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Visibilidade

Casca
+ Pública

Clara # Protegida

Gema - Privada

204
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Visibilidade

Casca
+ Pública
+ Atributos
Clara + Métodos

# Protegida
# Atributos
Gema # Métodos

- Privada
- Atributos
-Métodos 205
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Mas o que vem a ser uma
Classe
E um Objeto,
Qual diferença ?

206
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Portanto, Quando pegamos uma


Objeto é uma classe e a instanciamos,
Classe ela se transforma em um
Instanciada. Objeto

Classe é uma
Definição

207
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Uma Classe é
representada por três
partes, no topo
informamos o nome da
classe que deve começar
com ZCL_ quando for
global e LCL_ quando for
local, ou seja, definida no
programa. Na sequencia
vem os atributos e por
último os métodos.

208
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Diagrama UML, Unified Modeling Language
Onde definimos o
Aqui informamos o nome de uma Classe.
nome da classe.
Aqui informamos os atributos,
Onde definimos todos os Onde;
atributos que fazem parte + é um atributo público
da classe, com suas # é um atributo protegido
visibilidades. - é um atributo privado

Aqui é onde informamos os métodos,


Onde definimos todos os Onde;
métodos que fazem parte + é um método público
da classe, com suas # é um método protegido
visibilidades. - é um método privado

209
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Qualquer um acessa,
inclusive nosso
programa ABAP

210
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos

Como já vimos anteriormente, Classe é


uma definição e o objeto é a instância
de uma classe, fazendo uma anologia,
Classe é um programa na biblioteca de
programas e quando mandamos
executar o sistema instância o programa
211
em memória.
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

A Classe é
definida em
DEFINITION,
onde
determinamos
os componentes
e suas
visibilidades.

E IMPLEMENTATION, onde
entramos c/a lógica ABAP
p/os Métodos. 212
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Syntax do
comando
Methods.

Lógica ABAP
p/o Método

213
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Uma Classe Local deve ser


definida no início de uma
programa, onde primeiro vem a
definição.

E na sequência a Implementação,
portanto uma classe possui duas
partes a serem definidas, Definition e
Implementation.
214
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Na Definição informamos as
visibilidades na ordem ao lado, ou
seja, primeiro a pública, depois a
protegida e por último a privada.
Definimos também a os
atributos(variáveis) e os métodos.

215
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Enquanto que na
Implementação, entre
Method e endmethod,
entramos com a lógica
ABAP para a rotina.

216
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Portanto é assim que


se define uma classe
local em um
programa ABAP.

217
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local
Diagrama UML, LCL_CLASSE
Unified Modeling Language
(#) ATRIBUTO( P8,2 )
(-) DIAS ( i)
Veja este Diagrama UML,
e compare com sua
definição na página
anterior e tire a suas (+) CALCULA( im_dat1:D, im_dat2:D,
dúvidas. ex_dias:i )

218
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local
Comando DATA através do
qual definimos primeiramente
um ponteiro para a classe
desejada.

Quando trabalhamos com


classe, este evento se torna
obrigatório, ou o programa
não funcionará.
CREATE OBJECT, comando necessário para que a
classe se transforme em objeto, a partir deste
comando tudo que a instância nos oferece
estará disponível. 219
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Local

Vejamos agora a terceira


forma de encapsular
lógicas por programação
orientada a objetos, após
o instânciamento de uma
classe, executamos um
método como no
exemplo ao lado,
exportando e importando
parâmetros.

220
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 8 – Copiar o programa ABAP
ZABAP_P05_## para ZABAP_P06_## , e
nesta nova versão de programa, comentar o
comando Call Function e substituir por uma
classe Local instanciada e chamada de
LCL_CALC_PERC_##, veja diagrama UML
abaixo.
Ativar programa, testar e debugar.

LCL_CALC_PERC_##
Sem Atributos

+ calcula_percent(im_val1:i, im_val2:i, ex_perc:p


com duas decimais)
221
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

As Classe
Globais são
criadas na
transação SE24,
com ZCL_.
Primeiramente,
Criamos os
atributos
conforme
diagrama UML
com suas
visibilidades.
222
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global
Posteriormente criamos os métodos, de acordo com
as visibilidades informadas no diagrama UML.

Nome do
método

223
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Qdo um método
tem parâmetros
a serem
importados ou
exportados,
clicamos no
botão.

E vamos
definindo os
parâmetros de
acordo com o
diagrama UML.
224
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Depois que uma


classe global
estiver pronto e
ativado,
devemos antes
de liberar,
TESTAR.

225
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Classes Globais,
transação SE24

226
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Toda Classe Global


deve começar com
ZCL_ ....ou YCL_.....,
depois clicar em CRIAR

Entrar com uma


descrição e
posteriormente clicar
em SAVE.
227
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Definir atributos conforme


diagrama UML.
228
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Depois que os
atributos todos
estiverem sido
definidos, clicar
na pasta
Métodos.

229
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Definir o Método Definir Instância Definir uma


conforme e a Visibilidade Descrição para o
diagrama UML conforme método.
diagrama. 230
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Posicionar cursor sobre o método para


o qual se deseja definir parâmetros e
clicar no botão Parameters.
231
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Clicar no botão
método para fazer
a implementação.

Definimos os Definimos se Definimos


Definimos
parâmetros desejamos suas
seus tipos
conforme importar ou descrições
diagrama UML exportar. 232
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Double click sobre o método SIM


para fazer sua
implementação/lógica.
233
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Clicando em Signature,
poderemos visualizar ou não
os parâmetros previstos para
o método.

Entre Method e EndMethod,


entramos com a lógica ABAP para
a rotina. 234
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Primeiro, check de
Syntax

Depois devemos ativar


toda a classe.

235
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

ENTER

236
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Depois de ATIVO,
Retornar e testar. 237
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

TESTAR

Execute o
Método.

238
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global

Depois que os campos


foram preenchidos,
clicar em Execute. Preencher os
campos.

Resultado da
execução do
método,
parâmetro a
ser
exportado.
239
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 9 – Criar uma Classe Global com
o nome de ZCL_CALC_PERC_##, veja
diagrama UML abaixo.
Ativar Classe e Testar.

ZCL_CALC_PERC_##
Sem Atributos

+ calcula_percent(im_val1:i, im_val2:i,
ex_perc:ZRESULT

240
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global em um programa ABAP

Pela SE80,
podemos criar
os comando de
orientação a
objeto por
arrastro.

241
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global em um programa ABAP

Ponteiro
para a
classe.

Instância /
Objeto.

Execução
de um
método de
uma objeto.
242
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global em um programa ABAP
Eliminei a
referencia p/a
classe local.

Substituí pela
classe Global.

243
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Programação Orientada a Objetos
Classe Global em um programa ABAP

Posicionar
cursor e clicar
em Pattern

Selecionar Abap
Objects Patterns.
244
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP

Qdo usamos o Pattern, primeiro


comando que devemos ter é o
instânciamento de uma classe.
ENTER
245
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP
CREATE OBJECT PONTEIRO_INSTANCIA. Após o instânciamento da
Classe.

Posicionamos o
cursor e clacamos
em
Pattern/Modelo
246
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP

ABAP Objects
ENTER

247
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP
Selecionamos a
chamada de Método.

Informamos a
Instância, Classe
Global e o Método.

ENTER

248
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP

DESCOMENTAR

249
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Classe Global em um programa ABAP

E por último Ativar


antes de Testar o
programa.

Digitar os campos
correspondentes do
programa ABAP.250
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 10 – Copiar o programa ABAP
ZABAP_P06_## para ZABAP_P07_## , e
nesta nova versão de programa, eliminar a
classe local substituir por uma classe
Global.
Ativar programa, testar e debugar.

251
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estrutura é
uma string
dividida em
campos. Uma
estrutura é
criada pelo
comando DATA
onde podemos
nos referenciar
a uma
estrutura ou
tabela do
dicionário de
dados. 252
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Uma estrutura
pode ser criada
em um
programa ABAP
usando o
comando TYPES
e pelo comando
DATA .

253
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Nome de uma
TABELA definida
no Dicionário de
Para dados, neste caso
manipularmos os a variável
campos de uma gs_scarr assume
estrutura, coloca- o layout desta
se como prefixo o tabela.
nome da
estrutura, traço /
hífen e por último
(-)
o nome do
campo.

254
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Este comando de
Move-
Corresponding,
move só os
campos
correspondentes,
ou seja, move
apenas os
campos cujos
nomes existam
em ambas as
estruturas.

255
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

256
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 11 – Copiar o programa ABAP
ZABAP_REPORT_TEMPLATE para
ZABAP_P08_## , e nesta nova versão de
programa, listar os campos; CARRID,
CONNID, FLDATE, PRICE, CURRENCY,
PLANETYPE, SEATSMAX, SEATSOCC.
Assentos Livres deverá ser calculado,
Assentos livres = SEATSMAX – SEATSOCC.
Obs. Campo assentos livres deverá ser
criado, pois não existe no programa
template.
Ativar programa, testar e debugar.

257
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos guardar registros na


memória de um programa ABAP, é
um dos mais fortes recursos que um
programa ABAP pode ter, não
importando a qtde de registros,
expansão de memória de dinâmica. 258
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Toda tabela
interna tem um
Layout.

Podemos definir campos


chave Podem existir até tres
tipos de tabela. 259
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Com relação
a
performance,
A standard
table é a que
tem pior
performance,
porem é a
mais flexível,
depois vem a
Sorted table
e por último
a Hashed . SORT Posso classificar Não posso usar o Após a carga da tabela,
devo fazer o SORT nos
comando SORT, tabela
por qualquer é classificada em campos definidos como
campo. tempo de carga.
chave. 260
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos
definir um tipo
tabela no
dicionário de
dado, SE11.

E no programa
ABAP podemos
nos referenciar a
esta definição e
assim termos uma
tabela interna na
memória de um
programa ABAP. 261
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para definir um tipo tabela para


ser usado em programa,
transação SE11.

262
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Sel. Data Type Entre com um


nome, prefixo
ZTY_...

Na sequência
sel. Table Type
263
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Digite uma
descrição

Informe o layout do tipo


tabela, pode ser uma
tabela do bco de dados
como também o nome
Double click sobre o de uma estrutura, mas
nome e você consegue tem de existir no Dic. De
ver o layout Dados. 264
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Back para retornar

Dando Double click


sobre a estrutura, o
sistema pede para
salvar.

E apresenta o layout
da estrutura na
sequência. 265
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Clicar na pasta KEY, para


definir campos chave.

Clicar em key components para


definir quais campos deverão
ser chave. 266
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Após a definição de quais


campos deverão ser chave,
ATIVAR e depois encerrar.

Com F4, você pode selecionar os campos


a partir do teu layout que deverão ser
chave 267
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Uma vez estando


ativa a definição.

Poderemos utilizar em um programa ABAP.


DATA: IT_TAB type zty_tabe. “ prefixo IT_ para internal table.
268
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos
também definir
um tipo tabela
através do
comando TYPES.

269
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos
também através
do comando
TYPES definir um
layout

E pelo comando
DATA definir tabelas
internas para
programa também,
são várias as syntax
possíveis para def.
uma tabela Interna.
270
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Pode ser por


uma definição
feita no Dic. de
Dados
Pode ser uma
definição feita em
um programa
ABAP, baseado
numa estrutura do
Dic. de Dados.

Pode ser uma


definição feita em
um programa
ABAP, baseado
numa estrutura def.
no programa. 271
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Relação de
Comandos
possíveis para
manipulação
de registros
em uma tabela
interna na
memória de
um programa
ABAP.

272
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Relação de
Comandos
possíveis para
manipulação
de registros
em uma tabela
interna na
memória de
um programa
ABAP.

273
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Toda Tab. Interna
precisa de uma WA –
Work Área, para
Def. de uma manipular o registro
Tabela
Interna.
Tabela Interna
Como fica na com múltiplas
memória linhas.
representada
uma Tabela
Work área, uma
Interna e uma
linha só.
work área.
Exemplo de
uma comando
para manipular
tabela interna. 274
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
A cada loop que
ocorre, o sistema
Pelo Loop e joga o registro lido
EndLoop, nesta work área
fazemos uma para que o registro
leitura possa ser
sequêncial de processado.
uma tabela
interna.

Neste exemplo
observamos A variável
que o registro SY-TABIX, tem
lido está sendo como conteúdo
listado. o registro lido,
1,2,3,4, .....
275
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Neste exemplo
processa apenas
do 1 ao 5
registro, só é
possível para
standard e sorted
table.

Neste exemplo
processa apenas
o 3 registro, só é
possível para
standard e sorted
table.
276
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Neste exemplo
processa apenas
registros cujo
campo chave
carrid = ‘LH’,
possível para
todas as tabelas.

Neste exemplo
processa apenas
o registro onde
inf. todos os
campos chave,
possível para
todas as tabelas. 277
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comando SORT,
obrigatório p/a
Hashed table, não
pode ser usado
p/a Sorted table,
qto mais
completo for o
comando, melhor
será a Refresh e Clear
performance. elimina todos os
registros de uma Tab.
Interna, enquanto que
o Free, elimina a Tab.
Completamente da
memória. 278
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em tempo
de Debug,
poderemos
consultar
uma tabela
interna .

279
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 12 – Copiar o programa ABAP
ZABAP_INTERNA_TABLE_TEMPLATE para
ZABAP_P09_## , e nesta nova versão de
programa, Ler a tabela interna e listar os
campos; CARRID, CONNID, FLDATE, PRICE,
CURRENCY, PLANETYPE, SEATSMAX,
SEATSOCC.
Assentos Livres deverá ser calculado,
Assentos livres = SEATSMAX – SEATSOCC.
Obs. Campo assentos livres deverá ser
criado, pois não existe no programa
template.
Ativar programa, testar e debugar.

280
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

281
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O nosso modelo
de Base de
dados para
treinamento
deste curso e
um sistema que
administra Vôos,
para tanto
temos tabelas
que tratam de
cias aérias, vôos,
data dos vôos,
passageiros.
282
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em nossa
modelagem
temos objetos
que
representam
através de
tabelas todos
estes
modelos.

283
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estes modelos
todos,
representados
por tabelas
estão
amarradas
entre sí o que
é chamado de
chave
estrangeira.

284
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estamos na Transação SE11,


vamos analisar esta tabela
chamada SPFLI

285
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Todo campo
Uma Tabela tem um Data
tem um layout Element

Um Data
Element pode
ter um No dominio
Domínio def. o tipo,
tamanho e
valores
possíveis.
286
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Só podemos definir
um tipo de tabela
no Dic. de Dados,
Transparent Table,
toda tabela tem de
ter ao menos um Clicando neste
campo como chave Icone, podemos
primária, qdo consultar os reg´s
MANDT é o existentes na
primeiro campo de tabela.
uma tabela, ela
passa a ser
dependente de
mandante. 287
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

É uma tabela do tipo transparente, portanto


uma tabela do Bco de dados

Na seq. veremos
a modelagem.

Este é o Layout da tabela


onde na coluna Field
poderemos ver todos os
campos.

Click no Data Element,


iremos para esta tela. 288
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Aqui podemos
observar com
quem a tabela
SPFLI se relaciona
289
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Tela do Data Element


de um campo

Aqui por exemplo,


encontramos as
Na pasta do Data descrições p/um
Type é onde campo, na pasta
poderemos Field Label.
encontrar o Domínio 290
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Tela do
Dominio

Na pasta Value
Range, é onde
poderemos
Tipo de Campo e definir valores
tamanho possíveis para o
Campo

291
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Uma Estrutura
definida no Dic.
de Dados é
apenas um
layaut, ou seja,
sequência de
campos, com
data element e
por conseguinte,
domínio
também.

292
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para que
servem estas
definições
feitas no Dic.
de Dados,
para que
possamos ler
tabelas do
Bco de Dados
e também
criar
estruturas e
tabelas no
programa.
293
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 13 – Ir na Transação SE11,
consultar a Tabela SFLIGHT, consultar os
campos Carrid, Connid e Fldate, ver quais
descrições utilizam, verificar seus
respectivos domínios e anotar seus
atributos. Fazer as anotações nesta folha
mesmo.

294
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Em virtude do SAP
trabalhar com vários
Bancos de Dados,
Oracle, Informix, DB2,
etc.. Ela disponibiliza
uma série de comandos
de SQL que são
chamados de Open SQL.
Podemos também
trabalhar com
comandos nativos do
DB, desde que gerados
pelo Dic. de dados,
através de Views.
295
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para
pesquisarmos
tabelas,
poderemos editar
um programa e
procurar pelo
comando SELECT,
podemos também
recorres ao
DEBUG, podemos
usar a transação
SE11.
296
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos de uma
forma genérica fazer o
encapsulamento de
comandos de leitura
pelo Logical Database,
Módulos de Função,
Classes através de
métodos e poderemos
inclusive usar
funcionalidades
standard como as
BAPI´s, que nada mais
são do que Módulos de
Função Standard. 297
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Os comando de * Nesta posição, lemos todas as colunas/campos.


leitura de hoje em
dia, permitem
com que se leia a
base de dados,
onde poderemos
optar por ler
apenas as
colunas/campos
que interessam ao
programa, um
Registro ou
multiplus
registros. 298
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Exemplo para
quando se deseja
ler apenas um
registro, daí o
comando é
Select Single ...
É muito
importante neste
comando
informar todos Muito importante que em todo comando select,
os campos chave tenhamos a cláusula WHERE para poder selecionar
apenas os registros que nos interessam.
do registro/linha.
299
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando se lê
apenas
colunas/campos
de uma tabela,
temos que
tomar um
cuidado especial
com a nossa
work área, pois
ela deverá ter
exatamente a
mesma
sequência de
campo.
300
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Se a nossa work
área não tiver
exatamente a
mesma
sequência de
campos,
devemos então
utilizar o into
correspondig
fields, o move
acontecerá pelo
nome de campo.
301
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Este é o Select
Loop, onde os
registros de
acordo c/a
cláusula where,
serão transferidos
do DB p/o Data
Base Interface e
de lá um a um p/o Atenção, após toda e qualquer leitura,
Programa, onde devemos consultar a variável SY-SUBRC se for
igual a zero, ok, registros foram processados e
então se for diferente de zero, nenhum reg. Foi
processaremos o processado e sempre devemos ter uma lógica
registro. para as duas situações.
302
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Atenção,
compare c/a
transparência
anterior, este
comando é de
altíssima
performance,
pois os registros
imigram do DB
diretamente por
buffer p/o
programa em A variável SY-DBCNT, caso seja
uma tabela necessário, pode nos dizer qtos reg´s
interna. foram processados
303
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O sistema vai
sempre
processar os
registro do
mandante no
qual nos
logamos

Quando estamos em um mandante e desejarmos ler registros de outros mandantes, precisamos informar os
mandantes na cláusula where e ainda no comando select expícitamente entrar com Cliente Specified. 304
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Temos que tomar


certos cuidados
quando lemos a
Base de dados e
não informamos
todos os campos
chave, mandante é
sempre o default,
ou seja, o
mandante do
logon, não
precisamos
informar.

305
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Outros Cuidados,
o DB permite que
se faça acesso aos
registros por
qualquer campo,
mesmo ele não
sendo campo
chave primária,
porem corremos o
perigo do sistema
fazer o que é
chamado de
Full Scan.
306
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O que fazer para Full Scan, significa


evitar um ler todos os
Full Scan, registros do DB
primeiro
verificamos se a
tabela possui mais
do que 1000 reg´s,
depois a
frequência com
que o programa
será utilizado, só
então decidimos
por criar um índice
secundário para
dar suporte ao bco
de dados.
307
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Se o reg, for encontrado
no Buffer, tempo de
resposta de 2 a 6
milesegundos

Uma tabela pode


ser Bufferizada
no servidor de 1
aplicação, desde
que seja pequena
Se o reg, for encontrado
com muitos no DB, tempo de
acessos e pouca resposta de 6 a 800
alteração milesegundos
2

3 308
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Nos OPEN SQL


temos também
comandos de
Join, que
significa juntar
tabelas.

309
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Dentro das
condições de
Join temos o
Inner Join e o
Left Outer Join.

310
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Inner Join significa disponibilizar registros


cujos campos de join existam em ambas
as tabelas, enquanto que o left Outer Join
Um Inner Join significa, todos os registros da tabela da
pode ser esquerda, mesmo que os campos da
condição de Join não existam na tabela da
definido no
direita .
dicionário de
dados através
de Views

311
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quanto ao SELECT, não temos


problemas, só pode
comprometer a performance
se não observarmos os
detalhes anteriores.

Sério mesmo são os comandos de atualização da nossa base de


dados, caso o comando não seja aplicado corretamente, pode
comprometer toda a nossa base e podemos dizer que não existe
restor no R3, por se tratar de um sistema todo integrado. 312
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 14 – Criar um programa ZABAP_P10_## . Este novo
programa deve ter em sua tela de filtro os campos p_cia = carrid e
p_con = connid. Ler a tabela SFLIGHT de acordo com que está
sendo solicitado pela tela de filtro. Ler apenas as colunas;
CARRID, CONNID, FLDATE, SEATSMAX e SEATSOCC e bufferizar
em uma tabela interna cujo layout deverá ser da estrutura
DEMO_FOCC. Terão que ir primeiramente na transação se11 e
definir um tipo tabela para depois codificar o programa. Após a
bufferização da tabela, vocês deverão fazer o cálculo da
percentagem que é o último campo da estrutura DEMO_FOCC e
atualizar a tabela com esta nova informação. Após processar
todos os registros, fazer um SORT no campo percentage ordem
descendente e listar tabela interna.
Ativar o programa, testar e debugar.

313
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

No sistema SAP
existem objetos
de autorização,
estes objetos
então são
incorporados ao
perfil da cada
usuário que
quando se loga
no sistema está
definido o que
ele pode e não
pode fazer.

314
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

No perfil do
usuário então,
através de
campos,
determina-se o
que o usuário
pode e não pode
fazer

Este usuário por Este usuário por exemplo,


exemplo, pode pode alterar apenas a
consultar todas as companhia aérea LH, mais
companhias aéres nada. 315
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

De nada iria
adiantar criar
objetos de
autorização,
colocarmos eles
no perfil do
usuário se não
formos
colocá-los no
programa
também.

316
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Objetos de autorização,
são criados na transação
SU21, nesta transação
poderemos criar objetos
que começam com Z_ ou
Y_ e que possuem
campos, estes campos
por sua vez deverão ter
algum significado lógico,
por exemplo o campo
ACTVT 1-criar, 2-alterar,
3-consultar, 6-deletar e
assim por diante.
317
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Portanto para que este


conceito de
autorização funcione,
teremos que colocar
um AUTHORITY CHECK
na lógica dos nossos
programas, para que Após a verificação, quem vai nos dizer
possamos saber se a se tem ou não autorização é a variável
SY-SUBRC, se ela for igual a zero, tem
pessoa que está
autorização, se for diferente de zero,
executando o programa não tem autorização e sempre
tem ou não teremos que ter uma lógica para SIM e
autorização. para o NÃO. Neste exemplo o
programa é de consulta, por conta do
ACTVT = 03.
318
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Nunca digite esta Informe ou


instrução pesquise qual
manualmente, objeto deseja
utilize o utilizar no
Pattern/Modelo programa e
para motar esta depois ENTER.
syntax

Informe apenas os
campos
correspondentes
do programa.
319
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 14 – Copiar programa
ZABAP_AUTHORITY_CHECK_TEMPLATE para ZABAP_P11_## .
Entre os eventos;
AT SELECTION-SCREEN. e
START-OF-SELECTION, entrar com a checagem de autorização
e se o SY-SUBRC não for igual a ZERO, entre com o comando,
MESSAGE E004(ZABAP) with sy-uname pa_cia.

320
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Bem, a tela de filtro


é importante por
dois aspectos, do
ponto de vista do
usuário, poder
processar apenas o
que deseja e do
lado técnico,
quanto menos
registros forem
lidos, melhor será a
performance. Para
tanto temos dois
comandos,
Parameters onde
só existe uma
opção de escolha e
Select-options para
multiplas escolhas. 321
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Posso em uma tela de


filtro ter vários grupos de
RadioButtom, os grupos
são distinguidos como
neste caso pelo código
LIM.
322
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O comando
Select-options
permitirá ao
usuário entrar
com múltiplas
opções de
processamento. Tudo que o usuário
informar na tela de filtro
o sistemas
automaticamente
acomoda em uma tabela
Veja como fica a interna com o layout ao
tela p/o lado.

comando
Select-Options.
323
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Incluir no
Processamento

Excluir do
Processamento

Tudo que a pessoa


digitar na tela de
filtro o sistema
coloca estes códigos
automaticamente
nestes campo SIGN
e OPTION

324
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando um intervalo não


for suficiente, o usuário
poderá clicar neste icone e
partir para uma outra tela,
onde poderá informar
outros intervalos e ou
single values.

E tudo que o usuário for fazendo o sistema


então acomoda em uma tabela interna,
automaticamente.
325
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Na syntax do comando, já
podemos sair sugerindo
valores default, só cuidado
com o Sign ‘I’ ou ‘E’, Options
p/ex. ‘EQ’ ou ‘BT’, os
códigos sempre entre aspas
simples e MAIÚSCULO .
Memory ID para transferir
informações entre
Digitação obrigatória do
aplicativos, Lower case para
campo na tela de filtro.
manter em minúsculo o que
for digitado no campo
No-Extension, para quando
não desejarmos permitir
uma segunda tela.
No-Intervals, para quando
não desejarmos permitir
intervalos. 326
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Select * from DBTAB Where keyField IN SELTAB.

327
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Evento onde começa a lógica


principal do programa.

Evento para Double Click AT LINE-SELECTION.

328
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 14 – Copiar programa ZABAP_P11_## para
ZABAP_P12_## . Nesta nova versão de programa, transforme os
comandos Parameters em Select-Options. A lógica do programa
continua a mesma, só deve trocar os comandos acima e observar
e corrigir o comando Select.
Ativar o programa, testar e debugar.

329
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O Evendo
INITIALIZATION é
um evento que é
executado antes
da apresentação
da tela de filtro,
devemos
programar então
debaixo deste
evento, valores
iniciais para a tela
de filtro.

330
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Este Evento
deverá ser
programado
depois dos
comandos
Parameters
e ou
Select-Options

Abaixo do
INITIALIZATION
Temos um exemplo de
como manipular uma
tab. Do comando
Select-Options; 331
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comando para o
caso de
querermos
desenhar um
frame na tela de
filtro

Os comandos de
tela de filtro
deverão ser
encapsulados por
este comando
332
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Este comando
permite que em
uma mesma linha
se coloque mais
de um
Parameters,
sendo que o
dafault é um
debaixo do outro.

Estes campos POS ...


Tem como conteúdo
uma coluna e entre
( ) uma limitação de
333
texto
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 15 – Copiar programa ZABAP_P12_## para
ZABAP_P13_## . Nesta nova versão de programa crie um frame
para os comandos Select-Options com título “ Informar Vôos
Desejados “. Crie um conjunto de 3 RadioButtons onde um Botão
representa todos os registros a listar , o outro botão apenas os
Vôos cuja ocupação for inferior a 50% e o terceiro botão apenas
os Vôos com ocupação maior ou igual a 50%, encapsule estes
RadioButtons com um novo frame sem título. Faça esta checagem
do que listar no Loop da tabela interna onde temos o comando
Write.
Ativar o programa, testar e debugar.

334
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

335
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Podemos através
deste comando
programar telas
de filtro
secundárias,
sempre com um
número superior
a 1000.
poderemos criar
quantas forem
necessárias.

Comando para
chamar a tela O Sy-Subrc é bom testar , se for igual a
de filtro. zero é porque a pessoa clicou em execute,
se for diferente é pq a pessoa deseja
voltar. 336
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Tela de Filtro
1000
Sy-Subrc
Diferente de zero

Tela de Filtro
Double
1100 click Relatório 1 Processamento

Sy-Subrc Igual a

Processamento

Relatório 2
337
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

R
E
L
A
T
Ó
R
I
O
B
A
S
I
C
O Hide Área, é um comando através do qual posso guardar
campos para dar prosseguimento a lógica do programa,
este comando devo aplicar após o comando WRITE, pois
as informações são guardadas por linha, portanto
338
primeiro tenho que gerar a linha.
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estes comandos fazem parte da


receita de bolo para verificar se a
R
linha clicada no relatório anterior
E é uma linha válida para dar
L prosseguimento a lógica.
A
T
Ó
R
I
O
S
e
c
u
n
d
á
r
i
o

339
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comando p/a chamada da tela de filtro


R secundária e na sequência a
E verificação se o usuário clicou em
L
A execute ou se deseja voltar.
T
Ó
R
I
O
S
e
c
u
n
d
á
r
i
o

340
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estes dois campos da SPFLI, são os


campos que a HIDE Área me
R disponibiliza ao se dar double click
E
L
sobre uma linha válida
A
T
Ó
R
I
O
S
e
c
u
n
d
á
r
i
o

341
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
SY-LSIND é uma variável que eu
utilizo para controlar em que nível
eu me encontro, posso até descer
R 20 níveis, a cada double click o
E
L
sistema soma 1 nesta variável e a
A cada BACK, subtrai um.
T
Ó
R
I
O
S
e
c
u
n
d
á
r
i
o

342
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 16 – Analise o programa
ZABAP_DRILL_DOWN_TEMPLATE, execute e debug.

343
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 17 – Copiar programa ZABAP_P13_## para
ZABAP_P14_## . Nesta nova versão de programa crie uma Lista
secundária acessando a tabela SBOOK. Na lista Básica guarde os
campos CARRID, CONNID e FLDATE para poder acessar a
SBOOK. Crie também uma tela de filtro secundária que deverá ser
chamada no momento do Double click para uma linha válida,
utilize o select-options para o campo BOOKID, onde o usuário terá
a opção de selecionar os números de reservas a serem listadas
da tabela SBOOK. Veja e conheça a tabela SBOOK na transação
SE11.
Ativar o programa, testar e debugar.

344
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION
SCREEN, é um
evento que é
executado logo
após o
preenchimento da
tela de filtro e
serve para
consistir o que foi
digitado nos
campos desta tela.

345
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION SCREEN on F,
Onde <f> é o nome do
campo usado no comando
PARAMETERS, significa que
se neste evento ocorrer o
comando MESSAGE Ennn...
Somente o campo <f>
permanecerá aberto para
uma nova digitação.

346
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION SCREEN on
SELTAB,
Onde <seltab> é o nome do
campo usado no comando
SELECT-OPTIONS, significa
que se neste evento
ocorrer o comando
MESSAGE Ennn...
Somente o campo
< seltab > permanecerá
aberto para uma nova
digitação.
347
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION SCREEN on
RADIOBUTTON GROUP
GRP,
Onde <grp> é o nome do
do grupo de radiobuttons
criado no comando
PARAMETERS, significa que
se neste evento ocorrer o
comando MESSAGE Ennn...
Somente o grupo de
radiobuttons < grp >
permanecerá aberto para
uma nova digitação. 348
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION SCREEN on
BLOCK BLOCK,
Onde <block> é o nome do
frame criado, significa que
se neste evento ocorrer o
comando MESSAGE Ennn...
Todos os campos dentro
deste frame <block>
permandecerão abertos
para uma nova digitação.

349
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

AT SELECTION SCREEN
sem mais nada, significa
que se neste evento
ocorrer o comando
MESSAGE Ennn...
Todos os campos da tela
de filtro permanecerão
abertos para uma nova
digitação.

350
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 18 – Copiar programa ZABAP_P11_## para
ZABAP_P15_## . Nesta nova versão de programa substitua o
evento AT SELECTION SCREEN pelo evento específico para o
frame/bloco.
Ativar o programa, testar e debugar.

351
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estes eventos
são para o caso
de querermos
fazer um Help
F1,
personalizado e
um Possíveis
entradas para
um campo F4
personalizado.

352
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Variante é uma tela


de filtro pré-
preenchida.
Para se criar uma
variante preenche-
se a tela de filtro e
clica-se no icone
SAVE, entra-se com
um nome p/a
variante e uma
descrição.

353
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Nos atributos de
uma Variante
podemos torná-la
por exemplo
exclusiva para JOB,
assim como
podemos proteger
campos, fixar
valores, esconder
campos.

354
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para criar uma Variante,


Executar o Programa.

355
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Preencher a tela de filtro e


clicar em SAVE.
356
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Por último clicar em SAVE para
salvar a Variante.

Entrar com um Nome e Descrição


para a Variante.

Definir atributos p/os campos da


tela de filtro 357
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando um programa tem


variantes, aparece um novo ícone
que indica que o programa possui Double Click e você
variantes, clicando no ícone seleciona a variante.
aparece a relação de variantes.
358
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Selecionando a Variante desejada,


você receberá a tela de filtro de
acordo com o definido na variante.

359
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 18 – Criar para o programa ZABAP_P15_## uma
variante com o nome; GRUPO##, descrição; Minha Variante
Grupo ##. Nesta variante defina que deseja visualizar todos os
registros e esconda os RadioButtons, fixe também a companhia
aérea DL p/o campo PA_CIA e proteja o campo contra digitação.
Salve e teste.

360
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Um Programa
ABAP pode
chamar outro
programa do
tipo 1 –
Executável
Tipo M –
Module Pool

361
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para chamar
Executáveis /
Reports o
comando é
SUBMIT.

362
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Para chamar
uma Transação
/ Module Pool
o comando
pode ser Leave
to Transaction
ou Call
Transaction.

363
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Um programa
poderá
chamar até 9
seções
internas, ou
seja, um
programa
que chama
outro
programa,
até 9.

Poderemos por padrão SAP, chamar até 6 seções externas. 364


Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Um programa
que chama o
outro com
retorno,
Submit ... And
Return ou
Funções.

365
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Comunicação
entre S
programas, A
Para Seções P
Internas.
M
E
M
O
Comunicação
R
entre
Y
programas,
Para Seções
Externas.
366
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

367
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Funções poderão
ser chamadas
assim como
métodos, em
ambos os casos
estamos
acrescentando
uma clamada de
programa em
uma seção
interna.
368
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Maneiras de
como um
programa
pode se
comunicar
com outro
programa.

369
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Quando um
Executável chama
outro executável,
este segundo só
deve processar o
que foi selecionado
pelo primeiro,
portanto o primeiro
programa deve
preencher a tela de
filtro do segundo
programa e assim
por diante.

370
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Usar o Pattern
para montar a
syntax do
comando
SUBMIT.

371
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

372
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Export por Memory


ID é para exportar
variáveis e Import
Memory ID é para
importar estas
variáveis. Recurso
para transferir
variáveis entre
programas. O cód.
Do Memory ID pode
ter no máximo 60
caracteres em
maiúsculo.
373
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O Comando SET
PARAMETERS ID é
para fixar um
valor em memória

O Comando GET
PARAMETERS ID é
para pegar um
valor em memória
374
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 19 – Veja o programa ZABAP_LER_SBOOK , execute e
o analise.
Veja também o programa ZABAP_LER_SCUSTOM, execute e o
analise.
Em ambos os casos faça debug também e havendo dúvidas,
ZTR99
pergunte ao instrutor.

375
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 20 – Copiar o programa ZABAP_P15_## para
ZABAP_P16_##. Nesta nova versão de programa acrescente uma
nova lista secundária onde se algum passageiro for clicado
chame o report ZABAP_LER_SCUSTOM. Não se esquece de
guardar o campo CUSTOMID na HIDE Área para que a tela de
filtro do programa a ser chamado processe apenas o passageiro
selecionado.
Ative o programa, teste e faça um debug.

376
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

SE30, transação pela qual


poderemos fazer uma análise
de quanto tempo o programa
leva para ser executado e
com que estes tempos são
gastos.

377
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Na SE30 temos uma funcionalidade chamada Dicas e


Truques, onde poderemos obter comparativos entre
comandos e suas respectivas performances.

Entrar com o nome do programa


para fazer análise de performance.
Clicar em execute e
simule a execução do
programa. 378
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Você executa
normalmente o
programa, para
que o sistema
levante os
tempos e encerre
o programa.

379
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Depois da execução do programa, ao


retornar na tela da transação SE30,
clique em EVALUATE para ver o
resultado da execução.

380
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Clicando neste ICONE, poderá observar com quais


instruções estes tempos foram gastos.

Teoricamente
não é bom.

381
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

O Code Inspector é
uma ferramenta que
vai avaliar todas as
instruções que
utilizou no programa
e fazer sugestões. Ele
pode utilizado na
SE80, SE38, pelo
menu de contexto ou
menu horizontal .

382
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Ao se fazer um Code Inspector, ele


apresenta um relatório de críticas
e sugestões, onde poderá avaliar
se a sugestão é consistente ou
não.

383
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Vá na SE38 ou SE80, para


fazer uma análise de
crítica do seu programa.

384
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Estando com seu


programa editado ou
não, via menu
horizontal, selecione o
Code Inspector.

385
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Ele fará uma crítica dos


comandos que utiliza em seu
programa e aponta
sugestões.

386
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento

Se achar que o
programa está
com problemas
de performance,
analise bem as
sugestões.

387
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Exercício 21 – Fazer uma bela análise do seu programa
ZABAP_P16_##, com a SE30 e com o Code Inspector.

388
Academia SAP ABAP
Gplux Treinamento SAP

Noções Básicas do ABAP


Ambiente de Desenvolvimento
Relação de Cursos ABAP
EC100 - Introdução da linguagem ABAP - 2 Dias

EC400 – Overview ABAP Workbench - 5 Dias

EC410 - Programação de Reports - 3 Dias

EC420 - Module Pool & ALV - 5 Dias

EC430 - Dicionário de Dados - 2 Dias

389

Você também pode gostar