Accéder au contenu principal Passer au contenu complémentaire

À propos des nulls

La transformation offre la possibilité de gérer le traitement des nulls sur les buffers I, B, O, W, V. Cela signifie qu'un champ faisant partie de ce buffer pourra voir sa valeur null respectée, attribuée et testée.

Note InformationsAvertissement : La gestion des nulls est conditionnée par une option devant être spécifiée au début de la transformation : Option NULL_SUPPORT

Cette option est ajoutée par défaut sur les nouvelles transformations et n'affecte pas les transformations existantes, à moins de rajouter cette option en première ligne.

Pour le reste de cette section, vous devez vérifier les transformations pour lesquelles l'option NULL_SUPPORT est définie. Lorsque cette option n'est pas définie, le mot null, par exemple, n'est pas autorisé.

Affectation de zones avec traitement des nulls

Dans le cas d'un champ de buffer I, ce champ contient soit des espaces blancs, si son type est alphanumérique, soit des 0, si son type est numérique. 

Le fait qu'elle soit nulle est enregistré et transmis lors de son affectation à un autre champ.

Note InformationsAvertissement : Seules les zones des buffers I (Input), B (Before), O (Output), W et V (Work) supportent la propriété Null.

Exemples : 

O.LIBELLE = I.LIBELLE

Si la valeur de I.LIBELLE est nulle et attribuée à O.LIBELLE, la valeur de O.LIBELLE devient nulle également et le champ est vide, car il est de type alpha.

W.LIBELLE = I.LIBELLE
O.LIBELLE = W.LIBELLE

Si la valeur I.LIBELLE est nulle et attribuée à W.LIBELLE, la valeur de W.LIBELLE devient nulle. 

Attribuer la valeur de W.LIBELLE à O.LIBELLE rend la valeur de O.LIBELLE nulle.

Attribution de la valeur Null

Il est désormais possible de forcer un champ nulle :

Exemple :

O.LIBELLE = Null

Si le champ est de type alpha, son contenu est laissé blanc et sa propriété nulle est affectée.

Si le champ est de type numérique, son contenu est réinitialisé à 0 et sa propriété nulle est affectée.

Il est possible d'affecter Null à tous les champs (de base de données sur un autre champ) pour les buffers I, B, O, W, V.

Calcul de zones numériques avec valeur Null

Lors de l'addition ou de la soustraction de deux zones, il faut qu'elles soient toutes les deux nulles pour que le résultat soit nul.

Exemple :

Option NULL_SUPPORT
 
  W.VAL1 = 1
  W.VAL2 = Null
  W.VAL3 = W.VAL1 + W.VAL2
  TRACE W.VAL3

Trace : 1

Après multiplication ou division des deux champs, comme l'un est null, le résultat est null.

Exemple :

Option NULL_SUPPORT
 
  W.VAL1 = 1
  W.VAL2 = Null
  W.VAL3 = W.VAL1 * W.VAL2
  TRACE W.VAL3
Trace : 0 et null

Test de la valeur Null

Il est possible de tester un champ afin de voir si elle est nulle :

Exemple :

If I.LIBELLE = Null Then GoTo *SKIP 
If I.LIBELLE = Null Then
     I.LIBELLE = 'N/A' 
EndIf
O.LIBELLE = I.LIBELLE 
If I.LIBELLE <> Null Then
    O.LIBELLE = I.LIBELLE 
Else
    O.LIBELLE = 'N/A' 
  EndIf

Seuls les tests = et <> sont possibles et le mot clé Null ne peut être défini qu'en deuxième facteur. 

Vous pouvez donc utiliser la commande IF Null=I.LIBELLE Then.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !