Sei sulla pagina 1di 66

Treinamento ABAP

Sumrio
ABAP DICTIONARY ......................................................................................................................... 4
DATA ELEMENTS........................................................................................................................ 4
DOMAINS .................................................................................................................................. 4
STEP BY STEP (Data Element, Domain) ..................................................................................... 5
TABLES ....................................................................................................................................... 6
Fields ..................................................................................................................................... 7
FK ........................................................................................................................................... 7
Technical Settings .................................................................................................................. 7
Index ...................................................................................................................................... 8
STEP BY STEP (TABLE, FK, INDEX) .............................................................................................. 8
STRUCTURES............................................................................................................................ 10
STEP BY STEP (STRUCTURE) ..................................................................................................... 10
VIEWS ...................................................................................................................................... 11
STEP BY STEP (VIEW) ............................................................................................................... 11
SEARCH HELP ........................................................................................................................... 12
STEP BY STEP (SEARCH HELP, ASSOCIATION) .......................................................................... 14
ABAP PROGRAMMING ................................................................................................................ 15
Qual a funo do R3 ? ............................................................................................................. 15
Por que saber isso ? ................................................................................................................ 16
Data Types and Data Objects .................................................................................................. 17
Data Objects ........................................................................................................................ 18
Data Types ........................................................................................................................... 20
WRITE ...................................................................................................................................... 21
PARAMETERS........................................................................................................................... 22
FRAMES ................................................................................................................................... 23
Processing Data ....................................................................................................................... 24
Assigning Values .................................................................................................................. 24
Reseting Values to their Initial Values................................................................................. 24
Numerical Operations ......................................................................................................... 25
Processing Character Strings (String Functions).................................................................. 27
Processing Sections of String............................................................................................... 27
WA | ABAP DICTIONARY

Treinamento ABAP
EXERCISES (Declarations + Assigning Values + Operations) ................................................ 27
Field-Symbols ...................................................................................................................... 28
EXERCISES (Field-Symbol).................................................................................................... 28
Controlling the program flow .................................................................................................. 29
Branching Conditionally ...................................................................................................... 29
EXERCISES (Conditionally) ................................................................................................... 30
Loops ................................................................................................................................... 31
Unconditional Loop (Do) ..................................................................................................... 31
Conditional Loop (While) .................................................................................................... 31
Terminating Loops............................................................................................................... 31
EXERCISES (Loop)................................................................................................................. 32
SELECT-OPTIONS ..........................................................................Erro! Indicador no definido.
Internal Tables......................................................................................................................... 33
Create Internal Table With Header Line.............................................................................. 34
Create Internal Table Without Header Line ........................................................................ 34
Diferences between Internal Tables ................................................................................... 35
Operations on Entire Internal Table .................................................................................... 36
Operations on Individual Lines ............................................................................................ 37
EXERCISES (Declare, Append, Describe, Sort) ..................................................................... 38
EXERCISES (Read) ................................................................................................................ 38
EXERCISES (Modify, Delete) ................................................................................................ 38
EXERCISES (Loop ITAB , Control Level Processing) .............................................................. 39
Access Using Field Symbols ................................................................................................. 40
Open SQL ................................................................................................................................. 41
Overview ............................................................................................................................. 41
Return Codes ....................................................................................................................... 41
Reading Data ....................................................................................................................... 42
EXERCISES (SELECT) ............................................................................................................. 43
Inserting Lines ..................................................................................................................... 44
Changing Lines..................................................................................................................... 44
Deleting Lines ...................................................................................................................... 45
Inserting or Changing Lines ................................................................................................. 46
Commiting Database Changes ............................................................................................ 46
WA | ABAP DICTIONARY

Treinamento ABAP
EXERCISES (DB Operations) ................................................................................................. 46
Lists.......................................................................................................................................... 47
Creating Simple List with Write ........................................................................................... 47
EXERCISES (WRITE) .............................................................................................................. 48
Messages ................................................................................................................................. 49
Messages on screen ............................................................................................................ 49
EXERCISES (CLASS + MESSAGE) ........................................................................................... 49
Transactions ............................................................................................................................ 50
Reports .................................................................................................................................... 51
Description of Events .......................................................................................................... 51
Modularization Techniques..................................................................................................... 54
Macro .................................................................................................................................. 54
Include ................................................................................................................................. 54
Subroutines ......................................................................................................................... 55
Function Modules................................................................................................................ 56
EXERCISES (Modularization Techniques) ............................................................................ 57
Working with Files ................................................................................................................... 59
Working with files in Application Server ............................................................................. 59
EXERCISES (files in Application Server)................................................................................ 62
Working with local files ....................................................................................................... 63
EXERCISES (Local files) ......................................................................................................... 63
ALV .............................................................................................................................................. 64
REUSE_ALV_GRID_DISPLAY..................................................................................................... 64
PERFORMANCE Best Practices ................................................................................................. 65

