✒️ABAP / La declaración de datos Por Felipe Arrona Rodriguez
ABAP La declaración de datos
La declaración de datos
1| Los tipos de datos de ABAP
Tal como en otros lenguajes de programación, en ABAP existen diferentes tipos de datos que podemos declarar en nuestro programas. Vamos a necesitar crear tipos de datos ya que los programas utilizan variables, constantes y otros objetos para almacenar los datos durante su ejecución.
ABAP forma parte de los lenguajes de programación tipados tal como son C o Java.
- C: Es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores.
- JAVA: Es un lenguaje de programación y una plataforma informática comercializada por primera vez en 1995 por Sun Microsystems.
Por otro lado, los lenguajes de tipado dinámico o no tipados no necesitan establecer un tipo y en una misma variable se puede almacenar cualquier tipo de dato durante la ejecución, como puede ser en PHP.
- PHP: Es un lenguaje de programación de uso general que se adapta especialmente en desarrollo web.
Como lenguaje tipado, cada variable que utilizamos en ABAP tiene un tipo específico, es decir que una variable de tipo fecha sólo podrá contener valores numéricos en un formato correspondiente o para guardar un nombre se debe utilizar una variable de tipo cadena de caracteres.
El lenguaje de programación ABAP divide los tipos de datos en dos grupos:
- Tipos completos
- Tipos incompletos
La diferencia entre los dos grupos se debe a la longitud del dato. En los tipos completos los tipos de datos tienen una longitud fija establecida por el sistema estándar y cuando declaramos una variable de un tipo completo ya tenemos la longitud del dato. En los tipos incompletos, la longitud del dato no viene fijada por el sistema estándar y será el programador el que tiene la obligación de especificar la longitud del dato en el momento de la declaración de la variable.
Dentro de los tipos de datos completos estándar tenemos los siguientes 8 tipos:
- D: Es el tipo de datos para fechas, el cual tiene el formato AAAAMMDD, con una longitud fija de 8 dígitos, donde AAAA representa el año, MM representa el mes y DD representa el día.
- T: Es el tipo de datos para la hora, el cual tiene el formato HHMMSS con una longitud fija de 6 dígitos, donde HH representa la hora, MM representa los minutos y SS representa los segundo.
- I: Es el tipo de datos para los números enteros, el cual tiene una longitud fija de 4 bytes.
- F: Es el tipo de datos para los números de punto flotante o decimales, el cual tiene una longitud fija de 8 bytes.
- DECFLOAT16: Es el tipo de datos que se utiliza para los números decimales de punto flotante, el cual tiene una longitud fija de 8 bytes.
- DECFLOAT31: Es el tipo de datos que se utiliza para los números decimales de punto flotante, el cual tiene una longitud fija de 16 bytes.
- STRING: Es el tipo de datos que se utiliza para las cadenas de caracteres, el cual tiene una longitud dinámica.
- XTRING: Es el tipo de datos que se utiliza para las secuencias de bytes de longitud dinámica (cadena hexadecimal).
Dentro de los tipos de datos incompletos estándar tenemos los siguientes 4 tipos:
- C: Es el tipo de datos que se utiliza para las cadenas de caracteres, para el que se debe especificar la longitud fija.
- N: Es el tipo de datos que se utiliza para las cadenas de caracteres numéricas, para el que se debe especificar la longitud fija.
- X: Es el tipo de datos que se utiliza para la secuencia de bytes (cadena hexadecimal), para el que se debe especificar la longitud fija.
- P: Es el tipo de datos que se utiliza para los números empaquetados, para el que se debe especificar la longitud fija, En la definición de un número empaquetado, es posible que también se especifique la cantidad de puntos decimales.
En base a los 12 tipos de datos estándar completos e incompletos, que también se llama tipos primitivos, se pueden crear tipos de datos complejos, estructuras bidimensionales u objetos del diccionario de datos.
Ahora bien, de todos los tipos de datos que acabamos de enumerar, los tipos de datos más utilizados son siempre los mismos. Por ello vamos a ver mediante ejemplos de como declarar los tipos de datos que más vamos a utilizar en nuestro trabajo del día a día como programadores ABAP.
Para declarar una variable en un programa ABAP vamos a utilizar dos palabras reservadas sumamente importantes dentro del mundo ABAP, tal como son DATA y TYPE.
- Si deseamos declarar en un programa ABAP una variable de tipo fecha.
- Si deseamos asignar un valor determinado a la variable al mismo tiempo que declaramos entonces vamos a utilizar el agregado VALUE.
- Si deseamos declarar una variable de tipo entero y asignarle un valor determinado.
- Si deseamos declarar una variable de tipo string y asignarle un valor determinado.
- Si deseamos declarar una variable de tipo c o caracter y asignarle un contenido determinado.
"Cuando declaramos variable de tipo c o caracter TYPE c debemos especificar la longitud de la cadena de caracteres. De lo contrario el sistema asumirá que su longitud es de 1 caracter". - Si deseamos declarar una variable de tipo p o empaquetado y asignarle un contenido determinado.
Por cada declaración de datos estamos utilizando una sentencia DATA diferente, por lo que al momento de ejecutarse el programa se van a ejecutar 7 sentencias diferentes. Podemos optimizar ampliamente esta forma de declarar variables de modo de especificar todas las declaraciones en una sola sentencia DATA.
Otra forma de declarar variable utilizando TYPE consiste en asignarle a la variable un tipo de datos ya existente en el Diccionario de datos, es decir que ya existe en SAP. Si hacemos doble clic sobre el tipo KUNNR vamos a visualizar su definición en el Diccionario de datos. Más adelante en la carrera ABAP.
Por último, también podemos declarar variables que sean de igual tipo de datos que otras variables ya creadas en el sistema. Para esto utilizamos la sentencia LIKE. Declaramos la variable V_CARRID que es del mismo tipo de datos que el campo CARRID de la tabla base de datos SFLIGHT de vuelos de SAP.
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 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.
2| Las estructuras de datos
Hasta ahora declaramos tipos de datos simples, pero también existe la posibilidad de declarar tipos de datos que están compuestos por varios tipos de datos diferentes, tal como es el caso de las Estructuras.
Estructuras
Es un tipo de dato compuesto que está formado por un conjunto de campos relacionados, cuyos componentes pueden ser simples campos, otras estructuras o inclusive tablas.
Tal como sucede con las variables, vamos a declarar una estructura en el programa ABAP donde deseamos utilizarla y la misma existirá en memoria mientras dura la ejecución del programa. Las estructuras se utilizan principalmente cuando trabajamos con tablas internas, concepto que veremos en detalle más adelante en el curso.
Existen cuatro formas de declarar una estructura en un programa ABAP.
- La primera es utilizando la palabra clave DATA. Que declaramos una estructura de vuelos que tendrá los mismos campos que tiene la tabla base de datos de vuelos SFLIGHT.
- La segunda forma también utilizamos la palabra clave DATA pero vamos a declarar una estructura de vuelos solo con ciertos campos. Para declarar cada uno de los campos de la estructura utilizamos tipos de datos ya existentes en SAP.
- También podemos declarar la estructura tal como hicimos en el ejemplo anterior pero utilizando los tipos de datos completos o incompletos estándar de SAP.
- Finalmente la cuarta forma de declarar una estructura 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.
3| Las constantes
Constante
Es una variable que se declara dentro de un programa y cuyo valor permanecerá tal como lo indica su nombre constante a lo largo de la ejecución del programa.
Para su declaración se utiliza la palabra reservada CONSTANTS, debemos especificar el tipo de datos de la constante y también el valor que tendrá la constante a lo largo de la ejecución del programa.
- Si declaramos una constante de un tipo de datos incompleto además deberemos especificar su longitud entre paréntesis.
- Si declaramos una constante de un tipo de datos completos entonces no será necesario especificar su longitud
4| Los include de datos de subrutinas
Hasta ahora vimos que dentro de un programa ABAP las declaraciones de datos se ubican al comienzo del programa, es decir luego de la sentencia REPORT y antes de la declaración de cada uno de los eventos del programa.
Esta situación en un programa ABAP que tiene pocas líneas de código y de baja complejidad no genera ningún tipo de complicaciones, en cuanto a la compresión del objetivo del programa, ya que simplemente visualizando rápidamente el código ABAP del programa vamos a comprender de qué se trata el mismo.
Pero pensemos lo que sucede en un programa ABAP con muchas líneas de código, por ejemplo más de 1000 líneas, de cierta complejidad. En este caso posiblemente tengamos más de 100 líneas de código de declaraciones de datos, por lo que visualizar el programa con el objetivo de comprender su funcionalidad se vuelve más complejo. Existe un tipo de programa ABAP que nos ayuda mucho con esta tarea de hacer que los programas sean fáciles de comprender y por lo tanto fáciles de modificar o mantener. Estamos hablando de los Includes.
Include
Es un tipo de programa u objeto ABAP que se utiliza para modularizar los programas de manera que estos resulten más legibles y mantenibles.
Existen dos tipos de INCLUDES que son:
- INCLUDE de datos: Se utiliza para agrupar las declaraciones de datos.
- INCLUDE de subrutinas: Se utiliza para agrupar las declaraciones de subrutinas, concepto que veremos en detalle más adelante.
En este momento nos concentraremos en los Include de datos. Para crear un include de datos lo que debemos hacer es escribir, luego de la sentencias REPORT, la palabra reservada INCLUDE seguida del nombre del include de datos.
Hacemos el procedimiento de crear un programa en Include ZTEST y el nombre que pusieron y hacemos todo lo mismo que es crear darle un paquete y finalmente habremos creado un inlcude del ZTEST del programa.
Lo que vamos haces es copiar todas las declaraciones de datos que se encuentra en el programa principal y lo vamos a pasarlo en el include del ZTEST. Una vez hecho esto lo que hacemos es borrar todas las declaraciones de datos del programa principal y activamos tanto el include como el programa principal. El programa principal queda reducido a únicamente dos líneas de código, lo cual facilita ampliamente su comprensión y modificación.
Ahora que ya sabemos cómo crear un include de datos entonces la próxima vez que creemos un programa ABAP nuevo, inmediatamente luego de la creación del programa vamos a declarar y crear un include de datos, de modo que todas las declaraciones de datos que vayamos haciendo las vamos a ir declaraciones de datos que vayamos haciendo las vamos a ir declarando en el include.
5| La variables del sistema
A parte de las variables que define el programador ABAP en el programa, existen otras variables que han sido definidas por el sistema y que son de gran utilidad dentro de los programas ABAP.
Estas variables 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 tabla base de datos. Su contenido no puede ser modificado en los programas, sino que cambia simplemente con la ejecución de los mismo. La tabla base de datos SYST almacena a las variables del sistema de un programa ABAP.
Analicemos a continuación las variables del sistema más comúnmente utilizadas:
- SY-SUBRC: Es sin duda la más importante de todas las variables del sistema. Se la utiliza para chequear posteriormente a la ejecución de un sentencia ABAP, si el resultado de la ejecución fue exitoso o no. Si luego de ejecutarse una sentencia ABAP el resultado de la ejecución fue exitoso, entonces la variable SY-SUBRC tendrá el valor cero y si no es exitoso entonces la variable SY-SUBRC tendrá un valor distinto de cero.
- SY-DATUM: Esta variable del sistema en el formato AAAAMMDD. Es una variable sumamente útil en nuestro trabajo del día a día como programadores ABAP.
- SY-UZEIT: Esta variable del sistema contiene la hora del sistema en el formato HHMMSS.
- SY-TABIX: Esta variable del sistema contiene el índice de una tabla interna.
 
 
 
Sobre el autor
Publicación académica de Felipe De Jesus Arrona Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Felipe De Jesus Arrona Rodriguez
Profesión: Ingeniero Administrador de Sistemas - Mexico - Legajo: QV21N
✒️Autor de: 32 Publicaciones Académicas
🎓Egresado del módulo:
Presentación:
" ingeniero en sistemas, orientado a optimizar procesos y datos con sap, sql y power bi, buscando crecimiento profesional en entornos administrativos y tecnológicos. "
Certificación Académica de Felipe Arrona






Disponibilidad Laboral: FullTime


















