UNIDAD 2: DECLARACION Y PROCESAMIENTO DE DATOS
LECCIÓN 3: DECLARACIÓN DE DATOS
1) Tipos de datos ABAP
Los principales tipos de datos que se utilizan en ABAP son:
C: Texto.
F: Punto flotante.
I: Entero.
N: Texto númerico.
P: Número empaquetado.
X: Hexadecimal.
D: Fecha YYYYMMDD
T: Hora HHMMSS
AUDIO: Cuando mencionamos que un tipo de dato, por ejemplo las variables enteras que se declaran utilizando la palabra reservada I, tienen una longitud de 4 nos estamos refiriendo a la cantidad de bytes que ocupa una variable de ese tipo y no a la cantidad de dígitos máximos que puede almacenar. En el caso de los enteros, una variable de tipo I puede almacenar números -32332322 a los más 32332322.
También existen los Tipos STRING (Palabra clave del sistema que se utiliza para la declaración de variables, un string es una secuencia de caracteres de longitud variable) que se utiliza para cadenas de longitud variable y XSTRING que se utilizan como un string hexadecimal para cadenas de caracteres muy grandes.
Para declarar una variable utilizaremos la palabra clave (palabra propia del lenguaje que no puede ser utilizada por el programador con otra intención con el que se le designo)
DATA: Palabra clave que se utiliza para la declaración de variables.
TYPE: Palabra clave en ABAP que se utiliza para la declaración de datos.
Con el agregado de VALUE, inicializamos con un valor determinado a una variable.
NOTA: Cuando declaramos variables de tipo carácter TYPE c debemos especificar la longitud de la cadena. De lo contrario el sistema asumirá que su longitud es 1 carácter.
También podemos declarar variables que sean de igual tipo que otras ya creadas en el sistema. Para esto utilizamos la sentencia LIKE (sentencia ABAP que se utiliza para declarar variables que sean iguales a otros tipos ya existentes en el sistema).
En el siguiente caso, creamos la variable V_CARRID que es del mismo tipo que el campo CARRID de la tabla SFLIGHT de vuelos de SAP.
TABLAS SFLIGHT: La tabla base de datos SFLIGHT es una tabla estándar del sistema SAP que contiene información sobre Vuelos y que generalmente es utilizada para realizar programas de prueba o demo en el sistema.
Otra tabla base de datos similar, muy comúnmente utilizada con el mismo propósito es la tabla SPFLI.
AUDIO: Utilizamos a sentencia LIKE para crear una variable estructura o tabla interna igual a otra variable estructura o tabla interna, es decir vamos a declarar una variable como copia de otra variable que fue previamente declarada o creada en el diccionario de datos. Por ejemplo si declaramos.
Data: v_dni LIKE z_tabla-dni
Aquí la variable v_dni es exactamente igual que el campo dni de la tabla base de datos z_tabla usuario
2) Estructuras de datos
ESTRUCTURA: Es un conjunto de campos relacionados, cuyos componentes pueden ser simples campos, otras estructuras o inclusive tablas.
Existen tres formas de definir una estructura:
La primera es utilizando la palabra clave DATA. En el siguiente ejemplo creamos una estructura de vuelos que tendrá los mismos campos que la tabla de vuelos SPLIGHT.
En la segunda forma también utilizamos la palabra clave DATA pero vamos a crear una estructura de vuelos solo con ciertos campos.
La tercera forma es utilizando TIPOS, que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código. Para esto se utiliza la palabra reservada TYPES (palabra reservada que se utiliza para la declaración de tipos. Generalmente se utilizan en la declaración de estructuras de datos dentro de un programa ABAP).
3) Constantes
CONSTANTE: Es una variable que se declara dentro de un programa cuyo valor permanecerá tal como lo indica su nombre constante a lo largo del programa.
Para su declaración se utiliza la palabra reservada CONSTANTS.
NOTA: La utilización de constantes ayuda a que el mantenimiento de las aplicaciones ABAP sea más sencillo.
4) Include de datos
INCLUDE: Es un objeto ABAP que se utiliza para modularizar los programas de manera que estos resulten más legibles y mantenibles.
Existen dos tipos de INCLUDES. Ellos son:
INCLUDE de datos: se utiliza para agrupar declaraciones de datos.
INCLUDE de subrutinas: se utiliza para agrupar declaraciones de subrutinas, concepto que veremos en detalle más adelante.
En este momento nos concentraremos en los Include de datos. Para su creación se utiliza la palabra clave
Al hacer doble clic sobre z_prueba_abap_datos veremos la siguiente ventana de diálogo donde se nos consulta si deseamos crear el objeto, a la cual responderemos que sí.
Luego veremos la ventana de diálogo que nos muestra el objeto que será creado. Aquí simplemente presionamos el botón GRABAR.
Finalmente habremos creado el INCLUDE Z_PRUEBA_ABAP_DATOS.
NOTA: La utilización de INCLUDES es considerada una buena práctica de programación.
5) Variables del sistema
A parte de las variables que define el programador, existen otras que han sido definidas por el sistema y que son de gran utilidad dentro de los programas ABAP.
Estas se encuentran en la tabla base de datos SYST () y contienen información que va desde la hora del sistema, a saber si se ejecutó correctamente una sentencia ABAP o una actualización a una base de datos. Su contenido no puede ser modificado en los programas sino que cambia simplemente con la ejecución de los mismos.
TABLA SYST: La tabla base de datos SYST almacena a las variables del sistema de un programa ABAP.
Las más comúnmente utilizadas son:
SY-SUBRC: código de retorno posterior a la ejecución de una sentencia ABAP. Si el resultado de la ejecución fue exitoso, entonces es 0, sino es distinto de cero.
SY-DATUM: contiene la fecha del sistema.
SY-UZEIT: contiene la hora del sistema.
AUDIO: SY-UZEIT nos proporciona la hora actual del sistema al ejecutar un programa, si realizamos en debugg a un programa veremos que el contenido de SY-UZEIT será el mismo a lo largo de todo el debug, supongamos que se nos solicita realizar un programa y se nos pide que imprimamos en pantalla el tiempo que demora en ejecutarse. Para obtener la hora de inicio la obtenemos de SY-UZEIT y para obtener la hora fin debemos actualizar la variable SY-UZEIT, esto lo hacemos ejecutando la sentencia getTime.
SY-TABIX: contiene el índice de una tabla interna.