✒️ABAP La declaración de datos
ABAP La declaración de datos
Tipos de datos en ABAP
- ABAP lenguaje de tipiado como C y JAVA
- 2 grupos de tipos de datos en ABAP: tipos completos; tienen una longitud fija establecida por el sistema estándar.
- tipos incompletos: La longitud del dato no viene fijada por el sistema estándar, el programador tiene la obligación de especificar la longitud del dato al declarar la variable.
Tipos de dato completos estándar :
- D: Tipo de dato para fechas, formato AAAMMDD, longitud fija de 8 dígitos. A es igual a año, M= mes y D es igual a día. Ejemplo: DATA: v_fecha TYPE d VALUE '20210726'. (Se declara y se asigna valor. Para declarar es con DATA TYPE para asignar valor es con VALUE)
- T: Tipo de dato para la hora, formato HHMMSS longitud fija de 6 dígitos. H= hora, M = minutos y S = Segundos. DATA: v_hora TYPE t VALUE '14:55:00'.
- I: Tipo de dato para los números enteros, longitud fija de 4 bytes. DATA v_cantidad TYPE i VALUE '1000'.
- F: tipo de datos para los números de punto flotante o decimales, tiene una longitud fija de 8 bytes.
- DECFLOAT16: Tipo de dato que se utiliza para los números decimales de punto flotante o decimaoes, longitud fija de 8 bytes
- DECFLOAT34: Tipo de dato que se utiliza para los números decimales de punto flotante, longitud fija de 16 bytes.
- STRING: Tipo de datos que se utiliza para las cadenas de caracteres, tiene una longitud dinámica. DATA: v_texto TYPE string VALUE 'ABAP es un lenguaje de programación'.
- XSTRING: Tipo de datos que se utiliza para las secuencias bytes de longitud dinámica (cadena hexadecimal)
Tipos de datos incompletos estándar:
- C: se utiliza para la cadena de caracteres, se debe especificar la longitud fija. DATA: v_nombreyape (40) TYPE c VALUE 'Jualian'. Cuando declaramos variables de tipo c o caracter TYPE c debemos especificar la longitud de la cadena de caracteres. De lo contrario el sistema asumirá que su longitud es de in caracter.
- N: se utiliza para la cadena de caracteres numéricas, se debe especificar la longitud fija. DATA: v_telefono(13) TYPE n VALUE '3987654567898'.
- X: se utiliza para la secuencia de bytes (cadena hexadecimal), se debe especificar la longitud fija.
- P: se utiliza para los números empaquetados, se debe especificar la longitud fija. En la definición de un número empaquetado, es posible que se especifique la cantidad de puntos decimales. DATA: v_pi TYPE p DECIMALS 11 VALUE '3.14159265359'.
- Tipos de datos estándar completos e incompletos tipos primitivos.
- Por cada declaración se puede utilizar una sentencia DATA diferente, al momento de ejecutarse el programa se ejecutarán n veces de las sentencias. Se puede optimizar especificando todas las declaraciones en una sola sentencia DATA.
- Ejemplo:
data: v_cantidad TYPE i VALUE '1200'.
v_texto TYPE string VALUE 'Ejemplo'.
- 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 Por ejemplo: DATA: v_nro_cliente TYPE kunnr. "No. de cliente". Si se da doble clic sobre el tipo KUNNR se va a visualizar su definición en el Diccionario de datos.
- También se pueden declarar variables que sean de igual tipo de datos que otras variables ya creadas en el sistema. Utilizando la sentencia LIKE. Ejemplo, se declara la variable V_CARRID que es del mismot 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"
- Tabla SFLIGHT. Tabla estándar del sistema SAP que contiene información sobre vuelos y que generalmente es utilizada para realizar programas de prueba o demo en el sistema. Otra base de datos es SPFLI.
- Diferencia entre type y like. Type se pueden declarar variables de dos formas, usando los tipos estandar de datos, o usar un tipo de dato ya existente. Pero si se efectua un cambio en el tipo de dato, puede impactar a nuestro programa.
Las estructuras de datos
- Estructura: tipo de dato compuesto que está formado por un conjunto de campos relacionados, cuyos componentes pueden ser simples campos, otras estructuras o inclusive tablas.
- Las estructuras se utilizan principalmente cuando se trabajan con tablas internas. Existen cuatro formas de declarar una estructura en un programa ABAP.
- Utilizando la palabra clave DATA. Creando una estructura que tiene los mismos campos que tiene la tabla base de datos Por ejemplo, esta estructura tiene los mismos campos que *Estructura de vuelos. DATA: wa_vuelos TYPE SFLIGHT.
- Se utiliza la palabra clave DATA pero se va a declarar una estructura solo con ciertos campos. Por ejemplo, se va a declarar una estructura de vuelos solo con ciertos campos.
* Estructura de vuelos
DATA: BEGIN OF wa_vuelos2,
carrid TYPE s_carr_id, "Denominación breve de la compañia 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 del vuelo
currency TYPE s_currcode "Moneda local de la compañía aérea
planetype TYPE s_planetye, "Tipo de avión
END OF wa_vuelos2.
3. Declarar la estructura pero utilizando los tipos de datos completos o incompletos estándar de SAP:
* Estructura de vuelos
DATA: BEGIN OF wa_vuelos3,
carrid(3) TYPE c, "Denominación breve de la compañía aérea
connid(4) TYPE n, "Código de conexión de vuelo directo
fldate TYPE d, "Fecha de vuelo
price TYPE p DECIMALS 2, "Precio del vuelo
currency (5) TYPE c, "Moneda local de la compañía aérea
planetype(10) TYPE c, "Tipo de avión
END OF wa_vuelos3.
4. La cuarta forma de declarar una estructura es utilizando TIPOS, que son formatos de estructuras que pueden ser utilizados por cualquier otra estructura sin necesidad de reescribir el código. Se utiliza la palabra reservada TYPES.
* Estructura de vuelos
TYPES: BEGIN OF ty_vuelos,
carrid TYPE s_carr_id, "Deominació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 del vuelo
currency TYPE s_currcode "Moneda local de la compañía aérea
planetype TYPE s_planetye "Tipo de avión
END OF ty_vuelos.
DATA: wa_vuelos4 TYPE ty_vuelos.
- La forma más recomendada de generar estructuras debido a la reutilización es la número 4.
Las constantes
- Constante: Variable que se declara dentro de un programa y cuyo valor permanecerá constante a lo largo de la ejecución del programa.
- Se utiliza la palabra reservada CONSTANTS. Se debe especificar el tipo de datos de la constante y también el valor que tendrá la constante.
- Si se declara una constante de un tipo de dato incompleto, se debe especificar su longitud. CONSTANTS: c_x(1) TYPE c VALUE 'X'.
- Si declaramos una constante de un tipo de datos completo no será necesario especificar su longitud. CONSTANTS: c_nombre TYPE string VALUE 'Ezequiel'.
- la utilización de constantes ayuda a que el mantenimiento de los programas ABAP sea más sencillo, por lo tanto utilizar constantes en lugar de textos entre comillas simples es considerada una buena práctica de programación.
Los include de datos y subrutinas
- Después de la sentencia REPORT y antes de la declaración de cada uno de los eventos del programa se ubican la declaración de datos.
- Existe un tipo de programa ABAP que nos ayuda a que los programas sean fáciles de comprender y por lo tanto fáciles de modificar o mantener. Includes
- Include: Tipo de programa u objeto ABAP que se utiliza para modularizar los programas de manera que estos resulten más legibles y mantenibles.
Existen dos tipos de INCLUDES:
- Include de datos: se utiliza para agrupar las declaraciones de datos.
- Include de subrutinas: se utiliza para agrupar las declaraciones de subrutinas.
- Para crear un include datos lo que se debe hacer es escribir después de la sentencia REPORT, la palabra reservada INCLUDE seguida del nombre del include de datos.
Por ejemplo:
INCLUDE ztest_programa_datos.
- Si se hace doble clic sobre el nombre del include ZTEST_PROGRAMA_DATOS se abre la siguiente ventana de diálogo donde se nos consulta si se desea crear el objeto.
- En la ventana donde el sistema nos indica que el objeto será creado, se puede modificar el título por defecto, en tipo se verifica que se está creando un programa de tipo Include. Finalmente se da clic en grabar.
- Se asigna un paquete, se crea una orden de transporte.
- En el programa include se va a copiar todas las declaraciones de datos que se encuentran en el programa principal y se pegaran. Una vez hecho eso, se borran las declaraciones del programa principal y se activa el include como el programa principal. Reduciendo el programa principal a solo dos líneas de código.
- La utilización de INCLUDES es considerada una buena práctica de programación.
Las variables del sistema.
- Las variables definidas por el sistema, se encuentran en la tabla base de datos SYST y contienene información que va desde la hora del sistema, si se ejecutó correctamente una sentencia ABAP o una actualización a una tabla base de datos. Su contenido no puede ser modificado en los programas, cambia simplemente con la ejecución de los mismos.
- La tabla SYST almacena a las variables del sistema de un programa ABAP.
Variables del sistema más comúnmente usadas:
- SY-SUBRC: más importante de todas las variables del sistema. Se utiliza para chequear posteriormente a la ejecución de una sentencia ABAP, si el resultado de la ejecución fue exitoso o no. Si fue exitoso la variable SY-SUBRC tendrá el valor cero y si no es exitoso entonces la variable SY-SUBRC tendrá un valor distinto de cero.
- SY-DATUM: contiene la fecha del sistema en el formato AAAAMMDD.
- SY-UZEIT: contiene la hora del sistema en el formato HHMMSS al ejecutar un programa. Si se activa el modo debug en un programa el contenido de esta variable será siempre el mismo. Para obtener la hora en que se ejecutó un programa para imprimirlo en pantalla, se hace GET TIME. actualiza la variable de la hora actual del sistema.
- SY-TABIX: contiene el índice de una tabla interna.
- En el include se coloca el nombre del programa y después _DATOS.
- Los comentarios que se requieren guardar dentro del pograma, se realiza seleccionando los comentarios menú utilizades -> Bloque/Arvicho ->Copiar X
 
 
 
Agradecimiento:
Ha agradecido este aporte: Octavio Pasciucco
Sobre el autor
Publicación académica de Alejandra Daniela Naranjo Belmonte, en su ámbito de estudios para la Carrera Consultor ABAP.
Alejandra Daniela Naranjo Belmonte
Profesión: Analista/desarrollador de Software - Mexico - Legajo: ON48V
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alejandra Naranjo