Altova MapForce 2027 Basic Edition

Cette rubrique explique comment filtrer des données à l'aide des composants filter et SQL/NoSQL WHERE/ORDER. Elle montre également comment utiliser le composant if-else pour évaluer une condition logique et renvoyer l'une des valeurs simples proposées selon que cette condition est vraie ou fausse. Pour plus d’information, veuillez voir les sous-sections ci-dessous.

 

Ces composants peuvent être ajoutés via le menu Insérer, la barre d'outils ou la galerie de composants.

 

Filtrer des nœuds ou des lignes

Lorsque vous devez filtrer des données, qu’il s’agisse de nœuds XML, utilisez un composant Filtrer nœuds/lignes. Le composant Filtrer nœuds/lignes vous permet de récupérer un sous-ensemble de nœuds à partir d’un ensemble de données plus vaste, en fonction d’une condition true ou false. Sa structure dans la zone de mappage reflète ce principe :

mff_filter_component

Dans la structure ci-dessus, la condition liée à bool détermine si le nœud/la ligne connecté(e) est redirigé(e) vers la sortie on-true ou on-false. En effet, si la condition est true, le nœud/la ligne sera redirigé(e) vers la sortie on-true. À l'inverse, si la condition est false, le nœud/la ligne sera redirigé(e) vers la sortie on-false.

 

Lorsque votre mappage doit uniquement traiter les éléments qui répondent à la condition de filtrage, vous pouvez laisser la sortie on-false non connectée. Si vous devez traiter les éléments qui ne répondent pas à la condition de filtrage, connectez la sortie on-false à une cible vers laquelle ces éléments doivent être redirigés.

 

Pour un exemple de mappage étape par étape, voir Exemple : Filtrer des nœuds.

 

Filtrage des données de la base de données (éditions Professional et Enterprise)

Les composants Filtrer nœuds/lignes peuvent filtrer les données provenant de n'importe quelle autre structure de composant prise en charge par MapForce, y compris les bases de données. Toutefois, si vous souhaitez filtrer des données provenant d'une base de données, il est recommandé d'utiliser plutôt un composant SQL WHERE/ORDER. Le composant SQL WHERE/ORDER est optimisé pour fonctionner avec les bases de données et offre de meilleures performances qu'un composant Filtrer nœuds/lignes.

mff_sql_where

 

Renvoyer une valeur de manière conditionnelle

Si vous devez obtenir une valeur unique (et non un nœud ou une ligne) de manière conditionnelle, utilisez une condition if-else. Notez que les conditions if-else ne sont pas adaptées au filtrage de nœuds ou de lignes. Contrairement aux composants Filtrer nœuds/lignes, une condition if-else renvoie une valeur de type simple (telle qu’une chaîne de caractères ou un entier). Par conséquent, les conditions if-else ne conviennent qu’aux scénarios dans lesquels vous devez traiter une valeur simple de manière conditionnelle. Par exemple, supposons que vous disposiez d’une liste des températures moyennes mensuelles, au format suivant :

 

<Temperatures>  
  <data temp="19.2" month="2010-06" />
  <data temp="22.3" month="2010-07" />
  <data temp="19.5" month="2010-08" />
  <data temp="14.2" month="2010-09" />
  <data temp="7.8" month="2010-10" />
  <data temp="6.9" month="2010-11" />
  <data temp="-1.0" month="2010-12" />
</Temperatures>

 

Une condition if-else vous permettrait de renvoyer, pour chaque élément de la liste, la valeur "high" si la température dépasse 20 degrés Celsius, et la valeur "low" si la température est inférieure à 5 degrés Celsius.

 

Dans le mappage, la structure de la condition if-else se présente comme suit :

ifelse-extend01

Si la condition liée à bool est vraie, alors la valeur liée à value-true est renvoyée comme result. Si la condition est fausse, la valeur connectée à value-false est renvoyée comme result. Le type de données de result n'est pas connu à l'avance ; il dépend du type de données de la valeur connectée à value-true ou à value-false. L'important est qu'il s'agisse toujours d'un type simple (chaîne, entier, etc.). La connexion de valeurs d'entrée de type complexe (telles que des nœuds ou des lignes) n'est pas prise en charge par les conditions if-else.

 

Les conditions if-else sont extensibles. Cela signifie que vous pouvez ajouter plusieurs conditions au composant en cliquant sur le bouton Ajouter ( gui_add_function_parameter ). Pour supprimer une condition précédemment ajoutée, cliquez sur le bouton Supprimer ( gui_delete_function_parameter ).  Cette fonctionnalité vous permet de vérifier plusieurs conditions et de renvoyer une valeur différente pour chacune d'entre elles, si elle est vraie.

mff_if_else_extendable

Les conditions if-else étendues sont évaluées de haut en bas (la première condition est vérifiée en premier, puis la deuxième, et ainsi de suite). Si vous souhaitez renvoyer une valeur lorsqu'aucune des conditions n'est vraie, connectez-la à otherwise.

 

Pour un exemple de mappage étape par étape, voir Exemple : Renvoyer une valeur de manière conditionnelle.

 

© 2020-2026 Altova GmbH