WA | ABAP DICTIONARY

Treinamento ABAP
ABAP DICTIONARY
O dicionrio de dados do ABAP/4 (DD) uma fonte central de informaes provenientes do
sistema gerenciador de dados do SAP. Sua principal funo suportar a criao e o
gerenciamento das definies de dados.
completamente integrado ao ABAP Development Workbench.
Atravs dele, podemos criar e manipular tabelas, elemento de dados, domnios, search help,
views ...

DATA ELEMENTS
Define atributos do objeto tais como: Tipo, tamanho, casas decimais. Esses atributos podem
ser definidos diretamente ao elemento ou copiados do domnio a ele associado.
Responsvel pela maneira como o objeto ser apresentado ao usurio (label + documentao)
Um elemento de dados pode ser referenciado diretamente por um programa ABAP. Como
resultado, essas variveis possuiro as caractersticas do elemento referenciado.

DOMAINS
Descreve os valores vlidos para um elemento de dados. O domnio especifica tambm
informaes como o tipo de dados e o tamanho do campo. Uma vez alterado, todos os campos
ou componentes que esto referenciados a ele so modificados.

WA | ABAP DICTIONARY

Treinamento ABAP
STEP BY STEP (Data Element, Domain)
- Domnio
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

- Elemento de Dados
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
WA | ABAP DICTIONARY

Treinamento ABAP
TABLES
Repositrio de armazenamento. Em uma tabela so armazenados dados persistentes, se voc
inserir dados, eles continuaro ai mesmo depois de voc finalizar seu programa e ali ficaro
at o seu ou outro programa alter-los ou exclu-los.
Tabelas podem ser definidas independentemente do banco de dados (DB2, Oracle, SQL)
associado ao SAP.

WA | ABAP DICTIONARY

Treinamento ABAP

Fields
Nome do Campo: string de no mximo 16 caracteres podendo conter letras, nmeros
e underscores. Deve iniciar com uma letra.
- Chave: caracteriza o campo como campo-chave (PK). necessrio que os camposchave de uma tabela estejam juntos no incio da tabela, ou seja, um campo que no
seja campo-chave no pode estar entre dois campos-chave.
- Tipo de dados: se o valor do mesmo ser caractere, numrico, data ...
- Tamanho: Nmero de casas ocupadas pelo campo.
- Decimais: Nmero de casas decimais aps o ponto flutuante.
- Descrio Breve: Significado breve do campo.
FK
Para definir relaes entre tabelas do ABAP Dictionary, criamos chaves estrangeiras (FK).
Usando essa chave, criamos rapidamente uma validao para o campo de entrada.
Technical Settings
Define como a tabela ser armazenada no BD. Os parmetros mais importantes so:
- Categoria de Dados: Determina em que rea fsica do banco de dados (em ORACLE
do TABLESPACE) arquivada a tabela.
Os tipos de dados mais importantes ( exceo de dados de sistema) so:

APPL0 dados mestre

APPL1 dados de movimento

APPL2 dados organizacionais e de customizing

Os Dados mestre so dados com freqentes acessos de leitura, mas que raramente
so atualizados. Os Dados de movimento so dados que so atualizados com
freqncia. Os Dados organizacionais e de customizing so dados indicados na
configurao do sistema, e que raramente so modificados depois.

WA | ABAP DICTIONARY

Treinamento ABAP
- Categor.Tamanho: Determina a necessidade de espao prevista de uma tabela no
banco de dados.
Para a tabela, possvel selecionar a categoria de 0 a 4. A cada categoria est
atribudo um determinado tamanho fixo de uma rea de memria do banco de
dados. Ao criar uma tabela, reservado para esta um espao inicial no banco
de dados; se ela necessitar de mais espao devido aos dados entrados, o
espao de memria anexado em conformidade com a categoria aqui
selecionada.

Index
Criado para otimizar a busca de registros em um determinado critrio de seleo. Pode ser
considerado uma cpia da tabela, reduzida a poucos campos, de maneira ordenada e que
possui um ponteiro para a linha correspondente na tabela original. Assim sendo, campos que
no so ndices podem ser lidos.

STEP BY STEP (TABLE, FK, INDEX)


- Tabela
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

WA | ABAP DICTIONARY

Treinamento ABAP
- Chave Estrangeira (FK)
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

- ndice
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________

WA | ABAP DICTIONARY

Treinamento ABAP

STRUCTURES
Uma structure uma descrio de uma srie de campos agrupados sob um nome em
comum. Ela descreve os nomes de campo, sua sequncia e seus tipos e comprimentos de
dados. Assim como a tabela, uma estrutura no ter outra com seu nome e nem com o de uma
tabela.

