ExpressionEvaluator

Effectue un calcul mathématique sur une expression composée de fonctions d'entité FME, de fonctions de chaîne, de fonctions mathématiques et d'opérateurs mathématiques. Les opérandes et les arguments de fonction sont constitués d'attributs de 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 Community 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

À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments de traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.

Définir les valeurs

Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres de traitement. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.

Options - Tables

Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.

Implémentation

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

arithmetic

FME Community

FME Community est l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.

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