✒️ABAP La declaración de datos
ABAP La declaración de datos
Tipos de datos ABAP
Los principales tipos de datos ABAP son:
TIPOS Long.por defecto Posible longitud Valor inicial Descripción
C 1 1-32000 ESPACIOS Texto
F 8 8 0.0E 00 Punto flotante
I 4 4 0 Entero
N 1 1-32000 '0000' Texto numérico
P 8 1-16 0 Número Empaquetado
X 1 1-29870 x'00' Hexadecimal
D 8 8 00000000 Fecha YYYYMMDD
T 6 6 000000 Hora HHMMSS
Cuando mencionamos que un tipo de dato, por ejemplo las variables enteras que se declaran utilizando la palabra reservada Y 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 caos de los enteros, una variable del tipo Y puede almacenar números que van desde los -32.332.322 a los 32.332.322
También existen los Tipos STRING (palabra clave usada para la declaración de variables, es una secuencia de caracteres de longitud variable) que se utilizan para cadenas de longitud variable y XSTRING que se usan como un string hexadecimal para cadenas de caracteres muy grandes.
Para declarar una variable usaremos la palabra clave DATA y TYPE.
Con el agregado VALUE inicializamos con un valor determinado a una variable.
Cuando declaramos variables de tipo caracter TYPE c debemos especificar la longitud de la cadena. De lo contrario el sistema asumirá que su longitud es 1 caracter, ejemplo:
*Declaración de variables
DATA: v_texto (4) TYPE c VALUE 'Hola',
También podemos declarar variables que sean de igual tipo que otras ya creadas en el sistema, para esto usamos la sentencia LIKE. Ejemplo:
DATA: v_carrid LIKE sflight-carrid.
Tabla SFLIGHT
La tabla base de datos SFLIGHT es una tabla estándar del sistema SAP que contiene información sobre Vuelos y que generalmente se usa para realizar programas de prueba o demo en el sistema.
Otra tabla de base de datos similar es la SPFLI.
Utilizamos la sentencia LIKE para crear una variable, estructura o tabla interna igual a otra variable, estructura o tabla interna.
Vamos a declarar una variable como copia de otra variable que fue previamente declarada o creada en el diccionario de datos.
Utilizamos la sentencia TYPE para crear una variable, estructura o tabla interna de un tipo particular creado en el diccionario de datos ABAP.
La principal diferencia entre LIKE y TYPE es que si el día de mañana se actualiza la definición del tipo y no se actualiza la definición del campo de la tabla de base de datos entonces la definición de nuestra variable quedará desactualizada.
Estructura de datos
Estructura es un conjunto de campos relacionados, cuyos componentes pueden ser simples campos, otras estructuras o inclusive tablas.
Hay 3 formas de definir una estructura:
-Utilizando la palabra clave DATA.
Ejemplo: creamos una estructura de vuelos que tendrá los mismos campo que la tabla de vuelos SFLIGHT
*Estructura de vuelos
DATA: wa_vuelos TYPE sflight.
-Utilizando la palabra clave DATA pero creando una estructura solo con ciertos campos.
Ejemplo: creamos una estructura de vuelos solo con ciertos campos
*Estructura de vuelos
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id, "Denominación breve de la compañía aérea
connid TYPE s_conn_id, "Código de conexión de vuelo directo
fldate TYPE s_date, "Fecha de vuelo
price TYPE s_price, "Precio del vuelo
currency TYPE s_currcode, "Moneda local de la compañía aérea
planetype TYPE s_planetye, "Tipo de avión
END OF wa_vuelos2.
-Utilizando TIPOS, que son formatos de estructuras que pueden ser usados por cualquier otra estructura sin necesidad de reescribir el código. Para esto se usa la palabra reservada TYPES.
Ejemplo:
*Estructura de vuelos
TYPES: BEGIN OF st_vuelos,
carrid TYPE s_carr_id, "Denominación breve de la compañía aérea
connid TYPE s_conn_id, "Código de conexión de vuelo directo
fldate TYPE s_date, "Fecha de vuelo
price TYPE s_price, "Precio del vuelo
currency TYPE s_currcode, "Moneda local de la compañía aérea
planetype TYPE s_planetye, "Tipo de avión
END OF st_vuelos.
Constantes
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 de usa la palabra reservada CONSTANTS. Ejemplo:
*Constantes
CONSTANTS: c_ca (2) TYPE c VALUE 'CA',
c_cb (2) TYPE c VALUE 'CB'.
La utilización de constantes ayuda a que el mantenimiento de las aplicaciones ABAP sea más sencillo.
Include de datos
Es un objeto ABAP que se usa para modularizar los programas para que estos sean más legibles y mantenibles.
Existen dos INCLUDES:
-INCLUDE de datos: para agrupar declaraciones de datos
-INCLUDE de subrutinas: para agrupar declaraciones de subrutinas
Para usar el include de datos usaremos la palabra clave INCLUDE seguida del nombre del include. Ejemplo:
REPORT z_prueba_abap.
*Include de datos
INCLUDE z_prueba_abap_datos.
Al hacer doble clic sobre z_prueba_abap_datos sale una ventana donde nos consulta si deseamos crear el objeto y de esa manera habremos creado el INCLUDE Z_PRUEBA_ABAP_DATOS.
La utilización de INCLUDES es una de las best practices.
Variables del sistema
Se encuentran dentro de 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. Su contenido no puede modificarse en los programas sino que cambia simplemente con la ejecución de los mismos.
Tabla SYST
Esta tabla base de datos almacena a las variables del sistema de un programa ABAP.
Las variables mas 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 0.
-SY-DATUM: contiene la fecha del sistema
-SY-UZEIT: contiene la hora del sistema al ejecutar un programa
-SY-TABIX: contiene el índice de una tabla interna
Con la variable del sistema SY-UZEIT tenemos la hora actual del sistema al ejecutar un programa, si realizamos un debug a un programa veremos que siempre el contenido de SY-UZEIT será el mismo a lo largo de todo el debug.
Si se nos solicita realizar un programa y se nos pide que imprimamos en pantalla el tiempo que tarda el programa en ejecutarse, 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 de fin del programa debemos actualizar el contenido de la variable del sistema SY-UZEIT, esto lo hacemos ejecutando la sentencia GET TIME que actualiza la variable de la hora actual del sistema.
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese