# 1 Bienvenue dans GTF

GTF (Gestionnaire de Tâches pour FME) est une application 100% web qui permet de publier sur internet des traitements conçus avec FME et de les mettre à disposition d’un grand nombre d’utilisateurs. C’est un outil de partage, de planification et de supervision de traitements FME.

GTF offre des fonctions d’administration pour la création et la gestion des utilisateurs et l’attribution des droits sur les traitements.

GTF est particulièrement bien adapté pour répondre à des besoins de :

conversion de fichiers

- extraction de données
- contrôle qualité
- génération de rapport
- gestion d’alertes

GTF se compose d’une application cliente, d’une API REST qui permet d'exploiter GTF sous forme de service web et d'une API Formulaire :

- GTF Client permet à l’administrateur de publier des traitements préalablement conçus avec FME Workbench. Par cette interface, l’administrateur gère les utilisateurs en leur attribuant des droits sur les traitements publiés, et peut également s'appuyer sur un annuaire MS-Active Directory pour assurer l'authentification et la gestion des droits. Il dispose par ailleurs de fonctions de supervision et de consultation de statistiques. Les utilisateurs soumettent des demandes de traitements, chargent leurs propres données et téléchargent les résultats. Les traitements sont exécutés en mode asynchrone ce qui permet aux utilisateurs de continuer à travailler sans attendre la fin du traitement. Un e-mail avertit l'utilisateur de la disponibilité du résultat. GTF Client permet également de s’abonner à un traitement à la fréquence souhaitée pour automatiser la production d'un traitement.

- L'API REST de GTF permet à n'importe quelle application de faire appel aux services de GTF de manière transparente pour les utilisateurs. C'est la solution idéale pour les développeurs souhaitant offrir leur propre interface graphique.

- L'API Formulaire permet de mettre en forme le formulaire de saisie des paramètres en intégrant des composants (cartes open layer, arborescences de fichiers…)

# 2 Les composants logiciels de GTF

L'architecture de GTF est constituée de plusieurs composants logiciels.

Composants | Description
GTF client | Applications Web permettant aux utilisateurs l’accès aux services GTF
Apache HTTPD | Logiciel serveur HTTP.
PHP | Langage de programmation
PostgreSQL | Système de gestion de base de données relationnelle utilisé pour le stockage des informations : demandes de traitements, traitements publiés, droits des utilisateurs...
PYCRON | Service Windows assurant l'exécution de tâches planifiées.
GTF Engine | GTF Engine désigne le moteur de GTF, la partie logicielle capable d’exécuter les traitements FME. GTF exploite au minimum un moteur GTF. Les moteurs supplémentaires permettent de répartir la charge sur plusieurs process ou machines. L'ajout de moteurs supplémentaires et soumis à l'acquisition des licences correspondantes.
FME | Logiciel FME Professional Edition ou supérieure en licence fixe ou flottante. FME ne fait pas partie du logiciel GTF, mais il est indispensable à son fonctionnement.

# 3 Installation de GTF

Pour installer GTF, il faut télécharger l'installeur sur le site http://download.veremes.com, dans le répertoire gtf. Les codes d'accès (login et password) sont fournis par e-mail à la suite d'une commande ou demande d'évaluation. Ces informations peuvent être renvoyées sur simple demande à codes@veremes.com.

L'installeur existe sous deux formes, pour machine 32 et 64 bits.

Le logiciel Apache httpd est installé avec GTF. Si Apache est déjà présent sur le serveur il est nécessaire d'utiliser un port différent : 81, 82... Pycron est installé automatiquement avec GTF.

Le logiciel SGBD Postgresql peut ne pas être installé avec GTF. Dans ce cas, il est nécessaire d'exploiter une instance existante sur le même serveur ou sur une autre machine. La procédure d'installation automatique doit alors être complétée par une procédure manuelle qui est détaillée dans le rapport d'installation.

Un rapport est généré automatiquement à la fin de l'installation. Il fournit des informations importantes sur la configuration de GTF et sur des éventuelles actions nécessaires pour finaliser l'installation.

En cas de difficultés contactez support@veremes.com

# 4 Initialisation de GTF

Après exécution de l’installeur, l’administrateur doit procéder à l’initialisation de l’application, c’est à dire à l’installation des moteurs FME et GTF en charge de l’exécution des traitements.

Il se connecte à GTF dans le menu Démarrer> Programmes > GTF Client en utilisant les paramètres de connexion du compte administrateur définis lors de l’installation de l’application.

Pour commencer, l’administrateur valide les paramètres relatifs au serveur dans le Mode Moteur > Onglet Serveur. Il s’assure que le serveur localhost (serveur installé par défaut par l’installeur) soit bien déclaré et que les répertoires Pycron et gtf.engines sont bien associés au serveur.

Pour initialiser l’application, l’administrateur doit ensuite procéder aux deux étapes suivantes :

- Déclaration du(es) moteur(s) FME
- Déclaration du(es) moteur(s) GTF

## 4.1 Ajout de moteur(s) FME

Un moteur FME est l’instance de FME en charge de l’exécution des projets. GTF permet d’exploiter différents moteurs hétérogènes. On peut ainsi exploiter un moteur FME 2012 en 32 bits et une instance de FME 2013 en 64 bits.

La première étape consiste à déclarer un moteur FME exploitable par GTF. Dans le mode Moteurs > Onglet Moteur FME, l’administrateur nomme le moteur, indique le chemin du moteur fme.exe et lui associe le serveur désiré. Notez que la valeur du serveur ‘localhost’ est proposée par défaut dans la liste déroulante.

Il est fortement conseillé de nommer le moteur FME en indiquant le numéro de version, le Service Pack, le numéro de build et le nombre de bits. Par exemple : « FME 2013 SP2 b13499 32b ».

L’administrateur clique ensuite sur ‘Créer’. Un bouton ‘Test’ permet de vérifier le bon déroulement de la déclaration du moteur FME. Notez que le nom exact de FME apparaît : il est alors possible de renommer le moteur en respectant la syntaxe retournée par le test.

## 4.2 Ajout de moteur(s) GTF

On entend par Moteur GTF la capacité d’exploiter un moteur FME dans GTF. La création d’un Moteur GTF permet d’associer à un serveur un moteur et de définir une période de déclenchement de l’activité spécifique. Un moteur GTF est associé à un seul moteur FME mais plusieurs moteurs GTF peuvent exploiter le même moteur FME.

L’ajout de moteurs GTF supplémentaires permet à l’administrateur d’appliquer une stratégie de traitement de projets en spécialisant par exemple certains moteurs et en permettant la parallélisation des traitements.

Dans le mode Moteurs > Onglet Moteur GTF, le bouton « Ajouter moteur GTF » ouvre le formulaire de création de moteur GTF.

L’administrateur attribue un nom au moteur GTF et définit la période d’activité en minutes de ce dernier (période de déclenchement du moteur). Il peut choisir de rendre inactif ce moteur, puis choisit le serveur et le moteur FME à associer. Il associe ensuite un ou plusieurs mots clés au moteur.

> Associer un ou plusieurs mots clés à un moteur permet à l'administrateur de mettre en place une stratégie de distribution des traitements sur plusieurs moteurs GTF : quand un utilisateur crée une demande de traitement, un moteur spécifique est spécifiquement attributé. Chaque moteur GTF est associé à un ou plusieurs mots clés. Associer un ou plusieurs mots clés à un moteur GTF permet à l’administrateur de mettre en place une stratégie de spécialisation des moteurs. Chaque projet FME est ensuite associé à un mot clé. L'affiliation d'un projet à un moteur GTF se fait ainsi à partir de mots clés.

> L'administrateur peut choisir des mots clés existants et déjà affiliés à d'autres moteurs dans la partie de gauche 'Mots clés disponibles', ou saisir directement le nom d'un nouveau mot clé dans le bloc de droite 'Mot clé lié au moteur'.

Il est recommandé de nommer le moteur GTF selon cette règle : ID (auto)_ FME Version Service Pack. Par exemple : « #3 FME 2013 SP 3 ».

Il clique ensuite sur le bouton ’Créer’pour finaliser la création du moteur GTF.

## 4.3 Activation du fichier de licence

Dans le mode Configuration, la section Licence permet de demander un fichier de licence nécessaire pour activer les licences permanentes.

Le bouton « Demande de fichier de licence » permet d’envoyer par mail une demande de génération de fichier de licence. Indiquer le numéro de licence fourni dans l’accusé de réception de votre commande, ainsi que l’adresse mail à laquelle le fichier doit être envoyé.

