sap: variables en abap

7
Variables en ABAP Alejandro Torrijos Página 1 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.

Upload: alejandro-torrijos

Post on 15-Jun-2015

6.177 views

Category:

Documents


2 download

DESCRIPTION

Tutorial sobre los tipos de variables que existen en ABAP

TRANSCRIPT

Page 1: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 1

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.

Page 2: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 2

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.

Page 3: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 3

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

Page 4: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 4

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.

Page 5: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 5

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.

Page 6: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 6

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.

Page 7: SAP: Variables en ABAP

Variables en ABAP

Alejandro Torrijos Página 7

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.