Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Academia SAP ABAP
Gplux Treinamento SAP
• Técnicas de Modularização – Sub rotinas, Módulos de Função e Programação Orientada a Objetos .. Pag. 137
• 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
4
Academia SAP ABAP
Gplux Treinamento SAP
5
Academia SAP ABAP
Gplux Treinamento SAP
6
Academia SAP ABAP
Gplux Treinamento SAP
7
Academia SAP ABAP
Gplux Treinamento SAP
8
Academia SAP ABAP
Gplux Treinamento SAP
9
Academia SAP ABAP
Gplux Treinamento SAP
10
Academia SAP ABAP
Gplux Treinamento SAP
11
Academia SAP ABAP
Gplux Treinamento SAP
12
Academia SAP ABAP
Gplux Treinamento SAP
13
Academia SAP ABAP
Gplux Treinamento SAP
14
Academia SAP ABAP
Gplux Treinamento SAP
15
Academia SAP ABAP
Gplux Treinamento SAP
16
Academia SAP ABAP
Gplux Treinamento SAP
17
Academia SAP ABAP
Gplux Treinamento SAP
18
Academia SAP ABAP
Gplux Treinamento SAP
19
Academia SAP ABAP
Gplux Treinamento SAP
20
Academia SAP ABAP
Gplux Treinamento SAP
21
Academia SAP ABAP
Gplux Treinamento SAP
22
Academia SAP ABAP
Gplux Treinamento SAP
23
Academia SAP ABAP
Gplux Treinamento SAP
24
Academia SAP ABAP
Gplux Treinamento SAP
25
Academia SAP ABAP
Gplux Treinamento SAP
26
Academia SAP ABAP
Gplux Treinamento SAP
27
Academia SAP ABAP
Gplux Treinamento SAP
28
Academia SAP ABAP
Gplux Treinamento SAP
29
Academia SAP ABAP
Gplux Treinamento SAP
30
Academia SAP ABAP
Gplux Treinamento SAP
31
Academia SAP ABAP
Gplux Treinamento SAP
32
Academia SAP ABAP
Gplux Treinamento SAP
33
Academia SAP ABAP
Gplux Treinamento SAP
34
Academia SAP ABAP
Gplux Treinamento SAP
35
Academia SAP ABAP
Gplux Treinamento SAP
36
Academia SAP ABAP
Gplux Treinamento SAP
37
Academia SAP ABAP
Gplux Treinamento SAP
Transação
SM59
38
Academia SAP ABAP
Gplux Treinamento SAP
Transação
SWO1
39
Academia SAP ABAP
Gplux Treinamento SAP
Transação
BAPI
40
Academia SAP ABAP
Gplux Treinamento SAP
41
Academia SAP ABAP
Gplux Treinamento SAP
42
Academia SAP ABAP
Gplux Treinamento SAP
43
Academia SAP ABAP
Gplux Treinamento SAP
44
Academia SAP ABAP
Gplux Treinamento SAP
45
Academia SAP ABAP
Gplux Treinamento SAP
1 2
46
Academia SAP ABAP
Gplux Treinamento SAP
Mandante/
Client
Usuário
Linguagem
47
Academia SAP ABAP
Gplux Treinamento SAP
Menu
Completo
da SAP
48
Academia SAP ABAP
Gplux Treinamento SAP
49
Academia SAP ABAP
Gplux Treinamento SAP
50
Academia SAP ABAP
Gplux Treinamento SAP
51
Academia SAP ABAP
Gplux Treinamento SAP
Transação
SE80
Opção
Package
52
Academia SAP ABAP
Gplux Treinamento SAP
53
Academia SAP ABAP
Gplux Treinamento SAP
2
54
Academia SAP ABAP
Gplux Treinamento SAP
3
4
55
Academia SAP ABAP
Gplux Treinamento SAP
4 5
56
Academia SAP ABAP
Gplux Treinamento SAP
57
Academia SAP ABAP
Gplux Treinamento SAP
58
Academia SAP ABAP
Gplux Treinamento SAP
59
Academia SAP ABAP
Gplux Treinamento SAP
60
Academia SAP ABAP
Gplux Treinamento SAP
Para quando se
9 deseja montar
uma equipe
10
61
Academia SAP ABAP
Gplux Treinamento SAP
11
62
Academia SAP ABAP
Gplux Treinamento SAP
63
Academia SAP ABAP
Gplux Treinamento SAP
SE80
Transações
SE38
Reports
SE11
SE37
SE24
64
Academia SAP ABAP
Gplux Treinamento SAP
65
Academia SAP ABAP
Gplux Treinamento SAP
66
Academia SAP ABAP
Gplux Treinamento SAP
67
Academia SAP ABAP
Gplux Treinamento SAP
68
Academia SAP ABAP
Gplux Treinamento SAP
69
Academia SAP ABAP
Gplux Treinamento SAP
70
Academia SAP ABAP
Gplux Treinamento SAP
Informa-se quantidade
de Bytes, max. 65535
Max. 16
bytes
71
Academia SAP ABAP
Gplux Treinamento SAP
Comando TYPES,
é para se definir
atributos/
características.
72
Academia SAP ABAP
Gplux Treinamento SAP
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
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
75
Academia SAP ABAP
Gplux Treinamento SAP
76
Academia SAP ABAP
Gplux Treinamento SAP
Se10
ou
SE09
Para lib.
As Tasks
77
Academia SAP ABAP
Gplux Treinamento SAP
Se10
ou
SE09
Para lib.
A Request
78
Academia SAP ABAP
Gplux Treinamento SAP
79
Academia SAP ABAP
Gplux Treinamento SAP
80
Academia SAP ABAP
Gplux Treinamento SAP
81
Academia SAP ABAP
Gplux Treinamento SAP
82
Academia SAP ABAP
Gplux Treinamento SAP
83
Academia SAP ABAP
Gplux Treinamento SAP
84
Academia SAP ABAP
Gplux Treinamento SAP
85
Academia SAP ABAP
Gplux Treinamento SAP
86
Academia SAP ABAP
Gplux Treinamento SAP
87
Academia SAP ABAP
Gplux Treinamento SAP
88
Academia SAP ABAP
Gplux Treinamento SAP
Clicando em Pretty
Printer, você faz a
identação do teu
código fonte
89
Academia SAP ABAP
Gplux Treinamento SAP
90
Academia SAP ABAP
Gplux Treinamento SAP
Confirmar a
ativação do objeto
programa
92
Academia SAP ABAP
Gplux Treinamento SAP
Depois de ativado o
programa, devemos
testa clicando neste
icone ou acionar a
tecla F8 93
Academia SAP ABAP
Gplux Treinamento SAP
Para Imprimir
95
Academia SAP ABAP
Gplux Treinamento SAP
Retornar tela
anterior 96
Academia SAP ABAP
Gplux Treinamento SAP
Editor antigo
98
Academia SAP ABAP
Gplux Treinamento SAP
99
Academia SAP ABAP
Gplux Treinamento SAP
100
Academia SAP ABAP
Gplux Treinamento SAP
Após selecionar o
Editor, neste caso o
novo editor,
confirmar clicando
ENTER.
101
Academia SAP ABAP
Gplux Treinamento SAP
Novo Editor
102
Academia SAP ABAP
Gplux Treinamento SAP
Pode-se retrair ou
expandir comandos.
103
Academia SAP ABAP
Gplux Treinamento SAP
104
Academia SAP ABAP
Gplux Treinamento SAP
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
106
Academia SAP ABAP
Gplux Treinamento SAP
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
108
Academia SAP ABAP
Gplux Treinamento SAP
109
Academia SAP ABAP
Gplux Treinamento SAP
110
Academia SAP ABAP
Gplux Treinamento SAP
Tipos Locais,
são exclusivos,
enquanto que
tipos globais
são
compatilhados
112
Academia SAP ABAP
Gplux Treinamento SAP
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
Compute é uma
comando para
efetuar calculos,
mas como no
COBOL ele pode
ser inibido, ou
seja, é opcional
114
Academia SAP ABAP
Gplux Treinamento SAP
Comandos
Condicionais, onde o
IF é encerrado por
ENDIF e o case é
encerrado por
ENDCASE.
115
Academia SAP ABAP
Gplux Treinamento SAP
116
Academia SAP ABAP
Gplux Treinamento SAP
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
Variáveis
que o
sistema
disponibiliz
a em um
programa
ABAP.
118
Academia SAP ABAP
Gplux Treinamento SAP
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
As
Mensagens
são
cadastradas
por classe de
mensagem
em uma
tabela T100,
transação
SM30.
120
Academia SAP ABAP
Gplux Treinamento SAP
121
Academia SAP ABAP
Gplux Treinamento SAP
Cross-Client,
significa que não 4
depende de
client/mandante. 122
Academia SAP ABAP
Gplux Treinamento SAP
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
124
Academia SAP ABAP
Gplux Treinamento SAP
125
Academia SAP ABAP
Gplux Treinamento SAP
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
10
Após a
conclusão
do
cadastrame
nto das
mensagens,
clicar em 11
BACK para
sair. 127
Academia SAP ABAP
Gplux Treinamento SAP
129
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
134
Academia SAP ABAP
Gplux Treinamento SAP
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
Subrotinas
138
Academia SAP ABAP
Gplux Treinamento SAP
139
Academia SAP ABAP
Gplux Treinamento SAP
SE37 SE24
140
Academia SAP ABAP
Gplux Treinamento SAP
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
Chamada de
uma Subrotina
Subrotina
143
Academia SAP ABAP
Gplux Treinamento SAP
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
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
146
Academia SAP ABAP
Gplux Treinamento SAP
A chamada da
subrotina,
passando os
parâmetros.
Como definir o
recebimentos
dos parâmetros.
147
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
151
Academia SAP ABAP
Gplux Treinamento SAP
2
1
3
4
152
Academia SAP ABAP
Gplux Treinamento SAP
153
Academia SAP ABAP
Gplux Treinamento SAP
O resultado do
cálculo na
rubrotina vai estar
na variavel7
154
Academia SAP ABAP
Gplux Treinamento SAP
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
SE38
156
Academia SAP ABAP
Gplux Treinamento SAP
157
Academia SAP ABAP
Gplux Treinamento SAP
1
2
4
5
Clicar em
Selecionar tudo
Copiar
158
Academia SAP ABAP
Gplux Treinamento SAP
7
6
Check de
Ativar
syntax
9
159
Academia SAP ABAP
Gplux Treinamento SAP
11
160
Academia SAP ABAP
Gplux Treinamento SAP
161
Academia SAP ABAP
Gplux Treinamento SAP
162
Academia SAP ABAP
Gplux Treinamento SAP
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
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
Pela SE80,
sequência de
passos para
se criar um
grupo de
funções.
165
Academia SAP ABAP
Gplux Treinamento SAP
166
Academia SAP ABAP
Gplux Treinamento SAP
167
Academia SAP ABAP
Gplux Treinamento SAP
168
Academia SAP ABAP
Gplux Treinamento SAP
169
Academia SAP ABAP
Gplux Treinamento SAP
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
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
172
Academia SAP ABAP
Gplux Treinamento SAP
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
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
175
Academia SAP ABAP
Gplux Treinamento SAP
Selecionamos
Grupo de
Funções
176
Academia SAP ABAP
Gplux Treinamento SAP
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
178
Academia SAP ABAP
Gplux Treinamento SAP
Primeiro definir os
Import Parameters
Definir os Export
Parameters.
Definir as exceptions,
possíveis
inconsistências para
executar a lógica.180
Academia SAP ABAP
Gplux Treinamento SAP
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
183
Academia SAP ABAP
Gplux Treinamento SAP
Retornar para
novo teste.
Resultado to teste da
lógica
184
Academia SAP ABAP
Gplux Treinamento SAP
186
Academia SAP ABAP
Gplux Treinamento SAP
Como um
programa ABAP
deve chamar
uma função.
187
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
191
Academia SAP ABAP
Gplux Treinamento SAP
Discomente as linhas
comentadas usando
menu de contexto.
193
Academia SAP ABAP
Gplux Treinamento SAP
194
Academia SAP ABAP
Gplux Treinamento SAP
Caso a mensagem
não exista, basta dar
um double click sobre
o código
196
Academia SAP ABAP
Gplux Treinamento SAP
197
Academia SAP ABAP
Gplux Treinamento SAP
Clicar em Check
de Syntax.
Clicar em Pretty
Printer.
Clicar em ATIVAR.
198
Academia SAP ABAP
Gplux Treinamento SAP
199
Academia SAP ABAP
Gplux Treinamento SAP
200
Academia SAP ABAP
Gplux Treinamento SAP
Quais são as
partes que
conhecemos
de um
ovo ?
201
Academia SAP ABAP
Gplux Treinamento SAP
Casca
Clara
Gema
202
Academia SAP ABAP
Gplux Treinamento SAP
Casca
Visibilidade
Clara
Gema
203
Academia SAP ABAP
Gplux Treinamento SAP
Visibilidade
Casca
+ Pública
Clara # Protegida
Gema - Privada
204
Academia SAP ABAP
Gplux Treinamento SAP
Visibilidade
Casca
+ Pública
+ Atributos
Clara + Métodos
# Protegida
# Atributos
Gema # Métodos
- Privada
- Atributos
-Métodos 205
Academia SAP ABAP
Gplux Treinamento SAP
206
Academia SAP ABAP
Gplux Treinamento SAP
Classe é uma
Definição
207
Academia SAP ABAP
Gplux Treinamento SAP
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
209
Academia SAP ABAP
Gplux Treinamento SAP
Qualquer um acessa,
inclusive nosso
programa ABAP
210
Academia SAP ABAP
Gplux Treinamento SAP
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
Syntax do
comando
Methods.
Lógica ABAP
p/o Método
213
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
217
Academia SAP ABAP
Gplux Treinamento SAP
218
Academia SAP ABAP
Gplux Treinamento SAP
220
Academia SAP ABAP
Gplux Treinamento SAP
LCL_CALC_PERC_##
Sem Atributos
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
Nome do
método
223
Academia SAP ABAP
Gplux Treinamento SAP
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
225
Academia SAP ABAP
Gplux Treinamento SAP
Classes Globais,
transação SE24
226
Academia SAP ABAP
Gplux Treinamento SAP
Depois que os
atributos todos
estiverem sido
definidos, clicar
na pasta
Métodos.
229
Academia SAP ABAP
Gplux Treinamento SAP
Clicar no botão
método para fazer
a implementação.
Clicando em Signature,
poderemos visualizar ou não
os parâmetros previstos para
o método.
Primeiro, check de
Syntax
235
Academia SAP ABAP
Gplux Treinamento SAP
ENTER
236
Academia SAP ABAP
Gplux Treinamento SAP
Depois de ATIVO,
Retornar e testar. 237
Academia SAP ABAP
Gplux Treinamento SAP
TESTAR
Execute o
Método.
238
Academia SAP ABAP
Gplux Treinamento SAP
Resultado da
execução do
método,
parâmetro a
ser
exportado.
239
Academia SAP ABAP
Gplux Treinamento SAP
ZCL_CALC_PERC_##
Sem Atributos
+ calcula_percent(im_val1:i, im_val2:i,
ex_perc:ZRESULT
240
Academia SAP ABAP
Gplux Treinamento SAP
Pela SE80,
podemos criar
os comando de
orientação a
objeto por
arrastro.
241
Academia SAP ABAP
Gplux Treinamento SAP
Ponteiro
para a
classe.
Instância /
Objeto.
Execução
de um
método de
uma objeto.
242
Academia SAP ABAP
Gplux Treinamento SAP
Substituí pela
classe Global.
243
Academia SAP ABAP
Gplux Treinamento SAP
Posicionar
cursor e clicar
em Pattern
Selecionar Abap
Objects Patterns.
244
Academia SAP ABAP
Gplux Treinamento SAP
Posicionamos o
cursor e clacamos
em
Pattern/Modelo
246
Academia SAP ABAP
Gplux Treinamento SAP
ABAP Objects
ENTER
247
Academia SAP ABAP
Gplux Treinamento SAP
Informamos a
Instância, Classe
Global e o Método.
ENTER
248
Academia SAP ABAP
Gplux Treinamento SAP
DESCOMENTAR
249
Academia SAP ABAP
Gplux Treinamento SAP
Digitar os campos
correspondentes do
programa ABAP.250
Academia SAP ABAP
Gplux Treinamento SAP
251
Academia SAP ABAP
Gplux Treinamento SAP
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
Uma estrutura
pode ser criada
em um
programa ABAP
usando o
comando TYPES
e pelo comando
DATA .
253
Academia SAP ABAP
Gplux Treinamento SAP
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
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
256
Academia SAP ABAP
Gplux Treinamento SAP
257
Academia SAP ABAP
Gplux Treinamento SAP
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
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
262
Academia SAP ABAP
Gplux Treinamento SAP
Na sequência
sel. Table Type
263
Academia SAP ABAP
Gplux Treinamento SAP
Digite uma
descrição
E apresenta o layout
da estrutura na
sequência. 265
Academia SAP ABAP
Gplux Treinamento SAP
Podemos
também definir
um tipo tabela
através do
comando TYPES.
269
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
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
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
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
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
Em tempo
de Debug,
poderemos
consultar
uma tabela
interna .
279
Academia SAP ABAP
Gplux Treinamento SAP
280
Academia SAP ABAP
Gplux Treinamento SAP
281
Academia SAP ABAP
Gplux Treinamento SAP
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
Em nossa
modelagem
temos objetos
que
representam
através de
tabelas todos
estes
modelos.
283
Academia SAP ABAP
Gplux Treinamento SAP
Estes modelos
todos,
representados
por tabelas
estão
amarradas
entre sí o que
é chamado de
chave
estrangeira.
284
Academia SAP ABAP
Gplux Treinamento SAP
285
Academia SAP ABAP
Gplux Treinamento SAP
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
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
Na seq. veremos
a modelagem.
Aqui podemos
observar com
quem a tabela
SPFLI se relaciona
289
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
294
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
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
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
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
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
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
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
305
Academia SAP ABAP
Gplux Treinamento SAP
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
3 308
Academia SAP ABAP
Gplux Treinamento SAP
309
Academia SAP ABAP
Gplux Treinamento SAP
Dentro das
condições de
Join temos o
Inner Join e o
Left Outer Join.
310
Academia SAP ABAP
Gplux Treinamento SAP
311
Academia SAP ABAP
Gplux Treinamento SAP
313
Academia SAP ABAP
Gplux Treinamento SAP
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 perfil do
usuário então,
através de
campos,
determina-se o
que o usuário
pode e não pode
fazer
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
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
Informe apenas os
campos
correspondentes
do programa.
319
Academia SAP ABAP
Gplux Treinamento SAP
320
Academia SAP ABAP
Gplux Treinamento SAP
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
Incluir no
Processamento
Excluir do
Processamento
324
Academia SAP ABAP
Gplux Treinamento SAP
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
327
Academia SAP ABAP
Gplux Treinamento SAP
328
Academia SAP ABAP
Gplux Treinamento SAP
329
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
Este comando
permite que em
uma mesma linha
se coloque mais
de um
Parameters,
sendo que o
dafault é um
debaixo do outro.
334
Academia SAP ABAP
Gplux Treinamento SAP
335
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
339
Academia SAP ABAP
Gplux Treinamento SAP
340
Academia SAP ABAP
Gplux Treinamento SAP
341
Academia SAP ABAP
Gplux Treinamento SAP
342
Academia SAP ABAP
Gplux Treinamento SAP
343
Academia SAP ABAP
Gplux Treinamento SAP
344
Academia SAP ABAP
Gplux Treinamento SAP
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
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
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
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
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
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
351
Academia SAP ABAP
Gplux Treinamento SAP
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
353
Academia SAP ABAP
Gplux Treinamento SAP
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
355
Academia SAP ABAP
Gplux Treinamento SAP
359
Academia SAP ABAP
Gplux Treinamento SAP
360
Academia SAP ABAP
Gplux Treinamento SAP
Um Programa
ABAP pode
chamar outro
programa do
tipo 1 –
Executável
Tipo M –
Module Pool
361
Academia SAP ABAP
Gplux Treinamento SAP
Para chamar
Executáveis /
Reports o
comando é
SUBMIT.
362
Academia SAP ABAP
Gplux Treinamento SAP
Para chamar
uma Transação
/ Module Pool
o comando
pode ser Leave
to Transaction
ou Call
Transaction.
363
Academia SAP ABAP
Gplux Treinamento SAP
Um programa
poderá
chamar até 9
seções
internas, ou
seja, um
programa
que chama
outro
programa,
até 9.
Um programa
que chama o
outro com
retorno,
Submit ... And
Return ou
Funções.
365
Academia SAP ABAP
Gplux Treinamento SAP
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
367
Academia SAP ABAP
Gplux Treinamento SAP
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
Maneiras de
como um
programa
pode se
comunicar
com outro
programa.
369
Academia SAP ABAP
Gplux Treinamento SAP
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
Usar o Pattern
para montar a
syntax do
comando
SUBMIT.
371
Academia SAP ABAP
Gplux Treinamento SAP
372
Academia SAP ABAP
Gplux Treinamento SAP
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
375
Academia SAP ABAP
Gplux Treinamento SAP
376
Academia SAP ABAP
Gplux Treinamento SAP
377
Academia SAP ABAP
Gplux Treinamento SAP
Você executa
normalmente o
programa, para
que o sistema
levante os
tempos e encerre
o programa.
379
Academia SAP ABAP
Gplux Treinamento SAP
380
Academia SAP ABAP
Gplux Treinamento SAP
Teoricamente
não é bom.
381
Academia SAP ABAP
Gplux Treinamento SAP
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
383
Academia SAP ABAP
Gplux Treinamento SAP
384
Academia SAP ABAP
Gplux Treinamento SAP
385
Academia SAP ABAP
Gplux Treinamento SAP
386
Academia SAP ABAP
Gplux Treinamento SAP
Se achar que o
programa está
com problemas
de performance,
analise bem as
sugestões.
387
Academia SAP ABAP
Gplux Treinamento SAP
388
Academia SAP ABAP
Gplux Treinamento SAP
389