Une fois obtenu, indiquer l’emplacement du fichier de licence délivré par Veremes puis cliquer sur « Activer ».

## 4.4 Test : Import de nouveaux traitements

### 4.4.1 Import des traitements exemples

A ce stade, pour s’assurer du bon fonctionnement de GTF, il est recommandé de procéder à l’import de nouveaux traitements. Pour cela, Veremes met à disposition sur son site de téléchargement des projets exemples au format .gex.

Le projet 'Admin_Import' (associé au groupe Administration et installé automatiquement lors de l’installation de GTF) permet l’import de nouveaux traitements stockés dans un fichier .gex. Télécharger le fichier «exemples.gex» sur notre site de téléchargement. http://download.veremes.com (répertoire gtf/gex)

Se connecter à GTF (compte administrateur) puis ajouter une demande.

Choisir le traitement "Admin-Import" puis dans « Fichier d'export GTF à importer (.gex) : », cliquer sur « Parcourir » et sélectionner le fichier exemples.gex préalablement téléchargé.

Le paramètre "Mettre à jour les projets ayant le même ID Global" indique à GTF si il doit charger ou pas les projets déjà existants dans la base GTF et identifiés de façon unique par l'attribut ID Global. (Cet attribut est généré automatiquement et est associé de façon unique à chaque projet). Si ce paramètre vaut Non et que le fichier .gex contient un projet FME avec ID Global déjà existant dans GTF, alors le fichier n'est pas chargé.

Inversément, Si ce paramètre vaut Oui, alors les projets dont le nom existe déjà dans la base de données GTF seront écrasés. Un rapport final permet de distinguer les projets chargés de ceux non chargés.

Cliquer sur « Créer la demande ». La demande est prise en compte et se retrouve dans la file d'attente du moteur GTF.

S’assurer que la Demande ait bien été traitée en consultant le mode Supervision, puis retourner dans le mode Publication pour consulter la liste des traitements nouvellement importés.

2 nouveaux traitements sont désormais disponibles dans GTF.

### 4.4.2 Import des traitements d’administration

Les projets 'Nettoyage des fichiers temporaires' et 'Sauvegarde GTF' sont disponibles sur notre site de téléchargement, via le projet admin.gex. Ils permettent les fonctions d’administration suivantes :

- le nettoyage des fichiers temporaires stockés dans les répertoires temporaires de GTF et FME.
- la sauvegarde de la configuration de l'environnement GTF, c'est-à-dire de la base PostgreSQL, des demandes de traitements et leurs résultats, de leurs résultats et du fichier pycron.

Pour importer ces deux fichiers, procédez de la même manière que précédemment en téléchargeant sur le site http://download.veremes.com (répertoire gtf/gex) le fichier admin.gex.

Se connecter ensuite à GTF et faire une demande du Traitement Admin-Import. Choisir le fichier admin.gex précédemment téléchargé.

Assurez-vous que dans le mode Publication, les deux nouveaux traitements aient bien été importés :

La procédure de sauvegarde et restauration de l'application est expliquée dans le chapitre 11.3 Sauvegarde et restauration de l’application.

# 5 Gestion des utilisateurs

Un utilisateur GTF est un compte connu par l’application GTF qui peut se connecter à GTF et utiliser ses services.

Deux profils d’utilisateurs GTF sont à distinguer :

- « Utilisateurs PostgreSQL » : utilisateurs authentifiés par la base de données interne à GTF : PostgreSQL, créés directement dans GTF
- « Utilisateur Active Directory (AD) » : utilisateurs d’un domaine et authentifiés par un annuaire Active Directory, importés dans GTF

La procédure de création des utilisateurs GTF diffère selon le profil :

## 5.1 Création d’utilisateurs et des groupes PostgreSQL

Le mode ‘Utilisateurs > Onglet Utilisateurs’ liste l’ensemble des utilisateurs. Il permet l’ajout de nouveaux utilisateurs, leur édition et suppression. Après avoir cliqué sur ‘Ajouter utilisateur’, le formulaire suivant s’affiche :

Attribuer un compte de connexion, un nom, un e-mail, un organisme et un service à l’utilisateur en cours de création, lui associer son ou ses groupes d’appartenance et définir la ou les adresses IP à partir desquelles il pourra se connecter à l’application. Valider la création du compte en cliquant sur ‘Créer’. Saisir ensuite le mot de passe propre à l’utilisateur. En cliquant sur ‘Mettre à jour’ le processus de création d’un utilisateur est terminé.

Pour avoir des droits d'administration et accéder aux modes spécifiques (utilisateurs, moteurs, publication, supervision, statistiques, ...) , des privilèges gtf_admin doivent être attribués à l'utilisateur.

### 5.1.1 Création de groupes d’utilisateurs PostgreSQL

Chaque utilisateur doit être associé à un ou plusieurs groupes. Chaque groupe correspond à un profil d'utilisateurs ayant accès à des traitements qui leurs sont spécifiquement dédiés. Chaque groupe doit comporter au moins un traitement.

Le mode ‘Utilisateurs > Onglet Groupes’ liste les groupes d’utilisateurs. Il permet d’en ajouter ou d’en supprimer et de leur associer un ou plusieurs traitements, un ou plusieurs utilisateurs ainsi que un ou plusieurs Dépôts (Répertoires de surveillance).

Après avoir cliqué sur “Ajouter groupe”, le formulaire suivant s’affiche :

Attribuer un nom au nouveau groupe et lui associer un ou plusieurs traitements, utilisateurs et/ou dépôts. Cliquer ensuite sur « Créer ». Le nom du groupe nouvellement créé apparaît désormais dans la liste des groupes.

## 5.2 Utilisateurs et groupes d’un annuaire Active Directory

Il est possible de gérer plusieurs domaines et d’exploiter des groupes de sécurité définis directement dans un annuaire Active Directory.

L’administrateur a la possibilité d’importer des utilisateurs et des groupes depuis Active Directory. Cette méthode permet d’hériter des droits issus de la gestion centralisée AD des utilisateurs au sein d’un organisme.

L’administrateur crée dans GTF, le nouveau domaine, puis importe les utilisateurs et les groupes. L’attribution des groupes ainsi que les mots de passe des utilisateurs ne pourront pas être changés.

### 5.2.1 Ajout de domaines Active Directory

Le mode ‘Utilisateurs > Onglet Domaines’ liste les domaines Active Directory. Il permet de créer, modifier et supprimer des domaines. Le bouton ‘Ajouter Domaine’ affiche le formulaire suivant :

L’administrateur saisit les informations suivantes :

- Nom de domaine : le nom de domaine utilisé pour la connexion. Par exemple, ‘siege.entreprise.com’
- IP ou nom de serveur : adresse IP ou nom du serveur assurant le rôle de serveur Active Directory
- Dn de base de recherche (utilisateur) : point d’entrée pour la recherche des utilisateurs.
- Dn de base de recherche (groupe) : point d’entrée pour la recherche des groupes
- Filtre (utilisateur) : permet de définir des filtres pour la recherche des utilisateurs
- Filtre (groupe) : permet de définir des filtres pour la recherche des groupes
- Vérifier les droits lors du lancement du robot : permet au robot de vérifier si un utilisateur du domaine possède toujours les droits lors de l’exécution du traitement. Pour cela le robot a besoin de connaitre le login et le mot de passe d’un utilisateur du domaine.
- Login : login d’un utilisateur du domaine.
- Mot de passe : mot de passe de l’utilisateur du domaine.

Le login et le mot de passe saisis ici permettent de vérifier les droits de l’utilisateur Active Directory lors de l’exécution du robot.

En cliquant sur « Créer » la procédure de création de domaine Active Directory dans GTF est finalisée.

L’administrateur doit ensuite modifier manuellement le fichier de configuration de la base de données PostgreSQL pour autoriser la connexion des utilisateurs du domaine. Dans le répertoire d’installation de PostgreSQL, modifier à l’aide d’un éditeur de texte le fichier pg_hba.conf situé dans le dossier data:

Avant modification vous devriez avoir la configuration suivante :

host all u_scheduler 127.0.0.1/32 trust

host all +superusers 127.0.0.1/32 md5

host all all 127.0.0.1/32 md5

# IPv6 local connections:

host all u_scheduler ::1/128 trust

host all +superusers ::1/128 md5

host all all ::1/128 md5

Vous devez rajouter les deux lignes suivantes :

