Fechas Erradas


([N3] blanyi) #1

Buenos días.
Hoy se me presenta la siguiente situación.
Desde una tabla de Pagos tengo una actualización a una tabla maestra mediante la cual, si el cliente ya no debe nada, en la tabla maestra se debe registrar como fecha de finalización, la fecha del ultimo pago.
La condicion del componente de actualizacion es: #ID=#ID
El campo a actualizar es: FECHA_FINAL
El Modo es: Valor Absoluto
Y la formula es: choose((#NUMERO_CREDITO.SALDO_TOTAL_CREDITO<(0+1)) & #NUMERO_CREDITO.FECHA_FINAL:isEmpty()), dateTimeToDate(#FECHA_PAGO), “”)

El asunto es que para la mayoría de los casos esto está bien, pero por accidente descubrí que hay algunos registro que tienen como fecha final el 31/12/1969 o 01/01/1970.

¿A alguien más la ha pasado esto y como lo resolvió?
Agradezco cualquier comentario que ayude a aclarar la situación.

YIMY MORA ACONCHA


([N2] AyudaVelneo) #2

Hola Yimy:

Eso que te ocurre es porque se está actualizando con una fecha vacía. Cuando se graba una fecha vacía en la bd. te pone como fecha “01/01/1970”

Un saludo


([N3] blanyi) #3

Gracias José Vila por responder.
Entendida tu explicación, pero como puedes ver en la formula

choose((#NUMERO_CREDITO.SALDO_TOTAL_CREDITO<(0+1)) & #NUMERO_CREDITO.FECHA_FINAL:isEmpty()), dateTimeToDate(#FECHA_PAGO), “”)

La idea es que si se cumple la condición se actualiza la fecha, pero que si por alguna circunstancia el registro de la tabla hija se elimina, la actualización ponga en blanco la fecha de la tabla maestra.

De acuerdo con lo que tu me dices al poner la fecha en blanco, realmente no la pone en blanco sino que le pondría 01/01/1970.

¿Entonces que hago en este caso, como le asigno vacío al campo fecha_final?

Gracias una vez más.

YIMY MORA ACONCHA


([N4] José A. Martínez) #4

Hace tiempo que queria comentar sobre esto, es decir, los valores nulos en campos de Velneo.

Chicos, lamento comunicaros que Velneo no dispone del concepto de campos vacio, no tiene NULL ni nada de eso. Gran problema.

Todos las herramientas que usamos para “detectar” esos valores nulos o vacios son meros trucos, en realidad no detectan campos vacios.

Yo no soy un gurú de Velneo, seguro que digo algo inexacto, pero hasta donde alcanzan mis conocimientos…

Los valores nulos o vacios no existen. Velneo LOS SIMULA para algunos tipos de campo, con algunos valores especiales. Por ejemplo, para numericos Velneo toma como campo nulo o vacio el que tenga cero. Asi, sin mas, pol morro.

Con las fechas hace algo parecido, para Velneo una fecha vacia, no esta en realidad vacia, sino que le asigna la fecha inicial del calendario gregoriano, o algo asi (creo que sale una fecha del siglo XVI o XVII, jeje).

Si hacemos #FECHA="", en realidad le mete la fecha esa de marras… y todos los :isEmpty tambien son falsos.

Esto funciona bastante bien con algunos tipos de campo: para las cadenas toma como nulos las cadenas de cero caracteres, y eso no me ha dado problemas. El tema de la fecha, como pone una totalmente sin sentido (excepto en aplicaciones de historia) pues tambien va bien.

Pero con las horas y los numeros tenemos grandes problemas. No podemos distinguir entre un numero vacio y el cero, ni podemos usar horas vacias (toma las 00:00, que es una hora totalmente válida, no una hora nula). Idem con los booleanos, toma vacio como falso, imposible distinguir entre vacio y falso.

Yo hace poco tenia un campo hora importante, era fundamental saber si estaba vacio o no. No me quedo otro remedio que usar un campo alfa, y convertir a manita la hora desde el alfa al hora, y asi se si el campo hora esta vacio (cuando el alfa sea “”). Viva life is soft…

Este tema creo que da para un buen hilo… Algun día lo crearé…

Saludos.
Victor Garcia Tascon.