Champs de transaction conditionnels

Supposons que vous vouliez inclure des données de certains champs dans votre sortie en respectant certaines conditions, mais en en ignorant d'autres. Par exemple, si un champ est renseigné, vous voulez que sa valeur soit incluse dans l' enregistrement, mais si le champ est vide, vous voulez omettre la valeur et éviter que des espaces ou des zéros apparaissent dans l'enregistrement. (ce principe est identique à celui d'une instruction de programmation conditionnelle telle qu'une instruction if/then).

Vous pouvez le faire en insérant des champs de transaction #If et #EndIf dans votre description de transaction. (Instructions.)

Variable

Format

Explication/commentaire

#If, #EndIf

N(1)*

Si l'expression insérée ¹0, tous les champs de transaction compris entre #If et #EndIf, sauf ceux suivant #ElseIf et #Else, sont insérés.

#ElseIf

N(1)*

Si l'expression #If =0, le système essaye l'expression #ElseIf. Si l'expression #ElseIf ¹0, tous les champs de transaction compris entre #ElseIf et la prochaine expression #ElseIf, #Else ou #EndIf sont insérés.

#Else

N(1)*

Si les expressions #If et #ElseIf =0, les champs de transaction compris entre #Else et #EndIf sont insérés.

* Les champs de transaction ci-dessus ont pour Format N ou N(1), mais leur Longueur est 0 car ces champs de transaction particuliers n'entraînent jamais eux-mêmes l'écriture de données dans un fichier de transfert.

La structure est la suivante :

#If

#ElseIf (facultatif)

#ElseIf (facultatif)

#Else (facultatif, ne suit pas nécessairement #ElseIf)

#EndIf

Remarque : Lorsque vous choisissez un caractère de séparation dans votre description de transaction, le dernier champ de chaque enregistrement n'est généralement pas suivi de ce caractère. Il existe cependant une exception si la description de transaction contient des instructions #If. Dans ce cas, le dernier champ de l'enregistrement peut être suivi d'un caractère de séparation, si le dernier champ de transaction est par exemple #EndIf.