Tips Parte 6: Migrar Listas de Valores (LOV) de Oracle Forms a Oracle APEX

Karla CornejoKarla Cornejo
3 min read

Cuando migramos aplicaciones de Oracle Forms a Oracle APEX, una de las dudas más comunes es: ¿cómo replicar el comportamiento de las Listas de Valores (LOV)?. En Forms, estamos acostumbrados a trabajar con record groups, listas con múltiples columnas y la posibilidad de devolver varios valores a distintos campos. En Oracle APEX, este patrón es muy similar, aunque con un enfoque más declarativo y visual.

En este artículo te mostraré cómo lograr esto paso a paso, incluyendo tips clave para que tus listas funcionen igual (¡o mejor!) que en Forms.


🔄 ¿Cómo funciona una LOV en Oracle Forms?

En Oracle Forms:

  • Creamos un Record Group con una consulta SQL.

  • Definimos una List of Values asociada a ese Record Group.

  • En un campo (item), podemos asociar esa LOV para mostrar múltiples columnas.

  • Al seleccionar una fila, podemos devolver varias columnas a distintos campos dentro del canvas.


🔄 ¿Cómo replicar esto en Oracle APEX?

En Oracle APEX, replicamos este comportamiento a través de Popup LOVs con opciones adicionales de configuración. A continuación, te explico cómo hacerlo, paso a paso.


📌 Paso 1: Crear la Lista de Valores (LOV)

  1. En APEX, ve a Shared Components > List of Values.

  2. Crea una nueva List of Values de tipo Dynamic.

  3. Agrega una consulta como la siguiente:

SELECT nombre, codigo, descripcion
FROM empleados
ORDER BY nombre
  1. En esta sección, APEX te preguntará:

    • Display Column: qué columna se mostrará al usuario (por ejemplo, nombre).

    • Return Column: qué valor será devuelto al campo (por ejemplo, codigo).


📌 Paso 2: Configurar las columnas adicionales (Additional Display Columns)

Aquí es donde empezamos a ver las diferencias importantes respecto a Forms.

  • Additional Display Columns te permite seleccionar columnas que también aparecerán en el popup (como descripcion) y, además, definir si permitirán búsqueda.

🔍 Puedes seleccionar qué columnas se mostrarán y cuáles permitirán búsqueda, incluso si no son las que se retornan directamente.


📌 Paso 3: Usar “Additional Outputs” para devolver múltiples valores

En Oracle Forms devolvemos varios valores a distintos campos del canvas.

En Oracle APEX, esto lo hacemos con la opción "Additional Outputs", que se encuentra en el campo o ítem donde usaremos la LOV.

✅ Para Page Items:

En un Page Item (como P1_CODIGO), puedes devolver más valores así:

CODIGO:P1_CODIGO,NOMBRE:P1_NOMBRE,DESCRIPCION:P1_DESC

Esto significa que, cuando se seleccione un registro, la columna CODIGO se enviará a P1_CODIGO, NOMBRE a P1_NOMBRE, y así sucesivamente.


✅ Para Interactive Grids

Aquí viene uno de los tips más importantes al migrar desde Forms:

  • En un Interactive Grid, cada columna que recibirá un valor desde la LOV debe tener un Static ID definido.

Pasos:

  1. Ve a la columna del grid en el que quieres devolver datos.

  2. En propiedades, busca la opción Static ID.

  3. Coloca un ID como NAME_ID, DESC_ID, etc.

  4. En el campo que tiene la LOV, configura “Additional Outputs” así:

NOMBRE:NAME_ID,DESCRIPCION:DESC_ID

Esto le dice a APEX: "cuando seleccione una fila de la LOV, pon NOMBRE en la columna con ID NAME_ID, y DESCRIPCION en DESC_ID".


💡Conclusión

Las listas de valores en Oracle APEX son poderosas y flexibles. Si vienes de Oracle Forms, ¡no te preocupes! Todo lo que hacías con record groups y LOVs lo puedes lograr aquí, con un enfoque declarativo, más visual y moderno.

👉 Migrar no es solo trasladar, es mejorar la experiencia. Aprovecha las nuevas opciones de búsqueda, visualización y retorno de múltiples datos para enriquecer tus formularios y grids.

0
Subscribe to my newsletter

Read articles from Karla Cornejo directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Karla Cornejo
Karla Cornejo