Los objetos vuelven a hacer de las suyas y siguen demostrando su utilidad para facilitarte la vida como desarrollador.
El uso de valores de tiempo (o duración) dentro de los objetos es ahora más suave e intuitivo. A partir de 4D v17, los tiempos dentro de los objetos se establecen en segundos – ¡y no en milisegundos!
Esto no era visible anteriormente para los usuarios porque OB SET y OB Get debían utilizarse con la constante is time, por lo que las conversiones se hacían automáticamente.
OB SET ($myObject; "miHora";$time;is time)
$time :=OB Get ($myObject; "miHora";is time)
Ahora, esta constante ya no es obligatoria. El código anterior se puede acortar, pero lo que es más importante, ¡también se puede utilizar la notación de objetos!
$myObject.myTime:=$time
$time :=$myObject.myTime
EL TIEMPO EN OTROS CONTEXTOS
CONSULTA DE LOS CAMPOS DE LOS OBJETOS
- A partir de ahora, al consultar un campo de objeto con QUERY BY ATTRIBUTElas comparaciones entre los valores numéricos y de tiempo se realizan en segundos en lugar de en milisegundos.
He aquí dos ejemplos que producen el mismo resultado:
QUERY BY ATTRIBUTE([Table_1];[Table_1]z;"time";"=";?12:00:00?)
QUERY BY ATTRIBUTE([Table_1];[Table_1]z;"time";"=";12*60*60)
ÁREA WEB
- Al llamar a JavaScript en un área web, la conversión a y desde una hora se realiza en segundos en lugar de milisegundos cuando se utiliza:
- WA Evaluar JavaScript
- WA EJECUTAR FUNCIÓN JAVASCRIPT
- 4d puente
LA COMPATIBILIDAD PUEDE MANTENERSE FÁCILMENTE
Si es necesario para las bases de datos existentes, esta configuración por defecto se puede cambiar con el comando SET DATABASE PARAMETER y el selector Times inside objects.
Hay dos valores disponibles para este option:
- Times in milliseconds
- Times in seconds
Este parámetro de la base de datos se aplica a la propia base de datos, no sólo al proceso actual. Para mantener la compatibilidad o ayudar al proceso de migración, este comando puede ser llamado durante el On Startup Database Method.