Tipos de datos en ABAP

En ABAP, los tipos de datos son la base de cualquier programa. Definen qué puede guardar una variable (números, texto, fechas, estructuras…) y cómo debe tratarse esa información.

Dominar los tipos de datos no solo evita errores, también mejora el rendimiento, la claridad del código y la mantenibilidad. Si usas el tipo equivocado, puedes acabar con conversiones innecesarias, pérdidas de información o programas más lentos.

En SAP ABAP los tipos de datos se dividen en:

  • De referencia → punteros a objetos o datos dinámicos.
  • Completos → ya traen longitud y formato definidos.
  • Incompletos → necesitan que tú indiques longitud o decimales.
  • Compuestos → agrupan varios campos o filas.

Tipos de datos completos

Son los que ya vienen con longitud y formato predefinidos por SAP. Tú no tienes que indicar nada más.

TipoDescripciónLongitud fijaFormato
DFecha8 caracteresAAAAMMDD
THora6 caracteresHHMMSS
IEntero4 bytesRango: -2.147.483.648 a 2.147.483.647
FNúmero en coma flotante8 bytesGran rango, pero precisión limitada
STRINGTexto variableDinámicaHasta 2 GB
XSTRINGCadena binaria variableDinámicaHasta 2 GB

📌 Ejemplo:

DATA lv_date TYPE d. «Fecha
DATA lv_time TYPE t. «Hora
DATA lv_name TYPE string. «Cadena de longitud variable

Tipos de datos incompletos

Necesitan que tú definas su longitud (y a veces decimales), porque el sistema no lo hace por defecto.

TipoDescripciónDefinición necesariaObservaciones
CTexto de longitud fijaLENGTH obligatorioRellena con espacios
NTexto numéricoLENGTH obligatorioSolo dígitos (pero guardados como texto)
XHexadecimalLENGTH obligatorioÚtil para datos binarios
PPacked number (Decimal)LENGTH y DECIMALSIdeal para cálculos financieros
NUMCTexto numérico de longitud fijaLENGTH obligatorioSolo dígitos (rellena con cero a la izquierda)

📌 Ejemplo:

DATA lv_code TYPE n LENGTH 6. «Número de 6 dígitos
DATA lv_flag TYPE c LENGTH 1. «Carácter único
DATA lv_price TYPE p LENGTH 8 DECIMALS 2. «Número decimal con 2 decimales

Tipos de datos compuestos

Permiten agrupar varios tipos de datos en una sola estructura.

  • Estructuras (STRUCTURE) → Conjunto de campos agrupados.

TYPES: BEGIN OF ty_customer,
id TYPE i,
name TYPE string,
city TYPE string,
END OF ty_customer.

DATA ls_customer TYPE ty_customer.
ls_customer-id = 1.
ls_customer-name = ‘Pablo’.
ls_customer-city = ‘Madrid’.

  • Tablas internas (Internal Tables) → Colecciones de filas con la misma estructura.

DATA lt_customers TYPE STANDARD TABLE OF ty_customer.
APPEND ls_customer TO lt_customers.

Tipos de referencia

En ABAP también podemos manejar referencias, es decir, punteros a objetos o datos en memoria. Son clave cuando trabajas con programación orientada a objetos o estructuras dinámicas.

  1. Clases e interfaces
    • REF TO class → referencia a un objeto de una clase.
    • REF TO interface → referencia a una interfaz.

DATA lo_alv TYPE REF TO cl_gui_alv_grid.
CREATE OBJECT lo_alv.

Datos dinámicos (runtime data)

  • REF TO data → referencia a un objeto de datos creado en tiempo de ejecución.
  • Se usa mucho con field symbols y estructuras dinámicas.

DATA lr_data TYPE REF TO data.
CREATE DATA lr_data TYPE string.
ASSIGN lr_data->* TO FIELD-SYMBOL(<fs>).
<fs> = ‘Hola ABAP!’.

Los tipos de datos en SAP ABAP son la base de cualquier programa.
Aprender a diferenciarlos, usarlos correctamente y combinarlos con estructuras/tablas internas hará que tus desarrollos sean más sólidos, rápidos y fáciles de mantener.

👉 Consejo práctico: usa siempre tipos del Diccionario (SE11) cuando sea posible, en lugar de definirlos directamente en el código. Así mantienes coherencia y evitas duplicidades.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *