SAP ABAP - Variáveis

Variáveis ​​são objetos de dados nomeados usados ​​para armazenar valores dentro da área de memória alocada de um programa. Como o nome sugere, os usuários podem alterar o conteúdo das variáveis ​​com a ajuda de instruções ABAP. Cada variável no ABAP possui um tipo específico, que determina o tamanho e o layout da memória da variável; a faixa de valores que podem ser armazenados nessa memória; e o conjunto de operações que podem ser aplicadas à variável.

Você deve declarar todas as variáveis ​​antes que elas possam ser usadas. A forma básica de uma declaração de variável é -

DATA <f> TYPE <type> VALUE <val>.

Aqui <f> especifica o nome de uma variável. O nome da variável pode ter até 30 caracteres. <tipo> especifica o tipo de variável. Qualquer tipo de dados com atributos técnicos totalmente especificados é conhecido como <tipo>. O <val> especifica o valor inicial da variável de <f>. No caso de você definir uma variável elementar de comprimento fixo, a instrução DATA preenche automaticamente o valor da variável com o valor inicial específico do tipo. Outros valores possíveis para <val> podem ser uma cláusula literal, constante ou explícita, como Is INITIAL.

A seguir estão exemplos válidos de declarações de variáveis.

DATA d1(2) TYPE C.  
DATA d2 LIKE d1.  
DATA minimum_value TYPE I VALUE 10.

No trecho de código acima, d1 é uma variável do tipo C, d2 é uma variável do tipo d1 e minimum_value é uma variável do tipo inteiro ABAP I.

Este capítulo irá explicar vários tipos de variáveis ​​disponíveis no ABAP. Existem três tipos de variáveis ​​em ABAP -

  • Variáveis ​​Estáticas
  • Variáveis ​​de Referência
  • Variáveis ​​do sistema

Variáveis ​​Estáticas

  • Variáveis ​​estáticas são declaradas em sub-rotinas, módulos de função e métodos estáticos.

  • O tempo de vida está vinculado ao contexto da declaração.

  • Com a instrução 'CLASS-DATA', você pode declarar variáveis ​​dentro das classes.

  • A instrução 'PARAMETERS' pode ser usada para declarar os objetos de dados elementares que estão vinculados aos campos de entrada em uma tela de seleção.

  • Você também pode declarar as tabelas internas que estão vinculadas aos campos de entrada em uma tela de seleção usando a instrução 'SELECT-OPTIONS'.

A seguir estão as convenções usadas ao nomear uma variável -

  • Você não pode usar caracteres especiais como "t" e "," para nomear variáveis.

  • O nome dos objetos de dados predefinidos não pode ser alterado.

  • O nome da variável não pode ser igual a qualquer palavra-chave ou cláusula ABAP.

  • O nome das variáveis ​​deve transmitir o significado da variável sem a necessidade de comentários adicionais.

  • Os hífens são reservados para representar os componentes das estruturas. Portanto, você deve evitar hifens em nomes de variáveis.

  • O caractere de sublinhado pode ser usado para separar palavras compostas.

Este programa mostra como declarar uma variável usando a instrução PARAMETERS -

REPORT ZTest123_01. 
PARAMETERS: NAME(10) TYPE C, 
CLASS TYPE I, 
SCORE TYPE P DECIMALS 2, 
CONNECT TYPE MARA-MATNR.

Aqui, NAME representa um parâmetro de 10 caracteres, CLASS especifica um parâmetro do tipo inteiro com o tamanho padrão em bytes, SCORE representa um parâmetro de tipo compactado com valores de até duas casas decimais e CONNECT se refere ao tipo MARA-MATNF do dicionário ABAP .

O código acima produz a seguinte saída -

Variáveis ​​de Referência

A sintaxe para declarar variáveis ​​de referência é -

DATA <ref> TYPE REF TO <type> VALUE IS INITIAL.
  • A adição REF TO declara uma variável de referência ref.

  • A especificação após REF TO especifica o tipo estático da variável de referência.

  • O tipo estático restringe o conjunto de objetos aos quais <ref> pode se referir.

  • O tipo dinâmico de variável de referência é o tipo de dados ou classe a que se refere atualmente.

  • O tipo estático é sempre mais geral ou igual ao tipo dinâmico.

  • A adição TYPE é usada para criar um tipo de referência de limite e como um valor inicial, e apenas IS INITIAL pode ser especificado após a adição de VALUE.

Exemplo

CLASS C1 DEFINITION. 
PUBLIC SECTION. 
DATA Bl TYPE I VALUE 1. 
ENDCLASS. DATA: Oref TYPE REF TO C1 , 
Dref1 LIKE REF TO Oref, 
Dref2 TYPE REF TO I . 
CREATE OBJECT Oref. 
GET REFERENCE OF Oref INTO Dref1. 
CREATE DATA Dref2. 
Dref2→* = Dref1→*→Bl.
  • No fragmento de código acima, uma referência de objeto Oref e duas variáveis ​​de referência de dados Dref1 e Dref2 são declaradas.

  • Ambas as variáveis ​​de referência de dados são totalmente digitadas e podem ser desreferenciadas usando o operador de desreferenciação → * nas posições do operando.

Variáveis ​​do sistema

  • As variáveis ​​do sistema ABAP são acessíveis a partir de todos os programas ABAP.

  • Na verdade, esses campos são preenchidos pelo ambiente de tempo de execução.

  • Os valores nesses campos indicam o estado do sistema em qualquer ponto do tempo.

  • Você pode encontrar a lista completa de variáveis ​​do sistema na tabela SYST do SAP.

  • Os campos individuais da estrutura SYST podem ser acessados ​​usando “SYST-” ou “SY-”.

Exemplo

REPORT Z_Test123_01. 

WRITE:/'SY-ABCDE', SY-ABCDE,       
      /'SY-DATUM', SY-DATUM, 
      /'SY-DBSYS', SY-DBSYS, 
      /'SY-HOST ', SY-HOST, 
      /'SY-LANGU', SY-LANGU,
      /'SY-MANDT', SY-MANDT,
      /'SY-OPSYS', SY-OPSYS,
      /'SY-SAPRL', SY-SAPRL,
      /'SY-SYSID', SY-SYSID,
      /'SY-TCODE', SY-TCODE,
      /'SY-UNAME', SY-UNAME,
      /'SY-UZEIT', SY-UZEIT.

O código acima produz a seguinte saída -

SY-ABCDE ABCDEFGHIJKLMNOPQRSTUVWXYZ  
SY-DATUM 12.09.2015 
SY-DBSYS ORACLE                   
SY-HOST sapserver 
SY-LANGU EN 
SY-MANDT 800 
SY-OPSYS Windows NT 
SY-SAPRL 700 
SY-SYSID DMO 
SY-TCODE SE38 
SY-UNAME SAPUSER 
SY-UZEIT 14:25:48