✒️ABAP La declaración de datos
ABAP La declaración de datos
Lección 3: Declaración de datos
1. Tipos de datos:
C = Texto Logintud en Bytes 1 por default
F = Float 8 Bytes por default
I = Entero 4 Bytes
N = Texto Número( Alfanumérico)
P = Número empaquetado
X = Hexadecimal
D = Fecha YYYYMMDD
T = Hora HHMMSS
La longitud de 4 para el caso del entero no significa los digitos sino la cantidad de Bytes que va almacenar.
También existe el tipo STRING que se utiliza para cadenas de longitud variables y el XSTRING se utiliza como hexadecimal para cadenas de caracteres muy grandes.
Al declarar una variable al mismo tiempo seguido del tipo se puede usar la palabra VALUE para asignar un valor inicial. Y para los tipos caracter TYPE C se debe especificar una longitud de cadena, de lo contrario el sistema asumirá que su longitud es 1 caracter. Ej. v_texto(4) TYPE C
También es posible crear variables que sean igual tipo que otras ya creadas en el sistema. Para ello utilizamos la sentencia LIKE. Ej. DATA: v_carrid LIKE sflight-carrid. " Donde la variable v_carrid se iguala al tipo de datos del campo CARRID de la tabla de sistema: SFLIGTH, esta tabla es usada comunmente en pruebas o demos, al igual que la tabla: SPFLI.
La principal diferencia entre LIKE Y el TYPE cuando se usan estructuras es que si por A o B razones el día de mañana se actualiza la definición del tipo y no se actualiza la definición del campo en la tabla base de datos entonces la definición de nuestra variable creada con TYPE quedará desactualizada.
2. ESTRUCTURA
Es un conjunto de campos relacionados, cuyos componentes puede ser simples campos, otras estructuras o inclusive tablas.
Existen tres formas de definir una estructura:
1. Utilizando la palabra clave DATA. Ej. DATA: wa_vuelos TYPE sflight. En este ejemplo se ha creado la estructura wa_vuelos con los mismos campos de la tabla de vuelos sflight
2. Siempre usamos DATA pero solo ciertos campos. Ej.
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
END OF wa_vuelos2.
3. La tercera forma es utilizando TIPOS, que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código. Para ello se usa la palabra reservada TYPES. Ej.
TYPES: BEGIN OF st_vuelos,
carrid TYPE s_carr_id,
connid TYPE s_conn_id,
END OF st_vuelos.
DATA: wa_vuelos3 TYPE st_vuelos.
3. CONSTANTES
Es una variable que no cambiará su valor en todo el programa. Ej.
CONSTANTS: c_ca(2) TYPE c VALUE 'CA',
c_cb(2) TYPE c VALUE 'CB'.
La utilización de constantes ayuda a que el mantenimiento de las aplicaciones de ABAP sea mas sencillo.
4. Include de datos
INCLUDE, es un objeto de ABAP que se utiliza para modularizar los programas de manera que estos resulten mas legibles y mantenibles.
Existen dos tipos de INCLUDE
a) INCLUDE de datos, se utiliza para agrupar declaraciones de datos
b) INCLUDE de subrutinas, agrupan declaraciones de subrutinas
Ejemplo de uno de datos:
REPORT Z_PRUEBA_ABAP.
* Include de datos
INCLUDE z_prueba_abap_datos.
Si damos doble clic sobre la palabra z_prueba_abap_datos se nos preguntará si deseamos crear el objeto, a la cual responderemos que sí. Luego nos llevará a una nueva ventana donde solo responderemos grabar.
Los includes es considerada una buena práctica de programación.
5. Variables del Sistema
A parte de las variables que define el programador, existen otras que han sido definidas por el sistema y que son de gran utilidad dentro de los programas ABAP. Estas se almacenan en la tabla base de datos SYST y contiene información como la hora del sistema, si se ejecutó o no una sentencia a ABAP o una actualización a una base de datos. El contenido no es posible cambiarlo, simplemente cabia con la ejecución de los mismos.
Las mas comúnmente utilizada son:
a) SY-SUBRC: código de retorno posterior a la ejecución de una sentecia ABAP. Si el resultado fue exitoso, entonces es 0, sino es distinto de cero. Ej.
SELECT * FROM ztabla_usuarios INTO TABLE t1_usuarios.
IF sy-subrc EQ 0.
V_CAMPO1 = V_CAMPO2
ENDIF.
b) SY-DATUM: contiene la fecha del sistema
c) SY-UZEIT: contiene la hora del sistema.
La sentencia GetTime actualiza la hora del sistema pero con sy-uzeit obtenemos la hora.
d) SY-TABIX: contiene el indice de una tabla interna
Nota: una Tabla Interna es un objeto de datos que permite guardar en memoria grandes cantidades de registros de datos.
 
 
 
Sobre el autor
Publicación académica de Eric David Rivas Rivas, en su ámbito de estudios para la Carrera Consultor ABAP.
Eric David Rivas Rivas
Profesión: Ing. en Ciencias de la Computación - El Salvador - Legajo: GO81U
✒️Autor de: 29 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Avanzado
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Certificación Académica de Eric Rivas