Transformers FME: 2025.0

Categories
Chaînes de caractères
Valeurs calculées

ExpressionEvaluator

Effectue un calcul mathématique sur une expression composée de fonctions d'entités FME, de fonctions de chaînes, de fonctions mathématiques et d'opérateurs mathématiques. Les opérandes et les arguments de fonction se composent d'attributs sur l'entité d'entrée, de littéraux constants, de paramètres publiés et privés, ainsi que de fonctions et d'opérateurs.

Vous pouvez utiliser l'interface graphique pour configurer une expression, mais vous pouvez également modifier une expression manuellement. Les résultats de l'expression sont stockés dans les attributs spécifiés par l'utilisateur.

Il y a deux principales utilisations de ExpressionEvaluator :

  1. Appliquer un expression sur un attribut
    • Définit Mode d'évaluation sur soit Créer un nouvel attribut soit Ecraser des attributs existants mais écrase seulement un attribut.
    • l'expression peut utiliser la fonction @Value() mais n'utilise pas la fonction @CurrentAttribute().
    • Par exemple, si vous voulez ajouter 1 à la valeur d'un attribut, utilisez l'expression @Value(attr) + 1, définissez la méthode de calcul à Ecraser les attributs existants, et définissez les attributs à écraser à attr.
  2. Appliquer un expression sur plusieurs attributs
    • définit le Mode d'évaluation sur Ecraser les attributs existants et sélectionne seulement les attributs qui seront écrasés par de nouvelles valeurs. Les attributs non sélectionnés conserveront leurs valeurs d'origine.
    • l'expression peut utiliser la fonction @CurrentAttribute() mais n'utilisera généralement pas la fonction @Value().
    • Par exemple, si vous souhaitez ajouter 1 aux valeurs de quelques attributs, utilisez l'expression @CurrentAttribute() + 1, définissez la Méthode de calcul à Ecraser les attributs existants, et sélectionnez les attributs.
Note  Note : si vous souhaitez appliquer différentes expressions à différents attributs, vous pouvez utiliser plusieurs ExpressionEvaluator ou utiliser un seul AttributeCreator.

Les opérateurs pris en charge sont un sous-ensemble des opérateurs autorisés dans les expressions C. Ils ont la même signification et la même préséance que les opérateurs C correspondants, à une exception notable près : ils supportent les nuls numériques.

Les expressions sont censées produire des résultats numériques. FME prend en charge les nuls numériques, qui permettent aux expressions de renvoyer un résultat nul. Par exemple, l'expression 8.2 + 6 renvoie 14.2 , alors que l'expression @Value(nullAttr) * 1 renvoie null.

Note  Il est courant de construire des expressions invalides, il est donc souhaitable de les contrôler particulièrement si vous utilisez @Value(attr) puisque certains attributs peuvent avoir des valeurs invalides. Si une expression n'est pas valide, l'attribut de résultat correspondant sera défini comme nul. Lorsque le résultat est nul, les attributs suivants sont définis pour indiquer ce qui n'a pas fonctionné et où :

fme_expression_warnings{}.attrName

fme_expression_warnings{}.message

fme_expression_warnings{}.transformerName

Dans l'ExpressionEvaluator, les attributs null, missing et empty string sont tous considérés comme nuls. Ainsi, @Value(attr) * 1 aura pour résultat null si attr n'est pas présent dans l'entité ou est une chaîne vide.

Configuration

Paramètres

Exemples

FME Support Center présente un bon exemple d'utilisation d'ExpressionEvaluator.

Transformers liés

Si vous paramétrez plus d'un attribut, pensez à utiliser AttributeCreator qui comporte les mêmes fonctionnalités.

Éditer les paramètres des Transformers

Les paramètres du Transformer peuvent être définis en saisissant directement des valeurs, en utilisant des expressions ou en faisant référence à d'autres éléments de l'espace de travail tels que des valeurs d'attributs ou des paramètres utilisateur. Divers éditeurs et menus contextuels sont disponibles pour vous aider. Pour voir ce qui est disponible, cliquez sur à côté du paramètre concerné.

Pour plus d'information, consulter la section Options des Transformers.

Implémentation

Les opérateurs mathématiques sont basés sur les commandes Tool Command Language TCL.1

arithmetic

FME Community

FME Community dispose d'une mine de connaissances sur FME, avec plus de 20 000 membres actifs dans le monde entier. Obtenez de l'aide sur FME, partagez vos connaissances et entrez en contact avec des utilisateurs du monde entier.

Voir tous les résultats à propos de ce Transformer sur FME Community.