Skip to Main Content

Apex 20.2 - Diferencias al validar y al procesar

Hugo LopezOct 31 2022 — edited Oct 31 2022

Estoy teniendo un problema al grabar los datos de una Interactive Grid, que está basada en una tabla que tiene varias columnas, entre ellas una de tipo DATE definida como NOT NULL. Al momento de dar click en el botón "Guardar Datos" del IG, se produce un error porque se está intentando guardar un valor nulo en el campo de fecha NOT NULL.
El problema por el cual estoy escribiendo esto es que la IG tiene:
Definida la columna de fecha como requerida y NO está marcada como Read Only.
Estoy validando los registros de la IG con una función PL/SQL y esa función recibe correctamente la columna de la fecha, con el valor que acabo de ingresar.
El procesamiento de la fila lo hice con el "Automatic Row Processing" de la IG y se produce el error al tratar de insertar un valor nulo.
Para intentar ver qué estaba pasando, reemplacé el ARP por un procedimiento en la base, que lo invoco de la misma que la función de validación. Lo raro es que, en un caso (validación) se recibe el valor de la columna fecha y en el otro (procesamiento), no.
En algún momento pensé en que podría haber algún tema con el NLS_DATE entre Apex y la base, así que verifiqué las propiedades de Globalización de la Aplicación, poniendo como "Application Date Format" y "Application Date Time Format" la cadena "dd/mm/yyyy hh24:mi:ss' que es la misma que uso en la función de validación y el procedimiento de DML para convertir el valor recibido en DATE (en ambos casos, el parámetro donde recibo el valor del item de fecha es VARCHAR2). En la de validación funciona bien (recibo la fecha como VARCHAR2 y la convierto a DATE), pero en el procedimiento la variable VARCHAR2 recibe NULL.
Para insistir más con el tema del NLS_DATE, siguiendo lo que encontré en un artículo de internet, agregué en Edit Application Properties -> Security -> Initialization PL/SQL Code
BEGIN
DBMS_SESSION.SET_NLS('NLS_DATE_FORMAT', '''DD/MM/YYYY HH24:MI:SS''');
END;
Pero no cambió nada...
¿Alguna idea de qué puede estar pasando?
PD: El resto de las columnas (de tipo number o varchar2) las recibo bien, tanto en la función de validación como en el procedimiento de DML. El problema es con la columna de tipo DATE y sólo en el procedimiento de DML
PD2: También pasa lo mismo si el campo que recibe el item FECHA tanto en la función como en el procedimiento es de tipo DATE (en la función lo trae bien, en el procedimiento trae el valor NULL).

Comments
Post Details
Added on Oct 31 2022
1 comment
22 views