Altova MapForce 2024 Basic Edition

Si vous souhaitez filtrer des données ou obtenir une valeur par condition, vous pouvez utiliser un des types de composant suivants :

 

Filtre : Nœuds/Lignes ( mff_ic_insert_filter )

Condition If-Else ( mff_ic_if_else )

 

Vous pouvez ajouter ces composants dans le mappage soit depuis le menu Insérer, soit depuis la barre d'outils Insérer composant. Attention, chaque composant indiqué ci-dessus possède son propre comportement et ses propres exigences. Les différences sont expliquées dans les sections suivantes.

 

Filtrer les nœud ou les lignes

Si vous souhaitez filtrer des données, y compris des nœuds XML , utiliser un composant Filtrer nœuds/lignes. Celui-ci vous permet d'extraire un sous-ensemble de nœuds depuis un ensemble de données plus important, sur la base d'une condition vrai ou faux. Sa structure dans la zone de mappage le reflète :

mff_filter_component

Dans la structure ci-dessus, la condition connectée à bool détermine si le nœud/ligne connecté va bien vers la sortie on-true ou on-false. Concrètement, si la condition est vraie, le nœud/ligne sera redirigé vers la sortie on-true. Ainsi, si la condition est fausse, le nœud/ligne sera redirigé vers la sortie on-false.

 

Si votre mappage nécessite de consommer uniquement des items qui correspondent à la condition de filtre, vous pouvez laisser la sortie on-false sans connexion. Si vous devez traiter les items qui ne correspondent pas à la condition de filtre, connecter la sortie on-false vers une cible dans laquelle ces items doivent être redirigés.

 

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

 

Retourner une valeur par condition

Si vous souhaitez obtenir une seule valeur (pas un nœud ou une ligne) de manière conditionnelle, utiliser une Condition If-Else. Veuillez noter que celles-ci ne sont pas appropriées pour filtrer les nœuds ou les lignes. Contrairement aux composants Filtrer nœuds/lignes, une Condition If-Else retourne une valeur de type simple (comme un string ou un entier). C'est pourquoi, les Conditions If-Else ne se prêtent que pour des scénarios dans lesquels vous devez traiter une valeur simple par condition. Par exemple, partons du principe que vous avez une liste de températures moyennes par mois, dans le format :

 

<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 retourner, pour chaque item dans 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 ressemble à l'exemple suivant :

ifelse-extend01

Si la condition connectée à bool est vraie, alors la valeur connectée à value-true est sorti sous la forme de result. Si la condition est fausse, la valeur connectée à value-false est sortie sous la forme de result. Le type de donnée 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. Attention : ce doit toujours être un type simple (string, entier, etc). La connexion de valeurs d'entrée de type complexe (comme des nœuds ou des lignes) n'est pas prise en charge par la Condition If-Else.

 

Les Conditions If-Else sont extensibles. Cela signifie que vous pouvez ajouter plusieurs conditions dans le composant en cliquant sur la touche Ajouter ( gui_add_function_parameter ). Pour supprimer une condition préalablement ajoutée, cliquer sur la touche Supprimer ( gui_delete_function_parameter ).  Cette fonction vous permet de contrôler plusieurs conditions et de retourner une valeur différente pour chaque condition, si elle est vraie.

mff_if_else_extendable

Les Conditions If-Else étendues sont évaluées du haut en bas (la première condition est contrôlée en premier, puis la deuxième, etc.). Si vous souhaitez retourner une valeur si aucune des conditions ne sont vraies, connectez-vous à otherwise.

 

Pour un exemple de mappage étape par étape, voir Exemple: Retourner une valeur par condition.

© 2018-2024 Altova GmbH