Exemple : Renvoyer une valeur de manière conditionnelle
Cet exemple vous montre comment renvoyer une valeur simple à partir d'un composant, en fonction d'une condition vrai/faux. Une condition if-else (
) est utilisée pour atteindre cet objectif. Notez qu'il ne faut pas confondre les conditions if-else avec les composants de filtrage. Les conditions if-else ne sont adaptées que lorsque vous devez traiter des valeurs simples de manière conditionnelle (chaîne de caractères, entier, etc.). Si vous devez filtrer des valeurs complexes telles que des nœuds, utilisez plutôt un filtre (voir Exemple : Filtrer des nœuds).
Le mappage décrit dans cet exemple est disponible à l'emplacement suivant : <Documents>\Altova\MapForce2027\MapForceExamples\ClassifyTemperatures.mfd.

Ce mappage lit les données d'un fichier XML source contenant des données de température (« Temperatures ») et écrit ces données dans un fichier XML cible conforme au même schéma. Plusieurs autres composants se trouvent entre la cible et la source, dont la condition if-else (surlignée en rouge), qui fait également l'objet de cette rubrique.
L'objectif du mappage est d'ajouter une brève description à chaque enregistrement de température dans la cible. Plus précisément, si la température est supérieure à 20 degrés Celsius, la description doit être « high ». Si la température est inférieure à 5 degrés Celsius, la description doit être « low ». Dans tous les autres cas, aucune description ne doit être rédigée.
Pour atteindre cet objectif, un traitement conditionnel est nécessaire ; c'est pourquoi une condition if-else a été ajoutée au mappage. (Pour ajouter une condition if-else, cliquez sur le menu Insérer, puis sur Condition IF-Else.) Dans ce mappage, la condition if-else a été étendue (à l’aide du bouton
) pour accepter deux conditions : bool1 et bool2.
Les conditions elles-mêmes sont fournies par les fonctions greater et less, qui ont été ajoutées à partir de la bibliothèque principale de MapForce ; voir également Ajouter une fonction dans le mappage. Ces fonctions évaluent les valeurs fournies par deux composants d’entrée, appelés « upper » et « lower ». (Pour ajouter un composant d'entrée, cliquez sur le menu Insérer, puis sur Insérer entrée. Pour plus d'informations sur les composants d'entrée, voir Fournir des paramètres dans le mappage.
Les fonctions greater et less renvoient soit true, soit false. Le résultat de la fonction détermine ce qui est écrit dans l'instance cible. Concrètement, si la valeur de l'attribut « temp » dans la source est supérieure à 20, la valeur constante « high » est transmise à la condition if-else. Si la valeur de l’attribut « temp » dans la source est inférieure à 5, la valeur constante « low » est transmise à la condition if-else. L’entrée otherwise n’est pas connectée. Par conséquent, si aucune des conditions ci-dessus n’est remplie, rien n’est transmis au connecteur de sortie result.
Enfin, le connecteur de sortie result transmet cette valeur (une fois pour chaque enregistrement de température) à l'attribut « desc » de la cible.
Lorsque vous êtes prêt à prévisualiser le résultat du mappage, cliquez sur le volet Sortie. Notez que le code XML de sortie inclut désormais l'attribut « desc » chaque fois que la température est supérieure à 20 ou inférieure à 5.
... |
Code XML généré après l'exécution du mappage