La publication des paramètres dans FME et GTF Fiche technique VEREMES 42 av. des Jardins 66240 St-Estève www.veremes.com La publication des paramètres dans FME et GTF
Titre du document Emetteur Référence commerciale La publication des paramètres dans FME et GTF - Fiche technique Veremes ft Date de publication 17/09/2012 Nombre de page 23 Auteur Fonction Organisme Téléphone Fax e-mail Visa Olivier Gayte Directeur technique Veremes 04-68-38-65-27 olivier.gayte@veremes.com Diffusion Liste des versions et révisions Version Révision Date Objet de la modification 1 0 17/09/2012 Original La publication des paramètres dans FME et GTF Page : 2 / 23
Table des matières 1. Les paramètres dans FME... 4 2. Paramètres publiés... 5 2.1 Publication des paramètres... 5 2.1.1 Publication à partir de l'onglet navigateur... 5 2.1.2 Publication à partir des Transformers... 6 2.1.3 Création de paramètres utilisateurs... 7 2.1.4 Suppression d'un paramètre publié... 9 2.1.5 Ordre des paramètres publiés... 10 2.2 Exécution d'un traitement... 10 2.2.1 FME Quick-Translator... 10 2.2.2 FME Workbench... 10 2.2.3 fme.exe... 11 2.2.4 GTF... 12 2.2.5 FME Server... 13 2.2.6 Paramètres privés... 14 3. Les types de paramètres utilisateurs...16 4. Support des paramètres publiés par GTF...22 La publication des paramètres dans FME et GTF 3 / 23
1. Les paramètres dans FME On appelle Paramètres toutes les caractéristiques des jeux de données et des Transformers modifiables par le concepteur du traitement dans FME Workbench. Tous les paramètres disponibles dans un projet sont visibles dans l'onglet Navigateur de Workbench. En fonction de son statut ou de son état, chaque paramètre est associé à l'une des icones suivantes : Paramètre de jeu de données ou de Transformer (non publié) Paramètre de Transformer, obligatoire et non défini (non publié) Paramètre du projet (non publié) Système de coordonnées Paramètre publié public Paramètre publié privé La notion de MACRO que l'on trouve parfois dans la documentation de FME ou dans les fichiers de contrôle.fme est équivalente à celle de Paramètre. Figure 1 : Paramètres dans l'onglet Navigateur de FME-Workbench La publication des paramètres dans FME et GTF 4 / 23
2. Paramètres publiés Les paramètres publiés sont des paramètres qui peuvent être modifiés par l'utilisateur lorsqu'il demande l'exécution du traitement. Les paramètres publiés se reconnaissent à leur icone violette dans l'onglet Navigateur de FME-Workbench. Tous les paramètres publiés sont également regroupés dans la section "Paramètres publiés". Un même paramètre peut donc être visible deux fois dans l'onglet navigateur : associé à son jeu de données ou à son Transformer et dans la liste des paramètres publiés. Figure 2 : Liste des paramètres publiés Certains paramètres sont automatiquement publiés par FME-Workbench lors de la conception du traitement. C'est notamment le cas du nom et de la localisation des jeux de données source et destination. 2.1 Publication des paramètres Il y a plusieurs techniques de publication des paramètres qui sont apparues au cours des versions successives de FME. Chaque technique est particulièrement adaptée à un cas d'utilisation. 2.1.1 Publication à partir de l'onglet navigateur C'est la méthode la plus simple. Il suffit de faire un clic droit sur le nom du paramètre et de choisir l'option "Publier le paramètre". Figure 3 : Publication d'un paramètre à partir de l'onglet Navigateur La publication des paramètres dans FME et GTF 5 / 23
Figure 4 : Définition d'un paramètre publié Il est alors nécessaire de saisir les informations suivantes : Type Nom Libellé Configuration Valeur par défaut Publié (Public) Optionnel Spécifie le type de données pouvant être affecté au paramètre. On trouve des types de base : flottant, entier, texte, texte multi-ligne ou des types complexes correspondant plutôt à l'interface graphique devant être présentée à l'utilisateur : choix, choix multiple, curseur... Le nom du paramètre doit être unique, sans espace ni caractère accentué. Il est exploité uniquement lors de l'appel du traitement en ligne de commande ou sous forme de service web (gtf, fme-server). FME-Workbench attribue toujours une valeur par défaut au nom du paramètre mais celle-ci est souvent longue et complexe (mélange de minuscules et de majuscules). Pour utiliser le traitement en ligne de commande ou service web nous recommandons de renommer le paramètre en suivant une règle de nommage, par exemple : utilisation exclusive de caractères en minuscule et sans "_" entre les mots constituants le nom du paramètre. xmin remplacera ainsi SHAPE_IN_SEARCH_ENVELOPE_MINX_SHAPE Texte qui sera présenté à l'utilisateur lors de l'exécution du traitement en mode graphique (quick-translator, workbench, gtf, fme-server). Propre à certains types de paramètres. Permet par exemple de définir des listes de valeurs ou des alias. Valeur qui sera utilisée si le paramètre n'est pas défini au moment de l'exécution, ce qui peut-être le cas en ligne de commande ou service web. [oui non] Les paramètres qui ne sont pas définis comme publiés deviennent des paramètres privés masqués aux utilisateurs finaux. cf. Paramètres privés. [oui non] Si le paramètre est optionnel, le projet peut être exécuté sans que sa valeur soit spécifiée. Dans ce cas, c'est sa valeur par défaut qui est utilisée. Si le paramètre est obligatoire, le projet ne peut être exécuté ou génère une erreur fatale si sa valeur n'est pas définie au moment de l'exécution. 2.1.2 Publication à partir des Transformers Depuis FME 2012, il est possible de publier un paramètre directement à partir de l'interface de saisie des paramètres d'un Transformer. La publication des paramètres dans FME et GTF 6 / 23
Figure 5 : Publication d'un paramètre à partir d'un Transformer Cette méthode est particulièrement pratique pour certaines Transformers tels que Tester dont la complexité rend délicate la publication des paramètres. Cependant, cette méthode manque de clarté (on ne sait pas comment est exploité le paramètre) ce qui rend difficile un éventuel débogage et elle ne permet pas de spécifier le type de paramètre à créer. L'utilisation d'un paramètre utilisateur, éventuellement associé à ParameterFetcher est une alternative en cas de problème. 2.1.3 Création de paramètres utilisateurs Un paramètre utilisateur est un paramètre publié qui n'est lié, par défaut, à aucun jeu de données ni transformer. Au moment de sa création, un paramètre utilisateur ne sert donc à rien d'autre qu'à définir une interface graphique pouvant être présentée à l'utilisateur. C'est un composant graphique permettant de stocker une valeur saisie par l'utilisateur au moment de l'exécution. Pour être réellement utile un paramètre utilisateur doit donc être associé à un paramètre réel de jeu de données ou de Transformer. CREATION D'UN PARAMETRE UTILISATEUR Il suffit de faire un clic droit sur la section "Paramètres publiés" de l'onglet Navigateur pour accéder au menu "Ajouter un paramètre publié...". La publication des paramètres dans FME et GTF 7 / 23
Figure 6 : Création d'un paramètre Utilisateur Figure 7 : Edition d'un paramètre Utilisateur AFFECTATION L'affectation s'effectue à partir du paramètre qui doit recevoir la valeur du paramètre publié. Par exemple, pour donner la possibilité à un utilisateur d'exporter des données vers trois systèmes de coordonnées uniquement. La procédure est la suivante : 1. Créer un paramètre utilisateur de type Choix, donnant la liste des trois systèmes 2. Affecter au système de coordonnées du jeu de données destination, la valeur du paramètre précédant (clic droit, Définir comme paramètre publié, puis choix du paramètre publié) Figure 8 : Association d'un paramètre avec un paramètre publié Figure 9 : Association d'un paramètre avec un paramètre publié - 2 AFFECTATION MULTIPLE Il est également possible d'affecter plusieurs paramètres à un paramètre utilisateur en une seule opération. Ceci est particulièrement appréciable pour les projets utilisant des bases de données et où les couples login/password doivent être affectés à plusieurs jeux de données et/ou Transformers. La publication des paramètres dans FME et GTF 8 / 23
Pour cela, il suffit de faire un clic droit sur le paramètre Utilisateur et de choisir l'option "Appliquer à..." Figure 10 : Affectation multiple d'un paramètre Utilisateur 2.1.4 Suppression d'un paramètre publié Il est possible de supprimer la relation entre un paramètre et un paramètre publié en faisant un clic droit sur le paramètre. Figure 11 : Suppression de la relation entre paramètre et paramètre publié Il est également possible de supprimer la définition d'un paramètre publié en faisant un clic droit sur le paramètre dans la section Paramètres publiés de l'onglet Navigateur. Figure 12 : Suppression d'un paramètre publié La publication des paramètres dans FME et GTF 9 / 23
2.1.5 Ordre des paramètres publiés L'ordre des paramètres dans la section "Paramètres publiés" du navigateur définit directement l'ordre d'affichage de ces paramètres dans l'interface graphique. Il est possible de modifier directement cet ordre en déplaçant les paramètres à la souris ou par un clic droit + "déplacer vers le haut/bas". 2.2 Exécution d'un traitement L'interface fournie à l'utilisateur pour spécifier la valeur des paramètres publiés dépend de l'application utilisée : FME Quick-Translator, FME-Workbench, GTF, FME-Server ou fme.exe 2.2.1 FME Quick-Translator FME Quick-Translator est un moyen simple de mettre en production un traitement destiné à des utilisateurs métiers n'utilisant pas FME Workbench. Par cela, il suffit de sauvegarder le projet Workbench au format "Fichier de contrôle.fme" ou tout simplement de renommer le fichier projet ".fmw" en ".fme". Attention! Veillez à ne pas écraser votre fichier.fmw source au cours de cette opération, votre projet serait définitivement perdu. L'exécution du fichier ".fme", par un double-clic par exemple entraîne le lancement de FME Quick Translator et l'affichage de l'interface graphique. Figure 13 : Interface graphique du traitement dans FME Quick-Translator Notez que les paramètres obligatoires et non définis apparaissent en rose. Le bouton OK n'est accessible que lorsque tous les paramètres obligatoires ont été saisis. Le paramètre Fichier(s) shp Source permet de saisir un ou plusieurs fichiers au format shp ou même de sélectionner un répertoire et un motif de fichier à traiter. Le paramètre "Région" de type CHOIX apparait sous forme de liste déroulante. Le paramètre de type "password" ne montre pas les caractères saisis. Le paramètre de type "flottant" (Largeur de la zone tampon) permet la saisie de caractères alphanumériques mais le bouton ok reste inactif tant que la valeur saisie n'est pas de type numérique. Le paramètre système de coordonnées permet d'afficher tous les systèmes reconnus par FME. 2.2.2 FME Workbench Pour exécuter un traitement en modifiant les paramètres publiés dans FME-Workbench, il faut simplement cliquer sur le bouton ou faire Fichier->Exécuter le traitement. La publication des paramètres dans FME et GTF 10 / 23
A quelques détails près, les paramètres sont présentés de la même manière que dans FME Quick-Translator. Figure 14 : Interface graphique du traitement dans FME Workbench 2.2.3 fme.exe L'exécution en ligne de commande ne présente pas d'interface graphique permettant la saisie des paramètres. Ceux-ci doivent donc être définis directement sur la ligne de commande selon la syntaxe. fme.exe <controlfile> [<keyword> <value>]* [--<macroname> <value>]* où : fme.exe <controlfile> <keyword> <value> <macroname> désigne l'emplacement et le nom du moteur fme à utiliser désigne l'emplacement et le nom du projet.fme ou.fmw désigne un mot-clef. Ceux-ci sont définis dans le document "FME Fundamentals". Les deux mots-clefs les plus utiles sont LOG_FILENAME et LOG_APPEND qui permettent de définir l'emplacement du fichier de log et son mode d'écriture (écrasement ou ajout). désigne la valeur d'un mot-clef ou d'un paramètre. Nous conseillons de protéger systématiquement les valeurs par des caractères double-côte ". Nom du paramètre. Notez que le nom du paramètre doit être préfixé par deux tirets. Il peut y avoir un nombre quelconque de couples --parametre "valeur" sur une ligne de commande. Chaque paramètre obligatoire doit être défini, les autres sont facultatifs. Figure 15 : Exemple d'appel en ligne de commande La publication des paramètres dans FME et GTF 11 / 23
Figure 16 : Erreur lors de l'exécution en ligne de commande, paramètre obligatoire non défini 2.2.4 GTF L'interface utilisateur du même traitement publié par GTF montre que le paramètre "source" n'est pas pris en compte. Avant de publier un traitement FME dans GTF, il est en effet nécessaire de supprimer les paramètres correspondants aux jeux de données source et de les remplacer par un unique paramètre utilisateur de type "Nom de fichier (existant)" ou éventuellement de type "Répertoire (Source)" s'il y a plusieurs jeux de données source à traiter. Les paramètres de type Nom de fichier (existant) permettent en effet de spécifier l'extension des fichiers à utiliser comme source du traitement, ce qui n'est pas possible avec les paramètres d'origine. Une fois modifié, le projet peut-être exécuté normalement, sous FME, FME-Server, en ligne de commande et sur GTF. La publication des paramètres dans FME et GTF 12 / 23
Figure 17 : Paramètres publiées visibles dans gtf.pro Le paramètre source permet de localiser un fichier ou une archive.zip sur son disque et de l'envoyer sur le serveur. Le paramètre de type CHOIX est affiché sous la forme d'une liste déroulante. Le mot de passe ne montre pas les caractères saisis. Le paramètre de type système de coordonnées montre une liste déroulante correspondant aux systèmes utilisés sur le site et définis par l'administrateur dans un fichier de configuration. Le répertoire de destination est converti en simple champ de type texte. Celui-ci ne doit en effet contenir avec GTF que le nom du répertoire contenant le résultat et non toute l'arborescence. 2.2.5 FME Server L'image ci-dessous montre l'interface graphique proposée par FME-Server pour la saisie des paramètres publiés. Pour saisir le champ Fichier(s) shp Source, il est nécessaire d'uploader un fichier zip, puis de sélectionner le ou les fichier à traiter. Le paramètre de type CHOIX permet d'accéder à une liste déroulante. Le mot de passe ne montre pas les caractères saisis. Le paramètre de type Système de coordonnées est une zone de texte libre. La publication des paramètres dans FME et GTF 13 / 23
Le répertoire de destination est converti en simple champ de type texte. Celui-ci ne doit en effet contenir avec FME-Server que le nom du répertoire contenant le résultat et non toute l'arborescence. 2.2.6 Paramètres privés Les paramètres privés permettent de partager des valeurs communes entre plusieurs Transformers mais sans les rendre visibles ni modifiables par les utilisateurs. C'est par exemple intéressant pour gérer de manière unique les paramètres de connexion à une base de données dans un traitement comprenant de nombreux SqlExecutor. Il existe également deux paramètres privés un peu particulier : "script (python)" et "script (tcl)" permettent de calculer la valeur d'un paramètre à partir de code Python ou Tcl. qui Ces scripts sont très utiles pour faire des opérations sur d'autres paramètres, notamment des noms de fichiers. Par exemple, le code python suivant permet d'affecter au paramètre sourcedir, le répertoire du fichier identifié par le paramètre "sourcefile' : Figure 18: Exemple de paramètre de type script (python) import os return os.path.dirname(fme_macrovalues['sourcefile']) Autres exemples : Calcul du chemin vers un projet grid2geotiff.fmw situé dans le même répertoire que le projet en cours d'exécution. return FME_MacroValues['FME_MF_DIR_UNIX'] + '/grid2geotiff.fmw' Calcul du chemin du fichier destination à partir du répertoire destination et du nom du fichier source. import os sourcebasename = os.path.basename(fme_macrovalues['sourcefile']) return FME_MacroValues['destDir'] + '/' + sourcebasename Renvoie la 1ère ligne contenue dans le fichier dont l'emplacement est défini dans le paramètre sourcefile import fmeobjects sourcefile = str(fme_macrovalues['sourcefile']) f = open(sourcefile, 'r') La publication des paramètres dans FME et GTF 14 / 23
source = f.readline() f.close return source La publication des paramètres dans FME et GTF 15 / 23
3. Les types de paramètres utilisateurs Choix Type Exemple Choix (Multiple) Choix avec Alias La publication des paramètres dans FME et GTF 16 / 23
Choix avec Alias (Multiple) Choix de la couleur Choix ou texte La publication des paramètres dans FME et GTF 17 / 23
Curseur Entier Flottant Mot de passe Nom de fichier (existant) La publication des paramètres dans FME et GTF 18 / 23
Nom du système de coordonnées Nom du fichier (en sortie) Répertoire (Source) La publication des paramètres dans FME et GTF 19 / 23
Répertoire sortie) (en La publication des paramètres dans FME et GTF 20 / 23
Script (Python) Script (Tcl) Texte Texte (Multiligne) La publication des paramètres dans FME et GTF 21 / 23
4. Transformers utiles 4.1.1 ParameterFetcher Permet de récupérer la valeur d'un paramètre publié dans un attribut. Figure 19! ParameterFetcher La publication des paramètres dans FME et GTF 22 / 23
5. Support des paramètres publiés par GTF Types de paramètres publiés de FME 2012 Choix Choix multiple Choix ou texte Choix avec alias Choix multiple avec alias Couleur Système de coordonnées Répertoire (en sortie) Répertoire (source) Nom de fichier (existant) Nom de fichier (en sortie) Flottant Entier Mot de passe Curseur Texte Texte multi-ligne Support par GTF 2012_04 Oui Oui Oui Oui Non Non Oui Oui Non Oui (1 seul paramètre) Oui Oui Oui Oui Non Oui Non La publication des paramètres dans FME et GTF 23 / 23