SAP ABAP - constantes e literais

Literais são objetos de dados não nomeados que você cria no código-fonte de um programa. Eles são totalmente definidos por seu valor. Você não pode alterar o valor de um literal. Constantes são objetos de dados nomeados criados estaticamente usando instruções declarativas. Uma constante é declarada atribuindo-se um valor a ela que é armazenado na área de memória do programa. O valor atribuído a uma constante não pode ser alterado durante a execução do programa. Esses valores fixos também podem ser considerados literais. Existem dois tipos de literais - numérico e caractere.

Literais Numéricos

Literais de número são sequências de dígitos que podem ter um sinal prefixado. Em literais de número, não há separadores decimais e nenhuma notação com mantissa e expoente.

A seguir estão alguns exemplos de literais numéricos -

183. 
-97. 
+326.

Literais de caracteres

Literais de caracteres são sequências de caracteres alfanuméricos no código-fonte de um programa ABAP entre aspas simples. Literais de caracteres entre aspas têm o tipo C ABAP predefinido e são descritos como literais de campo de texto. Literais entre "aspas invertidas" têm o tipo ABAP STRING e são descritos como literais de string. O comprimento do campo é definido pelo número de caracteres.

Note - Em literais de campo de texto, os espaços em branco finais são ignorados, mas em literais de string eles são levados em consideração.

A seguir estão alguns exemplos de literais de caracteres.

Literais de campo de texto

REPORT YR_SEP_12. 
Write 'Tutorials Point'. 
Write / 'ABAP Tutorial'.

Literais de campo de string

REPORT YR_SEP_12. 
Write `Tutorials Point `. 
Write / `ABAP Tutorial `.

O resultado é o mesmo em ambos os casos acima -

Tutorials Point  
ABAP Tutorial

Note- Quando tentamos alterar o valor da constante, pode ocorrer uma sintaxe ou erro em tempo de execução. As constantes que você declara na parte da declaração de uma classe ou interface pertencem aos atributos estáticos dessa classe ou interface.

Declaração CONSTANTS

Podemos declarar os objetos de dados nomeados com a ajuda da instrução CONSTANTS.

A seguir está a sintaxe -

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

A instrução CONSTANTS é semelhante à instrução DATA.

<f> especifica um nome para a constante. TYPE <type> representa uma constante chamada <f>, que herda os mesmos atributos técnicos do tipo de dados existente <type>. VALUE <val> atribui um valor inicial ao nome da constante declarada <f>.

Note- Devemos usar a cláusula VALUE na instrução CONSTANTS. A cláusula 'VALUE' é usada para atribuir um valor inicial à constante durante sua declaração.

Temos 3 tipos de constantes, como elementares, complexos e constantes de referência. A instrução a seguir mostra como definir constantes usando a instrução CONSTANTS -

REPORT YR_SEP_12. 
CONSTANTS PQR TYPE P DECIMALS 4 VALUE '1.2356'. 
Write: / 'The value of PQR is:', PQR.

O resultado é -

The value of PQR is: 1.2356

Aqui, ele se refere ao tipo de dados elementar e é conhecido como constante elementar.

A seguir está um exemplo para constantes complexas -

BEGIN OF EMPLOYEE,  
Name(25) TYPE C VALUE 'Management Team',  
Organization(40) TYPE C VALUE 'Tutorials Point Ltd',  
Place(10) TYPE C VALUE 'India',  
END OF EMPLOYEE.

No trecho de código acima, EMPLOYEE é uma constante complexa composta pelos campos Nome, Organização e Local.

A seguinte declaração declara uma referência constante -

CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.

Podemos usar a referência constante em comparações ou podemos passá-la para procedimentos.