Cómo obtener los valores de un dominio

En SAP ABAP es muy habitual trabajar con dominios. Un dominio define qué valores son válidos para un campo, por ejemplo: estados, tipos, indicadores, flags, etc.

Muchas veces esos valores no solo se usan a nivel técnico, sino que también necesitamos mostrarlos al usuario, por ejemplo:

  • En un desplegable en Fiori
  • En una ayuda de valores
  • Para validaciones
  • Para mostrar textos descriptivos en lugar de códigos

En este artículo veremos las distintas formas de obtener los valores de un dominio en ABAP.

Dónde se guardan los valores de un dominio

Los valores fijos de un dominio se almacenan en tablas del Diccionario de Datos. La más importante es:

📌 DD07T – Textos de valores de dominio

Esta tabla contiene:

  • El nombre del dominio
  • El valor fijo
  • El idioma
  • El texto descriptivo

Campos clave:

  • DOMNAME → Nombre del dominio
  • DOMVALUE_L → Valor
  • DDLANGUAGE → Idioma
  • DDTEXT → Texto descriptivo

Opción 1: leer los valores directamente de DD07T

Esta es la forma más utilizada y sencilla, sobre todo para:

  • Llenar combos
  • Mostrar textos
  • Lógica simple

Ejemplo básico

SELECT domvalue_l,
       ddtext
  FROM dd07t
  INTO TABLE @DATA(lt_domain_values)
  WHERE domname     = 'Z_STATUS'
    AND ddlanguage  = @sy-langu.

👉 Muy útil para Fiori, ALV, validaciones y UI logic.

Opción 2: usar funciones estándar de SAP

SAP ofrece funciones estándar para obtener valores de dominios, lo cual es más robusto que leer directamente de tablas.

📌 DD_DOMVALUES_GET

Esta función devuelve los valores y textos de un dominio.

Ejemplo:

DATA lt_values TYPE TABLE OF dd07v.

CALL FUNCTION 'DD_DOMVALUES_GET'
  EXPORTING
    domname  = 'Z_STATUS'
    langu    = sy-langu
  TABLES
    dd07v_tab = lt_values.

Ventajas:

  • No dependes directamente de tablas técnicas
  • SAP gestiona internamente textos y conversiones
  • Más seguro ante cambios internos

👉 Buena práctica en desarrollos más limpios o reutilizables.

Dominios vs tablas de customizing

⚠️ Importante aclaración:

No siempre es buena idea usar dominios para listas largas o dinámicas.

Usa dominios cuando:

  • La lista es pequeña
  • Los valores son estables
  • No cambian con frecuencia
  • Representan estados o tipos

Usa tablas de customizing cuando:

  • Los valores pueden cambiar
  • El cliente debe mantenerlos
  • Hay muchos registros
  • Dependen del mandante

👉 Dominios ≠ tablas de configuración. Cada uno tiene su propósito.

Buenas prácticas

✅ Usa dominios para valores fijos y controlados
✅ Prefiere funciones estándar (DD_DOMVALUES_GET) en lugar de lecturas directas
✅ Filtra siempre por idioma (sy-langu)
✅ No abuses de dominios para listas grandes
✅ Reutiliza dominios en lugar de duplicar valores

Los dominios son una herramienta clave para garantizar consistencia en SAP.
Saber cómo obtener sus valores en ABAP te permite:

  • Crear UIs más limpias
  • Evitar hardcodes
  • Centralizar la lógica de valores permitidos
  • Integrar mejor backend y frontend (Fiori)

Ya sea leyendo DD07T o usando funciones estándar, dominar este tema te ahorra muchos problemas en proyectos reales.

Deja un comentario

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