STEP BY STEP (STRUCTURE)


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
WA | ABAP DICTIONARY

10

Treinamento ABAP

VIEWS
Uma view uma viso lgica de uma ou vrias tabelas. Ou seja, uma viso no arquivada
fisicamente, mas derivada de uma ou de vrias tabelas.
No caso mais simples, este processo de desvio pode consistir em ocultar um ou vrios campos
de uma tabela (projeo) ou em transferir apenas determinadas entradas de uma tabela para
a viso (seleo). As vises mais complicadas podem ser compostas por vrias tabelas, onde as
tabelas individuais so ligadas atravs da operao de ligao relacional.
Como o join entre as tabelas executado no banco de dados, existe uma reduo de acessos
ao BD.

STEP BY STEP (VIEW)


_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
WA | ABAP DICTIONARY

11

Treinamento ABAP
_____________________________________________________________________________

SEARCH HELP
Uma ajuda para pesquisa um objeto do ABAP Dictionary que permite definir todas as
entradas possveis para um determinado campo.

WA | ABAP DICTIONARY

12

Treinamento ABAP

WA | ABAP DICTIONARY

13

Treinamento ABAP
STEP BY STEP (SEARCH HELP, ASSOCIATION)
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
_____________________________________________________________________________
WA | ABAP DICTIONARY

14

Treinamento ABAP
ABAP PROGRAMMING
Qual a funo do R3 ?
oferecer um conjunto integrado compacto, de aplicativos empresariais de grande escala. O
conjunto padro de aplicativos integrados com cada sistema R/3 o seguinte:

PP

(Production Planning - planejamento de produo)

MM (Materials Management - gerenciamento de materiais)


SD

(Sales and Distribution - vendas e distribuio)

FI

(Financial Accounting - contabilidade financeira)

CO

(Controlling - controladoria)

AM

(Fixed Assets Management - gerenciamento de ativos fixos)

PS

(Project System - sistema de projeto)

HR

(Human Resources - recursos humanos)

PM

(Plant Maintenance - manuteno das instalaes)

QM (Quality Management - gerenciamento da qualidade)

Estes aplicativos so chamados reas funcionais, reas de aplicativo ou, s vezes, mdulos
funcionais do R/3. Todos estes termos so sinnimos.

Tradicionalmente, as estruturas empresariais desenvolvem um conjunto de aplicativos de


processamento de dados avaliando produtos individuais e comprando esses produtos
separadamente de diversos fabricantes de software. Interfaces entre eles so ento
necessrias. Por exemplo, o sistema de gerenciamento de materiais precisar ser vinculado
com as vendas e a distribuio e com os sistemas financeiros, e o sistema de fluxo de trabalho
precisar de uma alimentao a partir do sistema do HR.

WA | ABAP PROGRAMMING

15

Treinamento ABAP
O R/3 vem predefinindo com os aplicativos empresariais bsicos necessrios maioria das
grandes corporaes. Esses aplicativos coexistem em um ambiente homogneo. Eles so
projetados para funcionar utilizando desde um nico banco de dados e um conjunto (muito
grande) de tabelas. Os tamanhos de banco de dados de produo atuais variam de 12
gigabytes a aproximadamente 3 terabytes. Cerca de 8.000 tabelas de banco de dados so
distribudas com o produto R/3 padro.

Por que saber isso ?


importante para voc, como um programador de ABAP, saber por que esses aplicativos so
todos escritos inteiramente em ABAP. Esses so os aplicativos que voc deve entender para
ser um bom desenvolvedor de R/3.
Por exemplo, suponha que voc conhece ABAP e tenha recebido a incumbncia de
escrever um relatrio financeiro que resume dbitos e crditos de cada ano fiscal para cada
fabricante na empresa. Talvez voc saiba escrever cdigo em ABAP, mas voc saberia como
comear a resolver essa tarefa?
Ou talvez seu trabalho exija um novo desenvolvimento em ABAP/4. Voc incumbido
de projetar um sistema que oferea informaes de estoque para potenciais compradores. Se
voc no conhece os sistemas de vendas e financeiro e de distribuio, voc no saber se
est criando algo que j existe em R/3. Tampouco voc poder saber se h tabelas do R/3 que
j contm dados semelhantes ou idnticos aos tipos de dados que voc quer recuperar. Esses
aplicativos so altamente integrados. Um desenvolvedor que assume a abordagem eu
construirei minhas prprias tabelas e manterei minhas prprias cpias dos dados, pode logo
descobrir que seus dados so redundantes e devem ser rotineiramente sincronizados com o
resto do banco de dados. Ele construiu um aplicativo que no tira proveito da natureza
altamente integrada do ambiente R/3.
importante que o ABAP seja desenvolvido com a certeza de que dentro do R/3 no
possua nada que j no atenda as necessidades da rea funcional.
WA | ABAP PROGRAMMING