host all +gtf_nomdomaine 127.0.0.1/32 ldap ldapserver=nomduserveur ldapprefix=""

host all +gtf_nomdomaine ::1/128 ldap ldapserver=nomduserveur ldapprefix=""

Pour obtenir la configuration suivante :

host all u_scheduler 127.0.0.1/32 trust

host all +superusers 127.0.0.1/32 md5

host all +gtf_nomdomaine 127.0.0.1/32 ldap ldapserver=nomduserveur ldapprefix=""

host all all 127.0.0.1/32 md5

# IPv6 local connections:

host all u_scheduler ::1/128 trust

host all +superusers ::1/128 md5

host all +gtf_nomdomaine ::1/128 ldap ldapserver=nomduserveur ldapprefix=""

host all all ::1/128 md5

Attention ! L’ordre des lignes doit impérativement être respecté.

### 5.2.2 Import d’utilisateurs d’Active Directory

Le bouton « Importer de l’AD » permet d’importer des utilisateurs à partir d’un serveur Active Directory.

Une interface de connexion apparaît à l’écran. L’administrateur saisit son login et mot de passe Active Directory afin de se connecter au domaine précédemment créé.

Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir de critères.

Navigation d ans l’arbre

Si l’option Navigation dans l’arbre est sélectionnée, l’arborescence du serveur Active Directory s’affiche dans la partie gauche de l’écran. Lorsque l’administrateur sélectionne un nœud, la liste des utilisateurs apparaît dans la partie droite de l’écran.

Il suffit ensuite de sélectionner les utilisateurs désirés puis de cliquer sur le bouton « Importer ». Le processus d’import est terminé.

Pour se connecter, les utilisateurs devront utiliser un login de type login@nomdomaine

Recherche d’utilisateur AD

La recherche d’utilisateurs peut se faire selon 3 critères :

- Le compte utilisateur
- Le ou les groupes AD
- Le service

Une fois l’utilisateur désiré trouvé, il suffit de le cocher puis de cliquer sur le bouton Importer.

L’interface de connexion d’un utilisateur importé de la sorte, comporte désormais un champ Domaine, permettant la sélection du domaine AD d’appartenance. L’utilisateur s’authentifie avec son login et mot de passe de l’annuaire AD.

### 5.2.3 Import de groupes Active Directory

Le bouton « Importer de l’AD » permet d’importer des groupes à partir d’un serveur Active Directory.

L’association des utilisateurs et des groupes Active Directory s’effectue directement dans l’Active Directory. L’application récupère les groupes d’un utilisateur Active Directory au moment de la connexion.

Une interface de connexion apparaît à l’écran. Saisir le login et mot de passe afin de se connecter au domaine.

Une fois la connexion effectuée, l’administrateur GTF peut soit naviguer dans l’arborescence de l’annuaire du domaine, soit effectuer une recherche à partir du nom du groupe.

Navigation dans l’arbre

Lorsque l’administrateur sélectionne un nœud, la liste des groupes apparaît dans la partie droite de l’écran.

Il suffit alors de sélectionner le ou les groupes désirés puis de cliquer sur le bouton « Importer ». Les groupes sont importés. Le groupe nouvellement créé apparait dans la liste des groupes.

Recherche de groupe AD

La recherche d’un groupe AD peut se faire à partir du nom de groupe recherché.

### 5.2.4 Gestion mixte des utilisateurs de domaines

GTF permet d’attribuer aux utilisateurs d’un domaine Active Directory, un groupe local défini dans la base interne PostgreSQL. De la sorte, un administrateur GTF ne disposant pas de droits d’administration d’un annuaire Active Directory, peut tout de même créer ses propres groupes d’utilisateurs de GTF issus d’un annuaire.

La sous section « Sécurité » du mode Configuration permet d’activer la gestion mixte des utilisateurs en autorisant des utilisateurs du domaine à appartenir à des groupes locaux.

# 6 Publication de traitements

Un utilisateur avec des droits d'adminstration peut publier un traitement. Après avoir généré un projet dans FME, il crée un traitement dans GTF puis l'associe au projet.

Le mode Publication, uniquement accessible par un utilisateur ayant des droits d'administration, comporte l’ensemble des formulaires permettant la création et le paramétrage des traitements GTF.

## 6.1 Ajout de projet FME.

Il existe deux façons dans GTF de créer des Projets FME : l'ajout de projet et l'Import de projets.

### 6.1.1 Ajout de projet FME

Le bouton ‘Ajouter Projet FME’ de l’onglet Projets FME permet d’accéder au formulaire de création de projet.

La première étape consiste à Attribuer un nom au traitement.

Règles de nommage des projets :

GTF permet d'exploiter les métadonnées du projet FME source. L'administrateur peut choisir de ne pas attribuer de Nom au traitement et récupérer le nom déterminé dans les métadonnées (Propriétés) du projet.fmw.

Metadonnées du script 'extract_dept.fmw'.

Plusieurs options sont possibles :

- L'administrateur nomme le projet directement dans GTF et écrase le nom du projet FME s'il est existant. Dans l'exemple ci-dessu, le projet sera nommé 'Extraction_departements'
- L'administrateur choisit d'utiliser le nom du projet FME, défini dans ses propriétés, et laisse donc dans GTF le champ 'Nom du traitement' vide. Le nom du projet FME est alors utilisé. Dans l'exemple ci dessous, le nom Extraction_departement sera attribué.
- Si l'administrateur ne saisit pas de nom de projet dans GTF et si aucun nom n'est attribué dans le projet FME, alors le nom de fichier du script FME est utilisé avec son extension .fmw. Dans l'exemple ci-dessus, le nom du projet sera 'extract_dept.fmw'
- Il est impossible de créer un projet avec un nom déjà existant. GTF retourne dans ce cas une erreur.

L’administrateur choisit ensuite la disponibilité du traitement sur abonnement et pour Surveillance puis le relie à un projet FME dans lequel il aura pris soin de publier certains paramètres comme par exemple le répertoire destination. Le paramètre “Ressources complémentaires” permet d’associer les ressources nécessaires pour l'exécution du projet FME.

Il est également possible de verrouiller un projet pour en empêcher sa suppression.

Le modèle d'email à associer au traitement est défini ensuite.

Le bouton ‘Créer’ permet ensuite de finaliser la première étape du processus de création de traitement en générant le formulaire correspondant.

La création d'un projet génère ensuite un attribut 'ID Global' qui correspond à un identifiant unique universel du projet. Il s'agit d'une clé unique qui permet par exemple en cas de réinstallation de GTF, d'assurer l'unicité et le référencement du projet.

### 6.1.2 Import de projets FME

GTF offre des fonctionnalités de catalogage et de gestion du patrimoine de projets FME disponibles dans un organisme. A cette fin et pour faciliter la création de plusieurs projets en même temps, la fonction d'import a été créée permettant le chargement dans GTF de plusieurs projets FME en une seule fois.

Après avoir cliqué sur le bouton 'Import' en bas à droite de la fenêtre, l'administrateur clique sur le bouton Parcourir, et sélectionne les projets FME qu'il souhaite intégrer à GTF. Il clique ensuite sur le bouton 'Charger'.

Une fois chargés, les projets FME apparaissent dans la liste des projets FME du mode Publication. L'administrateur est ensuite en charge de nommer ou renommer les fichiers, de gérer leur métadonnées et de leur associer les groupes et droits désirés.

Tous les visualiseurs contenus dans un projet FME sont désactivés lors du processus d'import ou d'ajout de projets dans GTF.

### 6.1.3 Attribution de droits au traitement

Pour pouvoir être exploité, un traitement doit être associé à un groupe. Dans la section ‘Droits’, l’administrateur associe un groupe au projet nouvellement créé en faisant glisser le groupe choisi dans la partie de Groupes associés au traitement. Il clique ensuite sur le bouton « Mettre à jour ».

### 6.1.4 Gestion des métadonnées

GTF permet la gestion des métadonnées d'un projet et l'exploitation des métadonnées issues des projets FME.

Les métadonnées d'un projet FME, définies dans les Propriétés du projet FME via le Navigateur, sont chargées dans GTF. Les sections Description, Conditions d'utilisation, utilisation, Pré requis et Historique sont directement issues du projet FME.

La section Métadonnées du mode Publication permet à l'administrateur, de modifier ces dernières et de les réécrire dans le projet FME.

