✒️ABAP La declaración de datos
ABAP La declaración de datos
1. TIPOS DE DATOS DE ABAP.
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.
Los tipos de datos en Abap se dividen en 2 tipos: Completo e incompletos
La diferencia esta en la longitud del dato.
EL COMPLETO tiene un número de caracteres establecidos por el sistema standar y cuando declaramos una variable de tipo completo ya tenemos la longitud del dato.
LOS INCOMPLETOS la longitud no esta especificada y será el programador el que tendrá la obligación de especificarla en el momento de la declaración de la variable.
Dentro de los completos estándar hay 8 tipos que son:
D -- Tipo de datos para fechas. 8 digitos AAAAMMDD (AÑO, MES,DIA)
T -- Tipo de datos para la hora. 6 digitos HHMMSS (HOTA, MINUTOS, SEGUNDOS)
I -- Tipo de datos para números enteros, longitud 4 bytes.
F -- Tipo de dastos para números con decimales, longitud 8 bytes
DECFLOAT16 -- Tipo de datos para números decimales de punto flotante, longitud 8 bytes
DECFLOAT34 -- Tipo de datos para números decimales de punto flotante, longitud 16 bytes
STRING -- Tipo de datos que se usa para las cadenas de caracteres, longitud dinámica
XSTRING -- Tipo de datos que s eusa para las secuencias de bytes dinámica (cadena hexadecimal)
Dentro de los incompletos estándar hay 4 tipos que son:
C -- Es el tipo de datos que se usa para las cadenas de caracteres, se debe especificar la longitud fija.
N -- Es el tipo de datos que se usa para las cadenas de caracteres númericos, se debe especificar la longitud fija.
X -- Es el tipo de datos que se usa para la secuencia de bytes (cadena hexadecimal), se debe especificar la longitud fija.
P -- Es el tipo de datos que se usa para los números empaquetados, se debe especificar la longitud fija.
EN BASE A LAS 12 TIPOS DE DATOS COMPLETOS E INCOMPLETOS, TAMBIEN LLAMADOS TIPOS PRIMITIVOS, SE PUEDEN CREAR TIPOS DE DATOS COMPLEJOS, ESTRUCTURAS BIDIMENSIONALES U OBJETOS DE EL DICCIONARIO DE DATOS.
Para declarar una variable en un programa ABAP, vamos a utilizar dos palabras reservadas muy importantes dentro del mundo ABAP, DATA y TYPE.
Si deseamos declarar en u programa abap una variable de tipo fecha hariamos lo siguiente:
DATA: v_fecha TYPE d.
Si deseamos asignar un valor determinado a la variable al mismo tiempo que la declaramos, agregaremos VALUE:
DATA: v_fecha TYPE d VALUE '20210726'.
Si deseamos declarar una variable de tipo hora:
DATA: v_hora TYPE t.
Si deseamos asignar un valor determinado a la variable al mismo tiempo que la declaramos, agregaremos VALUE:
Si deseamos declarar una variable de tipo entero y asignarle un valor determinado:
DATA: v-cantidad TYPE i VALUE '1000'.
Si deseamos declarar una variable de tipo string y asignarle un valor determinado:
DATA: v_texto TYPE string VALUE 'ABAP es un lenguaje de programación'.
Si deseamos declarar una variable de tipo c o caracter y asignarle un valor determinado:
DATA: v-nombreyape(40) TYPE c VALUE 'Julian Alvarez'.
Cuando declaramos una variable de tipo C o Caracter TYPE c debemos especificar la longitud de la cadena de caracteres o el sistema asumirá que su longitud es de 1 caracter.
Si deseamos declarar una variable de tipo n y asignarle un contenido determinado:
DATA: v_telefono (13) TYPE n VALUE '5491156859687'.
Si deseamos declarar una variable de tipo P o Empaquetado y asignarle un contenido determinado:
DATA: v_pi TYPE p DECIMALS 11 VALUE '3.14159264359'.
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 (Si hacemos doble clic sobre KUNNR veremos su definición en el diccionario de datos.
Podemos declarar variables que sean de igual tipo de datos que otras variables ya creadas en el sistema. Para ello usaremos 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 de base de datos SFLIGHT de vuelos de SAP.
DATA: v_carrid LIKE sflight-carrid. "Denominación breve de la compañia aérea
LA TABLA DE BASE DE DATOS SFLIGHT ES UNA TABLA ESTANDAR DEL SISTEMA SAP QUE CONTIENE INFORMACIÓN SOBRE VUELOS Y QUE ES USADA PARA REALIZAR PROGRAMAS DE PRUEBA O DEMO EN EL SISTEMA. OTRA SIMILAR ES SPFLI.
LAS ESTRUCTURA DE DATOS
Hasta ahora declaramos tipos de datos simples, pero tambien exite la posiblidad de declarar tipo de datos que están compuestos por varios tipos de datos diferentes, tal como es el caso de las estructuras.
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.
Existen 4 tipos diferentes de declarar una estructura en un programa de SAP, es decir 4 opciones para hacer exactamente lo mismo.
La primera usando la palabra clave DATA. usamos de ejemplo una estructura de vuelos SFLIGHT:
*Estructura de vuelos
DATA: wa_vuelos TYPE sflight
En la segunda tmb usamos DATA pero declarando una estructura de vuelos solo con ciertos campos. Para declarar cada uno de los campos de la estructura utilizamos tipos de datos ya existente es SAP.
* 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 de vuelo
currency TYPE s_currcode, "Moneda local de la compañia aerea
planetype TYPE s_planetye, "Tipo de avión
END OF wa_vuelos2.
Tambien podemos declarar la estructura utilizando datos campletos o incompletos estandar de SAP
* Estructura de vuelos
DATA: BEGIN OF wa_vuelos3,
carrid (3) TYPE c, "Denominación breve de la compañia aérea
connid (4) TYPЕ n, "Código de conexion de vuelo directo
fldate TYPE d, "Fecha de vuelo
price TYPE p DECIMALS 2, "Precio de vuelo
currency (5). TYPE c, "Moneda local de la compañia aérea
planetype (10) TYPE C, "Tipo de avión
END OF wa vuelos3.
Y finalmente la cuarta forma y mas usada es declarar una estructura usando TYPE. que son formatos de escritura sin necesidad de escribir el código, para esto se utilizan la palabra TYPES tal como vemos en el ejemplo:
* Estructura de vuelos
TYPES: BEGIN OF ty_vuelos
carrid (3) TYPE s_carr_id, "Denominación breve de la compañia aérea
connid (4) TYPЕ s_conn_id "Código de conexion de vuelo directo
fldate TYPE s_date "Fecha de vuelo
price TYPE s_price "Precio de vuelo
currency (5). TYPE s_currcode, "Moneda local de la compañia aérea
planetype (10) TYPE s_planetye "Tipo de avión
END OF ty_vuelos.
DATA: wa_vuelos4 TYPE ty_vuelos
LAS CONSTANTES:
Es una variable que se declara dentro de un programa y cuyo valor permanecera tal como lo indica su nombre constante a lo largo de la ejecución del programa. Para su declaración se usa la palabra CONSTANTS
Si declaramos una constante de un tipo de datos incompleto debemos especificar la longitud:
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
SI es de datos completos no es necesario especificar su longitud:
CONSTANTS: c_nombre TYPE string VALUE 'Ezequiel'.
EL USO DE CONSTANTES AYUDAS A QUE EL MANTENIMIENTO DEL PROGRAMA ABAP SEA MAS SENCILLO. POR LO TANTO USAR CONSTANTES EN LUGAR DE TEXTOS ENTRE COMILLAS SIMPLES ES CONSIDERADA UNA BUENA PRÁCTICA DE PROGRAMACIÓN.
LOS INCLUDE DE DATOS Y DE SUBRUTINAS
INCLUDE: ES UN TIPO DE PROGRAMA U OBJETO DE ABAP QUE SE USA PARA MODULIZAR LOS PROGRAMAS DE MANERA QUE ESTOS RESULTEN MAS LEGIBLES Y MANTENIBLES.
Existen 2 tipos:
INCLUDE de datos: Se usa para agrupar las declaraciones de datos
INCLUDE de subrutinas: Se usa para agrupar las declaraciones de subrutinas.
PARA CREAR UN INCLUDE DE DATOS:
Escribimos despues de la sentencia REPORT, la palabra INCLUDE seguida del nombre del include de datos: ejemplo:
REPORT ztest_programa
INCLUDE ztest_programa_datos
al picar sobre el nombre ZTEST_PROGRAMA_DATOS se abre una ventana de dialogo para crear el objeto. indicamos que si y en la siguiente ventana nos muestra el objeto que será creado. En tipo veremos estamos creando un programa de tipo include, damos a Grabar. Seguido, asignamos un paquete al include de datos y grabar. Creamos una nueva orden de transporte y asociamos el include. ya hemos creado el include.
Despues vamos a copiar todas las declaraciones de datos que se encuentran en el programa principal ZTEST_PROGRAMA y las pegamos en el include de datos ZTEST_PROGRAMA_DATOS. luego borramos todas las declaraciones de datos del programa principal y activamos tanto el include como el programa principal.
El programa ZTEST_PROGRAMA queda reducido a dos lineas de código lo cual facilita mucho su comprensión y modificiación.
LA UTILIZACIÓN DEL INCLUDE ES CONSIDERADA UNA BUENA PRACTICA DE PROGRAMACIÓN.
LAS VARIABLES DEL SISTEMA
Estas varialbles se encuentran en la tabla de de datos SYST, contienen información que va desde la hora dl sistema a saber si ejecuto correctamente una sentencia ABAP o una actualización de 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 DE BASE DE DATOS SYST ALMACENA A LAS VARIABLES DEL SISTEMA DE UN PROGRAMA ABAP.
La más comunes son:
SY-SUBRC: Es la más importante. se usa para chequear la ejecución de una sentencia ABAP. si el resultado de la ejecución fue exitoso o no. Si es exitoso la variable tendrá valor 0.
SY-DATUM: Contiene la fecha del sistema en formato AAAAMMDD, es muy útil.
SY-UZEIT: Contiene la hora en formato HHMMSS
SY-TABIX: Contiene el indice de una tabla interna.
 
 
 
Sobre el autor
Publicación académica de Vanessa Rosa López Fernández, en su ámbito de estudios para la Carrera Consultor ABAP.
Vanessa Rosa López Fernández
Profesión: Coordinadora Telemarketing - España - Legajo: UK38O
✒️Autor de: 11 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Consultora informática con experiencia en programación y nociones básicas de abap. gran capacidad para el aprendizaje y trabajo en equipo
Certificación Académica de Vanessa López