✒️ABAP La declaración de datos
ABAP La declaración de datos
Unidad n°2: La declaración y el procesamiento de datos
Lección n°3: La declaración de datos
Los tipos de datos ABAP:
En ABAP hay distintos tipos de datos que podemos declarar en los programas, vamos a necesitar crearlos ya que los programas usan variables, constantes y otros objetos para almacenar los datos durante su ejecución.
Los tipos ded atos se dividen en dos grupos:
- Tipos completos.
- Tipos incompletos.
La diferencia entre estos se debe a la longitud del dato. En los completos, los tipos de datos tienen una longitud fija establecida por el sist. estándar y cuando declaramos una variable de un tipo completo ya tenemos la longitud del dato.
En los 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 al momento de declarar la variable.
Dentro de los tipos de datos completos estándar hay ocho tipos:
- D: es para las fechas, tiene un formato AAAA MM DD, con longitud de 8 dígitos.
- T: para la hora, tiene un formato HH MM SS, con longitud de 6 dígitos.
- I: para los núm. enteros, con longitud fija de 4 bytes.
- F: para los núm. decimales, con longitud fija de 8 bytes.
- DECFLOAT16: para núm. decimales de punto flotante, con longitud fija de 8 bytes.
- DECFLOAT34: para núm. decimales de punto flotante, con longitud fija de 16 bytes.
- STRING: para las cadenas de caracteres, con longitud dinámica.
- XSTRING: para las secuencias de bytes, con longitud dinámica (cadena hexadecimal).
Dentro de los tipos de datos incompletos estándar hay cuatro tipos:
- C: para las cadenas de caracteres, para el que se debe especificar la longitud fija.
- N: para cadenas de caracteres numéricas, se debe especificar la longitud fija.
- X: para secuencia de bytes (cadena hexadecimal), se debe especificar longitud fija.
- P: para núm. empaquetados, es posible que también se especifique la cantidad de puntos decimales.
Para declarar una variable en un programa, usaremos dos palabras reservadas "DATA" y "TYPE".
Ahora por ejemplos veremos como usar las variables:
- Variable tipo fecha: DATA: v_fecha TYPE d.
Para asignarle un valor determinado mientras la declaramos: DATA: v_fecha TYPE d VALUE '20210726'. - Variable tipo hora: DATA: v_hora TYPE t.
Para asignarle un valor determinado mientras la declaramos: DATA: v_hora TYPE t VALUE '14:55:00'. - Variable tipo entero y asignarle un valor determinado: DATA: v_cantidad TYPE i VALUE '1000'.
- Variable tipo string y asignarle un valor determinado: DATA: v_texto TYPE string VALUE 'ABAP es un lenguaje'.
- Variable tipo c/caracter y asignar contenido determinado: DATA: v_nombreyape(40) TYPE c VALUE 'Juan Carlos'.
Cuando declaramos variables tipo c/caracter TYPE c debemos especificar la longitud de la cadena. - Variable tipo n y asignarle un contenido determinado: DATA: v_telefono(13)TYPE n VALUE '5491156865676'.
- Variable tipo/empaquetad y asignar contenido determinado: DATA: v_pi TYPE p DECIMALS 11 VALUE '3.1213695864'.
Por cada declaración de datos, estamos usando una sentencia DATA diferente, por ende cuando se ejecute el programa, se ejecutarán sentencias diferentes. Podemos optimizar ampliamente esta forma de declarar variables de modo de especificar todas las declaraciones en un asola sentencia DATA de la siguiente forma:
DATA: v_fecha TYPE d VALUE '20210726',
v_hora TYPE t VALUE '14:55:00',
v_pi TYPE p DECIMALS 11 VALUE '3.1213695864'.
Otra forma de declarar variables usando TYPE consiste en asignarle a la variable un tipo de datos ya existentes en el Diccionario de datos, es decir, que existe en SAP: DATA: v_nro_cliente TYPE kunnr. "Num. de cliente
También podemos declarar variables que sean de igual tipo de datos que otras variables ya creadas en el sistema, usando la sentencia LIKE.
En el 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.
*Tabla SFLIGHT: es una tabla estándar del sistema que contiene info sobre vuelos y que generalmente es usada para hacer programas de prueba o demo en el sistema.
La diferencia de usar TYPE y LIKE es:
- Con TYPE podemos declarar una variable de dos formas: usando los tipos de datos estándar del sistema (completo o incompleto) o usando un tipo de dato ya existente en el diccionario de datos.
Reutilizamos tipos de datos existentes.
Si alguien modifica ese tipo de dato, nuestro programa se verá afectado. - Con LIKE reutilizamos los tipos de datos que es positivo, pero por otro lado, como vimos con TYPE, si alguien modifica ese tipo de datos, el cambio impactará en nuestro programa.
Las estructuras de datos:
También existe la posibilidad de declarar los tipos de datos que están compuestos por varios tipos de datos diferentes, usando las Estructuras.
Las estructuras son un tipo de dato compuesto formado por un conjunto de campos relacionados, cuyos componentes pueden ser simples campos, otras estructuras o inclusive tablas.
Estas se usan principalmente cuando trabajamos con tablas internas.
Existen cuatro formas de declarar una estructura:
- Usando la palabra clave DATA.
- En la 2da también podemos usar DATA pero declararemos una estructura de vuelos solo con ciertos campos. Para declarar cada campo de la estructura usaremos tipos de datos existentes en SAP.
- También se puede declarar la estructura como en el ejemplo anterior, pero usando los tipos de datos completos o incompletos estándar de SAP.
- La 4ta forma de declarar una estructura es usando TIPOS, que son formatos de estructuras que pueden ser usados por cualquier otra estructura sin necesidad de reescribir código. Para esto se usa TYPES.
Las constantes:
Son variables que se declaran 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 declararla se usa CONSTANTS, debemos especificar el tipo de dato de la constante y el valor que tendrá esta a lo largo de la ejecución del programa.
- Si declaramos una constante de un tipo de datos incompleto, debemos especificar su longitud:
CONSTANTS: c_x(1) TYPE c VALUE 'X'. - Si declaramos una constante de un tipo de datos completo, no es necesario especificar su longitud:
CONSTANTS: c_nombre TYPE string
El uso de constantes ayuda a que el mantenimiento de los programas sea más sencillo.
Los include de datos y de subrutinas:
Como no todos los programas son de pocas líneas y baja complejidad, nos encontraremos con algunos que tendrán más de 100 líneas y una comprensión difícil, es por ello que para facilitarnos esto, usaremos los Includes.
El include es un tipo de programa u objeto ABAP usado para modularizar los programas de forma que estos sean más legibles y mantenibles.
Existen dos tipos:
- INCLUDE de datos: usado para agrupar las declaraciones de datos.
Para crear uno, luego de la sentencia REPORT, debemos escribir INCLUDE, seguido del nombre del include de datos:
REPORT ztest_programa.
INCLUDE ztest_programa_datos.
1. Cuando hacemos doble clic en ztest_programa_datos, veremos una ventana que nos preguntará si queremos crear el objeto y clic en si.
2. Veremos otra ventana que nos muestra el objeto creado, donde podemos modificar el título por defecto; En Tipo, verificamos que estamos creando un programa tipo Inlcude y grabamos.
3. A continuación, le asignaremos un paquete al include de datos y grabamos.
4. Creamos una nueva orden de transporte y la asociamos al include de datos
5. Se creó el include ztest_programa_datos.
6. Ahora copiaremos todas las declaraciones de datos que están en el programa principal y las pegaremos dentro del include.
7. Borramos todas las declaraciones de datos del programa principal y activamos tanto el include como el programa principal. - INCLUDE de subrutinas: usado para agrupar las declaraciones de subrutinas.
*Subrutinas: bloque de código modularizado en una rutina para hacer más legible el código del programa.
Variables del sistema:
Estas variables son definidas por el sistema y son de gran ayuda. Estas se encuentra en la tabla base de datos SYST. Su contenido no puede modificarse en los programas, si no que cambia con la ejecución de los mismos.
*Tabla SYST: tabla base de datos SYST almacenada en las variables del sistema de un programa.
Las variables de sistemas más usadas son:
- SY-SUBRC: para chequear luego a la ejecución de una sentencia, si el resultado de la ejecución fue exitosa o no.
Si fue exitoso, esta variable tendrá valor 0, pero si no lo es, tendrá un valor distinto a 0. - SY-DATUM: contiene la fecha del sist en formato AAAA MM DD.
- SY-UZEIT: contiene la hora del sist. en formato HH SS MM.
- SY-TABIX: contiene el índice de una tabla interna.
*Tabla interna: objeto de datos que permite guardar en la memoria grandes cantidades de registros de datos con la misma estructura.
 
 
 
Sobre el autor
Publicación académica de Candela Estefanía Calzada, en su ámbito de estudios para la Carrera Consultor ABAP.
Candela Estefanía Calzada
Profesión: Técnica Electrónica - Argentina - Legajo: JW91W
✒️Autor de: 160 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Me encuentro estudiando la ingeniería en sistemas de información. poseo amplia experiencia en edición de videos. tengo bases entorno a la programación que quiero continuar consolidando.
Certificación Académica de Candela Calzada