- Le bouton 'Mettre à jour' permet d'enregistrer les modifications des métadonnées dans GTF.
- Le bouton 'Relire le projet' permet de recharger le projet FME et ses métadonnées.
- Le bouton 'Ecrire le projet' permet de modifier les métadonnées du projet FME source.

### 6.1.5 Gestion et personnalisation des formulaires

La section Formulaire du mode Publication permet de gérer l’affichage du formulaire de demande de traitement tel qu'il sera affiché lors d’une demande émise par un utilisateur.

Le formulaire par défaut comporte les paramètres publiés du projet FME. Après visualisation, l’administrateur peut choisir de conserver en l’état ce formulaire ou de le personnaliser.

Chaque projet FME chargé dans GTF est stocké dans le répertoire \workspace du répertoire d'installation de GTF. Le sous répertoire workspace\fme stocke le projet .fmw et le répertoire workspace\form stocke les fichiers de gestion et de personnalisation des formulaires du traitement.

Une fois un projet créé, GTF créé 3 fichiers identiques :

- DsubForm.class.inc : formulaire par défaut du traitement
- SubForm.class.inc : formulaire publié par GTF
- WsubForm.class.inc : formulaire destiné à être personnalisé

Lors de la publication d'un formulaire personnalisé, le fichier WsubForm est modifié puis écrase le fichier SubForm.

Plusieurs actions sont disponibles :

- Pré visualiser le formulaire publié : affiche le formulaire publié dans la zone de visualisation.
- Pré visualiser le formulaire par défaut : affiche le formulaire par défaut dans la zone de visualisation. Ce formulaire contient les paramètres tels qui ont été définis lors de la création du projet dans FME
- Pré visualiser le formulaire personnalisé : affiche le formulaire précédemment personnalisé par l’administrateur dans la zone de visualisation
- Visualiser le code du formulaire publié : affiche le code du formulaire publié contenu dans le fichier SubForm.class.inc généré automatiquement par GTF
- Visualiser le code du formulaire par défaut : afficheen lecture seule le contenu dufichier DsubForm.class.inc
- Editer le formulaire personnalisé : permet la personnalisation du formulaire en éditant le contenu du fichier WsubForm.class.inc destiné à la modification des paramètres directement dans GTF
- Régénérer le formulaire par défaut : force la création du fichier DsubForm.class.inc, fichier du formulaire par défaut. Le formulaire publié reste inchangé.
- Supprimer le formulaire personnalisé : supprime le fichier WsubForm.class.inc.
- Publier le formulaire par défaut : permet la publication du formulaire tel qu'il a été conçu dans le projet FME.
- Publier le formulaire personnalisé : duplique le fichier WSubForm.class.inc sous le nom SubForm.class.inc
- Réinitialiser le formulaire personnalisé : duplique le fichier DsubForm.class.inc sous le nom WsubForm.class.inc et affiche le formulaire personnalisé.

Si l'administrateur choisit d'éditer un formulaire pour le personnaliser, il dispose de plusieurs exemples, dont il peut copier le code, le personnaliser et l'insérer directement dans son propre formulaire. Le bouton Exemples, accessible après avoir "Editer le formulaire personnalisé" donne accès au code de différents composants exemples (cartographiques, calendrier, champ nombre…) dont le code peut être directement inséré dans la section "Form attributes" du formulaire.

L'insertion de certains composants cartographiques tels que les cartes WMTS de Géoportail de l'IGN nécessite l'obtention de clé auprès des organismes fournisseurs de ces services.

Le code et l’ensemble des opérations de l'API formulaire sont décrits dans la section API formulaire du menu Aide.

### 6.1.6 Appel externe

La section Appel externe permet l'intégration dans une page html d'un formulaire GTF. C'est un moyen de donner accès à un projet GTF depuis une quelconque page web, sans avoir GTF installé sur son poste. La section Appel Externe du mode Projet permet de définir la façon dont l'utilisateur final aura accès au formulaire GTF puis génère le code à intégrer directement dans la page html désirée.

L'administrateur définit le type d'accès souhaité au formulaire GTF : soit via un bouton intégré dans la page internet, soit via l'insertion telle quelle du formulaire GTF dans la page web.

Il associe ensuite un Titre au formulaire et dans le cas d'un bouton, il spécifie le texte associé au bouton d'accès du formulaire dans le champ 'Texte du bouton'. La hauteur et largeur du formulaire peuvent également être paramétrées.

#### 6.1.6.1 Jetons de connexion

Un jeton agit comme une clé permettant d'accéder à un formulaire GTF. Un jeton ne peut être donné qu'à un utilisateur authentifié.

L'administrateur a la possibilité d'associer à un traitement un jeton privé ou un jeton public permettant l'accès et l'utilisation du formulaire GTF :

- Le jeton public est l'identifiant de connexion du compte PUBLIC défini au préalable par l'administrateur dans le mode Co nfiguration.
- Fournir un jeton privé est un moyen de donner accès à un compte de connexion à un traitement GTF particulier. Pour générer une clé privée, l'administrateur saisit le login et mot de passe de l'utilisateur pour lequel il souhaite générer un jeton privé puis définit une date de fin de validité de cette dernière. Après avoir cliqué sur le bouton 'Clé privée', la clé est retournée et intégrée dans le code à utiliser.

#### 6.1.6.2 Utilisation de CAPTCHA

Il est possible d'intégrer un CAPTCHA au formulaire pour s'assurer que la demande de traitement est bien générée par un être humain et non par un ordinateur.

L'insertion d'un Captcha, nécessite l'obtention d'une clé sur le service Web de Google à l'adresse https://www.google.com/recaptcha/admin. Une fois la clé obtenue, l'administrateur saisit la clé fournie dans le champ Clé recaptcha.

La clé est directement intégrée dans le code généré par GTF. Le motif CAPTCHA est généré automatiquement à chaque demande de traitement.

#### 6.1.6.3 Insertion du code généré

Le bouton 'Générer le code' retourne le code à copier dans la page Html permettant d'accéder au formulaire GTF. Le code contient le jeton de connexion défini au préalable (public ou privé), ainsi que le cas échéant la clé captcha.

Exemple de code:

Jeton de connexion public / Clé Captcha

Ce code est à insérer directement dans la page html à l'emplacement désiré.

L'exemple ci-dessous illustre l'insertion d'un bouton d'accès à un formulaire GTF de conversion de fichiers sur la page d'accueil du site internet de Veremes :

### 6.1.7 Répertoire Projet

La section Répertoire projet permet de visualiser le contenu du répertoire contenant le projet FME ainsi que les ressource associées à ce dernier. Ce répertoire contient les copies systématiques des projets fme (renommés en .bak) dont les visualiseurs ont été désactivés.

Il est possible de charger un nouveau projet FME et de nouvelles ressources via les boutons Parcourir.

## 6.2 Gestion des catégories

L’attribution de catégorie à un traitement permet à l’administrateur d’organiser par thématique les traitements disponibles.

L’onglet Catégorie du mode Publication permet d’accéder au formulaire de création de catégorie dans lequel l’administrateur nomme cette dernière et peut lui associer une description.

## 6.3 Gestion des dépôts (répertoire de surveillance)

Un dépôt est un répertoire de surveillance. Une surveillance correspond à un abonnement à un traitement en ajoutant un nouveau paramètre qu’est la disponibilité d’un fichier ou d’un répertoire dans un dépôt préalablement défini par l’administrateur. Ainsi, si un projet est rendu disponible pour surveillance, alors ce dernier est automatiquement exécuté (selon la période d’abonnement définie) dès lors que GTF détecte la présence d’un fichier dans le dépôt.

L’onglet Dépôt permet à l’administrateur de consulter la liste des dépôts, d’en créer et d’en supprimer. Il crée des nouveaux dépôts en spécifiant le chemin du répertoire à surveiller qu’il aura préalablement créé sur le serveur.

La stratégie d’attribution de dépôt se fait à l’échelle du groupe d’utilisateurs. Un utilisateur en ayant droit, peut alors associer à un traitement une surveillance dans un dépôt. GTF scrute la présence de fichier dans le dépôt. Si un fichier est présent alors le traitement est lancé en exploitant le fichier.

Le bouton ‘Ajouter un dépôt’ permet d’accéder au formulaire de création de dépôt en spécifiant le chemin du répertoire à surveiller, un alias et les groupes y ayant accès. Il clique ensuite sur ‘Créer’ pour valider sa création et rendre le dépôt disponible pour les groupes en ayant droit.

