Documentos de Académico
Documentos de Profesional
Documentos de Cultura
5
INTEGRAO R/3.............................................................................................................5
BUSINESS FRAMEWORK...................................................................................................6
COMPONENTES DO BUSINESS FRAMEWORK.....................................................................6
R/3 COMO UM SISTEMA ABERTO.......................................................................................6
CLIENT/SERVER ESCALABILIDADE DO SISTEMA R/3.....................................................7
PRINCPIO DO CLIENT/SERVER.........................................................................................8
CONFIGURAES CLIENT/SERVER NUM SISTEMA R/3......................................................8
HIERARQUIA DE TRS CAMADAS......................................................................................9
PLATAFORMAS PARA O SISTEMA R/3..............................................................................10
NAVEGANDO NO R/3....................................................................................................11
LOGON............................................................................................................................11
CONCEITO DE MANDANTE E CLIENT NO SISTEMA R/3..................................................12
ESTRUTURA DO MENU DO R/3.......................................................................................12
ESTRUTURA DE UMA TELA NO SISTEMA R/3..................................................................13
SELECIONANDO FUNES...............................................................................................14
AJUDA DE CAMPO..........................................................................................................14
HELP ON-LINE................................................................................................................16
SYSTEM FUNCTIONS.......................................................................................................16
Services......................................................................................................................16
Utilities......................................................................................................................16
KERNEL DO SISTEMA R/3..........................................................................................18
INTERFACE DE APRESENTAO......................................................................................18
RDBMS RELATIONAL DATABASE MANAGEMENT SYSTEMS......................................18
INTERFACE DE BANCO DE DADOS DO SISTEMA R/3......................................................19
PROCESSANDO REQUISIES DO USURIO.....................................................................20
APPLICATION SERVICES..................................................................................................21
TRANSAES..................................................................................................................21
LUW (LOGICAL UNIT OF WORK)..................................................................................21
REQUISITANDO UM LOCK...............................................................................................21
OBJETO DE LOCK...........................................................................................................22
PROCESSAMENTO EM BACKGROUND.............................................................................22
SERVIOS DE IMPRESSO...............................................................................................23
INSTANCIA R/3...............................................................................................................23
ABAP DICTIONARY......................................................................................................24
OBJETOS DO DICIONRIO................................................................................................24
CONCEPO DUAL LEVEL.............................................................................................24
TABELAS TRANSPARENTES.............................................................................................24
ESTRUTURAS..................................................................................................................25
VIEWS.............................................................................................................................25
SEARCH HELP.................................................................................................................25
ABAP................................................................................................................................26
243773697.doc
1 / 76
CONCEITO.......................................................................................................................26
REPOSITRIO..................................................................................................................26
FERRAMENTAS DO WORKBENCH....................................................................................27
TRANSPORTE DE OBJETOS..............................................................................................27
DESENVOLVENDO UM PROJETO DO WBO......................................................................28
FINALIZANDO UM PROJETO............................................................................................29
CRIANDO CLASSES DE DESENVOLVIMENTO...................................................................30
CRIANDO PROGRAMAS EM ABAP..................................................................................30
Overview....................................................................................................................30
Atributos....................................................................................................................31
Editor.........................................................................................................................32
Declaraes referenciando ao dicionrio.................................................................32
Telas de seleo.........................................................................................................33
Open SQL..................................................................................................................33
Messages...................................................................................................................34
Listas.........................................................................................................................34
Sintaxes......................................................................................................................35
Comentrios..............................................................................................................36
OPEN SQL.......................................................................................................................36
DATABASE INTERFACE....................................................................................................36
OVERVIEW......................................................................................................................37
COMANDO SELECT.......................................................................................................37
Overview....................................................................................................................37
Single Line.................................................................................................................38
Several Lines.............................................................................................................38
Tabela Interna...........................................................................................................39
Operadores da Clausula Where................................................................................39
CONTEXTO DE DADOS...............................................................................................40
DEFININDO OBJETO DE DADOS.......................................................................................40
Tipo de Dados............................................................................................................40
Tipos pr-definidos....................................................................................................40
Objeto de dados elementares.....................................................................................41
Estruturas..................................................................................................................42
Referindo-se ao Dicionrio ABAP............................................................................42
Comando TABLES.....................................................................................................43
Literais e contantes...................................................................................................43
Smbolo de Texto........................................................................................................43
Transferindo Valores.................................................................................................44
Comando MOVE..............................................................................................44
Comando MOVE-CORRESPONDING......................................................44
Regras de Converso.................................................................................................45
Calculando Valores...................................................................................................46
Sub-Campos...............................................................................................................46
Calculando Datas......................................................................................................47
243773697.doc
2 / 76
Expresses Lgicas...................................................................................................47
Estrutura CASE.........................................................................................................48
Loops DO e WHILE..................................................................................................49
Comandos CHECK e EXIT.......................................................................................50
FERRAMENTAS DE TESTE........................................................................................51
DEBUG............................................................................................................................51
Importantes funes do Debug..................................................................................51
Breakpoint.................................................................................................................52
TABELAS INTERNAS...................................................................................................53
DEFINIO......................................................................................................................53
EXPANSES DINMICAS..................................................................................................53
ATRIBUTOS.....................................................................................................................53
Tipos de linhas...........................................................................................................53
Keys...........................................................................................................................53
Tipos de tabelas.........................................................................................................54
WORK AREA...................................................................................................................55
DECLARANDO TABELAS INTERNAS.................................................................................56
PREENCHENDO TABELAS INTERNAS...............................................................................56
TABELAS INTERNAS COM OU SEM HEADER LINE.......................................................57
INTO TABLE E INTO CORRESPONDING FIELDS OF TABLE..............................57
COMANDO SORT...........................................................................................................58
LOOP EM TABELA INTERNA...........................................................................................58
ACESSANDO REGISTRO NA TABELA INTERNA.................................................................59
ALTERANDO REGISTROS COM NDICE.............................................................................60
MODULARIZAO DE PROGRAMAS....................................................................61
ESTRUTURAS DE UM PROGRAMA ABAP........................................................................61
TIPOS DE BLOCOS DE PROCESSAMENTO.........................................................................61
MODULARIZANDO..........................................................................................................61
Eventos em programas executveis...........................................................................61
Subrotinas..................................................................................................................62
Visibilidade dos dados...............................................................................................62
Chamando Subrotinas - Parmetros.........................................................................63
Chamando Subrotinas Estruturas..........................................................................63
Chamando Subrotinas Tabelas Internas.................................................................63
FUNES........................................................................................................................64
Chamando Mdulo de Funes.................................................................................64
Criando grupo de funo..........................................................................................65
Criando um mdulo de funo..................................................................................66
Elementos de um mdulo de funo..........................................................................66
Elementos de um mdulo de funo IMPORT.......................................................67
Elementos de um mdulo de funo EXPORT.......................................................67
Elementos de um mdulo de funo CHANGING..................................................67
Elementos de um mdulo de funo TABLES........................................................67
Elementos de um mdulo de funo EXCEPTIONS..............................................67
243773697.doc
3 / 76
243773697.doc
4 / 76
O sistema R/3 baseado num modelo que cobre diversas areas da empresa:
o FI
Financial Accounting
o CO
Controlling
o AM Asset Management
o MM Materials Management
o PP
Production Planing and Production Control
o SD
Sales and Distribuition
o QM Quality Management
o PM
Plant Maintenance
o PS
Project Management / Service Management
o HR
Human Resources
o WF
Office Communication / Workflow Functions
o IS
Industry Soluction
Os components do sistema R/3 utilizam a tecnologia UP-TO-THE-MINUTE
com compreensivas funes de negcio. O alto nvel de integrao de processos
permite que todas as funes sejam acessadas diretamente atravs do sistema e
portanto da companhia. Quando se instala o sistema R/3, todos os dados so
integrados usando uma base de dados comum.
Os processos do sistema R/3 no so restritos a um modulo individual. Todos os
dados e funes esto conectados uns aos outros.
243773697.doc
5 / 76
Business Framework
243773697.doc
6 / 76
Application
Escalabilidade
Database
Princpio do Client/Server
243773697.doc
7 / 76
243773697.doc
8 / 76
243773697.doc
9 / 76
Unix System
Bull
IBM
Digital
SNI
HP
SUN
SISTEMAS
AIX
OPERACIONAIS Reliant
Digital Unix
Unix (SINIX)
HP-UX
Solaris
BANCOS
DE DB2
DADOS
INFORMIX
ORACLE
DIALOG
(SAPGUI)
LINGUAGENS
243773697.doc
Bull/Zenith
Compac
Digital
HP (Intel)
IBM (Intel)
IBM AS/400
IBM S/390
Windows NT
OS/400
OS/390
DB2
DB2
FOR DB2
INFORMIX
AS/400
OS/390
ORACLE
MS SQL
Windows (3.1/95/NT/ME/XP) OSF/Motif,
OS/2 Presentation Manager, Macintoch, Java
ABAP, C, C++, HTML, Java
FOR
10 / 76
Navegando no R/3
Logon
243773697.doc
11 / 76
243773697.doc
12 / 76
243773697.doc
13 / 76
Option
s
Title Bar
Command
Field
Standard
Toolbar
Applicatio
n Toolbar
Status
bar
Selecionando funes
Ajuda de Campo
243773697.doc
14 / 76
243773697.doc
15 / 76
Help On-line
System Functions
Services
Utilities
243773697.doc
16 / 76
f. Exibio de Performance
g. Anlise de Tempo de Execuo
i. Executar
ii. Ativar
iii. Desativar
h. Exibir Verificao de Autorizao
243773697.doc
17 / 76
X Terminal
X Terminal
X Terminal
WINDOWS
MANAGER
SAPGUI
SAPGUI
SAPGUI
SAPGUI
SAP DISPATCHER
Application
243773697.doc
18 / 76
APPLICATION SERVER
DATABASE SERVER
DB INTERFACE
ABAP INTERPRETER
SELECT *
FROM ....
LOCAL BUFFER
DATABASE
OPEN SQL
Native SQL
App. data
DB Data
Exec SQL...
Select ...
End Exec.
Native SQL
DB data
Na linguagem de programao ABAP, voc pode usar o SAP OPEN SQL para
acessar os dados no sistema gerenciador de banco de dados.
A interface de banco de dados converte os comandos OPEN SQL para os
comandos de bancos de dados. Por isso qua a aplicao escrita em ABAP
independe do banco de dados usado.
Quando os comandos do OPEN SQL so convertidos, a interface do banco de
dados checa a sintaxe dos comandos e verifica se os dados no esto buferizados,
pois desta forma optimiza o acesso a base de dados.
Os dados acessados mais frequentemente so armazenados no buffer e neste caso
os dados no so acessados na base de dados.
243773697.doc
19 / 76
SAP
GUI
SAP
GUI
SAP
GUI
SAP
GUI
APPLICATION
DISPATCHER
WORK
PROCESS
WORK
PROCESS
WORK
PROCESS
DATABASE
DB PROCESS
DB
243773697.doc
20 / 76
Application Services
Transaes
Requisitando um Lock
243773697.doc
21 / 76
Objeto de Lock
Para que o sistema R/3 execute uma requisio de lock, voc deve definir
primeiro um objeto de lock no dicionrio ABAP. O objeto de lock contm tabelas
que tero entradas travadas. Um objeto de lcok consiste de uma tabela primria.
Pode-se ter uma tabela adicional secundaria, usando-se as chaves estrangeiras do
relacionamento.
Para um objeto de lock voc deve especificar o modo de travamento: S read
lock e E write lock. Um lock s pode ser removido pelo mesmo usurio que
solicitou.
Se o objeto de lock esta ativado, o sistema gera uma funo de ENQUEUE e uma
de DEQUEUE .
Processamento em Background
Servios de Impresso
243773697.doc
22 / 76
Instancia R/3
243773697.doc
23 / 76
ABAP Dictionary
Objetos do dicionrio
Tabelas Transparentes
ABAP Dictionary
Campo 1Campo 2Campo 3Campo 4
DATABASE definio
fsica de tabelas
Quando se cria e ativa uma tabela no dicionrio, uma tabela transparente criada
automaticamente no banco de dados. Este processo traduz a descrio da tabela
no banco de dados numa linguagem usada pelo sistema do banco de dados.
As tabelas do banco de dados tem os mesmos nomes no ABAP Dictionary. Os
campos tambm tem os mesmos nomes em ambos. O tipo dos dados no ABAP
243773697.doc
24 / 76
Estruturas
Views
Search Help
ABAP
Conceito
243773697.doc
25 / 76
Repositrio
243773697.doc
26 / 76
Ferramentas do Workbench
Transporte de Objetos
243773697.doc
27 / 76
243773697.doc
28 / 76
Finalizando um projeto
243773697.doc
29 / 76
Quando se cria um novo programa, primeiro deve ter uma srie de detalhes
administrativos.
Todos os programas devem apontar para uma classe de desenvolvimento. Isso faz
a classificao lgica do programa. Isso indica em qual repositrio o programa
ser criado.
Em seguida, vrios atributos gerais do programa devem ser especificados. O mais
importante o tipo do programa. O tipo do programa determina como o programa
vai ser executado no R/3.
Por ltimo o programa deve ser associado a uma CHANGE REQUEST. Isso
identifica o repositrio cronologicamente.
Um programa s poder ser editado aps a determinao desse detalhes. A
ferramenta de criao utilizada para o programa determina em qual ordem estas
informaes devem ser inseridas.
Atributos
243773697.doc
30 / 76
243773697.doc
31 / 76
Editor
243773697.doc
32 / 76
Telas de seleo
Open SQL
Messages
243773697.doc
33 / 76
SELECT SINGLE .
IF sy-subrc <> 0.
MESSAGE I020(FI).
ENDIF.
Listas
A linguagem ABAP possui comandos para criar listas: WRITE, SKIP, ULINE, so
exemplos de alguns deles.
O comando WRITE exibe o contedo de um campo (ou varivel), formatado de
acordo com o seu tipo, formando assim uma lista (relatrio).
O comando SKIP imprime uma linha em branco na lista.
O comando ULINE imprime uma linha continua, cobrindo toda a largura do
relatrio.
SKIP.
WRITE: / wa_vbap-ebeln, wa_vbap-ebelp.
ULINE.
WRITE: / wa_vbap-matnr, wa_vbap-menge.
ULINE.
Sintaxes
243773697.doc
34 / 76
REPORT
z_teste_curso
DATA
PARAMETERS
SELECT
IF
MESSAGE
ENDIF
ULINE
WRITE
WRITE
WRITE
WRITE
ULINE.
sy-subrc = 0
I027(FI)
.
.
.
.
.
.
.
.
Comentrios
243773697.doc
35 / 76
OPEN SQL
Database Interface
OPEN SQL
NATIVE SQL
Database Interface
BANCO DE DADOS
Overview
243773697.doc
36 / 76
Comando SELECT
Overview
SELECT <resultado> FROM <tabela>
INTO <destino>
WHERE <condio>.
Single Line
SELECT SINGLE <F1> <F2>.<FN>
FROM <tabela>
INTO <WA>
ou
INTO (<V1>, <V2>,..<VN>)
ou
INTO CORRESPONDING FIELDS OF <work area>
WHERE <condio>
O uso do SINGLE no comando SELECT indica que ser lido somente uma linha
para a condio informada.
Se voc utilizar o CORRESPONDING FIELDS OF na clausula INTO, voc pode
preencher a rea de trabalho componente a componente, desde que esses
componentes tenham o mesmo nome e mesma estrutura. Caso no for informado,
o comando preenche a rea de trabalho ocupando os espaos da esquerda para a
direita, sem respeitar os limites dos campos.
Several Lines
SELECT <F1> <F2>.<FN>
FROM <tabela>
INTO <WA>
ou
INTO (<V1>, <V2>,..<VN>)
243773697.doc
37 / 76
ou
243773697.doc
38 / 76
Tabela Interna
SELECT <F1> <F2>.<FN>
FROM <tabela>
INTO TABLE <TI>
WHERE <condio>.
Voc pode ler uma tabela e armazenar todos os registro que satisfazerem a
condio em um simples passo, utilizando o TABLE na clausula INTO.
No necessrio utilizar o ENDSELECT quando a leitura for feita diretamente na
tabela interna.
DEFINIO
igual
diferente
maior que
maior ou igual a
menor que
menor ou igual a
intervalo
Contexto de dados
Definindo objeto de dados
243773697.doc
39 / 76
DATA: <varivel>
DATA: <varivel>
Tipo de Dados
Tipos pr-definidos
N
U
M
E
R
I
C
A
L
F
A
Tipos
P
I
F
N
C
D
T
X
Significado
Packed Number
Integer
Float Point
Numeric Text
Text
Date (YYYYMMDD)
Time (HHMMSS)
Hexadecimal
Valor Inicial
0
0
0.000
000
Branco
00000000
000000
X00
Tamanho
Padro
8
4
8
1
1
8
6
1
Tamanho
Mximo
1-16
4
8
64kb
64kb
8
6
64kb
243773697.doc
Usado para...
Contador, quantidade, ndice.
Valores, tamanhos, larguras.
40 / 76
I,
TYPE
TYPE
TYPE
TYPE
C,
D,
I
P
VALUE
1,
DECIMALS 2.
Estruturas
TYPES:
BEGIN OF <definio>,
.,
.,
END OF <definio>.
DATA:
TYPES:
BEGIN OF tp_endereco,
rua(40)
TYPE
numero(5)
TYPE
compl(15)
TYPE
bairro(25)
TYPE
243773697.doc
C,
I,
C,
C,
41 / 76
cidade(25)
TYPE
estado(2)
TYPE
END OF
tp_endereco.
C,
C
VALUE RJ,
Comando TABLES
TABLES <nome da tabela no dicionrio>.
TABLES: EKKO, EKPO, EKKN.
O comando TABLES declara um objeto de dados interno que serve com estrutura
de dados e funciona como uma rea de trabalho.
No necessrio declarar no comando TABLES o nome de todas as tabelas
referenciadas no programa, somente quando for necessrio armazenar em
memria (work area) os dados.
Literais e contantes
CONSTANTS <contante> TYPE <tipo> VALUE <literal>.
243773697.doc
42 / 76
Smbolo de Texto
Cdigo do Programa
..
..
SKIP 2.
WRITE: / text-001,
sy-datum,
text-002,
sy-uname.
Elemento de Texto
001
Data
002
Usurio
Transferindo Valores
Comando MOVE
MOVE <objeto1> TO <objeto2>.
<objeto1> = <objeto2>.
CONTANTS: cc_silva(5)
VALUE Silva.
TYPES: BEGIN OF ty_nome,
nome(20),
prenome(20),
sobrenome(30),
END OF ty_nome.
DATA:
li_idade(3)
TYPE I,
243773697.doc
43 / 76
wa_nome
lc_sexo
TYPE ty_nome,
TYPE C.
MOVE M TO lc_sexo.
Li_idade = 30.
wa_nome-nome = Antonio.
MOVE Carlos TO wa_nome-prenome.
wa_nome-sobrenome = cc_silva.
Comando MOVE-CORRESPONDING
MOVE-CORRESPONDING <registro1> TO <registro2>.
TYPES:
BEGIN OF ty_dados1,
nome(30)
VALUE Antonio Carlos Silva,
ende(40)
VALUE Rua do Bispo, 40,
bairro(20)
VALUE Rio Cumprido,
cidade(20)
VALUE Rio de Janeiro,
END OF ty_dados1,
BEGIN OF ty_dados2,
Codigo(4)
TYPE I,
Nome(30),
Cidade(20),
END OF ty_dados2.
DATA: wa_dados1
TYPE ty_dados1,
wa_dados2
TYPE ty_dados2.
MOVE-CORRESPONDIG wa_dados1 to wa_dados2.
Resultado:
wa_dados1
Antonio Carlos Silva CODIGO
Rua do Bispo, 40
NOME
Rio Cumprido
CIDADE
Rio de Janeiro
NOME
ENDE
BAIRRO
CIDADE
wa_dados2
Antonio Carlos Silva
Rio de Janeiro
Regras de Converso
Tipo
C
C
243773697.doc
Tipo
C
C
C
P
7
3
-47110
123-
P
C
5
5
47110_123-
Calculando Valores
[COMPUTE] <campo> = <expresso aritimtica>.
Operadores:
Funes:
+
SQRT EXP
/
*
LOG SIN
DIV
COS
MOD **
STRLEN
TAN
..
..
lp_salario = 10000.
lp_desconto = 2000.
lp_aumento = 10,20.
lp_total = ( ( lp_salrio lp_desconto) * lp_aumento ) / 100.
..
..
Sub-Campos
DATA: BEGIN OF wa_data,
243773697.doc
45 / 76
ano(04),
mes(02),
dia(02),
END OF wa_data.
DATA:
lc_ano(04),
lc_mes(02),
lc_dia(02).
WRITE:
MOVE
sy-datum(4)
sy-datum+4(2)
sy-datum+6(2)
WRITE:
20 02 2003
TO lc_ano,
TO lc_mes,
TO lc_dia.
20 02 2003
Calculando Datas
DATA:
ld_data
ld_inicio
lp_dias
TYPE
LIKE
TYPE
D
VALUE
sy-datum,
P.
ld_inicio
= ld_data.
ld_inicio+6(2) = 01.
lp_dias
= ld_data ld_inicio.
sy-datum,
2003 02 20
2003 02 01 - incio do ms
20
Expresses Lgicas
DATA:
243773697.doc
ld_start
TYPE
D,
46 / 76
lp_sum1
lp_sum2
TYPE
TYPE
P,
P.
..
..
IF sum2 GE 1000.
..
..
IF start IS INITIAL.
..
..
IF sum1 GT sum2 and sum1 between 0 and 100.
..
..
IF sum1 = 1000 and ( sum2 LE 2000 or start IS INITIAL).
..
..
OPERADOR
EQ
=
NE
<> ><
GT
>
GE
>= =>
LT
<
LE
<= =<
BETWEEN FI and F2
IS INITIAL
DEFINIO
igual
diferente
maior que
maior ou igual a
menor que
menor ou igual a
Intervalo
Valor inicial.
Estrutura CASE
CASE <objeto>.
WHEN <dado1>
...
WHEN <dado2>
...
...
WHEN OTHERS.
...
ENDCASE.
243773697.doc
47 / 76
IF
...
ELSEIF
...
ELSEIF
...
ELSE
...
ENDIF.
<expresso lgica>
<expresso lgica>
<expresso lgica>
<expresso lgica>
Loops DO e WHILE
DO <n> TIMES.
...
...
ENDDO.
243773697.doc
48 / 76
243773697.doc
49 / 76
Ferramentas de Teste
Debug
243773697.doc
50 / 76
Breakpoint
243773697.doc
51 / 76
Tabelas Internas
Definio
Expanses dinmicas
Atributos
Tipos de linhas
Keys
243773697.doc
52 / 76
Tipos de tabelas
Tabelas Internas
Index Table
Hashed Table
Standard Table
Sorted Table
X
X
X
X
X
NON-UNIQUE
UNIQUE/NONUNIQUE
UNIQUE
ndice principal
Chave principal
Somente chave
Outro atributo da tabelas internas o tipo da tabela. Tabelas internas podem ser
divididas em trs tipo de acordo com o caminho de acesso aos dados:
o Standard Tables:
mantm um ndice linear internamente. Estas
tabelas podem ser acessadas usando ou ndice ou chave da tabela.
o Sorted Tables:
so organizados de acordo com a chave e so
salvos. Aqui tambm, um ndice linear montado externamente. Esse tipo
de tabela tambm pode ser acessado usando ou ndice ou chave da tabela.
o Hashed Tables:
no mantm um ndice linear interno. Hashed tables
s podem ser acessadas pela chave.
As tabelas internas do tipo Standard Tables so as mais comumente usadas.
243773697.doc
53 / 76
Work Area
Efeito
APPEND
INSERT
MODIFY
DELETE
LOOP AT
READ TABLE
SORT
CLEAR
FREE
COLLECT
243773697.doc
54 / 76
TYPES:
BEGIN OF struc,
name(10)
age
END OF STRUC.
TYPE c,
TYPE I,
243773697.doc
55 / 76
As tabelas internas podem ser definidas com ou sem HEADER LINE. Uma
tabela com HEADER LINE significa de uma WORK AREA junto com o
corpo da tabela interna, ambos endereados com o mesmo nome.
Para se declarar uma tabela interna com HEADER LINE, basta adicionar
WITH HEADER LINE na declarao da mesma.
A seleo no banco de dados pode ser feita toda ao mesmo tempo ou de registro
em registro, quando utilizamos a adio INTO TABLE, a tabela interna
alimentada com todos os registros de uma nica vez.
Utilizamos a adio INTO CORRESPONDING FIELDS OF TABELE
<itabname> quando a seleo feita possuir muitos campos e a tabela interna no
243773697.doc
56 / 76
Comando SORT
SORT <itab> BY <f1> <f2> ...... [ASCENDING | DESCENDING]
DATA:
Use o comando SORT para ordenar uma tabela interna. A adio de BY <f> e
ASCENDING ou DESCENDING permite voc restringir a ordenao a
determinados campos e hierarquia.
A hierarquia default ASCENDING.
243773697.doc
57 / 76
LOOP AT it_vbap.
WRITE: / it_vbak-matnr.
ENDLOOP.
243773697.doc
58 / 76
Modularizao de Programas
Estruturas de um programa ABAP
243773697.doc
59 / 76
Modularizando
Eventos em programas executveis
Subrotinas
PERFORM <nome da subrotina>
[USING <variveis>]
[CHANGING <variveis>].
PERFORM ys_calcula_salrio
USING
v_salhora
V_horastrab
CHANGING v_salliq.
...
...
...
FORM ys_calcula_salrio
USING
p_salhora
p_horastrab
CHANGING p_salliq.
243773697.doc
60 / 76
sy-vline, p_wa_dados-nome,
sy-line, p_wa_dados-endereco, sy-vline.
ENDFORM.
243773697.doc
61 / 76
Pode ser, tambm, passado para a subrotinas, as estruturas (estruturas, header line
de tabela interna ou work 62reas) com a descrio da estrutura usando o LIKE ou
TYPE para declara o tipo da mesma.
Se no for passado o tipo da estrutura, os campos dela no sero reconhecida
dentro da subrotinas.
Se voc quiser passar uma tabela interna para a subrotina, deve-se especificar o
tipo formal do parmetro na declarao do FORM, como se fosse uma estrutura.
Tabelas internas so passadas sem a rea de trabalho, necessitando assim criar
uma como local dentro da subrotina.
243773697.doc
62 / 76
Funes
<variavel/estrutura>]
[ EXPORT
<variavel/estrutura>
<variavel/estrutura>
<variavel/estrutura> ]
[TABLES
<tabela interna>
<tabela interna>
...
<tabela interna> ]
[ EXCEPTIONS
<erro>
<erro>
...
<erro> ].
243773697.doc
63 / 76
243773697.doc
64 / 76
243773697.doc
65 / 76
Grande parte das caractersticas de passagem de valor para uma funo segue as
regras das subrotinas.
Diferente das subrotinas, voc pode definir quais parmetros so necessrios ou
no, permitindo que o usurio suprima alguns na chamada destes.
Os parmetros de IMPORT vistos de dentro da funo, so correspondentes aos
parmetros EXPORT na chamada da funo de dentro do programa.
A declarao dos elementos da importao so feitas associando ao dicionrio do
banco de dados ou a tipo declarados em um pool de tipos.
Parmetros de importao no podem ter o seu valor alterado durante o
processamento.
Segue as mesmas regras dos parmetros de importao, sendo que estes so vistos
como parmetros de IMPORT na chamada da funo de dentro do programa.
Os parmetros de exportao no recebem valores na chamada da funo.
243773697.doc
66 / 76
IF variavel_a IS INITIAL.
RAIZE SEM_DADOS.
ENDIF.
IF variavel_a < 0.
RAIZE MENOR_ZERO.
ENDIF.
Voc pode antecipar possveis erro e escrever o programa para tratar esses erros
para no causar erro de execuo e conseqentemente abortar o programa. Voc
definir os possveis erros na lista de EXCEPTION na hora da criao da funo e
cham-los dentro do programa atravs do comando RAIZE.
243773697.doc
67 / 76
243773697.doc
68 / 76
Dialogs
Listas
Cabealho de Pgina
Cada lista pode ter um cabealho e at 4 linhas de cabealho de coluna. Isto pode
ser criado de uma das seguintes formas:
o Dentro do editor usando as funes de manuteno do elemento de texto.
o Dentro da prpria lista. Voc pode criar o cabealho da lista e cabealho
das colunas, escolhendo no menu a opo Sistema > Lista > Cabealho de
Lista.
o Na prxima vez que startar o programa, o novo cabealho ir aparecer na
lista automaticamente.
243773697.doc
69 / 76
Cores/cones/Smbolos na lista
WRITE <objeto> <opo>.
REPORT xxxxxxxxxxxx.
INCLUDE <LIST>.
::
::
::
WRITE: / ti_tabela-campo COLOR col_key, icon_date AS ICON.
COL_BACKGROUND
COL_HEADING
COL_NORMAL
COL_TOTAL
COL_KEY
COL_POSITIVE
COL_NEGATIVE
COL_GROUP
Fundo
Cabealho
Entradas
Totais
Colunas Chaves
Valores positivos
Valores negativos
Nveis de controle
Detalhes de lista
Num programa executvel, pode ser utilizado o bloco de eventos AT LINESELECTION para criar detalhamento de lista ou o comando AT USERCOMMAND para criar detalhamento de funes.
O sistema de execuo ABAP:
o Mostra uma lista bsica depois do apropriado bloco de eventos ter sido
processado (por exemplo, depois do START-OF-SELECTION). Neste
caso, o campo do sistema SY-LSIND contem o valor 0.
o Insere funes associadas ao menu de funes e a uma GUI particular no
campo de sistema SY-UCOMM quando uma entrada de usurio
executada.
243773697.doc
70 / 76
HIDE Area.
HIDE <lista de campos>.
LOOP AT ti_tabela.
WRITE> /
ti_tabela-campo1,
ti_tabela-campo2 HOTSPOT ON,
ti_tabela-campo3,
ti_tabela-campo4 HOTSPOT ON.
243773697.doc
71 / 76
Telas de seleo
Search Help
Voc pode definir e armazenar variantes para uma tela de seleo. Para isso,
preencha a tela de seleo e clique no cone de salvar. Defina o ttulo e o nome da
variante e salve novamente.
Variantes permitem selecionar dados de uma tela de seleo de forma fcil para o
usurio.
Uma simples variante pode estar associada para mais de uma tela de seleo.
Para chamar uma variante pr-gravada, basta selecionar o cone na tela de seleo.
Para programas com barra de status definidas internamente, o boto salvar no
funciona como gravao de variantes.
243773697.doc
72 / 76
Usando o SELECT-OPTIONS
REPORT xxxxxxxxx.
::
::
::
SELECT-OPTIONS: pa_ebeln for vbap-ebeln,
Pa_ebelp for vbap-ebelp.
::
::
SELECT *
FROM vbap
INTO TABLE ti_vbap
WHERE
ebelp IN pa_ebeln
AND
ebelp IN pa_ebelp.
243773697.doc
73 / 76
243773697.doc
74 / 76
243773697.doc
75 / 76
TITLES
SET TITLEBAR <nome>.
SET TITLEBAR <100>.
243773697.doc
76 / 76