S'il est prévu d'effectuer des calculs sur les dates, il vaut mieux vérifier l'indicateur null. Mathématiquement parlant, les dates nulles contiennent 01/01/0001, ce qui risque de ne pas produire les résultats escomptés. Ainsi, la ligne de code suivante calcule le nombre de jours entre une date de début (STRDAT) et
Calculs avec des champs potentiellement nuls
une date de fin
(ENDDAT), en plaçant le résultat dans un champ appelé DIFF :
C ENDDAT SubDur STRDAT DIFF:*Days
Tout va bien jusqu’à ce que ENDDAT contienne une date nulle, auquel cas DIFF aboutit
à un grand nombre négatif. Par exemple, si on utilise une valeur STRDAT au 4 septembre
1998 et une valeur ENDDAT nulle, la différence (DIFF) sera de -729635. La situation
ressemble à celle de la division, dans laquelle il faut d’abord vérifier si le
diviseur est égal à zéro et agir en conséquence.
La figure 8a présente un exemple qui, en cas de date nulle, met DIFF à zéro. Bien
que cette solution fonctionne, elle est techniquement incorrecte et sert à illustrer
la différence entre zéro et null. Nous disons qu’une date de fin nulle produit
une différence de 0 jours mais, en réalité, nous admettons que nous ne pouvons
pas donner une différence, ne connaissant pas encore la date de fin. Quand les
dates de début et de fin sont identiques, nous prenons la partie Else de l’instruction
If, effectuons le calcul mathématique… et aboutissons à une différence de 0
jour. Dans ce cas, zéro prend sa signification exacte : il n’y a pas de différence
entre les dates de début et de fin.
Cette méthode risque d’entraîner des problèmes si l’on utilise le champ DIFF pour
prendre des décisions ultérieurement. Si par exemple on recherche des contrats
ouverts en testant une valeur zéro dans DIFF, on obtient le résultat souhaité,
mais aussi d’éventuels contrats terminés le jour même de leur démarrage. Selon
l’application, cela peut poser ou non un problème mais montre bien qu’il faut
s’efforcer de prévoir toutes les futures utilisations des données.
La bonne solution consiste à permettre à DIFF de contenir des valeurs nulles,
en ajoutant le mot clé ALWNULL à la définition DDS du champ et en rendant sa valeur
nulle au lieu de 0 quand ENDDAT est null. Cette solution crée une correspondance
de un à un entre le champ DIFF et une situation de gestion réelle : un DIFF null
signe un contrat ouvert, tandis qu’un DIFF à 0 signe un contrat fermé (… et
bref). La figure 8b contient le code à cet effet.
Téléchargez cette ressource
Créer des agents dans Microsoft 365 Copilot
Insight vous guide dans l’utilisation de la nouvelle expérience de création d’agents dans Microsoft Copilot Studio, disponible dans Copilot Chat. Découvrez les étapes clés pour concevoir, configurer et déployer ces nouveaux agents et injecter la puissance de l’IA directement dans le flux de travail.
Les articles les plus consultés
- Activer la mise en veille prolongée dans Windows 10
- Et si les clients n’avaient plus le choix ?
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
Les plus consultés sur iTPro.fr
- L’essor de l’IA propulse les cyberattaques à des niveaux records
- L’IA sous contrôle : un impératif pour la souveraineté des entreprises
- CESIN : un baromètre qui mesure le risque cyber réel
- Face aux ransomwares, la résilience passe par les sauvegardes immuables
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
