Você está na página 1de 31

Declaração e Comandos

1
Objetivos deste Capítulo
• Definir e declarar tipos e variáveis
• Como declarar variáveis
• Como usar sub-fields e fields symbols
• Como operar strings e cálculos
• Como declarar parâmetros
• Comandos básicos do ABAP

2
Declaração de Tipos de Objetos
Tipos:
• Não ocupam espaço na memória
• Tem as características técnicas de um objeto do banco
• Podem ser predefinidos ou definidos durante o programa

3
Declaração de Tipos de Objetos
Objetos:
• Ocupam espaço no banco de dados
• Possuem tipos particulares
• São exemplos concretos dos tipos de dados

4
Declarando Objetos
• Podemos declarar um tipo definido em abap (type C)
• Criar um tipo a partir de um objeto do dicionário de dados
• Podemos declarar um objeto do dicionário de dados

5
Tipos e seus atributos

TIPO SIGNIFICADO VALOR TAMANHO TAMANHO


INICIAL STANDARD PERMITIDO

P Decimais 0 8 1-16

I Inteiros 0 * -

F flutuantes 0.000... * -

N Numerico 00...0 1 1-max

6
Tipos e seus atributos
TIPO SIGNIFICADO VALOR TAMANHO TAMANHO
INICIAL STANDARD PERMITIDO
C char branco 1 1-max

D data 0000000 8 8
0
T Hora 000000 6 6

X hexadecimal X’00’ 1 1-max

P N C X podem ter seus tamanhos definidos entre parênteses

7
Observações
• Se o tamanho não for declarado, será usado o tamanho
default do tipo
• Tipo default char
• Nome variável máximo 30 char
• Não usar () + .,: para definir variáveis
• SPACE é a palavra reservada do ABAP
• Tipo P máximo de decimais 14

8
Exemplos
DATA: CONTEUR TYPE I,
NAME(18) TYPE C,
START_DATE TYPE D,
COUNTER TYPE I VALUE 1,
SUM(3) TYPE P DECIMAIS 2.

9
EXEMPLOS
DATA: NAME(18)
START_DATE LIKE SY-DATUM,
COUNTER TYPE I DEFAULT 1.

10
Estrutura
• DATA: BEGIN OF ST_CAD,
• COD_CLI(10),
• NOME(30),
• FONE(12),
• END OF ST_CAD

11
Estrutura
TYPE: BEGIN OF ST_SPFLI,
FLAG,
NAME(30),
TOTAL(15) TYPE P DECIMALS 2,
END OF ST_SPFLI.
DATA: WA_SPFLI LIKE ST_SPFLI.

12
Tabela Interna
DATA: BEGIN OF IT_CAD OCCURS 0,
COD_CLI(10),
NOME(30),
FONE(12),
END OF IT_CAD.

13
Tabela Interna
DATA: IT_CAD LIKE ST_CAD OCCURS 0 WITH HEADER LINE.

14
Tabela Interna
DATA: BEGIN OF IT_CAD.
INCLUD SCTRUCTURE ST_CAD.
DATA: END OF IT_CAD.

15
Declarando LIKE
• Declarações que utilizam os objetos do dicionário de dados
DATA: VC_CONNID LIKE SPFLI-CONNID

DATA: IT_SPFLI LIKE SPFLI OCCURS 0 WITH HEADER LINE

16
Parâmetros
• Permite uma entrada do usuário
• Pode ser declarado como um tipo ou like um objeto do banco
• Pode ser declarado com valor default

17
Declaração de tabelas do banco
• Quando houver uma referência a uma tabela do banco, esta
deverá ser declarado no início do programa

18
Constantes
• Você também poderá declarar constantes em seu programa

CONSTANTS: C_FIXO(10) VALUE ’NÃO MUDA’.

19
Text Symbols
• WRITE: 15 TEXT -001.
Clicar duas vezes sobre ele, ou ir ao menu: saltar/ textos /
símbolos de texto.

20
CLEAR
• CLEAR <VARIÁVEL>
• CLEAR < TABELA INTERNA>
• CLEAR < TABELA INTERNA []
• Limpa o conteúdo de uma variável, do header de uma tabela
interna ou de toda tabela interna

21
REFRESH
• REFRESH < TABELA INTERNA>
• Limpa todo o conteúdo da tabela interna

22
MOVE
• MOVE ‘LH’ TO VC_COMPANHIA
• MOVE-CORRESPONDING SPFLI TO IT_SPFLI
• Para o move- corresponding os campos de uma tabela
deverão ter a mesma nomenclatura

23
SPFLI[] = IT_SPFLI[]
• Move todo o conteúdo de uma tabela para a outra, porém a
estrutura das duas tabelas deverá ser idênticas.

24
OPERADORES
• + ADD
• \ DIVIDE
• - SUBTRACT
• * MULTIPLY
• DIV
• MOD

25
Operadores
• DIV/MOD operadores somente de números inteiros
• 11 div 2 = 5 (valor da divisão)
• 11 mod 2 = 1 (resto da divisão)

26
Funções
• SQRT
• EXP
• LOG
• SIN
• COS
• STRLEN
• TAN

27
Sub - Fields
DATA: VC-TUDO(10),
VC_UM(3),
VC_DOIS(7).
VC_TUDO = ‘ABACAXI’.
VC_UM = VC_TUDO(3) => Resultado: ‘ABA’
VC_DOIS = VC_TUDO +3(7) => Resultado: ‘CAXI’.

28
Cálculo de datas
• A data no R/3 vem nos seguinte formato:
• 20040601, para adicionar ou subtrair uma data, basta
acrescentar o número pretendido.
• DATA = VD_DATE LIKE SY-DATUM
• VD_DATE = ‘20040601’ + 7
• VD_DATE = ‘20040608’

29
Comandos
• IF ...ELSE(ELSEIF) ...ENDIF
• CASE...WHEN...ENDCASE
• DO...<NRO> TIMES...ENDDO
• WHLE...ENDWHILE
• CHECK expressão lógica
(Se verdadeiro => o processo continua)
• EXIT
• CONTINUE

30
Comandos
• TRANSLATE c TO UPPER CASE
• TRANSLATE c TO LOWER CASE.
• REPLACE ‘string' with ‘string' ' INTO VARIÁVEL.
• CONCATENATE ‘ABC’ ‘DEF’ INTO VARIÁVEL.
• SHIFT
DATA: ALPHABET(15) VALUE '     ABCDEFGHIJ',
SHIFT ALPHABET LEFT DELETING LEADING SPACE.
ALPHABET = 'ABCDEFGHIJ     '.

• E outros...

31

Você também pode gostar