GTF personnalise automatiquement le dépôt en fonction du compte utilisateur de connexion en suffixant le dépôt avec la variable $user. L’utilisateur final ne voit ainsi que son propre répertoire dans le dépôt. Au préalable, l’administrateur doit avoir créé dans chaque dépôt, un répertoire par utilisateur (des groupes ayant accès à chaque dépôt). Le nom du répertoire doit être parfaitement identique au compte de connexion qu’il s’agisse d’un utilisateur « PostgreSQL » ou importé d’Active Directory.

## 6.4 Gestion des périodes

Un abonnement permet de s’inscrire à un traitement répété au cours du temps selon une fréquence choisie.

Dans l’onglet Périodes, l’administrateur peut accéder au formulaire de définition des périodes d’abonnement. Le bouton ‘Ajouter période’ permet à l’administrateur de définir une nouvelle période d’abonnement en lui affectant un libellé puis en y insérant le code correspondant.

Il est ensuite possible de tester le bon déroulement de l’ajout de Période en cliquant sur le bouton ‘Test’. Le bouton ‘Créer’ finalise le processus de création d’une période.

Pycron est le composant assurant l’exécution des tâches à heures fixes. L’instruction à saisir doit respecter la syntaxe de la fonction contrab. Pour plus d’information sur le programme crontab et la syntaxe à respecter consulter le site : http://fr.wikipedia.org/wiki/Crontab

## 6.5 Modèles d'E-mail

L'onglet Modèles-email permet la création de modèle de mail envoyé après exécution d'un traitement. Via cette onglet, l'administrateur a la possibilité de personnaliser un email, en définissant la ou les personnes destinataires, les circonstances d'envoie de ce dernier ainsi que son contenu. Chaque traitement est associé à un modèle d'Email.

L'onglet général permet de créer un nouveau modèle de mail, en le nommant et en définissant son contexte et de définir le type de définition de ce dernier :

### 6.5.1 Définition simple

L'administrateur exploite les balises disponibles pour personnaliser le mail.