16

Treinamento ABAP

Data Types and Data Objects

WA | ABAP PROGRAMMING

17

Treinamento ABAP
Data Objects

Variables
Varivel um objeto capaz de reter e representar um valor ou expresso.
Quando nos referimos varivel, estamos tratando de uma regio de memria previamente
identificada cuja finalidade armazenar os dados ou informaes de um programa por um
determinado espao de tempo.
Uma varivel composta por dois elementos bsicos: o contedo,o valor da varivel e
identificador, um nome dado varivel para possibilitar sua utilizao.

Constants
Como o nome j diz uma constante, sendo que quase idntica a uma varivel, exceto
quanto ao fato de que seu valor no poder ser alterado. A instruo constants semelhante
instruo data; entretanto, a adio do comando value necessrio. O comando constants
pode ser usado quando for incluir um literal vrias vezes no mesmo programa definindo um
valor igual ao da literal e utilizar a constante no corpo do programa e quando for necessrio
alterar o valor de sua literal basta apenas alterar o valor de sua constante.

Predefined data objects


Space
uma constant do tipo C, de tamanho 1 com valor .

WA | ABAP PROGRAMMING

18

Treinamento ABAP
SYST (SY)
Algumas variveis foram criadas para validar a execuo e entrada de dados no
sistema, estas variveis encontram-se na estrutura SYST.

Apesar de serem variveis, no devemos atribuir valor ou alterar o contedo dos


mesmos.
Abaixo alguns campos da estrutura com seu respectivo significado.
SY-SUBRC: Return code for ABAP statements (zero if a statement is executed
successfully)
SY-UNAME: logon name of the user
SY-REPID: Current ABAP program
SY-TCODE: current transaction
SY-INDEX: Number of the current loop pass
SY-TABIX: Number of the current loop pass

Literals
um conjunto de caracteres no declarados explicitamente no programa. Como todos os
objetos, possuem tamanho, nmero de decimais, tipo de dados porm no possuem nome.
Exemplo: 123.12 , Daniel, 1, 100.

Text Symbols
um objeto gerado durante o desenvolvimento do programa para substituio de literais. Tem
a vantagem a possibilidade de traduo.

WA | ABAP PROGRAMMING

19

Treinamento ABAP
Data Types
Data Types so tipos de dados definidos em tempo de design no programa.

Defining Data Types

WA | ABAP PROGRAMMING

20

Treinamento ABAP
WRITE
Write statement
Quando se faz necessrio a exibio na tela do resultado de um report voc utiliza o comando
write e todo o contedo que estiver aps a instruo at ser finalizado por . gerar um
relatrio de sada.
Positioning write output

WA | ABAP PROGRAMMING

21

Treinamento ABAP
PARAMETERS
Usamos a instruo PARAMETERS para declarar variveis similarmente a instruo DATA. Para
cada parameter declarado, um campo apresentado na tela, permitindo a entrada de valores
pelo usurio.

Para checar o valor entrado com valores do Dicionrio de Dados, utilizamos o adendo VALUE
CHECK na instruo de declarao.
Para atribuir valor de entrada padro, utilizamos a instruo DEFAULT.
Para tornar a entrada de valor obrigatrio, acrescentamos a clusula OBLIGATORY
declarao.

na

Para exibir ao usurio uma lista de valores vlidos, utilizamos a instruo MATCHCODE OBJECT,
ela permite acrescentar um search help (definido previamente no ABAP Dictionary).

WA | ABAP PROGRAMMING

22

Treinamento ABAP
FRAMES
Inclui um frame tela de seleo conforme instruo abaixo.

WA | ABAP PROGRAMMING

23

Treinamento ABAP
Processing Data
Assigning Values
Essa seo descreve os comandos utilizados para atribuir/alterar o contedo das variveis. No
inicio do programa ABAP, as variveis possuem um valor inicial que podem ser preenchidos
durante sua declarao ou durante a execuo do programa. Podem tambm ser alterados em
qualquer momento utilizando as sintaxes abaixo.
With Move (Directly)

With Write

Reseting Values to their Initial Values


Para inicializar uma varivel, utilizamos a sintaxe abaixo. Se o dado do tipo c, o valor , por sua
vez, ser configurado como espaos em branco.

WA | ABAP PROGRAMMING

24

Treinamento ABAP

Numerical Operations
Arithmetic Calculations

WA | ABAP PROGRAMMING

25

Treinamento ABAP
Mathematical Functions

WA | ABAP PROGRAMMING

26

Treinamento ABAP

Processing Character Strings (String Functions)

Processing Sections of String

EXERCISES (Declarations + Assigning Values + Operations)


WA | ABAP PROGRAMMING

27

Treinamento ABAP

