✒️ABAP La declaración de datos
ABAP La declaración de datos
Declaración y Procesamiento de datos
1 Tipos de datos
Los principales tipos de datos que se utilizan en ABAP son: texto, punto flotante, entero, texto numérico, número empaquetado, hexadecimal, fecha y hora.
<< imagen 1.1 >>
Audio: Cuando mencionamos un tipo de dato, por ejemplo las variables enteras que se declaran utilizando la palabra reservada "i" que 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. Tomando el caso de los enteros, una variable de tipo i puede almacenar números que van desde los -32.332.322 a los 32.332.322.
También existen los Tipos STRING que se utilizan para cadenas de longitud variable y XSTRING que se utilizan como un string hexadecimal para cadenas de caracteres muy grandes.
Para declarar una variable utilizamos la palabra clave DATA y TYPE tal y como vemos en el siguiente ejemplo:
<< imagen 1.2>>
Con el campo agregado de VALUE, inicializamos con un valor determinado una variable.
Con las sentenncias BEGIN OF y END OF, definimos estructuras de datos.
La declaración de variables DATA finaliza con un punto en la última de las definiciones. El resto, incluyendo los que forman parte de una estructura, siempre se separan con comas.
Cuando declaramos variables de tipo caracter TYPE c, debemos especificar la longitud d ela cadena, de lo contrario el sistema asumirá que su longitud es de 1 caracter. Ej:
DATA:
v_texto(5) TYPE c VALUE 'abcde'.
También podemos declarar variables que sean de igual tipo que otras ya creadas en el sistema. Para esto utilizamos la sentencia LIKE. En el ejemplo siguiente, se crea la variable v_carrid que es del mismo tipo que el campo carrid de la tabla sflight.
<< imagen 1.3 >>
La tabla de 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 muy similar, muy comúnmente utilizada con el mismo propósito es la tabla SPFLI.
Audio: Utilizamos al 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 ejempo, si declaramos: "DATA: v_dni LIKE z_tabla_usuarios-dni", estaremos definiendo una variable "v_dni" que es exactamente igual que el campo "dni" de la tabla de base de datos "z_tabla_usuarios".
Utilizamos la sentencia TYPE para crear una variable, estructura o tabla interna, de un tipo particular creado en el diccionario de datos ABAP. Por ejemplo, si declaramos: "DATA: v_dni "TYPE zz_dni", aquí la variable "dni" es del tipo "zz_dni".
La principal diferencia entre LIKE y TYPE radica en que si el día de mañana se actualiza la definición del tipo pero no se actualiza la definición del campo "dni" de la tabla base de datos, entonces la definición de nuestra variable quedará desactualizada (al referirse al campo y no al tipo originario).
2 Estructuras de datos
Una Estructura es un conjunto de campos relacionados cuyos componentes pueden ser simples campos, otras estructuras o incluso tablas.
Existen tres formas de definir una estructura:
La primera es utilizando la palabra clave DATA. En el siguiente ejemplo se crea una estructura de vuelos que tendrá los mismo campos que la tabla de vuelos SFLIGHT. En este caso se define una estructura formada por los mismos campos que la tabla de base de datos.
<< imagen 2.1 >>
En la segunda forma también utilizamos la palabra clave DATA, pero vamos a crear una estructura de vuelos solo con ciertos campos. En este caso se define una estructura formada por varias definiciones de campos.
<< imagen 2.2 >>
La tercera forma es utilizando Tipos, que son formatos de estructuras que pueden ser utilizado por cualquier otra estructura sin necesidad de reescribir el código. Para esto se utiliza la palabra reservada TYPES. En este caso se define una estructura con la palabra TYPES y después esta estructura se asocia a otra nueva estructura. A diferencia del caso anterior, esta estructura definida con TYPES puede asignarse a varias nuevas estructuras sin tener que volver a escribir toda la lista de campos de nuevo.
<< imagen 2.3 >>
3 Constantes
Una Constante es una variable que se declara dentro de un programa cuyo valor, permanecerá tal y como lo indica su nombre, constante a lo largo del programa.
Para su declaración se utiliza la palabra reservada CONSTANS.
<< imagen 3.1 >>
La utilización de constantes ayuda a que el mantenimiento de las aplicaciones ABAP sea más sencillo.
4 Include de datos
Un 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. Estos son:
- INCLUDE de datos: se utiliza para agrupar declaraciones de datos.
- INCLUDE de subrutinas: se utiliza para agrupar declaraciones de subrutinas.
Para la creación del include de datos (el de rutina lo veremos más adelante), se utiliza la palabra clave INCLUDE seguida del nombre del include:
<< imagen 4.1 >>
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í:
<< imagen 4.2 >>
Luego veremos la ventana de diálogo que nos muestra el objeto que será creado, en el que se indica que es de tipo "Programa de include". Aquí simplemente presionamos el botón Grabar:
<< imagen 4.3 >>
Finalmente habremos creado el INCLUDE z_prueba_abap_datos, dentro del cuál podremos realizar las declaraciones de datos que estimemos oportunas, y que serán añadidas al Report z_prueba_abap.
<< imagen 4.4 >>
=> 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.
=> La tabla base de datos SYST almacena 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 toma el valor 0, y en otro caso toma un valor distinto de cero.
- SY-DATUM: contiene la fecha del sistema (AAAAMMDD). Si se imprime muestra la fecha separada por puntos. Si queremos separarla por "/", podemos concatenar cada una de las variables que almacenan los datos de SY-DATUM, por ejeplo:
CONCATENATE V_DIA V_MES V_ANIO SEPARATED BY '/' INTO V_FECHA.
- SY-UZEIT: contiene la hora del sistema (HHMMSS).
- SY-TABIX: contiene el índice de una tabla interna, es decir, qué registro de la tabla interna es el último al que se accedió. Cada tabla interna tiene su propio SY-TABIX.
Audio: Como vimos anteriormente, la variable del sistema SY-UZEIT nos proporciona la hora actual del sistema al ejecutar un programa. SI realizamos un debug a un programa, veremos que siempre el contenido de SY-UZEIT es el mismo a lo largo de todo el debuggin. Supongamos que se nos solicita realizar un programa, y se nos pide que imprimamos por pantalla el tiempo que tarda en ejecutar. Para resolver este requerimiento, sabemos que la hora de inicio de la ejecución del programa la podemos obtener de la variable del sistema SY-UZEIT, y para obtener la hora del fin del programa, es decir, justo antes de que finalice el mismo debemos actualizar el contenido de la variable del sistema SY-UZEIT. Esto lo hacemos ejecutando la sentencia "get time", la cual actualizará la variable de la hora actual del sistema.
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Lorena Amoretti
Sobre el autor
Publicación académica de Jos? Antonio Saavedra Rodr?guez, en su ámbito de estudios para la Carrera Consultor ABAP.
Jos? Antonio Saavedra Rodr?guez
El Salvador - Legajo: SX28V
✒️Autor de: 166 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Avanzado
- Carrera Consultor en SAP SD Nivel Inicial