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


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)
En APEX, ve a Shared Components > List of Values.
Crea una nueva List of Values de tipo Dynamic.
Agrega una consulta como la siguiente:
SELECT nombre, codigo, descripcion
FROM empleados
ORDER BY nombre
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:
Ve a la columna del grid en el que quieres devolver datos.
En propiedades, busca la opción Static ID.
Coloca un ID como
NAME_ID
,DESC_ID
, etc.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.
Subscribe to my newsletter
Read articles from Karla Cornejo directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