Field-Symbols
Field Symbols permite acesso dinmico Data Objects nos programas ABAP. Diferentemente
do acesso esttico, onde voc precisa especificar o nome do objeto, FS permite acessar objetos
cujo nome voc desconhecia at a hora da execuo.
Field Symbol um objeto que no ocupa espao fsico, porm aponta para outro objeto e
passa a possuir suas caractersticas.
Depois de referenciado (assign), qualquer alterao no Field symbol refletida
automaticamente no objeto apontado.
Defining

Assigning

EXERCISES (Field-Symbol)

WA | ABAP PROGRAMMING

28

Treinamento ABAP
Controlling the program flow

Branching Conditionally
The IF control sctructure

WA | ABAP PROGRAMMING

29

Treinamento ABAP
The CASE control structure

EXERCISES (Conditionally)

WA | ABAP PROGRAMMING

30

Treinamento ABAP
Loops
Unconditional Loop (Do)

Conditional Loop (While)

Terminating Loops
Continue / Check / Exit

WA | ABAP PROGRAMMING

31

Treinamento ABAP
EXERCISES (Loop)

WA | ABAP PROGRAMMING

32

Treinamento ABAP

Internal Tables
Tabelas internas so utilizadas para armazenar em tempo de execuo os dados necessrios
para a processamento do seu programa. Estes dados podem ser selecionados de diversas
tabelas transparentes. O nmero de linhas de uma tabela no fixo.
O acesso a tabela interna feito linha a linha utilizando uma work area como interface para
transferir dados para ou de uma tabela, esta work area utilizada para armazenar
temporariamente uma entrada da tabela de dados.
Quando lemos uma tabela interna o contedo de endereamento enviado para uma work
area. Esta work area tem a mesma estrutura da sua tabela interna.

Atravs deste conceito temos dois tipos de tabelas internas.


WITH HEADER LINE O sistema automaticamente cria uma work area idntica a linha da sua
tabela interna.
WITHOUT HEADER LINE O sistema no reconhece a work area, que deve ser definida no
programa.

Standard table:
The key access to a standard table uses a sequential search. The time required for an
access is linearly dependent on the number of entries in the internal table.
You should usually access a standard table with index operations.

Sorted table:
The table is always stored internally sorted by its key. Key access to a sorted table can
therefore use a binary search. If the key is not unique, the entry with the lowest index is
accessed. The time required for an access is logarithmically dependent on the number of
entries in the internal table.
Index accesses to sorted tables are also allowed. You should usually access a sorted
table using its key.

Hash table:
The table is internally managed with a hash procedure. All the entries must have a
unique key. The time required for a key access is constant, that is it does not depend on
the number of entries in the internal table.
You cannot access a hash table with an index. Accesses must use generic key
operations (SORT, LOOP, etc.).

WA | ABAP PROGRAMMING

33

Treinamento ABAP
Create Internal Table With Header Line

Create Internal Table Without Header Line

WA | ABAP PROGRAMMING

34

Treinamento ABAP
Diferences between Internal Tables

WA | ABAP PROGRAMMING

35

Treinamento ABAP
Operations on Entire Internal Table
Initializing

Sort
Para classificar o contedo de uma tabela interna voc pode utilizar o comando sort, as linhas
podem ser classificadas por uma ou mais colunas em ordem ascendente ou descendente,
sendo que a prpria sequncia de classificao pode ser alterada.

WA | ABAP PROGRAMMING

36

Treinamento ABAP
Determining Attributes of Internal Table

Utilizando-se o parmetro LINES, obtemos a quantidade de linhas da tabela.


Utilizando-se o parmetro OCCURS, caso a tabela tenha sido declarada com o parmetro
Occurs, o tamanho inicial da tabela retornado para a varivels <n>.
Utilizando-se o parmetro KIND, o tipo da tabela retornado para a varivel. (T = standard, S =
sorted, H = Hashed)
Operations on Individual Lines
Appending Lines

A instruo acima adiciona os valores da work area <wa> na tabela interna <itab>. Isto ,
uma instruo para incluso de uma nica linha.

Para a incluso de mltiplas linhas, utilizamos a sintaxe acima. Todas as linhas da tabela
interna <itab1> so inseridas na tabela <itab2>. Cuidado que as linhas devem ser compatveis.

WA | ABAP PROGRAMMING

37

Treinamento ABAP
EXERCISES (Declare, Append, Describe, Sort)
Reading Lines

Essa instruo l uma linha da da tabela interna <itab> e move o seu contedo para a work
rea <wa>. Podemos efetuar um filtro na leitura ou por contedo (with key) ou por posio na
tabela (index).
Caso o programa no encontre uma entrada na tabela que satisfaa a condio, a varivel de
sistema sy-subrc preenchida com o valor 4, caso contrrio o valor da mesma ser 0.
Utilizando-se da clusula TRANSPORTING, especificamos quais campos da tabela interna
queremos que sejam transferidos para a Work Area.
EXERCISES (Read)
Changing Lines
Para alterar linhas da tabela interna, utilizamos a instruo Modify.

