Les dates à l’intérieur des objets !

Traduit automatiquement de Deepl

Lesobjets sont formidables ! Leur flexibilité, combinée à leur rapidité et à leur élégance, en fait un premier choix pour la plupart des développeurs. L’utilisation des dates dans les objets est désormais plus facile et plus intuitive. Désormais, les dates peuvent être définies comme des dateset non plus comme des chaînes de caractères à l’intérieur des objets !

Comment cela fonctionne-t-il ?

Pour utiliser les dates dans les objets, il suffit de vérifier le paramètre de compatibilité « Utiliser le type de date au lieu du format de date ISO dans les objets », dans les paramètres de la base de données.

Une fois que cela est fait, OB SET et OB Get fonctionnent sans nécessiter la constante is date.

OB SET ($myObject; "maDate" ;$date)
$date :=OB Get ($myObject; "maDate")

La notation d’objet fonctionne également ! Jetez un coup d’œil :

$myObject.myDate:=$date
$date :=$myObject.myDate

Stringify et Parse

La compatibilité est maintenue

Avant la version 4D v16 R6, lors de l’appel de la commande JSON Stringify les objets contenant des dates étaient systématiquement « stringifiés » selon la normalisation ISO 8601 dans le format suivant « YYYY-MM-DDThhmmss.sssZ » . L’opération inverse, JSON Parsen’interprète pas ce format par défaut, et produit donc une chaîne de caractères.

Quoi de neuf ?

Si l’option de compatibilité dans les paramètres de la base de données est cochée, les dates seront simplement formatées comme « YYYY-MM-DD » (toujours selon la norme ISO 8601) lors de l’appel de la commande JSON stringify lors de l’appel de la commande Si vous utilisez JSON Parsecette chaîne sera alors définie comme une date (et non comme une chaîne) dans l’objet !

Changement de mode de façon dynamique

Si nécessaire, ce paramètre par défaut peut être modifié par programmation avec la commande SET DATABASE PARAMETER et le sélecteur Dates inside object.

Rappel: SET DATABASE PARAMETER(Dates inside object;option) est local au processus en cours.

Les trois valeurs possibles pour ce option sont maintenant :

  • String type without time zone (précédemment connu sous le nom d’ignorer le fuseau horaire local)
  • String type with time zone (précédemment connu sous le nom de prendre en compte le fuseau horaire)
  • Date type (nouveau !)

Par conséquent, lorsque vous importez des données JSON dans 4D, vous disposez désormais d’un moyen de changer dynamiquement le format des dates.

Roland Lannuzel
- Product Owner & 4D Expert - Après avoir étudié l'électronique, Roland s'est lancé dans l'informatique industrielle en tant que développeur et consultant, créant des solutions pour les clients avec une variété de bases de données et de technologies. À la fin des années 80, il est tombé amoureux de 4D et l'a utilisé pour écrire des applications commerciales, notamment des systèmes de comptabilité, de facturation et de messagerie électronique. Il a rejoint la société en 1997 et a contribué à la conception de spécifications, d'outils de test et de démonstrations, ainsi qu'à la formation et à la présentation de la communauté 4D lors de nombreuses conférences. Il continue à façonner activement l'avenir de 4D en définissant de nouvelles fonctionnalités et des outils de développement de bases de données.