You are on page 1of 7

Variables en ABAP

VARIABLES EN ABAP (DATA OBJECTS)

CONSIDERACIONES GENERALES:

Todos los datos con los que trabaja un programa en SAP deben estar
cargados en el área de la memoria RAM que el sistema operativo destina
para ese programa.

Cada una de las variables (DATA OBJECTS) debe declararse al inicio del
programa antes de poder operar con ella. La declaración de variables se
hace mediante la instrucción DATA.

Dependiendo del tipo y del número de variables declaradas el sistema


reserva un número determinado de bytes en memoria.

Los datos permanecen almacenados en memoria RAM (volátil) durante


el tiempo que dura la ejecución del programa. Si queremos usar un dato
posteriormente debemos almacenarlo en la memoria secundaria
(permanente) del sistema, por ejemplo el disco duro.

Alejandro Torrijos Página 1


Variables en ABAP

La declaración de un tipo de variable se hace mediante la instrucción


TYPE.

La inicialización de una variable se hace mediante la instrucción VALUE.


Por ejemplo

DATA x TYPE i VALUE 5.

La asignación de un valor a una variable se hace mediante el signo =.


Por ejemplo

x = 6.

El tipo de iinformación que puede almacenar una variable depende del


tipo declarado.

TIPOS DE VARIABLES:

Existen dos tipos de variables:

a) Variables numéricas: Son variables cuya información


almacenada (ceros y unos) se interpreta por su valor en sistema
binario y se usan para realizar cálculos.

b) Variables de tipo carácter: Son variables cuya información


almacenada (ceros y unos) se interpreta de acuerdo a un código
(ASCII o Unicode). Este tipo de variables se usa para mostrar
valores (números o letras). Cada carácter (letra o número) se
representa de forma independiente del resto. La longitud de este
tipo de variables puede ser determinada por el programador,
aunque se establecen unos valores por defecto.

Alejandro Torrijos Página 2


Variables en ABAP

Cada operación exige un tipo de variable. Si es necesario, el sistema


convierte un tipo de variable a otro, aunque con algunas excepciones
(por ejemplo no puede sumar dos letras pero sí puede sumar dos
números que estén representados como caracteres).

VARIABLES PREDEFINIDAS:

Son variables elementales que no es necesario definir en el Diccionario


del sistema, ya que existen en todos los programas ABAP. Dentro de
este tipo de variables podemos definir dos tipos:

1) Variables con longitud fija:


Entre estas variables se incluyen las siguientes:

1) Variables numéricas:

Tipo i (integer): Almacena números enteros en 4 bytes. Se usa sobre


todo para índices o contadores en un loop. Por ejemplo

 DATA x TYPE i VALUE 5.


 DO x TIMES
 ...
 ENDDO

Tipo p (packed): Ocupan 8 bytes y almacena números con un número


fijo de decimales que se declaran mediante la instrucción DECIMALS. Por
defecto el número de decimales es cero. Cada decimal ocupa 1/2 byte y
el signo ocupa el último 1/2 byte. Se usan sobre todo para almacenar
unidades monetarias, de peso, volumen... Debemos señalar la casilla

Alejandro Torrijos Página 3


Variables en ABAP

Fixed Point Arithmetic en los atributos del programa antes de usar este
tipo de variables. Por ejemplo

DATA x TYPE p DECIMALS 2 VALUE 5.25

Tipo f (float): Almacena números reales en 8 bytes. Utiliza el sistema


complemento a dos y la notación científica (signo, mantisa y exponente)
para representar los números. Este tipo de variables es adecuado para
realizar operaciones matemáticas complejas tipo raíz cuadrada, por
ejemplo

DATA x TYPE f VALUE sqrt ( 3 ).

2) Variables tipo carácter:

Tipo c (character): Almacena en 1 byte una letra o un caracter


numérico. Por ejemplo, para indicar una variable llamada car que ocupa
4 caracteres escribimos

DATA car(3) TYPE c VALUE 'hola'.

El tipo c también hace las veces de tipo booleano (inexistente en


ABAP): una X se intepreta como verdadero y un espacio en
blanco como falso. Para este último existe un tipo predefinido de
variable que se llama space y que se utiliza para instrucciones de
control del tipo

IF variable <> space.