Deleting Lines
Para excluir linhas de uma tabela interna, usamos a clusula que segue:

Para remover as linhas duplicadas de uma tabela interna, usamos a sintaxe abaixo:

EXERCISES (Modify, Delete)

WA | ABAP PROGRAMMING

38

Treinamento ABAP
Processing Table Lines in Loops

Essa instruo l, linha a linha, a tabela interna <itab> e move o seu contedo para a work
rea <wa> desde que a condio (where/from) seja satisfatria.
Em tabelas internas do tipo Standard e Sort, a varivel de sistema SY-TABIX contm o ndex da
linha corrente.
Loop Control Level Processing

EXERCISES (Loop ITAB , Control Level Processing)

WA | ABAP PROGRAMMING

39

Treinamento ABAP
Access Using Field Symbols
Acessando a tabela interna utilizando-se FIELD SYMBOL, no h a necessidade de copiar os
dados para uma work area. Uma vez atribudo o registro, trabalhar com o Field Symbol tem o
mesmo efeito de acessar a linha correspondente diretamente.
Quando voc altera uma tabela interna com a instruo Modify, devemos inicialmente
preencher a work rea e posteriormente atribu-la tabela Interna. Se trabalharmos com
Field-Symbols, isso no necessrio o que aumenta a performance do programa em caso de
tabelas internas com grande quantidade de linhas.

WA | ABAP PROGRAMMING

40

Treinamento ABAP
Open SQL
um conjunto de instrues que efetuam operaes no banco de dados central do SAP/R3. O
resultado da operao e a mensagem de retorno, so independentes do banco no qual o SAP
est trabalhando.
Open SQL s pode trabalhar com tabelas criadas atravs do ABAP Dictionary.
Overview

Return Codes
Todos os comandos Open SQL preenchem as variveis de sistema abaixo da seguinte forma:
SY-SUBRC - caso a operao tenha sido efetuada com sucesso o valor da varivel ser 0, caso
contrrio o valor ser diferente de 0.
SY-DBCNT esta varivel conter a quantidade de linhas processadas pela instruo Open SQL.

WA | ABAP PROGRAMMING

41

Treinamento ABAP
Reading Data
O comando select usado para acessar e selecionar dados de tabelas transparentes do SAP.
Porexistirem diversas variaes do mesmo comando, fundamental que o programador saiba
o mecanismo de funcionamento de cada uma delas pois s assim poder dar ao programa
uma performance satisfatria.

SELECT ENDSELECT

SELECT * FROM dbtab.

ENDSELECT.
Seleciona dados de uma tabela SAP num processo de loop que comea no select e termina
no endselect. A cada passagem pelo loop temos um elemento lido e selecionado.

SELECT ... INTO TABLE

SELECT * INTO TABEL itab FROM dbtab.


Os dados so selecionados e colocados na tabela interna itab de uma s vez. No h mais o
processo de loop e portanto no h mais ENDSELECT. Os dados novos da tabela interna so
gravados por cima dos antigos.
importante ressaltar que o * pode ser substitudo pelos nomes dos campos da tabela,
agilizando assim o processo e melhorando a performance.

SELECT ... APPENDING TABLE ...

SELECT * APPENDING TABLE itab FROM dbtab.


Mesmo processo do item acima, s que os dados novos so inseridos na tabela interna itab
sem apagar os antigos.
SELECT SINGLE ...
SELECT SINGLE * INTO TABLE itab FROM dbtab WHERE f1 = g1.
Seleciona apenas um nico dado que satisfaas condies do where.
OBS.: Neste caso todas as chaves (ndices da tabela) devem ser satisfeitos.

WA | ABAP PROGRAMMING

42

Treinamento ABAP
SELECT FOR ALL ENTRIES

SELECT * INTO TABLE itab FROM dbtab FOR ALL ENTRIES in itab WHERE...
Usado quando selecionamos dados de uma tabela e precisamos de dados de outra tabela para
compor as condies do where.
Exemplo:
SELECT * FORM BSEG FOR ALL ENTRIES IN T_BKPF
WHERE BUKRS = T_BKPF-BUKRS AND
BELNR = T_BKPF-BELNR .
Onde T_BKPF uma tabela interna que recebeu a tabela BKPF.
Este tipo de comando utilizado entre tabelas internas.

Adio: WHERE
Clausula que visa restringir a seleo dos dados.

Adio: ORDER BY
Utilizado para ordenar a tabela interna de acordo com os campos informados
ORDER BY <field1> [DESCENDING] <field2> ...

EXERCISES (SELECT)

WA | ABAP PROGRAMMING

43

Treinamento ABAP
Inserting Lines

Changing Lines

WA | ABAP PROGRAMMING

44

Treinamento ABAP
Deleting Lines

WA | ABAP PROGRAMMING

45

Treinamento ABAP
Inserting or Changing Lines

Commiting Database Changes

EXERCISES (DB Operations)

WA | ABAP PROGRAMMING

46

Treinamento ABAP
Lists
Creating Simple List with Write
Write statement
Quando se faz necessrio a exibio na tela do resultado de um report voc utiliza o comando
write e todo o contedo que estiver aps a instruo at ser finalizado por . gerar um
relatrio de sada.
Positioning write output

WA | ABAP PROGRAMMING

47

Treinamento ABAP
Format Color

Blank Lines and drawing lines


Para pular linhas, utilizado a instruo abaixo. (onde n a quantidade de linhas)

Para desenhar linhas horizontais, usamos a instruo que segue:

Para desenhar linhas verticais, usamos a instruo que segue:

EXERCISES (WRITE)

WA | ABAP PROGRAMMING

48

Treinamento ABAP
Messages
Messages on screen

EXERCISES (CLASS + MESSAGE)

WA | ABAP PROGRAMMING

49

Treinamento ABAP
Transactions
Podemos criar transao para qualquer programa ABAP. utilizado para disponibilizar ao
usurio o acesso ao mesmo, funcionando como se fosse Standard.

WA | ABAP PROGRAMMING

50

Treinamento ABAP

Reports
Description of Events

Um evento como uma sub-rotina em outras linguagens, trata-se de uma seo independente
do cdigo que executa uma tarefa e ento retorna para o ponto de chamada, contudo, ao
contrrio das sub-rotinas, voc no codifica a chamada para um evento, ao contrrio, o
sistema aciona o evento para voc quando uma condio especifica surge. Os nomes dos
eventos so palavras reservadas, no se podendo criar novos eventos.
Initialization
Quando voc executa um programa onde um critrio de seleo definido, o sistema
normalmente processa a tela primeiro. Se voc quer que um bloco de comandos seja
executado antes da tela de seleo utilize este comando.
At Selection-screen
executado toda vez que houver interao na tela de seleo. um evento executado entre o
Initialization e o Start-of-selection.

Start-of-selection
Se a primeira instruo executvel em seu programa no for procedida por um nome de
evento, o sistema automaticamente insere start-of-selection antes da primeira linha de cdigo
executvel.

WA |

51

Treinamento ABAP

WA |

52

Treinamento ABAP

WA |

53

Treinamento ABAP
Modularization Techniques
uma tcnica utilizada basicamente para reaproveitamento de cdigo e melhor organizao
do programa.
Macro
Caso queiramos reutilizar o mesmo conjunto de instrues mais de uma vez no programa,
podemos utilizar uma macro.

Essa instruo poder conter at 9 placeholders (&1 &2 &3 ... &9) e deve ser definido antes
de ser utilizado.

Include
Permite a utilizao do cdigo em vrios programas. Por exemplo, isso pode ser til quando
definimos uma grande quantidade de variveis, constantes, types, internal tables .... que
podem ser reutilizadas em diversos programas.
Para criar uma include, devemos informar o tipo I nos atributos do programa. Atente-se
somente para que todas instrues de cdigo na include estejam completas. Por exemplo:
***INCLUDE INCL_TST.
TEXT = 'Hello!'.

O trecho acima daria erro pois a varivel TEXT no foi definida.

WA |

54

Treinamento ABAP
Sintaxe:

Exemplo:
***INCLUDE ZSTARTTXT.
WRITE: / 'Program started by', SY-UNAME,
/ 'on host', SY-HOST,
'date:', SY-DATUM, 'time:', SY-UZEIT.
ULINE.

REPORT ZSAPMZTST.
INCLUDE ZSTARTTXT.

O resultado do exemplo acima ser:


Program started by KELLERH
on host ds0025 date: 03/19/1998 time: 09:00:39

Subroutines
So principalmente utilizadas para modularizao local, ou seja, so chamadas pelo
programa na qual foi criada.

WA |

55

Treinamento ABAP
Uma subrotina normalmente encerrada pela instruo ENDFORM, porm possvel encerrla previamente atravs da instruo EXIT ou CHECK.
Function Modules

Function Groups

Function

WA |

56

Treinamento ABAP

Chamar uma funo de dentro do programa:

EXERCISES (Modularization Techniques)

WA |

57

Treinamento ABAP

WA |

58

Treinamento ABAP

Working with Files

Processing Files

Open
file

Process
file

Close
file

Working with files in Application Server


Opening files
Para abrir um arquivo, usamos a instruo OPEN DATASET conforme sintaxe abaixo

