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.
| Tipo | Descripción | Longitud fija | Formato |
|---|---|---|---|
| D | Fecha | 8 caracteres | AAAAMMDD |
| T | Hora | 6 caracteres | HHMMSS |
| I | Entero | 4 bytes | Rango: -2.147.483.648 a 2.147.483.647 |
| F | Número en coma flotante | 8 bytes | Gran rango, pero precisión limitada |
| STRING | Texto variable | Dinámica | Hasta 2 GB |
| XSTRING | Cadena binaria variable | Dinámica | Hasta 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.
| Tipo | Descripción | Definición necesaria | Observaciones |
|---|---|---|---|
| C | Texto de longitud fija | LENGTH obligatorio | Rellena con espacios |
| N | Texto numérico | LENGTH obligatorio | Solo dígitos (pero guardados como texto) |
| X | Hexadecimal | LENGTH obligatorio | Útil para datos binarios |
| P | Packed number (Decimal) | LENGTH y DECIMALS | Ideal para cálculos financieros |
| NUMC | Texto numérico de longitud fija | LENGTH obligatorio | Solo 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.
- 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.

