Escolar Documentos
Profissional Documentos
Cultura Documentos
Abap Treinamento para Iniciantes
Abap Treinamento para Iniciantes
Academia ABAP
Aluno: __________________________________________________
by BBKO Consulting
Academia SAP/ABAP R3
ndice
CAPTULO 1 MYSAP ERP __________________________________________________ 3
CAPTULO 2 CONCEITO DE BANCO DE DADOS RELACIONAL _______________ 9
CAPTULO 3 DICIONRIO DE DADOS _____________________________________ 10
CAPTULO 4 ABAP OPEN SQL ____________________________________________ 36
CAPTULO 5 TELA DE SELEO __________________________________________ 47
CAPTULO 6 LISTAS _____________________________________________________ 54
CAPTULO 7 LISTAS SECUNDRIAS ______________________________________ 64
CAPTULO 8 MODULARIZAO __________________________________________ 73
CAPTULO 9 DATA TRANSFER____________________________________________ 80
CAPTULO 10 PROGRAMAO ON-LINE __________________________________ 95
APNDICE A PROGRAMAO ON-LINE __________________________________ 128
OS COMPONENTES PRINCIPAIS DE UM DIALOG PROGRAM (ON-LINE) __________________
SCREEN PAINTER - ABAP/4 _________________________________________________
COMUNICAO: TELA ABAP/4 MODULE POOL ________________________________
DEFININDO O LAYOUT (GRAPHICAL SCREEN PAINTER) _____________________________
VISUALIZAES DE LISTAS DE CAMPO (FIELD LIST VIEWS) _________________________
DEFININDO O CONTROLE DO FLUXO ____________________________________________
PROCESSANDO O MODULE POOL ____________________________________________
DEFININDO CAMPOS NO MODULE POOL ______________________________________
DEFININDO CHAMADAS (CDIGOS DE TRANSAO) _______________________________
CHECAGEM AUTOMTICA DE CAMPO DE ENTRADA ________________________________
CHECANDO CAMPO DE ENTRADA NO MODULE POOL COM DILOGO DE ERRO __________
CHECANDO GRUPO DE CAMPOS _______________________________________________
LENDO CDIGOS DE FUNO EM PROGRAMAS ___________________________________
SEQNCIA DINMICA DE TELA: OVERVIEW _____________________________________
AJUSTANDO A PRXIMA TELA DINAMICAMENTE _________________________________
MENU PAINTER - OVERVIEW _________________________________________________
DEFININDO A INTERFACE I ___________________________________________________
DEFININDO A INTERFACE II __________________________________________________
DEFINIO AUTOMTICA DE CONES PARA TECLAS DE FUNO ______________________
DEFININDO MENUS DE REA _________________________________________________
by BBKO Consulting
128
128
128
128
130
130
130
131
131
131
132
132
133
133
133
133
133
134
134
134
Academia SAP/ABAP R3
by BBKO Consulting
Academia SAP/ABAP R3
BASIS
4
by BBKO Consulting
Academia SAP/ABAP R3
Papis e Responsabilidades
by BBKO Consulting
Academia SAP/ABAP R3
D (Dialog)
V (Update)
Solicitaes de dilogo.
Solicitaes para atualizar dados no banco de dados.
B (Background)
S (Spool)
E (Enqueue)
M (Message)
G (Gateway)
by BBKO Consulting
Academia SAP/ABAP R3
System Landscape
Sistema de Desenvolvimento
Sistema de QA
Sistema de Produo
PROD
QTST
DEV
Client
Copy
Client
Copy
Client
Transport
Client
MAST
Transport
MAST
Client
Copy
Client
Copy
SBOX
Client-indep.
Customizing
Repository
Objects
TRAI
Workbench
Request
Client-indep.
Customizing
Repository
Objects
Workbench
Request
Client-indep.
Customizing
Repository
Objects
6
by BBKO Consulting
Academia SAP/ABAP R3
by BBKO Consulting
Academia SAP/ABAP R3
Conceito de
Banco de Dados
Relacional
Campo
Registro
Coluna
Tabela
Unicidade de Registro Chave Primaria (PK) e Chave
Alternativa (AK)
Relacionamento Chave Estrangeira (FK)
ndice
by BBKO Consulting
Academia SAP/ABAP R3
Dicionrio de Dados
by BBKO Consulting
10
Academia SAP/ABAP R3
Dicionrio de Dados
Domnio
Elemento de Dados
Campos
Registros
Tabelas
Transparentes
Interna
No Dicionrio voc pode criar tipos definidos pelo usurio (data elements,
estruturas e table types). Objetos de banco de dados, tais como tabelas e
views de banco de dados, tambm podem ser definidas no Dicionrio
ABAP e criada com estas definies no banco de dados.
by BBKO Consulting
11
Academia SAP/ABAP R3
10
Descrio
CHAR
11
by BBKO Consulting
12
Academia SAP/ABAP R3
T1 TYPE I.
DATA D1 TYPE T1
DATA D3 TYPE T1
VALUE 123,
T2(5) TYPE P.
DATA D5 TYPE T2
VALUE 1.23
Grupo de Tipos
12
Data types:
Apenas descrio do type
No ocupa memria
Caracteriza os atributos tcnicos de todos os data objects que
possuem um type especificado
Data Objects:
uma concreta representao do type
Cada data object tem um type especfico e ocupa espao em
memria
by BBKO Consulting
13
Academia SAP/ABAP R3
Tabela 1
....
Campo
Valor_compra
Material
...
Uma tabela
composta de
campos
Elemento de Dados
MATNR
Domnio
MATNR
....
Campo
Valor_venda
Material
...
Elemento de Dados
Para criar um
Campo, voc
precisa de um
Elemento de
Dados
Uma definio
de elemento de
dados exige um
domnio
MATNR
Domnio
MATNR
13
by BBKO Consulting
14
Academia SAP/ABAP R3
14
by BBKO Consulting
15
Academia SAP/ABAP R3
15
16
by BBKO Consulting
16
Academia SAP/ABAP R3
17
18
by BBKO Consulting
17
Academia SAP/ABAP R3
19
Tabelas Transparentes
- Uma tabela transparente tem relacionamento um-para-um com
uma tabela no banco de dados.
- Ns criamos somente tabelas transparentes
23
by BBKO Consulting
18
Academia SAP/ABAP R3
Tabelas de Cluster
- Uma tabela de Cluster tem um relacionamento de muitos-paraum com uma tabela no banco de dados. Para uma tabela no
banco de dados, h muitas tabelas no Dicionrio. Muitas
tabelas de cluster de cluster so armazenadas em uma nica
tabela no banco de dados chamada de cluster de tabelas. Os
clusters de tabela armazenam dados de vrias tabelas
baseadas nos campos de chave primria que elas tm em
comum.
24
21
by BBKO Consulting
19
Academia SAP/ABAP R3
22
27
by BBKO Consulting
20
Academia SAP/ABAP R3
24
by BBKO Consulting
21
Academia SAP/ABAP R3
25
26
by BBKO Consulting
22
Academia SAP/ABAP R3
27
28
by BBKO Consulting
23
Academia SAP/ABAP R3
29
by BBKO Consulting
24
Academia SAP/ABAP R3
Chave Estrangira
34
Tabela
Mand
ZFUNC
Salario
Area
Campos Chaves
Check Table
Chave Primria Chave Estrangeira
Check Table
Mand
CodDepto
ZDEPTO
Fone
Fax
Campos Chaves
Chave Primria
31
by BBKO Consulting
25
Academia SAP/ABAP R3
32
by BBKO Consulting
26
Academia SAP/ABAP R3
33
Opes Tcnicas:
Data Class Define a rea fsica do banco de dados, na qual a tabela deve
ser armazenada (no Oracle o tablespace). Size category Define o
tamanho do armazenamento esperado para esta tabela no banco de dados.
Buffering define se e como a tabela deve ser bufferizada. Logging
Modificaes na entrada da tabela so armazenadas, mas tambm tem que
setar o parmetro rec/client (pode provocar gargalos no sistema (devido a
esses adicionais acessos).
by BBKO Consulting
27
Academia SAP/ABAP R3
34
Ao selecionar o cone
ativar no ABAP Dicitionary, a tabela transparente
automaticamente criada no banco de dados. A tabela no banco de dados
possui o mesmo nome da tabela no ABAP Dictionary. O campo tem tambm
os mesmos nomes e os tipos do campo no ABAP Dicitionary so convertidos
para os tipos de dados correspondentes no sistema do banco de dados.
by BBKO Consulting
28
Academia SAP/ABAP R3
35
36
by BBKO Consulting
29
Academia SAP/ABAP R3
37
38
by BBKO Consulting
30
Academia SAP/ABAP R3
Tabela Interna
43
44
by BBKO Consulting
31
Academia SAP/ABAP R3
45
by BBKO Consulting
32
Academia SAP/ABAP R3
Cidade
Rua
Bairro
Tabela Interna
Cod Cliente Nome
Cidade
Rua
Bairro
47
by BBKO Consulting
33
Academia SAP/ABAP R3
49
by BBKO Consulting
50
34
Academia SAP/ABAP R3
51
APPEND <TAB>
COLLECT <TAB>
Cod Func
Cod Depto
Salrio
Cod Func
Cod Depto
Salrio
9944
HR
1000,00
9944
HR
1000,00
9944
HR
1000,00
9944
HR
1000,00
9933
INFO
500,00
9933
INFO
500,00
0100
FINAN
2000,00
0100
FINAN
2000,00
2000,00
52
by BBKO Consulting
35
Academia SAP/ABAP R3
Open SQL
47
base de dados
SELECT
INSERT
DELETE
UPDATE
MODIFY
48
by BBKO Consulting
36
Academia SAP/ABAP R3
SELECT matnr
INTO TABLE tg_mara
FROM mara
WHERE matnr = p_matnr.
Campos Selecionados
Destino dos dados (Tabela Interna)
Origem dos dados (Tabela Transparente)
Condio para a seleo dos dados
by BBKO Consulting
37
Academia SAP/ABAP R3
Programa ABAP
Dicionrio
ABAP
Open SQL
Banco de Dados
Relatrio
49
- Para ler os dados das tabelas do banco de dados, voc precisa utilizar o
comando SELECT
- O ABAP contm comandos similares ao do SQL padro, na qual voc pode
acessar seu banco de dados. ABAP OPEN SQL tem as seguintes
caractersticas:
- Sintaxe corresponde sintaxe do SQL padro
- O ABAP SQL um subconjunto do SQL padro
- O ABAP SQL contm SAP short forms
- As tabelas devem ser definidas no Repositrio ABAP e tem chave primria.
by BBKO Consulting
38
Academia SAP/ABAP R3
Para fazer SELECT SINGLE, voc precisa passar como parmetro na condio WHERE a
chave completa da tabela transparente.
Neste exemplo acima, os campos selecionados foram armazenados em variveis de
memria, declarados no comando DATA
57
58
by BBKO Consulting
39
Academia SAP/ABAP R3
INTO TABLE: L os registros da tabela e move para uma tabela interna. Sobrepe os
registros existentes.
APPENDING TABLE: no sobrepe os registros existentes, ele move para o fim da tabela
interna.
59
SPRAS
MAKT
MATNR MAKTX
Check Table
Campos Chaves
Chave Estrangeira
Chave Primria
SELECT
INTO
FROM
INNER
mara~matnr makt~maktx
TABLE tg_materiais
mara
JOIN makt ON makt~matnr = mara~matnr AND
makt~spras = sy-langu
WHERE mara~matnr = p_matnr.
Check Table
Mand
MARA
MATNR
Campos Chaves
Chave Primria
60
by BBKO Consulting
40
Academia SAP/ABAP R3
matnr
TABLE tg_mara
mara
matnr = p_matnr.
IF sy-subrc = 0.
SELECT matnr maktx
INTO TABLE tg_makt
FROM makt
FOR ALL ENTRIES IN tg_mara
WHERE matnr = tg_mara-matnr.
ENDIF.
61
Acesso: Insert
TABLES ZTABELA
ZTABELA-MATNR
ZTABELA-CAMPO2
ZTABELA-CAMPO3
= 10'.
= 002'.
= INSERT'.
53
by BBKO Consulting
41
Academia SAP/ABAP R3
Acesso: Delete
TABLES ZTABELA.
DELETE FROM ZTABELA
WHERE MATNR = 10'.
54
Acesso: Update
UPDATE ZTABELA
SET CAMPO2 = '002
CAMPO3 = UPDATE'
WHERE MATNR = 20'.
64
by BBKO Consulting
42
Academia SAP/ABAP R3
Acesso: Modify
TABLES ZTABELA.
ZTABELA-MATNR
ZTABELA-CAMPO2
ZTABELA-CAMPO3
= 30'.
= 002'.
= MODIFY'.
MODIFY ZTABELA.
65
by BBKO Consulting
43
Academia SAP/ABAP R3
Tipos de
Programas
66
Relatrios
- O programa consiste em duas telas, a primeira tela chamada
de tela de seleo (selection screen) , nesta tela voc define
os critrios do relatrio e filtros. A segunda tela a tela de
sada, contm a lista.
Includes
58
by BBKO Consulting
44
Academia SAP/ABAP R3
59
by BBKO Consulting
45
Academia SAP/ABAP R3
Exemplo:
Report Zteste.
Tables: Mara.
Types: type_campo2(2) type c,
type_documento like bseg-ebeln.
Data: vg_campo1 type type_campo2 value XX,
vg_campo2 type type_documento.
Constants c_X(1) type c value X.
by BBKO Consulting
69
46
Academia SAP/ABAP R3
Tela de Seleo
63
Tela de Seleo
Tela de Seleo
Eventos da Tela de Seleo
62
by BBKO Consulting
47
Academia SAP/ABAP R3
63
by BBKO Consulting
48
Academia SAP/ABAP R3
64
by BBKO Consulting
49
Academia SAP/ABAP R3
" Tipo PC
" Tipo UNIX
66
67
by BBKO Consulting
50
Academia SAP/ABAP R3
Initialization.
p_data = p_data 10.
Start-of-Selection.
Write: p_data.
A seqncia dos eventos no cdigo fonte no tem efeito na sequencia na qual eles so chamados pelo
ABAP Runtime System
68
Dicas
71
by BBKO Consulting
51
Academia SAP/ABAP R3
Example
DATA letters(3) TYPE C.
MOVE 'abc' TO letters.
TRANSLATE letters TO UPPER CASE.
letters now has the contents 'ABC'
Example
DATA: letters(20) TYPE C VALUE 'abcabcabcXabc',
change(15) TYPE C VALUE 'aXbaYBabZacZB'.
TRANSLATE letters USING change.
letters now contains 'XaZXaZXaZXXaZ'
70
Exemplo:
Alinha o material a direita e preenche com zeros a esquerda
71
by BBKO Consulting
52
Academia SAP/ABAP R3
Dicas LOOPs
DO
... ENDDO
WHILE
... ENDWHILE
LOOP
... ENDLOOP
72
by BBKO Consulting
53
Academia SAP/ABAP R3
Captulo 6 Listas
Listas
84
Listas
82
by BBKO Consulting
54
Academia SAP/ABAP R3
Parmetros de Sada:
Write ...
Format ...
New-Page ...
Eventos
TOP-OF-PAGE.
END-OF-PAGE.
Elementos de Texto
Text Symbols
Heading
Selection texts
by BBKO Consulting
55
Academia SAP/ABAP R3
84
-WRITE:
-Comando que gera sada de dados no relatrio.
-Exemplo: WRITE 'Hello, here I am!'.
-System fields (tabela SYST):
-Alguns campos da tabela SYST so interessantes para uso em
reports:
-SY-PAGNO:
-Nmeros da pagina.
-SY-DATUM:
-Data atual.
-SY-UZEIT:
-Hora atual.
-SY-UNAME:
-Usurio do login.
by BBKO Consulting
56
Academia SAP/ABAP R3
85
-FORMAT:
-Atravs do FORMAT pode-se manipular o formato dos dados a serem
apresentados com WRITE. Pode-se controlar a cor, intensidade, etc.
by BBKO Consulting
57
Academia SAP/ABAP R3
-NEW-PAGE:
-Salta uma pagina do relatrio.
by BBKO Consulting
58
Academia SAP/ABAP R3
DATUM = SY-DATUM.
TIME = SY-UZEIT.
Format color col_normal.
WRITE: 5 Data(001),
20 DATUM DD/MM/YYYY.
Skip 2. Pula duas linhas
Format color off.
WRITE: /5 Hora (002),
TIME using edit mask _ _:_ _:_ _
under datum.
87
-Eventos:
-Eventos so identificados por uma palavra-chave de evento, ou seja, o
apresentao da lista.
by BBKO Consulting
59
Academia SAP/ABAP R3
88
by BBKO Consulting
60
Academia SAP/ABAP R3
89
AT FIRST
AT NEW
AT END OF
AT LAST
91
by BBKO Consulting
61
Academia SAP/ABAP R3
LOOP AT ITAB
FIRST.
SORT TG_ITAB BY ORT01 NAME1 ADDRNR . AT
AT NEW < campo>
LOOP AT TG_ITAB INTO ST_ITAB.
AT END OF < campo>
AT NEW ORT01.
AT LAST.
WRITE: / ST_ITAB-ORT01.
ENDLOOP
ENDAT.
AT END OF ORT01.
ULINE.
WRITE: / ST_ITAB-ORT01.
ENDAT.
ENDLOOP.
...
...
...
...
ENDAT.
ENDAT.
ENDAT.
ENDAT.
Obs.: O campo ORT01 neste exemplo tem que ser o primeiro campo
da tabela interna
ITAB.
92
by BBKO Consulting
62
Academia SAP/ABAP R3
Dicas
96
94
by BBKO Consulting
63
Academia SAP/ABAP R3
Listas Secundrias
98
by BBKO Consulting
64
Academia SAP/ABAP R3
Listas Secundrias
96
by BBKO Consulting
65
Academia SAP/ABAP R3
97
Line
Hide Area
Line
1
2
1
2
3
WA_ZFUNC-NUM_ID
0000000001
0000000002
0000000003
98
by BBKO Consulting
66
Academia SAP/ABAP R3
SY-LSIND = 1
Traz dados da Lista Secundria
99
by BBKO Consulting
67
Academia SAP/ABAP R3
100
Lista Bsica
Lista Secundria
101
by BBKO Consulting
68
Academia SAP/ABAP R3
102
103
by BBKO Consulting
69
Academia SAP/ABAP R3
104
105
by BBKO Consulting
70
Academia SAP/ABAP R3
106
107
by BBKO Consulting
71
Academia SAP/ABAP R3
108
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'TEXTO'.
SET pf-status 'LIST' excluding 'TEXTO'.
DATA: tg_mara TYPE TABLE OF TYPE_MARA,
SET titlebar 'LIST1'.
st_mara TYPE
TYPE_MARA,
st_makt TUPE
TYPE_MAKT.
SELECT single matnr maktx
INTO (st_makt-matnr,st_makt-maktx)
select-options: so_matnr for mara-matnr.
FROM makt
****************************************
WHERE matnr = t_mara-matnr AND
* Evento START-OF-SELECTION
spras = 'P '.
****************************************
start-of-selection.
WRITE: 'Material lista secundria',
set pf-status 'LIST'.
st_makt-matnr, st_makt-maktx.
set titlebar 'LIST'.
ENDCASE.
110
by BBKO Consulting
72
Academia SAP/ABAP R3
Captulo 8 Modularizao
Modularizao
75
Modularizao
Sub-rotinas
Grupo de Funes
Funes
74
by BBKO Consulting
73
Academia SAP/ABAP R3
Modularizao - Subrotinas
Inicio do Programa
Perform carrega_tab
Using
Campo 1
Changing tab1
Form carrega_tab
Using
Campo 1
Changing tab1
....
75
by BBKO Consulting
74
Academia SAP/ABAP R3
76
by BBKO Consulting
75
Academia SAP/ABAP R3
77
by BBKO Consulting
76
Academia SAP/ABAP R3
78
by BBKO Consulting
77
Academia SAP/ABAP R3
Crie grupo de funo por assunto, evite utilizar vrios mdulos de funo num mesmo
grupo, pois se algum estiver codificando um mdulo, e voc quiser transportar a sua funo
e eles pertencerem ao mesmo grupo, voc s vai conseguir transportar no momento que
todos as funes deste grupo estiverem sem erro de sintaxe.
79
80
by BBKO Consulting
78
Academia SAP/ABAP R3
'01'.
'X'.
'T_ALV'.
= 'COL_01'.
= 'Material'.
= 'Material'.
= 'Material'.
fieldcat-fix_column = 'X'.
Append fieldcat.
119
by BBKO Consulting
79
Academia SAP/ABAP R3
Transferncia de Dados
114
Transferncia de Dados
Processando Arquivo Seqencial
Call Transaction
Batch Input
111
by BBKO Consulting
80
Academia SAP/ABAP R3
IF p_unix = 'X'.
OPEN DATASET p_arqori FOR INPTU IN text MODE MESSAGE v_msg.
DO.
READ DATASET P_ARQORI INTO T_DATA_LOAD.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
APPEND T_DATA_LOAD.
ENDDO.
ENDIF.
112
113
by BBKO Consulting
81
Academia SAP/ABAP R3
IF P_UNIX EQ 'X'.
OPEN DATASET V_ARQSAIDA FOR OUTPUT IN TEXT MODE MESSAGE V_MSG.
IF SY-SUBRC NE 0.
MESSAGE E001(ZI) WITH V_ARQSAIDA V_MSG.
ENDIF.
LOOP AT T_SAIDA.
TRANSFER T_SAIDA TO V_ARQSAIDA.
ENDLOOP.
CLOSE DATASET V_ARQSAIDA.
IF SY-SUBRC NE 0.
MESSAGE E011(ZI) WITH V_ARQSAIDA.
ENDIF.
ELSEIF P_PC EQ 'X'.
.....
114
115
by BBKO Consulting
82
Academia SAP/ABAP R3
116
117
by BBKO Consulting
83
Academia SAP/ABAP R3
118
Dados
Externos
SAP
INTERFACES
BANCO SAP
119
by BBKO Consulting
84
Academia SAP/ABAP R3
Dicionrio
ABAP/4
READ DATASET
Programa de BATCH INPUT
Estrutura BDCDATA
Tabela
BDC
INCLUDE STRUCTURE
CALL FUNCTION
FILA
120
121
by BBKO Consulting
85
Academia SAP/ABAP R3
Call Transaction
WA_BDCDATA-PROGRAM = 'SAPMS38M'. Informa o nome/numero da tela
WA_BDCDATA-DYNPRO
= '0100'.
WA_BDCDATA-DYNBEGIN = 'X'.
APPEND WA_BDCDATA TO BDCDATA.
CLEAR WA_BDCDATA.
WA_BDCDATA-FNAM
= 'RS38M-PROGRAMM'. Preenche campos da tela
WA_BDCDATA-FVAL
= PROGRAM.
APPEND WA_BDCDATA TO BDCDATA.
...
* Chama a transao com os dados de tela e campos definidos
CALL TRANSACTION 'SE38'
122
by BBKO Consulting
86
Academia SAP/ABAP R3
" CALL_TRANSACTION
**********************************************************************
* FORM BDC_MESSAGE
**********************************************************************
FORM BDC_MESSAGE.
CLEAR W_MESS.
124
* FROM T100
SPRSL = 'P'
ARBGB = T_MESS-MSGID
MSGNR = T_MESS-MSGNR.
W_MESS = T100-TEXT.
STRAUX4 = T_MESS-MSGV1.
REPLACE '&' WITH STRAUX4 INTO W_MESS.
CONDENSE W_MESS.
STRAUX4 = T_MESS-MSGV2.
REPLACE '&' WITH STRAUX4 INTO W_MESS.
CONDENSE W_MESS.
STRAUX4 = T_MESS-MSGV3.
REPLACE '&' WITH STRAUX4 INTO W_MESS.
CONDENSE W_MESS.
STRAUX4 = T_MESS-MSGV4.
REPLACE '&' WITH STRAUX4 INTO W_MESS.
CONDENSE W_MESS.
ENDFORM.
125
by BBKO Consulting
87
Academia SAP/ABAP R3
'SAPMM07I'
'BDC_OKCODE'
'BDC_CURSOR'
'0721'.
'=BU'. Salvar
'ISEG-
by BBKO Consulting
88
Academia SAP/ABAP R3
Obs: Segue exemplo: transao MM02 (alterao de material) onde vamos apenas alterar a
descrio dos materiais
128
129
by BBKO Consulting
89
Academia SAP/ABAP R3
130
131
by BBKO Consulting
90
Academia SAP/ABAP R3
132
133
by BBKO Consulting
91
Academia SAP/ABAP R3
134
Campo
Tipo
Cdigo do material
Descrio do Material
char 40 posies
135
by BBKO Consulting
92
Academia SAP/ABAP R3
136
137
by BBKO Consulting
93
Academia SAP/ABAP R3
138
by BBKO Consulting
94
Academia SAP/ABAP R3
Programao On-Line
143
by BBKO Consulting
95
Academia SAP/ABAP R3
Atributos
Da Tela
Screen Number
Short Description
Screen type
Next Screen
...
Layout
Da Tela
Screen Number
Short Description
Screen type
Next Screen
...
Atributos
dos campos
Field Name
Type
Length
...
Controle do Fluxo
Process Before Output.
Module Clear-ok_code.
Controle do Fluxo
Process After Input
Module User_Command_0100
140
by BBKO Consulting
96
Academia SAP/ABAP R3
Cdigo
Cdigo do
do Cliente
Cliente
Nome
Nome
Endereo
Endereo
141
by BBKO Consulting
97
Academia SAP/ABAP R3
PBO
PAI
Module ...
Set Screen 300.
Leave Screen.
Endmodule.
Tela 300
Prxima tela 400
PBO
PAI
Module ...
Set Screen 0.
Leave Screen.
Endmodule.
O comando SET SCREEN 0 e LEAVE Screen volta para a tela que chamou, no caso tela 300.
142
by BBKO Consulting
98
Academia SAP/ABAP R3
143
by BBKO Consulting
99
Academia SAP/ABAP R3
Screen
Painter
Action sequence
Execute module A
Data transport from
ABAP/4 to screen
work area
Send screen
ENTER
Data transport from
screen to ABAP/4
work area
Execute module B
144
by BBKO Consulting
100
Academia SAP/ABAP R3
A
B
A
B
output field
input and
output field
146
by BBKO Consulting
101
Academia SAP/ABAP R3
Field name
SCREEN-REQUIRED
Required field
SCREEN-INPUT
Input field
SCREEN-OUTPUT
Output field
SCREEN-INTENSIFIED
Highlighted field
SCREEN-INVISIBLE
Invisible field
SCREEN-LENGTH
Field length
SCREEN-ACTIVE
Active field
SCREEN-DISPLAY_3D
3-dimensional field
SCREEN-VALUE_HELP
SCREEN-REQUEST
Modification
Modification
Modification
Modification
group 1
group 2
group 3
group 4
146
by BBKO Consulting
102
Academia SAP/ABAP R3
Screen
Painter
SPFLI_ITAB-CONNID
SPFLI_ITAB-CITYFROM
SPFLI_ITAB-CITYTO
...
SEL
SEL
SEL
...
147
by BBKO Consulting
103
Academia SAP/ABAP R3
ABAP/4
...
LOOP AT SCREEN.
IF
SCREEN-GROUP1
SCREEN-INPUT =
ENDIF.
IF
SCREEN-NAME
SCREEN-ACTIVE
ENDIF.
MODIFY SCREEN.
= 'SEL'.
1.
= ' SFLIGHT-CARRID
= 0.
'.
ENDLOOP.
ENDMODULE.
148
by BBKO Consulting
104
Academia SAP/ABAP R3
Module Verifica_Campo
...
message E ...
Endmodule.
- Dentro do bloco CHAIN, voc deve usar o ON CHAIN-INPUT, o module ento chamado se o
contedo de uma das telas foi alterado do valor inicial.
PROCESS AFTER INPUT.
CHAIN.
FIELD <campo1>,
<campo2>
... < campo n>
Module Verifica_Campo ON CHAIN-INPUT.
ENDCHAIN.
Module Verifica_Campo
...
message E ...
Endmodule.
150
Module Verifica_Campo
...
message E ...
Endmodule.
- Dentro do bloco CHAIN, voc deve usar o ON CHAIN-INPUT, o module ento chamado se o
contedo de uma das telas foi alterado do valor inicial.
PROCESS AFTER INPUT.
CHAIN.
FIELD <campo1>,
<campo2>
... < campo n>
Module Verifica_Campo ON CHAIN-INPUT.
ENDCHAIN.
Module Verifica_Campo
...
message E ...
Endmodule.
150
by BBKO Consulting
105
Academia SAP/ABAP R3
Module Verifica_Campo
...
message E ...
Endmodule.
- Dentro do bloco CHAIN, voc deve usar o ON CHAIN-REQUEST, o module ento chamado se
o usurio alterou o contedo de um dos campos dentro do bloco CHAIN.
PROCESS AFTER INPUT.
CHAIN.
FIELD <campo1>,
<campo2>
... < campo n>
Module Verifica_Campo ON CHAIN-REQUEST.
ENDCHAIN.
Module Verifica_Campo
...
message E ...
Endmodule.
151
152
by BBKO Consulting
106
Academia SAP/ABAP R3
153
by BBKO Consulting
107
Academia SAP/ABAP R3
154
by BBKO Consulting
108
Academia SAP/ABAP R3
155
by BBKO Consulting
109
Academia SAP/ABAP R3
156
by BBKO Consulting
110
Academia SAP/ABAP R3
157
by BBKO Consulting
111
Academia SAP/ABAP R3
158
by BBKO Consulting
e
da barra de
112
Academia SAP/ABAP R3
159
by BBKO Consulting
113
Academia SAP/ABAP R3
160
by BBKO Consulting
114
Academia SAP/ABAP R3
161
-Observe no exemplo acima que clicando na tela 100, aparece o fluxo lgico
da tela 0100 (PBO e PAI).
- Os modules esto comentados, caso utilize, tirar os comentrios e os
modules sero criados em includes.
- Durante o processo de criao dos mdulos PAI e/ou PBO, voc pode
associ-los aos includes desejados ou deixar que o sistema automaticamente
faa isto por voc. Neste caso os mdulos no PBO sero criados nos includes
com o sufixo I01 (xxxxxI01), e os do PAI, nos includes com sufixo O01
(xxxxxO01).
- Nos Flow Logics no so permitidos palavras reservadas (IF, PERFORM,
WHILE etc) da mesma forma em que so permitidos nos programas. O Flow
Logic, embora se parea muito com o programa (o editor o mesmo), no
tem o mesmo comportamento. Ele usado basicamente para ordenar o
processamento da tela, e para isso so criados os MODULES, que tm uma
funo anloga do PERFORM.
- Para criarmos um MODULE, escreva o seu nome no flow logic no lugar
desejado e efetue um double-click. O sistema criar uma sub-rotina iniciando
com MODULE <nome> e terminando com ENDMODULE no include
apropriado. Isto pode ser facilmente observado efetuando uma navegao
pelo include.
- Se no existirem includes, o sistema poder criar um (se voc permitir) ou
poder incluir a sub-rotina no programa principal (o que alis, no
recomendado).
by BBKO Consulting
115
Academia SAP/ABAP R3
-Tirar das linhas o comentrio e atribuir algum cdigo ao GUI status e ao GUI
title, no exemplo acima foi atribudo o 0100.
162
163
by BBKO Consulting
116
Academia SAP/ABAP R3
168
by BBKO Consulting
117
Academia SAP/ABAP R3
165
166
by BBKO Consulting
118
Academia SAP/ABAP R3
167
-Voc pode criar botes associados aos Cdigos criados na Barra de Menu
ou no.
- Quando cria botes, voc pode associar a uma tecla de funo
by BBKO Consulting
119
Academia SAP/ABAP R3
168
-Voc pode usar at nove variveis no ttulo. Veja abaixo o Module chamando
o titlebar CONS passando a varivel cdigo do funcionrio.
by BBKO Consulting
120
Academia SAP/ABAP R3
169
by BBKO Consulting
121
Academia SAP/ABAP R3
169
by BBKO Consulting
122
Academia SAP/ABAP R3
170
-Segue
by BBKO Consulting
123
Academia SAP/ABAP R3
170
-Segue
by BBKO Consulting
124
Academia SAP/ABAP R3
Sub-Rotinas
PAI
PBO
Declaraes
Globais
171
172
by BBKO Consulting
125
Academia SAP/ABAP R3
173
- Para executar programa tipo M (Module Pool) voc deve criar pelo menos
uma transao.
by BBKO Consulting
126
Academia SAP/ABAP R3
174
175
by BBKO Consulting
127
Academia SAP/ABAP R3
Voc usa o Screen Paiter e o Menu Painter para criar e desenhar telas modelas e programas de
telas.
Voc define o processamento lgico no module pool do programa ABAP/4 .
Estruturas de dados so definidas no Dicionrio ABAP/4. Voc pode acessar esses estruturas do
programa ABAP/4 e quando define campos de tela.
O processador de dilogo controla o fluxo do seus programa dilogo.
by BBKO Consulting
128
Academia SAP/ABAP R3
Note:
Na verso 3.0, a Graphical Screen Painter suportada pelo Windows NT, Windows 9x
e UNIX. Se voc est usando outro sistema operacional, voc usa a Alphanumeric
Screen Painter.
by BBKO Consulting
129
Academia SAP/ABAP R3
Field types
Texts/templates
General attributes
Display attributes
Modification groups
Matchcode/reference
H seis visualizaes de listas de campos para manuteno dos atributos dos campos da tela.
Alternativamente, voc pode defini-los de uma das listas. Manuteno de atributos para um
campo tambm possvel no fullscreen editor.
Voc pode descobrir o correspondente do tipo de dado externo para o tipo de dado interno (ex.:
tipos de dados ABAP/4) pela referida documentao da palavra chave TABLES no ABAP/4.
Exemplos so os seguintes:
Tipo de dados do dicionrio ABAP/4
CHAR
NUMC
Os comandos do ABAP/4 do MODULE para PBO contm uma adio OUTPUT, quando os
comandos do mdulo for do mdulo PAI contm uma adio INPUT.
by BBKO Consulting
130
Academia SAP/ABAP R3
OU
GLOBAL DATA
DATA: ... .
TALA
X Dialog transaction
TALA
Test
SAPMTALA
100
Voc pode iniciar um programa de dilogo ABAP/4 (transao) com um especfico cdigo de
transao.
Tansaes customizadas devem comear com Z ou Y.
O sistema cria suas especificaes na tabela TSTC (ao invs de criar uma transao na lista de
objetos, voc pode dar manuteno na tabela voc mesmo)
Aps o usurio ter finalizado uma tela (ex. ter entrado dados e pressionado a tecla ENTER ou ter
acionado alguma outra funo), mas antes dos mdulos do PAI serem processados, o
processador de dilogo executa um nmero de checagens automticas.
O primeiro destes s ser certificado so os campos requeridos na entrada de dados.
by BBKO Consulting
131
Academia SAP/ABAP R3
Se voc quer checar valores de entrada no MODULE POOL e iniciar um dilogo de erro de um
resultado negativo, voc usa o comando FIELD com a adio MODULE. Isto significa que o
relevante mdulo executado somente para o campo especificado no comando FIELD.
Se o mdulo resulta numa mensagem de erro (E) ou warning (W), a tela reapresentada sem o
processamento dos mdulos PBO. O texto da mensagem apresentado e somente o campo
checado por este mdulo apresentado para entrada de dados novamente.
Note que somente o comando FIELD responsvel por fazer a leitura do campo para entrada
novamente. Se voc formular uma mensagem num mdulo sem chamar o mdulo no comando
FIELD, a mensagem apresentada, mas o campo no lido para entrada de dados novamente.
Se voc quer checar muitos campos para entrada de dados novamente no evento de um erro de
dilogo, voc deve especificar todos no comando FIELD e concatenar estes junto com o comando
MODULE para checagem no CHAIN.
Um campo pode ser usado em diferentes CHAINs.
Note que o comando FIELD no somente faz a leitura para entrada de dados novamente.
Qualquer um dos campos modificado durante o processamento do PAI somente se torna visveis
no evento do erro se eles so tambm especificados no comando FIELD do referido CHAIN.
by BBKO Consulting
132
Academia SAP/ABAP R3
Voc usa o Menu Painter para definir funes na tela no stautus particular e determina-as para a
barra de menus prpria. Para cada status, voc define que as funes de menu esto ativas ou
inativas.
Definindo a Interface I
Numa request, o sistema prope valores padres para barra de menu e define a tecla de funo,
mas voc pode modificar isso.
Barras de menu podem conter at oito menus. Voc pode definir at seis destes, mas os menus
System e Help so adicionados automaticamente pelo sistema.
Um nico menu contm at 15 entradas, incluindo as funes e suas descries, nomes de submenus e linhas separadoras.
Voc poderia especificar tambm todas as funes que so ativadas num status como ativa na
barra de menu.
by BBKO Consulting
133
Academia SAP/ABAP R3
Definindo a Interface II
Voc determina as funes ativas que um usurio provavelmente mais precisa no situao atual
para a barra de botes. Antes de voc fazer isso, o cdigo de funo deve ser determinado para
uma tecla de funo.
Voc determina cdigos de funo para teclas de funo pelas entradas destas em
Configuraes Recomendadas de Teclas de Funes ou Sees de Teclas de Funo Definidas
Livremente .
O sistema automaticamente define as teclas de funo no padro barra de ferramentas para
teclas de funo especial.
Significado
Enter
Salvar
Voltar
Sair (programa)
Cancelar (tela)
Imprimir
Pesquisar
Continuar Pesquisando
Primeira Pgina
Pgina Anterior
Prxima Pgina
ltima Pgina
Help
Icon (Smbolo)
ticado
Pasta
Seta p/ a esquerda
Seta p/ cima
X
Impressora
Binculo
Binculo +
Pgina com seta dupla
Pgina com seta p/ cima
Pgina com seta p/ baixo
Pgina com seta dupla
Interrogao
O sistema define automaticamente cdigos de funo que voc define na barra de ferramentas
padro para teclas de funo especial.
Para descobrir quais definies aplicadas para as funes no status atual, clique no termo Barra
de Ferramentas Padro.
by BBKO Consulting
134