Tipo n (numeric): Ocupa 1 byte y almacena caracteres numéricos (que


no números) y se usa para almacenar datos numéricos con los que no
se realizan operaciones aritméticas, por ejemplo un número de teléfono
o un código postal.

Alejandro Torrijos Página 4


Variables en ABAP

Tipo d (date): Ocupa 8 bytes y se usa para almacenar fechas. El


formato es año(4 dígitos)/mes(2 dígitos)/día(dos dígitos).
Si el valor se introduce desde una pantalla el sistema comprueba que la
fecha es válida.

La fecha del sistema se guarda en la variable sy-datum.


Se pueden realizar operaciones aritméticas del tipo sumar días,
semanas, años, etc.

 Para sumar 1 al mes actual hacemos los siguiente:

 definimos una variable tipo d y la llamamos por ejemplo fecha y le


asignamos la fecha del sistema:

DATA fecha TIPE d VALUE sy-datum

 accedemos al cuarto dígito con fecha+4


 accedemos a los dos siguientes con fecha+4(2)
 sumamos 1 al mes y lo guardamos

fecha = fecha+4(2) + 1

Tipe t (time): Ocupa 6 bytes y se usa para almacenar la hora. El


formato es hora(2 dígitos)/minutos(2 dígitos)/segundos(2 dígitos). Se
pueden realizar operaciones aritméticas del tipo sumar horas, o
segundos de forma similar a como lo hacemos con la fecha. La hora del
sistema se guarda en la variable sy-uzeit.

Tipo x (hexadecimal): Ocupa 1 byte. Cada medio byte representa


valores del 0 al 15 (o lo que es lo mismo del 0 al F en base
hexadecimal). El sistema almacena estos números como si fueran
caracteres. Si necesitamos realizar operaciones aritméticas con ellos el
sistema puede convertirlos a numéricos previamente.

2) Variables con longitud indefinida:


El espacio que ocupan en memoria varía de forma dinámica en tiempo
de ejecución.

Alejandro Torrijos Página 5


Variables en ABAP

Tipo string: Contiene cadenas de caracteres de una longitud indefinida.


El sistema reserva memoria para esta variable de forma dinámica
(durante la ejecución del programa) una vez que le asignamos
contenido.

Tipo xstring: Es el equivalente hexadecimal del string. El sistema


reserva memoria RAM de forma dinámica para esta variable a medida
que le asignamos contenido (valores del 0 al F en base hexadecimal).

VARIABLES DEFINIDAS POR EL PROGRAMADOR:

Además de los tipos de variables elementales que nos proporciona el


lenguaje ABAP el sistema nos permite construir nuestros propios tipos
de variables (y darles un nombre) a través de la instrucción TYPES. Por
ejemplo

 TYPES texto(4) TYPE c.


 DATA a TYPE texto VALUE 'hola'

Son variables más complejas definidas a partir de varias variables


elementales.

Podemos declarar tipos de variables y almacenarlas en una parte de la


memoria secundaria del sistema (Diccionario), para poder usarlas en un
momento posterior por otro programa.

El Diccionario es accesible por todos los programas ABAP que se estén


ejecutando en el mismo sistema.

Alejandro Torrijos Página 6


Variables en ABAP

Si queremos pasar varibles externas como parámetos a un determinado


programa o función, debemos asegurarnos que son del mismo tipo, o
tipos compatibles.

Las estructuras de las bases de datos almacenadas en el sistema son


consideradas como tipos de variables. De ahí que podamos procesar
información almacenada en una base de datos como si fueran variables
complejas (por ejemplo asignándoles un puntero para luego acceder a
su contenido).

TIPOS GENÉRICOS:

Typing significa especificar el tipo de datos que puede aceptar un


parámetro o un field symbol. El tipo real de los datos sólo se adopta
cuando se ejecuta un programa y se asigna un valor a una variable. El
efecto del typing es que sólo podemos asignar valores de ese tipo
definido a esa variable.

En ocasiones NO nos interesa definir un tipo para una variable, ya que


en tiempo de ejecución puede tomar diversos tipos de valores. En otras
ocasiones sólo nos interesa definir un tipo parcial.

En ABAP tan sólo podemos definir tipos genéricos dentro de las


subrutinas (FORM), de los métodos (METHODS) y en los FIELD-
SYMBOLS.

Las variables locales de un programa ABAP NO se pueden definir como


de tipo genérico.

Alejandro Torrijos Página 7

You might also like