Os objectos são óptimos! A sua flexibilidade, combinada com velocidade e elegância, fazem deles uma primeira escolha para a maioria dos criadores. A utilização de datas dentro dos objectos é agora mais fácil e mais intuitiva. A partir de agora, as datas podem ser definidas como datas – e não cordas dentro de objectos!
Como é que funciona?
Para usar datas dentro de objectos, basta verificar a configuração de compatibilidade, “Usar tipo de data em vez do formato de data ISO nos objectos”, nas Definições da Base de Dados.
Uma vez que isto esteja feito, OB SET e OB Get trabalhar sem exigir a data é constante.
OB SET ($myObject; "myDate";$date)
$date :=OB Get ($myObject; "myDate")
A notação de objectos também funciona! Dêem uma vista de olhos:
$myObject.myDate:=$date
$date :=$myObject.myDate
Stringify e Parse
A compatibilidade é mantida
Antes do 4D v16 R6, ao chamar o JSON Stringify os objectos contendo datas foram sistematicamente “stringified” de acordo com a norma ISO 8601 no seguinte formato “YYYY-MM-DDThhmmss.sssZ” . A operação inversa, JSON Parsenão interpretou este formato por defeito, e por isso produziu uma cadeia.
O que há de novo?
Se a opção de compatibilidade nas Configurações da Base de Dados for verificada, as datas serão simplesmente formatadas como “AAAA-MM-DD” (ainda seguindo a norma ISO 8601) ao chamar a JSON stringify comando. Ao utilizar o comando JSON ParseEsta corda será então definida como uma data (e não como uma corda) dentro do objecto!
Mudar o modo dinamicamente
Se necessário, esta configuração padrão pode ser alterada através da programação com a SET DATABASE PARAMETER e o selector Dates inside object.
Lembrete: SET DATABASE PARAMETER(Dates inside object;option) é local para o processo actual.
Os três valores possíveis para isto option são agora:
- String type without time zone (anteriormente conhecido como ignorar o fuso horário local)
- String type with time zone (anteriormente conhecido como ter em conta o fuso horário)
- Date type (novo!)
Como resultado, ao importar dados JSON para 4D, tem agora uma forma de alterar dinamicamente o formato das datas.