Problema
¿Se les ha presentado este problema?
Crearon o están creando una página de tipo pantalla en Oracle APEX y como parte de esta, agregan de manera manual una forma para dar mantenimiento a una tabla:
- Creamos la región basada en una tabla
- Verificamos que los campos estén mapeados a la columna de tabla correspondiente
- Agregamos los botones para Incluir, Modificar y Eliminar registros
- El procedimiento que realiza las tareas de base de datos está definido correctamente como “Pantalla – Procesamiento automático de filas (DML)” y la región correctamente asignada al mismo
En apariencia todo está correcto pero cuando hacemos clic sobre los botones, nada pasa, incluso se muestra el mensaje de que todo fue bien y el procedimiento terminó de manera correcta, pero en la tabla nada cambia, no hay nuevos registros, no se aplican los cambios a los registros existentes o permanecen los registros que “borramos”.
Solución
La solución a este problema puede resultar muy sencilla y obvia una ve que lo has resuelto.
Cuando creamos directamente la forma al crear la página, el asistente de APEX se ocupa de cuidar de todos los detalles necesarios para que lo anterior no suceda. Pero cuando este no es el caso y te está sucediendo el problema descrito, esto es lo que tienen que hacer:
Como puedes ver en la imagen de arriba, una de las propiedades del botón, como parte del comportamiento es “Acción de Base de Datos”, que tiene las opciones para Insertar, Actualizar y Eliminar.
Cuando creamos un botón, por defecto este valor está definido a nulo, es por esto que todo que debemos hacer es seleccionar la acción de base de datos que el botón debe realizar, ya sea Insertar, Actualizar o Eliminar y el problema se solucionó.
Espero que les resulte útil esta información!