✒️ABAP La declaración de datos
ABAP La declaración de datos
1 - Los Tipos de Datos de ABAP:
ABAP forma parte de los lenguajes de programación tipados tal como son C o JAVA. Por este motivo, cada variable en ABAP tiene un tipo especifico, es decir una variable de tipo fecha solo podrá contener valores numéricos en un formato correspondiente.
ABAP divide los tipos de datos en dos grupos:
- Tipos Completos: Con longitud fija, viene fijada de forma estándar por el sistema. Al declarar la variable ya tenemos la longitud del dato.
- Tipos Incompletos: Con longitud variable. No es fijada por el sistema y será el programador el que tiene que especificar la longitud de este al momento de la declaración.
Dentro de los Tipos de Datos Completos Estándar tenemos:
- D - Para fechas, formato AAAAMMDD, longitud fija de 8 dígitos.
- T - Para horas, formato HHMMSS, longitud fija de 6 dígitos.
- I - Para números enteros, longitud fija de 4 bytes.
- F - Para números de punto flotante o decimales, longitud fija de 8 bytes.
- DECFLOAT16 - Para números decimales de punto flotante, longitud fija de 8 bytes.
- DECFLOAT34 - Para números decimales de punto flotante, longitud fija de 16 bytes.
- STRING - Para cadenas de caracteres, longitud dinámica.
- XSTRING - Para secuencias de bytes, longitud dinámica (cadena hexadecimal).
Dentro de los Tipos de datos Incompletos estándar tenemos: a estos se deben especificar la longitud fija que tendrán.
- C - Para cadenas de caracteres.
- N - Para cadenas numéricas.
- X - Para secuencias de bytes (cadenas hexadecimales).
- P - Para números empaquetados.
Casi siempre los tipos de datos utilizados son los mismos, para declarar vamos a utilizar las palabras claves "DATA", "TYPE" y "VALUE". También se puede luego de declarar la variable, automáticamente asignarle un valor fijo.
- DATA: v_fecha TYPE D VALUE '2021105'. De esta forma, declaramos la variable de tipo fecha y asignamos un valor fijo.
- DATA: v_hora TYPE T VALUE '14:55:00'.
- DATA: v_cantidad TYPE I VALUE '1000'. Declaración de variable entera.
- DATA: v_texto TYPE STRING VALUE 'ABAP es un lenguaje de programación'.
Ahora, si deseamos declarar una variable de tipo "C" o Carácter y asignarle un contenido determinado:
- DATA: v_nombreyape(40) TYPE C VALUE 'Julian Alvarez'. Cuando usamos este tipo de datos "c", debemos especificar siempre la longitud del campo. De lo contrario el sistema asumirá que es 1.
Por cada declaración de variables anteriores, estamos usando la sentencia DATA, por lo que al momento de ejecutarse el programa, se van a ejecutar 7 sentencias diferentes. Podemos optimizar ampliamente esta forma de declarar variables, especificando todas en una sentencia DATA. Separando por comas a cada declaración y usando la misma sentencia DATA.
Otra forma de declarar variables 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.
- DATA: v_nro_cliente TYPE kunnr. "N° de Cliente
Haciendo doble clic sobre el tipo KUNNR vamos a visualizar su definición en el Diccionario de Datos. De esta manera estamos creando una variable que va a ser del tipo KUNNR que se usa para los números de clientes en SAP.
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.
En el siguiente ejemplo, 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:
- DATA: v_carrid LIKE sflight-carrid. "Denominación breve de la compañía aérea
La ventaja de usar TYPE con un dato ya especificado en SAP o LIKE, es que la performance del sistema se optimiza, la Desventaja es que si algunos de estos es cambiado por alguien, nos perjudicaría a nosotros.
Tabla 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 similar muy usada también es SPFLI.
2 - Las Estructuras de Datos:
Es cuando declaramos tipos de datos que están compuestos por varios tipos de datos diferentes.
Estructura: 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, al declarar una estructura en ABAP donde deseamos utilizarla, la misma existirá en memoria mientras dura la ejecución del programa.
Las estructuras se utilizan principalmente cuando trabajamos sobre "Tablas Internas".
Existen cuatro formas de declarar una estructura en un programa ABAP:
- Utilizando la palabra clave DATA. En el siguiente ejemplo declaramos una estructura de vuelos que tendrá los mismos campos que tiene la "tabla base de datos" de vuelos SFLIGHT
DATA: wa_vuelos TYPE sflight.
- Utilizando la palabra clave DATA, declarando una estructura de vuelos solo con ciertos campos. Usamos la estructura existente para para igualar los campos que estamos declarando con los campos de la estructura:
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
etc...
END OF wa_vuelos2.
- También podemos declarar estructuras tal como hicimos en el ejemplo anterior pero utilizando los tipos de datos completos o incompletos estándar de SAP.
- Por último, se podría declarar directamente una tipo de estructura y luego utilizarla, evitando tener que reescribir códigos. Para esto usamos la palabra reservada TYPE:
TYPES: BEGIN OF ty_vuelos,
carrid TYPE s_carr_id,
connin TYPE s_conn_id,
fldate TYPE s_date
END OF ty_vuelos.
DATA: wa_vuelos4 TYPE ty_vuelos
3 - Las Constantes:
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 usa la palabra clave reservada CONSTANTS, debemos especificar el tipo de datos y el valor que tendrá.
En el caso de declarar una variable de tipo "Incompleto", además deberemos especificar su longitud. Por ejemplo:
- CONSTANTS: c_x(1) TYPE c VALUE 'X'.
Si declaramos una variable de tipo "Completo" entonces no será necesario especificar la longitud. Por Ejemplo:
- CONSTANTS: c_nombre TYPE string VALUE 'Ezequiel'.
4 - Los Include de Datos y de subrutinas:
Es un tipo de programa y 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 utilizan para agrupar las declaraciones de datos.
- INCLUDE de subrutinas: se utiliza para agrupar las declaraciones de subrutinas.
Para la creación de "INCLUDE de datos", lo que debemos realizar es lo siguiente:
- Luego de la sentencia REPORT: Escribir INCLUDE seguida del nombre del "Include de datos". Luego hacer doble clic sobre el nombre del Include:
INCLUDE ztest_programa_datos.
Luego asegurarnos que diga Tipo "Programa de Include" / Grabamos / Asignar un paquete y Guardamos / Creamos una orden de transporte y Grabamos.
Finalmente tendremos un Include ZTEST_PROGRAMA_DATOS.
5 - Las Variables del Sistema:
Aparte de las variables que definimos como desarrolladores, existen otras propias del sistema que se encuentran en la tabla base de datos SYST (Almacena a las variables del sistema de un programa ABAP) 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 de base de datos. Su contenido no puede ser modificado en los programas, sino que cambia simplemente con la ejecución de los mismos.
- SY-SUBRC: es la más importante de todas las variables de sistema. Se utiliza para chequear posteriormente a la ejecución de una sentencia ABAP, si el resultado de la ejecución fue exitoso o no. Si fue Exitoso esta variable será igual a 0, caso contrario tendrá un valor distinto a cero.
- SY-DATUM: Contiene la fecha del sistema en formato AAAAMMDD.
- SY-UZEIT: Contiene la hora del sistema en formato HHMMSS. Utilizando al sentencia Get Time, actualizará la variable de hora del sistema, en caso de necesitarlo.
- SY-TABIX: Contiene el índice de una tabla interna.
 
 
 
Favorito:
Está publicación ha sido agregada a sus favoritos por: Carlos Piles Rosell
Sobre el autor
Publicación académica de Pedro Antonio Duarte, en su ámbito de estudios para la Carrera Consultor ABAP.
Pedro Antonio Duarte
Profesión: Consultor de Sap Abap - Argentina - Legajo: JP24O
✒️Autor de: 128 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Pedro Duarte