Opening Files

SAP AG

Open
file

Process
file

Close
file

OPEN DATASET <filename>


[FOR {INPUT | OUTPUT | APPENDING}].

REPORT xxx.
:
OPEN DATASET newfile FOR APPENDING.
IF sy-subrc NE 0. EXIT. ENDIF.
:

FOR INPUT
Se a Default:
instruo
for bem sucedida, a varivel de sistema SY-SUBRC possuir o valor 0, caso
contrrio o valor da mesma ser 8.
R

SAP AG

For Input

Abre o arquivo somente para leitura. O cursor posicionado no comeo do arquivo.

For Output

Abre o arquivo para escrita. Se o arquivo existir, seu contedo apagado, seno criado um
novo arquivo.

For Appending

Abre o arquivo para escrita no fim do arquivo. O cursor posicionado no fim do arquivo.

WA |

59

Treinamento ABAP
Opening Files - Options
Open
file

Process
file

Close
file

OPEN DATASET <filename>


[FOR {INPUT | OUTPUT | APPENDING}]
[IN {BINARY MODE | TEXT MODE}]
[MESSAGE <field>].

REPORT xxx.
:
OPEN DATASET newfile FOR APPENDING MESSAGE text.
IF sy-subrc NE 0. EXIT. ENDIF.
:

Default: BINARY MODE

In Binary Mode
In Text Mode

SAP AG

Writing data to files

Transferring Data Records


Open
file

Process
file

Close
file

TRANSFER <field> to <file name> [LENGTH <len>].

REPORT xxx.
DATA rec LIKE BBKPF.
:
SELECT ...
TRANSFER rec TO demo_file.
ENDSELECT.

One record at a time


R

Cada instruo TRANSFER transfere um registro para o arquivo.


SAP AG

Antes da instruo, necessrio mover os dados para uma estrutura.


Se o arquivo no estiver aberto, a instruo tenta abrir o arquivo de modo FOR OUTPUT.
A clusula LENGHT permite especificar o tamanho em bytes da linha. Caso a estrutura a ser
transferida seja mais curta que o valor atribudo, ela ser complementada com espaos se a
abertura tiver sido efetuada via Text mode ou com 0 caso a abertura tenha sido efetuada
via Binary mode.
WA |

60

Treinamento ABAP
Reading data from files

Reading Data Records


Open
file

Process
file

Close
file

READ DATASET <file name> INTO <field> [LENGTH <len>].

REPORT xxx.
DATA rec LIKE BBKPF.
:
DO.
READ DATASET demo_file into rec.
IF sy-subrc NE 0. EXIT. ENDIF.
ENDDO.
One data record at a time
R

A instruo Read Dataset l uma linha do arquivo e transfere seu valor para uma varivel ou
SAP AG
estrutura.
Se o arquivo no estiver aberto, a instruo tenta abrir o arquivo de modo IN BINARY MODE
FOR INPUT. Se o arquivo no puder ser aberto , SY-SUBRC ter o valor 8.
Se o final do arquivo for atingido, a varivel de sistema SY-SUBRC setada com o valor 4, caso
contrrio o valor da mesma ser 0.
A clusula LENGHT permite especificar o tamanho em bytes da linha lida.

Closing files

Closing / Deleting a Sequential File


Open
file

Process
file

Close
file

CLOSE DATASET <file name>.

A instruo acima fecha o arquivo de forma explicita.


DELETE DATASET <file name>.
Assim como a instruo OPEN, a ocorrncia de erros descartada.

SAP AG

WA |

61

Closing / Deleting a Sequential File

Treinamento ABAP
Open
file

Process
file

Close
file

Aps o termino do programa, todos os arquivos so fechados.


Deleting
files DATASET <file name>.
CLOSE

DELETE DATASET <file name>.

Usamos a instruo acima para apagar o arquivo. Caso seja bem sucedida, a varivel de
sistema SY-SUBRC possuir o valor 0.

SAP AG

Summary

Sequential Files - Summary


Define structure
Write

Read
Open file

Fill structure

Read data record

Transfer
structure

Yes

Process data
record?
No

End of
file?

More data
records?

No

Close file

Yes

SAP AG

EXERCISES (files in Application Server)

WA |

62

Treinamento ABAP
Working with local files

Call Function
GUI_DOWNLOAD

Call Function
GUI_UPLOAD

EXERCISES (Local files)

WA |

63

Treinamento ABAP

ALV
REUSE_ALV_GRID_DISPLAY
Funo utilizada para exibio de tabela interna em formato de grid num report ABAP.

WA | ALV

64

Treinamento ABAP
PERFORMANCE Best Practices

WA | PERFORMANCE Best Practices

65

Treinamento ABAP

WA | PERFORMANCE Best Practices

66

Potrebbero piacerti anche