AttributeManager
Modifie un ou plusieurs attributs en ajoutant, renommant, copiant, supprimant ou réordonnant. Définit les valeurs des attributs nouveaux, existants et modifiés à toute combinaison de constantes, de valeurs d'attributs, de valeurs conditionnelles, d'expressions et de paramètres. Les valeurs peuvent faire référence à des entités adjacentes.
Cas d'utilisations typiques
- Création d'un nouvel attribut et attribution d'une valeur par défaut ou de nouvelles valeurs.
- Modification d'attributs existants en les renommant et les supprimant.
- Réorganisation d'attributs
- Attribution de valeurs selon les entités qui entrent avant ou après l'entité en cours.
- Simplifier un traitement en regroupant plusieurs Transformers de manipulation d'attributs en un seul Transformer.
Comment fonctionne-t-il ?
Les attributs des entités entrantes sont présents dans une matrice de lignes et colonnes dans lesquelles vous pouvez effectuer différentes tâches, dont :
-
Créer, renommer ou supprimer des attributs
-
Paramétrer des valeurs et valeurs par défaut
-
Spécifier des types de schéma de données
Toutes les entités qui passent via ce Transformer sont modifiées selon les sélections faites dans ces paramètres.
Importer des attributs et des types de données
Le bouton Importer permet d'importer des noms d'attributs et/ou des types de données à partir de jeux de données existants ou de caches d'entités en amont (s'ils sont activés et en vigueur).
Les résultats de l'importation seront ajoutés ou mis à jour dans le tableau Actions d'attributs, et pourront être révisés. Ces modifications ne sont pas permanentes tant que l'on n'a pas cliqué sur le bouton OK.
Pour annuler les modifications apportées par une importation, utilisez le bouton Annuler pour quitter la boîte de dialogue des paramètres.
Filtrer les attributs
Lorsque vous travaillez avec des entités qui ont de nombreux attributs, il peut être pratique de réduire le nombre affiché. Cela peut être fait avec les options Filtre et Filtre Regex dans les contrôles du tableau.
Notez que l'utilisation de l'une ou l'autre des options de filtrage n'entraîne pas la suppression des attributs des entités - ils sont seulement masqués à l'affichage.
Exposer des attributs
Les attributs non exposés peuvent être rendus visibles en ajoutant leurs noms dans la colonne Attribut en entrée du tableau Actions sur les attributs, dans une nouvelle ligne. La validité des noms d'attributs ajoutés ici n'est pas testée.
L'exposition des attributs les rend visibles dans FME Workbench afin qu'ils puissent être utilisés ailleurs dans le traitement, ce qui est utile si vous savez que des entités ont un attribut, mais qu'il n'est pas actuellement affiché comme disponible dans votre traitement. Par exemple :
- Les attributs FME (fme_) et d'autres attributs spécifiques à des formats qui ne sont pas automatiquement exposés dans FME Workbench.
- Les entités générées par des Transformers comme SchemaMapper ajoutent dynamiquement des attributs aux entités dont FME Workbench n'a pas connaissance.
Exemples
Dans cet exemple, plusieurs attributs d'entités entrantes sont modifiés :
- GlobalID est renommé, modifiant la casse du nom d'attribut
- Un attribut non-désiré, REPRESENT, est supprimé.
- Les attributs X et Y sont créés et leurs valeurs sont assignées en extrayant la géométrie avec une fonction FME.
- UPDATEDBY est créé et défini selon la valeur fixe Smith.
- Tous les autres attributs restent inchangés.
Les attributs modifiés sont visibles dans le Transformer :
Les attributs d'entités adjacentes sont accessibles sous Avancé > Gestion des valeurs d'attributs. Lorsque cette option est activée, vous pouvez spécifier un certain nombre d'entités précédant et suivant l'entité actuelle à prendre en compte dans le calcul des nouvelles valeurs.
Supposons le jeu de données suivant :
ID |
Latitude |
Longitude |
---|---|---|
0 |
49.1640 |
-123.061 |
1 |
49.1643 |
-123.063 |
2 |
49.1642 |
-123.062 |
3 |
49.1642 |
-123.064 |
Si les paramètres Nombre d'entités précédentes et Nombre d'entités suivantes valent 2, alors quand la première entité est lue, AttributeManager accède aux entités suivantes :
Référence d'entités |
ID |
Latitude |
Longitude |
---|---|---|---|
entité[-2] |
<manquant> |
<manquant> |
<manquant> |
entité[-1] |
<manquant> |
<manquant> |
<manquant> |
entité actuelle |
0 |
49.1640 |
-123.061 |
entité[+1] |
1 |
49.1643 |
-123.063 |
entité[+2] |
2 |
49.1642 |
-123.062 |
Notez que certains attributs sont manquants car aucune entité précédant la première entité n'existe.
Après que la deuxième entité soit lue, la récupération des attributs d'entités précédentes et suivantes opère comme suit :
Référence d'entités |
ID |
Latitude |
Longitude |
---|---|---|---|
entité[-2] |
<manquant> |
<manquant> |
<manquant> |
entité[-1] |
0 |
49.1640 |
-123.061 |
entité actuelle |
1 |
49.1643 |
-123.063 |
entité[+1] |
2 |
49.1642 |
-123.062 |
entité[+2] |
3 |
49.1642 |
-123.064 |
Cette formule calcule la moyenne des latitudes des deux précédentes entités :
Les calculs faisant référence à des entités adjacentes peuvent être créés dans l'éditeur arithmétique et l'éditeur de texte. Ces éditeurs listeront d'abord les attributs de l'entité en cours de traitement, puis les entités précédentes, puis les entités suivantes.
Configuration
Ports d'entrée
Ce Transformer accepte tous types d'entités.
Ports de sortie
Entités dont les attributs sont modifiés en fonction des sélections de paramètres.
Paramètres
Remplacer les valeurs manquantes, nulles ou vides |
Spécifie le comportement souhaité lorsque l'attribut référencé n'existe pas, a une valeur null ou une chaîne de caractères vide. Ces attributs peuvent être considérés comme des attributs non résolus. Par exemple, comme il n'y a pas d'entités avant la première entité en entrée, l'AttributeManager ne parviendra pas à résoudre la valeur de feature[-1].AttrName pour la première entité en entrée. Si ce paramètre est défini sur Pas de substitution, l'AttributeManager résoudra tous les attributs non résolus avec une chaîne vide s'ils sont utilisés dans une expression plus importante. Si l'attribut non résolu est attribué directement et ne fait pas partie d'une expression plus large, l'attribut de sortie sera non résolu de la même manière. Par exemple, si B est manquant et que A est défini comme @Value(B), alors A sera également manquant. Mais si A est défini comme "B = @Value(B)", A aura la valeur"B = ".. Comme autre exemple, si la valeur de l'entité[+2].AttrName est une chaîne vide et si la Valeur par défaut est spécifiée, alors la chaîne vide sera traitée comme un attribut "Unresolved" et sera remplacée par la valeur de substitution. Si ce paramètre a pour valeur Entité adjacente la plus proche, les attributs non résolus seront résolus comme l'attribut correspondant de l'entité la plus proche, si une telle entité existe. Lors de la recherche des entités les plus proches, les entités ayant des attributs non résolus sont ignorées. Si une entité antérieure ou ultérieure possède des attributs non résolus, il est possible que l'entité actuelle soit utilisée pour résoudre les attributs manquants. Par exemple, si la valeur de feature[-2].AttrName n'est pas résolue, pour la résoudre, l'AttributeManager examinera les entités les plus proches de feature[-2], en alternant entre les entités antérieures et postérieures à feature[-2]. Il examinera d'abord l'entité [-3].AttrName, puis l'entité [-1].AttrName si nécessaire, et enfin l'entité [-4].AttrName si nécessaire, jusqu'à ce que toutes les entités antérieures et postérieures spécifiées aient été épuisées. Si l'attribut reste "unresolved", alors il sera remplacé par la valeur saisie dans le paramètre Valeur par défaut. |
Valeur par défaut |
Ce paramètre spécifie la valeur à utiliser pour remplir les attributs dans les cas suivants :
|
Récupérer les attributs des entités précédentes/suivantes
Quand activé, vous pouvez définir une valeur d'attribut (dans la table Actions d'attribut) selon les attributs des entités précédentes ou suivantes de l'entité actuelle en les référençant de la manière suivante :
- Les attributs des entités précédentes sont définis ainsi : entité[-1].AttrName, entité[-2].AttrName, etc.
- Les attributs des entités suivantes sont définis ainsi : entité[+1].AttrName, entité[+2].AttrName, etc.
- Les attributs de l'entité en cours de traitement n'ont pas de préfixe et prennent donc la forme AttrName.
Lors de la récupération de valeur d'une entité précédente, tout changement effectué par AttributeManager sur l'entité prendra effet.
Nombre d'entités précédentes |
Ce paramètre spécifie le nombre d'entités précédant l'entité de référence devant être exploitées par AttributeManager. Si le support de plusieurs attributs d'entités est activé, ce paramètre doit être compris entre 0 et 100. Comme les entités supplémentaires doivent être lues pour chaque entité traitée, définir uniquement le nombre maximum d'entités devant être récupérées améliore les performances. |
Nombre d'entités suivantes |
Ce paramètre spécifie le nombre d'entités suivant l'entité de référence pouvant être exploitées par AttributeManager. Si le support de plusieurs attributs d'entités est activé, ce paramètre doit être compris entre 0 et 100. Comme les entités supplémentaires doivent être lues pour chaque entité traitée, définir uniquement le nombre maximum d'entités devant être récupérées améliore les performances. |
Lorsqu'un Transformer AttributeManager est connecté et ouvert pour la première fois, cette matrice est automatiquement remplie avec les attributs des entités entrantes tels qu'ils existent actuellement. Elle s'ajustera également de manière dynamique pour refléter les changements d'attributs en amont dans le traitement.
Par défaut, les actions sont définies sur "Ne rien faire" et passent par les entités sans être modifiées. Lorsque vous apportez des modifications aux éléments individuels, FME interprète l'action appropriée en fonction de vos entrées. L'action peut être remplacée manuellement, mais vous ne devriez généralement pas avoir à l'ajuster.
Attribut en entrée |
Lorsque le Transformer est ouvert pour la première fois, cette colonne est remplie avec la liste complète des attributs exposés envoyés au port d'entrée. Ce champ n'est pas éditable, mais sera mis à jour pour refléter les changements effectués dans le traitement. Lorsque de nouveaux attributs sont créés, ce champ reste vide. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attribut en sortie |
Par défaut, les attributs en sortie correspondent aux attributs en entrée. Vous pouvez :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Valeur |
Par défaut, la valeur de l'attribut est vide, laissant les entités inchangées. Vous pouvez définir de nouvelles valeurs ici en cliquant dans la ligne appropriée et :
Consulter la section Définir des valeurs pour obtenir plus de détails sur ces options. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Méthode |
Spécifiez le type de données de l'attribut. Le bouton ellipse ouvre une boîte de dialogue de définition du type d'attribut, qui peut vous aider à définir le type, la largeur et la précision (si nécessaire). Paramètre un Type ne requiert pas une Action. L'attribut est étiqueté avec les informations de type spécifiées, mais les limitations de type ne sont pas appliquées aux valeurs à ce stade, et des inadéquations entre le type et la valeur sont donc possibles. Le type peut être imposé ailleurs dans le traitement, par exemple dans les Writers ou en utilisant un AttributeValidator ou un Tester pour vérifier les valeurs par rapport au type. Les types de données disponibles comprennent :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Action
|
Par défaut, l'Action est réglée sur "Ne rien faire", laissant les entités inchangées. Lorsque vous modifiez les paramètres, l'action s'ajuste automatiquement pour refléter le résultat approprié, qui peut être remplacé manuellement dans certains cas. Les actions disponibles sont les suivantes : Définir la valeur : Définit l'attribut à la valeur spécifiée dans la colonne Valeur d'attribut. Écrase les valeurs d'attribut existantes. Ne rien faire : Laisse les attributs inchangés. Renommer: Renomme l'attribut avec le nom spécifié dans la colonne Attribut en sortie. Supprimer : Supprime l'attribut du schéma. Définir la valeur par défaut : affecte la valeur spécifiée pour l'attribut aux entités où l'attribut est absent. N'écrase pas les valeurs actuelles, y compris les valeurs nulles. NOTE :
|
Outils de tableau
Filter
|
Réduit le nombre de lignes de tableau affichées en utilisant la correspondance alphanumérique ou des expressions régulières. Le Filtre n'affichera que les attributs dont la colonne de la table Actions d'attributs contient les caractères saisis, et n'est pas sensible à la casse. Le Filtre Regex n'affichera que les attributs dont l'une des colonnes du tableau Actions sur les attributs correspond à une expression régulière - qui peut être aussi simple qu'une série spécifique de caractères, ou aussi complexe que vous le souhaitez, en utilisant la syntaxe avancée des expressions régulières. Lorsque le Filtre Regex est sélectionné, le bouton ellipse permet d'accéder à l'éditeur d'expressions régulières qui comprend une référence syntaxique et un test d'expression. La correspondance n'est pas sensible à la casse. |
Importer |
Importer des noms d'attributs et/ou des types de données à partir de jeux de données existants ou de caches d'entités. |
|
Nettoyer le tableau Actions d'attribut en supprimant les lignes invalides ou en réinitialisant le tableau complètement pour correspondre aux entités en entrée. |
É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.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au traitement peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
Références
Comportement |
Basé sur les entités
|
Stockage des entités |
Non |
Dépendances | Aucun |
Alias | |
Historique | Implémenté dans FME 2016.0 |
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.
Les exemples peuvent contenir des informations sous licence Open Government - Vancouver et/ou Open Government - Canada.