✒️ABAP La declaración de datos
ABAP La declaración de datos
1 Tipos de datos.
ABAP es un lenguaje de programación tipados, por lo que cada variable tiene un tipo especifico. Tienen dos tipos: *Completos: Tienen una longitud fija establecida por el sistema estándar, conociendo de antemano la longitud del dato. Existen 8 tipos de datos completos estándar, son:
- D: Fechas con formato AAAAMMDD, 8 dígitos fijos.
- T: Horas con formato HHMMSS, 6 dígitos fijos.
- I: Números enteros, 4 bytes. (-2.147.483.648 al 2.147.483.648)
- F: Números de punto flotante o decimales, 8 bytes.
- DECFLOAT16: Números decimales de punto flotante, 8 bytes.
- DECFLOAT34: Números decimales de punto flotante, 16 bytes.
- STRING: Cadena de caracteres, longitud dinámica.
- XSTRING: Secuencias de bytes de longitud dinámica (cadena hexadecimal)
*Incompletos: La longitud no viene fijada por el sistema estándar, por lo que el programador debe especificar la longitud del dato en el momento de declarar la variable. Existen 4 tipos de datos incompletos estándar, son:
- C: Cadena de caracteres, dónde se debe especificar la longitud.
- N: Cadena de caracteres numérica, dónde se debe especificar la longitud.
- X: secuencua de bytes (cadena hexadecimal), dónde se debe especificar la longitud.
- P: Número empaquetados, dónde se debe especificar la longitud. En la definición de un número empaquetado es posible que especifiquen la cantidad de puntos decimales.
También se le llaman a estos 12 tipos de variables, primitivos. Permiten crear daos completos, estructuras bidimensionales u objetos del diccionario de datos.
Para declarar una variable usamos las palabras reservadas DATA y TYPE, de la siguiente manera:
DATA: v_fecha TYPE d.
Para declarar la variable con un valor determinada agregamos la palabra VALUE de la siguientes manera:
DATA: v_fecha TYPE d VALUE '20210726'.
DATA: v_hora TYPE t VALUE '14:55:00'.
DATA: v_cantidad TYPE i VALUE '1000'.
DATA: v_texto TYPE string VALUE 'ABAP es un lenguaje de programación'.
DATA: v_nombreyape(40) TYPE c VALUE 'Julian Alvarez'. (Asignar la longitud de lo contrario se asume 1)
DATA: v_telefono(13) TYPE n VALUE '5491156859687'.
DATA: v_pi TYPE p DECIMALS 13 VALUE '3.14159265359'.
Otra manera es declarar variables utilizando TYPE y asignando la variable de un tipo de dato ya existente en el diccionario de datos de SAP. Así:
DATA: v_nro_cliente TYPE kunnr. (KUNNR es el número de cliente de la tabla maestro de clientes que es de la tabla base de KNA1)
También es posible declarar variables que sean de un tipo igual que otras variables ya creadas en el sistema usando la sentencia LIKE así:
DATA: v_carrid LIKE sflight-carrid. (Carrid es un campo que almacena la denominación de la compañía aérea en la tabla estándar de SFLIGHT) (Tener cuidado con que alguien modifique los estructuras de datos ya que modificaría el programa que use el tipo de dato llamado)
SE11: Diccionario de datos SAP.
2 Estructuras de datos.
Son los tipos de datos que están compuestos por varios tipos de datos de datos. Son un conjunto de campos relacionados cuyos componentes pueden ser campos, otras estructuras o tablas. La estructura existirá en memoria mientras dura la ejecución del programa. Se utilizan principalmente con tablas internas. Existen 4 formas de declarar una estructura, estas son:
* Utilizando DATA así:
DATA: wa_vuelos TYPE sflight. (Llamando la tabla completa)
* Utilizando DATA solo con ciertos campos, así:
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id, *(Nombre compañía aérea.)
connid TYPE s_conn_id, *(Código de conexión)*
fldate TYPE s_date, *(Fecha)*
price TYPE s_price, *(Precio)*
END OF wa_vuelos2.
* Utilizando la estructura anterior con los tipos de datos completos e incompletos estándar así:
DATA: BEGIN OF wa_vuelos3,
carrid(3) TYPE c, *(Nombre compañía aérea.)
connid(4) TYPE n, *(Código de conexión)*
fldate TYPE d, *(Fecha)*
price TYPE p DECIMALS 13, *(Precio)*
END OF wa_vuelos2.
* Utilizando TYPES que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código, así:
TYPES: BEGIN OF ty_vuelos,
carrid TYPE s_carr_id, *(Nombre compañía aérea.)
connid TYPE s_conn_id, *(Código de conexión)*
fldate TYPE s_date, *(Fecha)*
price TYPE s_price, *(Precio)*
END OF ty_vuelos.
DATA: wa_vuelos4 TYPE ty_vuelos.
Depende del caso podemos elegir la forma que más convenga, pero se recomienda la 4 forma.
3 Constantes
Es una variable que se declara en un programa, cuyo valor permanecerá constante durante la ejecución del programa. Utilizamos la palabra reservada CONSTANTS, debemos especificar el tipo de datos, el valor y la longitud y es in dato incompleto, así:
CONSTANTS: c_nombre TYPE string VALUE 'Ezequiel'.
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
4 Includes y subrutinas
Includes: Son un tipo de programa u objeto que se utiliza para modularizar para hacer de ellos algo más legible y mantenible. Existen dos tipos de INCLUDES, son:
* De datos: Agrupa declaraciones de datos.
* De subrutinas: Agrupa declaraciones de subrutinas.
INCLUDE ztest_programa_datos. / Doble click sobre el nombre del include / Creamos el objeto / Asignamos paquete / Creamos nueva orden de transporte /
5 Variables del sistema
Se encuentran en la tabla base de datos SYST. Veamos las más comúnmente utilizadas:
*SY-SUBRC: Chequea posterior a la ejecución si el resultado fue exitoso o no. Si lo es tendrá valor de 0.
*SY-DATUM: Fecha del sistema en formato AAAAMMDD
*SY-UZEIT: Hora del sistema en formato HHMMSS
*SY-TABIX: Indice de una tabla interna.
Se sugiere al inicio del programa hacer como comentario quien creo o modifico, "firma", la fecha, número de mejora, descripción y orden asociada.
* {Begin} - LZ - M9787 - 18/01/2024 ---*
Comentario
* {End} - LZ - M9787 - 18/01/2024 ---*
 
 
 
Agradecimiento:
Ha agradecido este aporte: Octavio Pasciucco
Sobre el autor
Publicación académica de Linda Carolina Zambrano León, en su ámbito de estudios para la Carrera Consultor ABAP.
Linda Carolina Zambrano León
Profesión: Agente - Peru - Legajo: XR55P
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Linda Zambrano