Fenêtre de définition de conditions

Dans de nombreux Transformers et Writers, les valeurs des attributs peuvent être définies de manière conditionnelle, c'est-à-dire que des valeurs différentes sont attribuées selon que les conditions spécifiées sont remplies ou non.

Comme on le voit ici dans un Transformer AttributeCreator, si Valeur conditionnelle... apparaît dans le menu contextuel lors de la définition d'une valeur, les conditionnels sont disponibles.

Dans la boîte de dialogue Paramètre de définition de condition, nous définissons une ou plusieurs conditions de test et la valeur à attribuer si cette condition est remplie.

Chaque condition de test se compose d'une ou plusieurs clauses de test, qui évaluent des valeurs ou des expressions sur la base d'un large éventail d'opérateurs et de types de test disponibles. Les clauses de test sont reliées par la logique - combinaisons de AND, OR et NOT, avec des parenthèses pour définir l'ordre d'évaluation.

Si le premier test (Si) n'aboutit pas (échec), la condition de test suivante est évaluée (Sinon si), et ainsi de suite jusqu'à ce qu'il ne reste plus aucune condition de test. Si aucune des conditions de test n'est réussie, la valeur finale (Sinon) sera utilisée.

Notez que les opérations de test sont lexicales et ne tiennent pas compte du contexte local.

Créer des clauses de test

Chaque clause est composée d'une valeur à tester, et de la méthode pour la tester. En fonction du type de test, la clause comprendra au minimum une Valeur à gauche et un opérateur. Si l'opérateur choisi a besoin de plus d'informations (par exemple, le test d'un attribut supérieur à une certaine valeur), un champ Valeur à droite est fourni.

Les clauses de test sont créées dans une table et numérotées depuis le haut vers le bas.

Valeur à gauche

Opérateur

Valeur à droite

Mode*

La valeur ou l'expression à tester Le type de test à effectuer La valeur pour comparaison, si requise par l'opérateur Test les valeurs d'une manière spécifique
Exemples
Latitude > 49.000001 Automatique
@Area() Dans la plage (1,100) Numérique
SnackType Comme Kebabs Sensibilité à la casse
Traffic L'attribut est Null (nul) <Inutilisé> Automatique
Count Le type est Entier Automatique

* Notez que le Mode n'est disponible que pour les tests individuels quand Méthode de comparaison vaut Spécifier par test.

Clauses et Valeurs mises en cache

Si la mise en cache des données est activée, les attributs des entités peuvent être visualisées pour compléter les clauses du test.

Comme illustré ici dans le Tester, si la valeur de gauche a été définie sur une valeur d'attribut et que les entités ont été mises en cache, le menu contextuel donne accès aux valeurs disponibles dans ces entités. S'il n'y a que quelques choix, ils seront présentés dans un sous-menu.

Si un grand nombre de choix est possible, les valeurs sont affichées dans la fenêtre Sélectionner une valeur dans laquelle les valeurs peuvent être triées et filtrées via l'option Filtre.

Connecter des Clauses de test : Logique

Plusieurs clauses de tests sont connectées avec Logique, en utilisant AND , OR et NOT en plus des parenthèses pour spécifier comment les tests sont évalués pour déterminer la réussite ou l'échec.

Les connecteurs logiques peuvent être édités en sélectionnant des options dans la colonne Logique de la table Clauses de test ou peuvent être édités directement en utilisant le bouton Editer du paramètre Expression composite.

Exemple : assigner plusieurs valeurs d'attributs avec des valeurs conditionnelles

Dans cet exemple, nous allons créer un nouvel attribut et lui attribuer une valeur en fonction d'une autre valeur. Les données d'origine contiennent des rues avec deux attributs. Ils sont acheminés dans un AttributeCreator.

Dans le dialogue des paramètres, des valeurs conditionnelles ont été définies, indiquées par 7 Valeurs possibles. On peut les revoir via le bouton ellipse ou le menu contextuel.

Six conditions de test ont été créées, attribuant un code au nouvel attribut USE_CODE, en fonction de la valeur de l'attributUSE existant. Si une valeur USE est trouvée qui correspond à l'un de ces tests, elle recevra la valeur USE_CODE UN.

Les entités en sortie ont maintenant des attributs conditionnels pour le nouvel attribut USE_CODE.