Opérations sur les attributs de liste
Les Transformers de listes permettent de travailler avec des attributs de type liste.
Consulter la catégorie Liste dans la Galerie des Transformers.
Convertir des éléments de liste en attributs réguliers.
Vous pouvez utiliser ListIndexer pour transformer les éléments d'une liste en attributs. L'index peut être un nombre fourni directement ou extrait à partir d'un attribut de l'entité.
Par exemple, si une entité contient les attributs suivants :
overlaps{0}.direction -1
overlaps{0}.line_id 50
overlaps{1}.direction 1
overlaps{1}.line_id 22
overlaps{2}.direction 1
overlaps{2}.line_id 40
overlaps{3}.direction -1
overlaps{3}.line_id 12
et qu'elle passe dans le Transformer ListIndexer avec un index de 2, alors les entités ressortiront avec ces attributs :
direction 1
line_id 40
overlaps{0}.direction -1
overlaps{0}.line_id 50
overlaps{1}.direction 1
overlaps{1}.line_id 22
overlaps{2}.direction 1
overlaps{2}.line_id 40
overlaps{3}.direction -1
overlaps{3}.line_id 12
Notez que la liste elle-même n'a pas changé mais les attributs de l'index 2 sont devenus des attributs réguliers.
Autres opérations de listes
Exemples de traitements possibles de listes :
- Recherche de valeur dans une liste (ListSearcher).
- Compter le nombre d'éléments dans une liste (ListElementCounter).
- Concaténer tous les éléments d'une liste dans un seul attribut (ListConcatenator).
- Eclater une liste en créant de nouvelles entités pour chaque élément d'une liste (ListExploder).
ListExploder est parfois utilisé pour écrire de nouvelles entités dans une table de base de données relationnelle. De cette façon, la nature de 1 à plusieurs du modèle de données peut être préservée en écrivant l'entité originale dans une table, et les entités de la liste éclatée dans une autre table. Tant qu'il existe un champ clé pouvant être utilisé pour les réunir, la relation est maintenue. En outre, il n'est pas nécessaire que le format utilisé pour stocker les éléments de la liste soit le même que celui utilisé pour stocker l'entité principale. Très souvent, les enregistrements des éléments de la liste éclatée sont stockés dans une table de base de données et l'entité principale est stockée dans un SIG ou un système de CAO.
On utilise aussi ListExploder pour faire des copies d'entités pour chaque élément de liste, puis ces copies peuvent ensuite être triées selon certains critères (tels que la longueur ou la superficie). Les éléments peuvent passer ensuite via DuplicateRemover pour sélectionner l'unique élément le plus grand ou le plus petit.
Voir un exemple de résolution de problème
Autres considérations
Lors d'opérations sur des listes, garder en tête :
- Les attributs de liste peuvent être affichés dans le Transformer Inspector, ou lié à un Logger.
- Supprimez les listes, surtout celles qui contiennent de nombreux éléments, dès que vous en avez terminé. Vous économiserez ainsi de la mémoire et du temps de traitement et réduirez l'encombrement de votre traitement.
- Très peu de formats de sortie offrent un support pour les listes. Dans la plupart des cas, si vous souhaitez sortir les données dans un tel format, vous devrez d'abord gérer la liste.