SAP ABAP: constantes y literales

Los literales son objetos de datos sin nombre que crea dentro del código fuente de un programa. Están completamente definidos por su valor. No puede cambiar el valor de un literal. Las constantes son objetos de datos con nombre creados de forma estática mediante el uso de declaraciones declarativas. Una constante se declara asignándole un valor que se almacena en el área de memoria del programa. El valor asignado a una constante no se puede cambiar durante la ejecución del programa. Estos valores fijos también pueden considerarse literales. Hay dos tipos de literales: numéricos y de caracteres.

Literales numéricos

Los literales numéricos son secuencias de dígitos que pueden tener un signo prefijado. En los literales numéricos, no hay separadores decimales ni notación con mantisa y exponente.

A continuación se muestran algunos ejemplos de literales numéricos:

183. 
-97. 
+326.

Literales de caracteres

Los literales de caracteres son secuencias de caracteres alfanuméricos en el código fuente de un programa ABAP entre comillas simples. Los caracteres literales entre comillas tienen el tipo C de ABAP predefinido y se describen como literales de campo de texto. Los literales encerrados entre "comillas inversas" tienen el tipo ABAP STRING y se describen como literales de cadena. La longitud del campo se define por el número de caracteres.

Note - En los literales de campo de texto, los espacios en blanco finales se ignoran, pero en los literales de cadena se tienen en cuenta.

A continuación se muestran algunos ejemplos de caracteres literales.

Literales de campo de texto

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

Literales de campo de cadena

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

La salida es la misma en los dos casos anteriores:

Tutorials Point  
ABAP Tutorial

Note- Cuando intentamos cambiar el valor de la constante, puede ocurrir un error de sintaxis o de tiempo de ejecución. Las constantes que declaras en la parte de declaración de una clase o interfaz pertenecen a los atributos estáticos de esa clase o interfaz.

Declaración de CONSTANTS

Podemos declarar los objetos de datos nombrados con la ayuda de la declaración CONSTANTS.

A continuación se muestra la sintaxis:

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

La declaración CONSTANTS es similar a la declaración DATA.

<f> especifica un nombre para la constante. TYPE <type> representa una constante denominada <f>, que hereda los mismos atributos técnicos que el tipo de datos existente <type>. VALUE <val> asigna un valor inicial al nombre de constante declarado <f>.

Note- Deberíamos usar la cláusula VALUE en la declaración CONSTANTS. La cláusula 'VALOR' se usa para asignar un valor inicial a la constante durante su declaración.

Tenemos 3 tipos de constantes como constantes elementales, complejas y de referencia. La siguiente declaración muestra cómo definir constantes utilizando la declaración CONSTANTS:

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

La salida es -

The value of PQR is: 1.2356

Aquí se refiere al tipo de datos elemental y se conoce como constante elemental.

A continuación se muestra un ejemplo de constantes complejas:

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.

En el fragmento de código anterior, EMPLEADO es una constante compleja que se compone de los campos Nombre, Organización y Lugar.

La siguiente declaración declara una referencia constante:

CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.

Podemos usar la referencia constante en las comparaciones o podemos pasarla a los procedimientos.