Nom de la balise | descriptif | code correspondant
[order.id_order] | Identifiant de la demande de traitement | $properties['order.order_id']['value'] = $this->aObjects["oOrder"]->aFields['order_id'];
[order.order_date] | Date et heure de la demande de traitement | $properties['order.order_date']['value'] = $this->aObjects["oOrder"]->aFields['order_date'];
[order.execution_date] | Date et heure de fin de traitement | $properties['order.execution_date']['value'] = $this->aObjects["oOrder"]->aFields['order_execution_date'];
[order.result_url] | Adresse de téléchargement du résultat du traitement | $properties['order.result_url']['value'] = $this->aObjects["oOrder"]->aFields['result_url'];
[order.log_url] | Adresse du log du traitement | $properties['order.order_log']['value'] = $this->aObjects["oOrder"]->aFields[log_url'];
[order.length_sec] | Durée du traitement en secondes | $properties['order.length_sec']['value'] = $this->aObjects["oOrder"]->aFields[length_sec'];
[order.process_date] | Date de fin du traitement | $this->aObjects["oOrder"]->aFields['execution_date'];
[gtf_engine. Name] | Nom du moteur GTF | $this->aObjects["oOrder"]->getGtfEngine()->aFields['name'];
[fme_engine.name] | Nom du moteur FME utilisé | $this->aObjects["oOrder"]->getFmeEngine()->aFields['name'];
[user.name] | Nom du demandeur de traitement | $properties['user.name']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['name'];
[user.user_email] | Adresse mail du demandeur de traitement | $properties['user.email']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['email'];
[user.login] | Compte de connexion du demandeur | $properties['user.login']['value'] = $this->aObjects["oOrder"]->getUser()->aFields['login'];
[category.name] | Catégorie du traitement | $properties['catgory.name']['value'] = $this->aObjects["oOrder"]->getWorkspace()->getCategory()->aFields['email'];
[workspace.name] | Nom du traitement | $properties['order.workspace.name']['value'] = $this->aObjects["oOrder"]->getWorkspace()->aFields['name'];
[worksapce.fmw_file] | Nom du projet FME | $properties['order.workspace.fmw_file']['value'] = $this->aObjects["oOrder"]->getWorkspace()->aFields['fmw_file'];

### 6.5.2 Définition avancée

L'administrateur saisit directement le code du mail. Il peut pour cela, utiliser le code généré via l'édition simple en cliquant sur le bouton Générer le code à partir de l'édition simple.

# 7 Exemples de publication de traitements

## 7.1 Traitement simple de conversion d'un fichier statique sur le serveur

Objectif : Création d’un traitement simple de conversion d’un fichier Shape disponible sur le serveur en fichier MapInfo avec publication du répertoire destination.

Le fichier source est statique (toujours le même) et il se trouve à un emplacement quelconque du serveur. L'emplacement du jeu de données sur le serveur est défini dans le paramètre source dans FME et ce paramètre doit être dépublié.

### 7.1.1 Création du projet FME

- Lancer FME Workbench
- Cliquer sur Fichier > Nouveau> Générer un projet
- Indiquer le fichier Shape en source et le format Mapinfo en sortie. Cocher Schéma statique puis cliquer sur OK.

Après validation, un projet simple de conversion d’un fichier Shape vers un fichier MapInfo est généré.

Par défaut, deux paramètres sont publiés ‘sourceDataset_SHAPE’ et ‘DestDataSet_MAPINFO’.

Chaque paramètre publié d’un projet FME génère une entrée dans le formulaire GTF. Dans cet exemple le formulaire GTF permet de modifier le répertoire source et le répertoire destination. Or nous souhaitons que GTF ignore la publication des données sources, empêchant aux utilisateurs finaux de sélectionner et modifier les fichiers sources.

- Supprimer la publication du paramètre [SourceDataset_SHAPE] pour forcer les utilisateurs à utiliser le fichier Shape mis à disposition sur le serveur.
- Enregistrer le projet

Avant de publier ce projet dans GTF, il convient de le tester localement. Lancer le traitement depuis FME Workbench, vérifier le bon déroulement du traitement et s’assurer que le résultat soit correctement généré.

### 7.1.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement, par exemple, ‘Extraction Départements’. Entrer ensuite une description, et attribuer une catégorie. Choisir de ne pas rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur Parcourir et charger le projet FME. Cliquer sur « Créer ».

- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que le paramètre publié source du projet FME n’est pas publié, et que seul le paramètre « Répertoire Destination MapInfo » est publié.

### 7.1.3 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié « Extraction Départements».

Le formulaire associé au traitement s’affiche. L’utilisateur peut alors modifier le paramètre publié : entrer la valeur ‘Destination’ comme nom du ‘répertoire destination Mapinfo’.

- Cliquer sur ‘Créer Demande’. La demande de traitement est créée et celle-ci est en attente de traitement. Un voyant rose indique que le traitement est en cours.

- Une fois traité, le voyant passe au vert. Le résultat est téléchargeable.

Le fichier ZIP généré contient un répertoire « Destination » contenant le fichier MapInfo.

## 7.2 Conversion de fichiers sources statiques chargés sur le serveur avec le projet FME.

Objectif : Le fichier source est statique et il est chargé sur le serveur par GTF comme ressource du projet FME. Les utilisateurs n’uploadent pas de fichiers sources, ils se trouvent sur le serveur au même endroit que le projet FME.

Il s'agit ainsi de reconstituer la même arborescence que celle du poste de développement.

### 7.2.1 Création du projet FME

- Créer un nouveau projet FME pour convertir un fichier Shape vers un fichier MIF/MID.

Deux paramètres doivent être publiés : la source et la destination. La source pointe vers un fichier Shape en local. Pour que GTF puisse accéder à ce fichier, il faut uploder le fichier shape et ses dépendances sur le serveur GTF. Ces données sont stockées dans le même répertoire que le projet FME lors de la création du traitement dans GTF.

- Modifier le chemin de la source comme tel :

$(FME_MF_DIR_UNIX)/DPT.SHP est une variable FME qui indique l’emplacement d’un projet FMW. Le fichier source (DPT.shp) est uploadé à cet emplacement. Il sera directement utilisable dans GTF (sans avoir à l’uploader à chaque demande de traitement).

- Les données sources étant fixes, il convient de dépublier ce paramètre.

- Enregistrer le projet, par exemple extraction-departements-source-fixe.fmw

### 7.2.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement GTF, par exemple ‘Extraction départements depuis le serveur’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitement disponible sur abonnement et ni pour une surveillance.
- Pour uploader le fichier Shape et ses dépendances, compresser les fichiers dans un fichier ZIP. Dans le champ ‘Ressources complémentaires’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur « Créer ». Ces ressources complémentaires sont décompressées dans le répertoire contenant le projet .fmw. L'arborescence du poste de développement est ainsi reconstituée sur le serveur.
- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que seul le fichier destination est paramétrable. Le fichier des départements est automatiquement associé au projet.

### 7.2.3 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié « Extraction départements depuis le serveur».
- Indiquer le répertoire destination. Cliquer sur Créer la demande.
- Une fois la demande traitée (voyant vert), télécharger le ZIP généré.

## 7.3 Conversion de fichiers avec sélection des fichiers sources dans une arborescence de fichiers situés sur le serveur

Objectif : publication d’un traitement avec sélection du fichier source EDIGEO dans une arborescence de fichiers située sur le serveur et conversion au format MapInfo.

### 7.3.1 Création du projet FME

- Lancer FME Workbench
- Cliquer sur Fichier > Nouveau> Générer un projet
- Indiquer le format Edigéo en source et le format MapInfo en sortie. Cocher Schéma statique puis cliquer sur OK.

- Cocher tous les types d’entités

GTF peut détecter les formats de types multifichiers (S h ape File, EDIGEO…) contenus dans un fichier compressé ZIP que l’utilisateur uploadera sur le serveur.

- Dépublier le paramètre publié du jeu de données source, car sinon GTF considèrant que le fichier source se trouve sur le poste utilisateur ne permettra pas la sélection du fichier situé sur le serveur
- Créer un nouveau paramètre publié de type Texte et le lier au jeu de données source.

- Enregistrer le projet, par exemple Edigeo2mapinfo_upload.fmw

### 7.3.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement GTF, par exemple, ‘conversion Edigeo vers MapInfo avec Upload’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur Parcourir et charger le projet FME. Cliquer sur « Créer ».

- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 2 paramètres publiés apparaissent dans le formulaire.

A ce stade, l'utilisateur doit saisir le chemin complet du fichier source à traiter. Pour des raisons de sécurité et de convivialité, il est conseillé de personnaliser ce formulaire en exploitant le composant TreeViewField permettant de créer une arborescence de fichiers forçant l'utilisateur à sélectionner la source et non plus à indiquer un chemin complet. Cliquer sur le bouton Exemples, puis sélectionner le composant "Champ Arborescence" :

- Copier le code fourni et le coller dans votre formulaire dans la section //Form Attributes qui déclare les paramètres publiés du projet. Supprimer le champ textField et le remplacer par le champ treeviewField que vous aurez personnalisé en indiquant l'arborescence désirée.

Enregistrer votre formulaire personnalisé puis le prévisualiser. Publier le formulaire personnalisé.

### 7.3.3 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié.
- Sélectionner le fichier source dans l'arborescence de fichiers et le répertoire destination. Cliquer sur Créer la demande.

- Une fois la demande traitée (voyant vert), télécharger le ZIP généré.

## 7.4 Paramètre publié supplémentaire

Objectif : publication d’un paramètre publié supplémentaire pour spécifier une emprise d’extraction de données.

### 7.4.1 Création du projet FME

- Ouvrir le précédent projet ‘extraction-departements.fmw’ dans FME Workbench. Dans le Navigateur, publier les 4 paramètres : X minimum, Y minimum, X maximum et Y maximum des données sources. Entrer les valeurs par défaut correspondant à l’emprise de l’ensemble des données, par exemple : X minimum = 50000 ; X maximum = 1 200 000 ; Y minimum = 1 700 000 ; et Y maximum = 2 700 000.

- Enregistrer le projet extraction_departements_emprise.fmw

### 7.4.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement GTF, par exemple, ‘Extraction Départements emprise’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitement disponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur Parcourir et charger le projet FME. Cliquer sur « Créer ».

- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 4 paramètres de l’emprise apparaissent dans le formulaire avec les valeurs par défaut définies dans le projet FME.

### 7.4.3 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié « Extraction Département emprise».
- Indiquer comme valeurs d’emprise X min = 500 000, Y min = 2 000 000, X max = 1 000 000 et Y max = 2 500 000, et ‘emprise’ comme répertoire destination.

- Cliquer sur ‘Créer la Demande’.
- Une fois la demande traitée (voyant vert), télécharger le ZIP généré.

Remarquer que le nom ZIP correspond à l’identifiant de la demande de traitement : par exemple 19.zip pour la demande n°19. Ce numéro est unique car issu d’une séquence PostgreSQL.

- Ouvrir le fichier MapInfo généré dans FME Data Inspector et constater que les données ont été extraites selon l’emprise spécifiée.

## 7.5 Traitement avec sortie générique

Objectif : publication de format destination générique. L’utilisateur final choisit le format destination d’un projet de conversion de données.

### 7.5.1 Création du projet FME

- Ouvrir le traitement créé précédemmentextraction_departements_emprise.fmw dans FME Workbench. Supprimer le jeu de données destination MapInfo et ajouter un nouveau jeu de données au format ‘Generic’. Indiquer une destination temporaire.

- Cliquer sur le bouton Paramètres et choisir le format de sortie MapInfo :

- Indiquer ‘Non’ à la question suivante, pour ne pas ajouter de type d’entité destination au projet :

- Dupliquer le type d’entités source, par un clic droit en choisissant l’option « Dupliquer comme Destination »

- Publier le paramètre « Système de coordonnées » du jeu de données Generic.

Le format Generic permet de spécifier le format de destination via un paramètre. Le paramètre « GENERIC_OUT_FORMAT_GENERIC » est publié par défaut. GTF ne supporte pas ce paramètre car tous les formats supportés par FME devraient être listés.

- Dans un premier temps, il faut donc dépublier ce paramètre par un clic droit > Supprimer.

- Il faut ensuite créer sa propre liste de formats dans un nouveau paramètre publié : ajouter un nouveau paramètre publié de type choix et saisir les formats destination désirés. Le nom des formats doit correspondre aux noms courts tels qu’ils sont listés dans la galerie des formats de FME Workbench (Outils> Consulter la galerie des formats).

Il est également possible de choisir un type « Choix avec alias pour afficher un texte plus explicite dans la liste.

- Associer ensuite le paramètre ‘FORMAT’ au jeu de données générique. Faire un clic droit sur le paramètre ‘Format en sortie’ et choisir ‘Lier au paramètre publié ‘.

- Enregistrer le projet, par exemple « shape2generic.fmw »

### 7.5.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement GTF, par exemple ‘Extraction départements avec choix de l’emprise et du format destination’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitementdisponible sur abonnement et ni pour une surveillance. Cliquer ensuite sur Parcourir et charger le projet FME. Cliquer sur « Créer ».
- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que le paramètre Format destination est bien associé au projet.

### 7.5.3 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié « Extraction départements avec choix de l’emprise et du format destination».
- Indiquer le fichier ZIP source et le répertoire destination. Cliquer sur Créer la demande.
- Une fois la demande traitée (voyant vert), télécharger le ZIP généré.

## 7.6 Personnalisation de formulaire : exploitation du composant OpenLayers2

Objectif : extraction de types d’entités à partir d’une zone d’emprise saisie graphiquement par l’utilisateur final. Modification du formulaire directement dans GTF.

### 7.6.1 Création du projet FME

Créer un nouveau projet FME pour extraire un fichier Geofla au format Esri Shape avec un paramètre qui permet de choisir une zone d’extraction sous la forme d’un polygone décrit par une chaîne WKT.

Dans FME, 3 paramètres sont publiés :

- Zone d’extraction WKT : chaîne de caractères WKT pour définir la zone d’extraction
- Couches à extraire : choix du type d’entités à extraire (COMMUNES, CANTONS, DEPARTEMENTS…)
- Répertoire Destination

### 7.6.2 Publication du traitement dans GTF

- Se connecter à GTF.
- Dans le menu Publication, cliquer sur « Ajouter Projet FME ». Donner un nom au traitement GTF, par exemple ‘Extraction GeoFla WKT’. Entrer ensuite une description et attribuer une catégorie. Choisir de ne pas rendre ce traitement disponible sur abonnement et ni pour une surveillance.
- Pour uploader le fichier GeoFla au format Shape, compresser les fichiers dans un fichier ZIP. Dans le champ ‘Ressources complémentaires’ cliquer sur Parcourir et chercher le fichier ZIP précédemment créé. Cliquer sur « Créer ».

- Dans la section ‘Droits’, associer un groupe au traitement et cliquer sur « Mettre à jour ».
- Dans la section Formulaire, visualiser le formulaire publié par défaut. Constater que les 3 paramètres sont bien affichés.

### 7.6.3 Personnalisation du formulaire

La saisie de la zone d’extraction sous la forme d’une chaîne de caractères WKT n’est pas simple. Une alternative serait de proposer à l’utilisateur final la possibilité de saisir manuellement la zone d’extraction de son choix.

- Cliquer sur ‘Editer le formulaire personnalisé’ pour pouvoir consulter et modifier le formulaire. Cliquer sur le bouton 'Exemples', puis sélectionner le composant 'Champs OpenLayers2 : service WMS '.

- Copier le code fourni et le coller dans votre formulaire dans la section //Form Attributes qui déclare les paramètres publiés du projet. Supprimer la fonction textField et la remplacer par la fonction OpenlayersField suivante qui appelle le service wms de Geosignal , en définissant la largeur et la hauteur de la carte, les références du service cartographique et la description des couches :

$oForm->OpenlayersField ("Zone d'extraction personnalisée ", "polygone", 3.0,43.65,8,600,400, "geosignalWMS","http://www.geosignal.org/cgibin/wmsmap?","Departements,RASTER1000K,RASTER500K,RASTER250K,RASTER100K,RASTER50K,RASTER25K,RASTER5K");

- Enregistrer puis publier le formulaire personnalisé.

Assurez-vous que le formulaire ait bien été mis à jour et que le paramètre ‘Zone d’extraction WKT’ ait été remplacé par un paramètre permettant la saisir du périmètre d’extraction directement sur une carte.

### 7.6.4 Exécution du traitement

- Dans le Mode ‘Mon travail’ cliquer sur ‘Ajouter demande’, et choisir le traitement préalablement publié « Extraction GeoFla WKT».
- Indiquer les couches à extraire, le répertoire destination et saisir directement sur la carte la zone d’extraction. Cliquer ensuite sur Créer la demande.
- Une fois la demande traitée (voyant vert), télécharger le ZIP généré.

# 8 Supervision

On entend par supervision, le suivi des demandes de traitements, des abonnements et des surveillances de tous les utilisateurs GTF. A tout moment, l’administrateur doit pouvoir consulter la liste des demandes de projets émises par tous les utilisateurs, en supprimer certaines, identifier les erreurs et obtenir une vision synthétique de l’utilisation de l’application.

Il dispose pour cela du mode ‘Supervision’ dans lequel est listé l’ensemble des traitements demandés, des abonnements et des surveillances.

## 8.1 Supervision des Demandes

L’onglet ‘Demandes’ offre à l’administrateur une vision de l’état du serveur. Il a une connaissance fine de l’ensemble des traitements demandés par utilisateur, des dates de demandes, des priorités ainsi que le numéro de moteur ayant traité chaque projet. Il peut télécharger les résultats des traitements, consulter les paramètres des traitements et consulter les logs FME associés. Le champ « Supprimé » lui permet d’être informé de la suppression d'une demande par un utilisateur et le champ ‘Etat’ permet via un code couleur, d’identifier si une demande est en attente, en erreur, traitée, non traitable, en cours de traitement ou non autorisée.

L’administrateur dispose de différents boutons d’administration : le bouton ‘Réinitialiser’ lui permet de relancer un traitement sélectionné. Il peut choisir de modifier le moteur d’exécution d’un traitement en cliquant sur le bouton ’Modifier le moteur’.

Suppression des demandes

L'administrateur est responsable de la suppression définitive des demandes une fois que ces dernières aient été supprimées par les utilisateurs. Il existe ainsi deux niveaux de suppression :

- La suppression utilisateurs
- La suppression définitive par l'administrateur.

Le bouton ‘Purger les demandes’ permet à l'administrateur de procéder à la suppression définitive d'une demande de traitement préalablement supprimée par un utilisateur.

Le bouton ’Supprimer les demandes’ permet de supprimer les demandes des traitements sélectionnés.

## 8.2 Supervision des abonnements

L’onglet Abonnement permet à l’administrateur de consulter la liste des abonnements aux projets FME et d’identifier ceux étant actifs et inactifs. Il peut choisir de supprimer définitivement un abonnement en cliquant sur « Supprimer les abonnements ».

## 8.3 Supervision des surveillances

De la même façon, l’onglet Surveillance permet à l’administrateur de consulter la liste des demandes de surveillance créées par les utilisateurs.

Il peut choisir de supprimer définitivement une surveillance : après avoir sélectionné le ou les abonnements à supprimer, il clique sur le bouton « Supprimer les abonnements ».

# 9 Statistiques

Le mode Statistiques permet aux administrateurs d’avoir une vision graphique et synthétique de l’utilisation des ressources de GTF, moteur, traitement, temps machine, par date et/ou utilisateur à travers des graphiques et des tableaux de synthèse.

L’affichage des statistiques peut être graphique ou tabulaire (export dans Excel) et il est possible d’obtenir une représentation journalière, hebdomadaire, mensuelle et annuelle de l’activité sur le serveur à partir d’une date spécifiée en paramètre.

La liste déroulante Variable permet de choisir la variable devant être représentée dans les tableaux ou graphiques :

- Nombre de traitements exécutés
- Temps total des traitements
- Durée des traitements par projet FME

Pour les deux dernières variables, le temps total des traitements et le temps par projet peuvent être représentés par :

- Seconde
- Minute
- Heure
- Pourcentage du temps total d’utilisation

L’administrateur choisit ensuite de regrouper ces variables par :

- Utilisateur
- Projet FME
- Etat du traitement (traitement en erreur ou traité)
- Moteur utilisé

Puis il choisit la période d’analyse et la date à partir de laquelle produire les statistiques :

- Jour
- Semaine
- Mois
- Année

Le’ Nombre d’éléments max’ permet de n’afficher que les éléments les plus importants en terme de durée ou de nombre, les autres étant regroupés dans la classe Autres. Dans l’exemple ci-dessous, il a été choisi de n’afficher que 2 éléments maximum : les traitements ‘Conversion de fichier’ et ‘extraction ZI’ sont les deux traitements les plus longs, ils sont donc affichés et détaillées ; tous les autres traitements sont regroupés dans la classe ‘autres’.

Il est possible de tronquer les libellés pour réduire la taille de la légende et des info-bulles.

Il est possible d’augmenter le niveau de détail directement dans le graphique, en cliquant sur une barre d’histogramme. Le niveau d’analyse s’affine passant selon les cas, de l’année au mois, à la semaine, au jour et aux heures. Inversement, un clic droit> zoom out, sur une barre d’histogramme permet de passer à une analyse statistique plus large passant selon les cas des heures, au jour, au mois et à l’année.

# 10 Journaux (logs)

## 10.1 Consultation des fichiers de logs de l’application

Le mode Logs permet d’accéder à l’ensemble des fichiers de logs Apache, Pycron, Php, GTF et web.

L’administrateur a la possibilité de supprimer les fichiers en fonction de leur ancienneté.

# 11 Configuration et procédures d'exploitation

## 11.1 Configuration de l’application

Le mode Configuration permet de modifier les paramètres de configuration stockés dans des fichiers de type "properties" et de consulter l'état de l'application.

### 11.1.1 Paramètres généraux de configuration

La section Configuration permet de consulter et modifier les paramètres généraux de l’application. Organisée en rubriques, cette section permet la modification des paramètres généraux de GTF, des serveurs HTTP, SMTP et Proxy, des moteurs et des logs. Via cette section, l'administrateur personnalise l'application et améliore ses performances en déterminant les délais d'expiration de l'interface graphique, les taillles maximales des fichiers uploadés sur le serveur, les formats de dates... Il définit également l'emplacement du répertoire temporaire exploité par GTF, ainsi que les fichiers à ne pas compresser. Il peut de la sorte, choisir d'exclure des formats de la compression en définissant les extensions de fichiers non compressibles. Les formats de fichiers uniques tels que .xls, .html, .htm sont par défaut non compressibles.

La taille maximale de fichier uploadé est définie par défaut à 100 Mo. Pour augmenter cette valeur, il est nécessaire de modifier les 2 properties 'upload_max_filesize' et 'post_max_size' du fichier de configuration php.ini avant de configurer cette valeur directement dans le mode configuration de GTF.

La section Version permet de consulter le numéro de version de GTF et le build installé, de vérifier le numéro de version PHP et l’installation des extensions indispensables et optionnelles ainsi que la version PostgreSQL et de son extension Postgis.

La section PHP permet de consulter les paramètres de la version PHP installée.

La section Mises à jour permet de consulter et télécharger la dernière mise à jour de GTF.

La section licence permet de faire une demande de fichier de licence , de l'installer puis de l'activer.

La section sécurité permet la configuration de la gestion mixte des utilisateurs ainsi que les gestion du compte public .

### 11.1.2 Configuration du compte public et Jeton public

La partie Sécurité de la section Configuration permet de définir quel compte de connexion correspond au compte Public pour lequel un jeton de connexion doit être associé. Le jeton de connexion est l'identifiant de connexion appelant un service GTF, intégré directement dans une page internet. Créer un compte public avec son jeton de connexion est un moyen simple pour un administrateur de donner accès à un formulaire GTF à un utilisateur avec un minimum de droits.

Le bouton 'Autoriser les connexions avec le compte PUBLIC' permet d'activer/désactiver l'accès aux services GTF du compte PUBLIC.

Le jeton de connexion public doit être une chaîne de caractères non vide et sans espace.

### 11.1.3 Configuration des répertoires Public et Upload

Les répertoires Upload et Public, installés dans le répertoire d'installation de GTF, stockent repsectivement les ressources chargées avec un projet et les résultats d'un traitement. Il est possible de déplacer ces deux répertoires sur un autre disque et d'assurer de la sorte une répartition des données pour faciliter les processus de sauvegarde.

Pour cela, l'administrateur doit opérer en deux étapes :

- Dans le fichier de configuration properties_post.inc du réperoire .\gtf.client, modifier les deux properties :

$properties['upload_dir'] = $properties['gtf_home'] . '/upload';

$properties['dir_export'] = $properties['gtf_home'] . '/public';

en indiquant le chemin complet des répertoires upload et public.

- Dans le fichier de configuration httpd.conf du répertoire .\server\Apache2\conf du réperotire d'installation de GTF , modifier la configuration :

Alias /public "C:/serveur/gtf_2015-01.00.b12674_betax64/public"en indiquant le chemin complet

<Directory "C:/serveur/gtf_2015-01.00.b12674_betax64/public">

en indiquant le chemion complet du réperoitre public.

## 11.2 Nettoyage et suppression des fichiers temporaires

L’administrateur doit veiller à supprimer régulièrement les fichiers temporaires générés par l’application.

Il dispose pour cela du projet FME ‘nettoyage_des_fichiers_temporaires.fmw’ contenu dans le fichier admin.gex, disponible sur notre site de téléchargement. Après avoir importé et publié ce projet dans GTF, l’administrateur peut s’abonner au traitement et assurer de la sorte une suppression régulière des fichiers temporaires.

3 types de fichiers peuvent être supprimés :

- Les fichiers temporaires produits par GTF
- Les fichiers temporaires produits par FME
- Les jeux de données sources chargés sur le serveur par les utilisateurs finaux contenus dans le répertoire <gtf>\upload

Le paramètre ‘Age minimum des fichiers à supprimer’ permet de définir l’ancienneté minimale (en jours) des fichiers à supprimer évitant ainsi la suppression de fichiers déposés sur le serveur sans avoir été traités ou en cours d’exécution.

Un rapport de nettoyage dont le nom est défini par l'utilisateur est généré au format.txt.

## 11.3 Sauvegarde et restauration de l’application

### 11.3.1 Sauvegarde de l'application

Le projet Sauvegarde GTF , disponible sur notre site de téléchargement dans le projet admin.gex permet la sauvegarde de la base de données, des traitements publiés et de leurs résultats, du fichier pycron ainsi que l'ensemble des paramètres de configuration de GTF. Après avoir importé et publié ce projet dans GTF, l’administrateur peut s’abonner au traitement et assurer une sauvegarde régulière de l’application.

Le paramètre Nombre de fichiers de sauvegarde à conserver indique le nombre maximum de fichiers conservés dans le répertoire backup.

Le traitement opère de la manière suivante :

- Sauvegarde dans le répertoire gtf/backup des deux fichiers properties_domain.inc et properties_post_engine.inc
- Sauvegarde des exports sql de la base de données
- Sauvegarde des projets FME, des ressources complémentaires et des formulaires.

Pré requis à l’exécution de la sauvegarde de GTF :

Dans le cas d’une installation personnalisée de GTF, sans installation de la base PostgreSQL, l’administrateur doit impérativement copier dans <gtf>/util/postgres les fichiers postgres suivants (répertoire racine de postgreSQL) :

libeay32.dll
libiconv-2.dll
libintl-8.dll ou libintl.dll
libpq.dll
pg_dump.exe
pg_dumpall.exe
pg_restore.exe
psql.exe
ssleay32.dll
zlib1.dll

(Si postgres est installé avec l'installeur, ces fichiers sont automatiquement copiés.)

> > > > Pré requis à l’exécution de la sauvegarde de GTF :

SI postgre n'a pas été installé par le set up, alors les lignes suivantes doivent être rajoutées immédiatement après "# IPv4 local connections:"

host postgres u_scheduler 127.0.0.1/32 trust

Immédiatement après "# IPv6 local connections:"

host postgres u_scheduler ::1/128 trust

### 11.3.2 Restauration de l'application

Le script 'restore.bat' fourni avec GTF permet la restauration de l'application GTF à partir d'un fichier compressé obtenu après exécution du traitement sauvegarde (dans admin.gex disponible à l'adresse http://download.veremes.com/, répertoire gtf/gex)

Ce script peut être exécuté à partir de n'importe quel répertoire mais le chemin PHP et celui du fichier compressé .zip de sauvegarde doivent être indiqués au lancement.

Par exemple:

restore.bat "C:\serveurs\p.exe" "C:\serveurs\gtf\gtf_v2\public\2014040210410540232\1533.zip"

Le fichier psql.exe doit être présent dans le répertoire util\postgres du répertoire d'installation de GTF.

Effet de bord de la restauration : une fois les données restaurées, un traitement de sauvegarde se lance immédiatement (c'est le traitement de sauvegarde qui s'est sauvegardé lui-même et qui est donc relancé).

# 12 Utilisation des services WEB de GTF

Il est possible de manipuler GTF sans passer par l’interface gtf.client mais à l'aide d'une simple URL. C'est l'aspect "web service" de GTF. Ce service permet d’utiliser plusieurs fonctionnalités de l’application via des URL (adresses web).

Il existe actuellement plusieurs versions de l’API dans l’application. La version applicable est la version 4. La version 3 de l’API est dépréciée, mais reste toujours exploitable. La documentation associée à la version 3 est disponible sur notre site de téléchargement à l'adresse http://download.veremes.com/ dans le répertoire gtf/archive.

Comme l’indique le diagramme de séquence ci-dessus, l’appel d’une opération se fait en 2 temps :

- Votre application doit dans un premier temps générer le token (jeton de connexion)
- Appel à l’api rest avec le token précédemment créé.

Toute la documentation relative aux services WEB de GTF et à l'API REST est disponible edans le menu AIide > Service Web.

# 13 Support technique

Pour toute information complémentaire, vous pouvez contacter l’équipe de Veremes :

support@veremes.com

+33 0-4 68 38 65 27

+33 0-9 70 44 02 02

# 14 Annexes

## 14.1 Syntaxe des expressions CRON pour la définition des périodes d'abonnement

Le code à saisir doit respecter la syntaxe : mm hh jj MMM JJJ tâche

Où

mm représente les minutes (de 0 à 59)

hh représente l’heure (de 0 à 23)

jj représente le numéro du jour du mois (de 1 à 31)

MMM représentent l’abréviation du nom du mois (jan, feb,…) ou le numéro du mois (de 1 à 12)

JJJ représente l’abréviation du nom du jour ou bien le numéro du jour dans la semaine (0 = dimanche, 6 = samedi)

*Signifie à chaque unité (0,1,2,3,4…)

5,8 signifie les unités 5 et 8

2-5 signifie les unités de 2 à 5

*/3 signifie toutes les 3 unités (0,3,6,9…)

Exemples de syntaxe :

Tous les jours à 12 h : 0 12 ***

Tous les lundis à 22h15 : 15 22 * *1

Toutes les heures passées de 15 min : 15 * * * *

Tous les premiers du mois à 4h42 : 42 4 1 * *

Du 2 au 5 de chaque mois à 10h12 : 12 10 2-5 **