✒️ABAP La declaración de datos
ABAP La declaración de datos
Resumen
Unidad 2 lección 3
Declaración de datos
1- Los tipos de datos de ABAP
ABAP forma parte de los lenguajes de programación tipados tal como C y JAVA, x otro lado los lenguajes de tipado dinámicos o no tipados no necesitan establecer un tipo y en una misma variable se puede almacenar cualquier tipo de dato durante la ejecución, como puede ser en PHP.
Como lenguaje tipado, c/variable q utilizamos en ABAP tiene un tipo especifico, es decir q una variable de tipo feha solo podrá contener valores numéricos en un formato correspondiente o xa guardar una variabe de tipo cadena de caracteres.
Dos tipos de datos en dos grupos: Tipos Completos y Tipos Incompletos
La diferencia entre los dos grupos se debe a la longitud del dato.
En los tipos completos los tipos de datos tienen una longitud fija establecida x el sist. estándar.
En los tipos Incompletos, la longitud del dato no viene fijada y será el programador el q lo especifique
Dentro de los tipos de datos Completos estándar tenemos 8 tipos:
- D - Es el tipo de dato xa fechas con formato YYYYMMDD
- T - Es el tipo de dato xa hora con formato HHMMSS.
- I - Es el tipo de dato xa los numeros enteros, longitud fija de 4 bytes
- F - Es el tipo de dato xa los numeros de punto flotane o decimales y tiene una longitud de 8 bytes.
- DECFLOAT16 - Es el tipo de dato xa #s decimales de puntos flotantes, longitud fija 8 bytes.
- DECFLOAT34 - Es el tipo de dato xa #s decimales de punto flotantes, longitud fija 16 bytes.
- STRING - Es el tipo de dato xa la cadena de caracteres, tiene longitud dinámica.
- XSTRING - Es el tipo de dato xa las secuencias de bytes longitud dinámica (cadena hexadecimal).
Dentro de los tipos de datos Incompletos estándar tenemos 4 tipos
- C - Es el tipo de dato xa cadena de caracteres, se debe especificar longitud fija
- N - Es el tipo de dato xa cadena de caracteres numéricas, se debe especificar longitud fija
- X - Es el tipo de dato xa secuencias de bytes (cadena hexadecimal)
- P - Es el tipo de dato xa los #s empaquetados, se debe especificar longitud fija (es posible definir decimales).
En base a los 12 tipos de datos estándar completos e incompletos, q también se llaman tipos primitivos. Se puede crear tipos de datos complejos, estructurados bidimencionales u objetos del diccionario de datos.
Xa declarar una variable en programa ABAP, vamos a utilizar dos palabras reservadas y son: DATA y TYPE.
xa declarar una variable de tipo fecha
** DATA: v_fecha TYPE d.
xa asignarle un valor determinado a la variable al mismo tiempo de declararse utilizamos la palabra reservada
VALUE así:
DATA: v_fecha TYPE d VALUE '20220202'
Xa declarar variable de tipo hora y asignar el valor a mis tiempo
** DATA: v_hora TYPE h VALUE '13:01:23'.
Xa declarar variable de tipo Entero y asignar el valor al mismo tiempo
** DATA v_cantidad TYPE i VALUE '2000'.
Xa declarar variable de tipo STRING
** DATA v_texto TYPE string VALUE 'Mi primer programa en Abap'.
Xa declarar variable de tipo a caracter
** DATA v_nombre_ape(40) TYPE c VALUE 'Gus y Bet'.
Cuando declaramos variables de tip C o Caracter TYPE c, especificar la longitud de la cadena de caracteres, de lo contrario el sist asumirá q su lolngitud es 1 caracter.
Xa declarar variable de tipo n
** DATA: v_telefono(13 TYPE n VALUE '1234567891011'.
Xa declarar variable de tipo p (empaquetado).
** DATA: v_pi TYPE p DECIMAL 11 VALUE '3.14151234567'
otra forma de declarar variables
** DATA: v_fecha TYPE d VALUE '20220202',
v_hora TYPE h VALUE '13:03:30',
v_nombre_y_ape(40) TYPE c VALUE 'Pedro Martinez'.
Otra forma de declarar variables utilizando TYPE consiste en asignarle a la variable un tipo de datos ya existentes en el directorio de datos, es decir q ya exista en SAP ej:
DATE v_cliente TYPE kunnr. " No de cliente
Se pueden declarar variables q sean de igual tipo de datos q otras variables ya creada en el sist. se utilza las sentencia LIKE.
Ej: la variable v_carrid q es el mismo tipo de datos q el campo carrid de la tabla DB SFLIGHT de vuelos de SAP.
DATA: v_carrid LIKE sflight-carrid. "Denominación breve de la Cia
Tabla q contiene información de los vuelos y sirve de pruebas y demo en el sist.
2. Las estructuras de datos
La estructura => Es un tipo de dato compuesto q esta formado x un conjunto de campos relacionados, cuyos componentes pueden ser, simples campos, otras estructuras o inclusive tablas.
vamos a declarar una estructura en el programa ABAP donde deseamos utilizarla y la misma existirá en memoria mientras dura la ejecución de programa.
las estructuras se utilizan ppal cuando trabajamos con tablas internas (se ve mas adelante dice el instructor)
Existen 4 formas de declarar una estructura.
- La primera es utilizando la palabra clave DATA. Ej: declaramos una estructura de vuelos q tendra los mismos campos q tiene la tabla DB de vuelos SFLIGHT.
*estructura de datos
DATA: wa_vuelos TYPE sflight.
- la segunda forma utilizamos la plabra clave DATA pero vamos a declarar una estructura de vuelos solo con ciertos campos xa declarar c/u de los campos de la estructura utilizamos tipos de datos ya existentes en SAP.
* estructura de datos
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id, " Denominacion breve de la compañia éarea.
connid TYPE s_conn_id, " codigo de conexion vuelo directo
fldate TYPE s_date, " fecha de vuelo
....... ....... .........,
....... ...... ........
END OF wa_vuelo2.
- Tambien podemos declarar la estructura tal como lo hicimos en el ejemplo anterior pero utilizando tipos de datos completos e imcompletos estándar de SAP.
* estructura de datos
DATA: BEGIN OF wa_vuelos3,
carrid(3) TYPE c, " Denominacion breve de la compañia éarea.
connid(4) TYPE n, " codigo de conexion vuelo directo
fldate TYPE d, " fecha de vuelo
....... ....... .........,
....... ...... ........
END OF wa_vuelo3.
- Final/ la cuarta forma de declarar una estructura es utilizando TIPOS q son formatos de estructuras q pueden ser utilizados x cualqueir otra estructura sin necesidad de reescribir el código, xa esto se utiliza la palabra reservada TYPES como ej:
* estructura de datos
TYPES: BEGIN OF ty_vuelos,
carrid TYPE s_carr_id, " Denominacion breve de la compañia éarea.
connid TYPE s_conn_id, " codigo de conexion vuelo directo
fldate TYPE s_date, " fecha de vuelo
....... ....... .........,
....... ...... ........
END OF ty_vuelos.
DATA wa_vuelos4 TYPE ty_vuelos.
3- Las Constantes
Es una variable q 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.
La palabra reserva es: CONSTANTS, debe especificarse el tipo de dato y el valor q va llevar, Ejemplos:
Si declaramos una constante con tipo de datos incompleto debemos especificar su longitud y es:
CONSTANTS: c_x(1) TYPE c VALUE 'X'.
Si declaramos una constante de un tipo de datos completo, entonces no es necesario especificar su longitud.
CONSTANTS: c_nombre TYPE string VALUE 'Moises'.
4- Los Include de datos y de subrutinas
Existe un tipo de programa ABAP q nos ayuda mucho a esa tarea de hacer q los programas se han fáciles de comprender y x lo tanto fáciles de modificar o mantener, son los INCLUDES: Es un tipo de programa ABAP q se utiliza xa modularizar los programas de manera q estos resulte mas legible y mantenibles.
Existen dos tipos de INCLUDES y son:
- INCLUDE de datos: se utiliza xa agrupar las declaraciones de datos.
- INCLUDE de subrutinas: se utiliza xa agrupar las declaraciones de subrutinas (después lo vemos dice el profe).
El un programa ABAP, se debe incluir después de la sentencia REPORT, la palabra reservada INCLUDE seguida el nombre de este.
REPORT ztest_programa.
INCLUDE ztest_programa_datos.
Al hacer clic sobre el nombre del include ztes_programa_datos, veremos la sgnte pantalla de diálogo donde se consulta si deseamos crear el objeto, se hace clic en Si.
Luego veremos la sgnte ventana de dialogo q nos muestra el objeto q será creado, aquí podemos modificar el titulo propuesto x el sist. En tipo verificamos q estamos creando un tipo INCLUDE y luego grabamos.
A continuación asignamos un paquete al include de datos y grabamos (ztest_paquete)
Creamos una nueva O.T. y la asociamos al include de datos.
Y final/ se ha creado el include ZTEST_PROGRAMA_DATOS
Ahora lo q vamos a hacer es copiar todas las declaraciones de datos q se encuentran en le programa ppal ZTEST_PROGRAMA y la vamos a pegar en el include de datos ZTEST_PROGRAMA_DATOS. Una vez hecho esto borramos todas las declaraciones de datos del programa ppal y activamos tanto el include como el programa ppal.
El programa ppal qda con dos líneas de código.
La ultización de INCLUDES es una buena práctica de programación.
5- Las variables del sist.
Las variables q han sido definidas x el sist y se encuentran en la tabla DB SYST y contiene información q va desde la hora del sist. a saber, si se ejecuto correcta/ una sentencia ABAP o una actualizaci´nn a una tabla DB. Su contenido no puede ser modificado en los programas sino q cambia simple/ con la ejecución de los mismos.
La tabla SYST => esta almacena a las variables del sist. de un programa ABAP.
Las variables más comunes usadas
- SY-SUBRC: Es sin dudas la mas importante de todas las variables del sist. se utiliza xa chequear posterior/ a la ejecucion de una sentencia ABAP, si el resultado de la ejecucion fue exitoso o no. Si la ejecucion fue exitosa => la variable SY-SUBRC => es cero (0) y sino no fue exitosa la variable tendra un valor diferente de cero.
- SY-DATUM: Esta variable del sist contiene la fehca del sist en formato yyyymmdd
- SY-UZEIT: Esta variable contiene la hora del sist. en formato HH:MM:SS.
- SY-TABIX: Esta variable del sist. contiene el índice de una tabla interna (mas adelante la veremos dice el profe).
 
 
 
Sobre el autor
Publicación académica de Gustavo Betancur Guzmán, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Betancur Guzmán
Profesión: Ingeniero de Sistemas - Colombia - Legajo: WS86O
✒️Autor de: 164 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP MM Nivel Avanzado
- Carrera Consultor en SAP MM Nivel Inicial