Type : Script Python et Tcl
Si vous choisissez Scripté (Python) ou Scripté (Tcl) dans les champs de la boîte de dialogue Ajouter/Modifier un paramètre, vous pouvez écrire un script qui affecte la valeur d'un paramètre à l'exécution du traitement. Ce script calculera une valeur et l'affectera à un paramètre global avant même que les données ne soient lues (par exemple, vous pourriez vouloir ouvrir une base de données, extraire une valeur, puis exécuter le traitement).
Vous pouvez aussi utiliser ces paramètres dans un Transformer personnalisé.
Templates FME Hub
Les modèles qui contiennent des paramètres Script (Python) peuvent être téléchargés à partir de FME Hub. Pour les télécharger :
- Sélectionner Fichier > Nouveau
- Sélectionner FME Hub.
- Dans la barre de recherche, taper python.
- Choisissez l'un des modèles depuis la liste en haut à droite.
Exemple : Regrouper des couches dans un Traitement (script Python)
Définir le paramètre dans le Traitement.
Vous pouvez utiliser le paramètre Script" (Python) pour permettre le regroupement de types d'entités (couches) dans un traitement. Dans cet exemple, tiré de l'un des modèles décrits ci-dessus, le paramètre vous permet de choisir le regroupement par différentes couches lorsque vous exécutez le traitement.
Ouvrez le gestionnaire de paramètres publiés de Workbench.
Le paramètre est défini à l'aide des options suivantes :
Ecrire un script Python (ou Tcl)
Cliquez sur le bouton de navigation à côté du champ Valeur pour afficher l'éditeur de code source. Le code dans l'éditeur est décrit ici :
Code | Description |
---|---|
![]() |
Définit la variable featureTypes à vide. |
![]() |
Si vous choisissez Bus Information en paramètre global, définissez les types d'entités à Bus Routes et BusStops. |
![]() |
Si vous choisissez Route et Rail en paramètre global de couches, définissez les types d'entités suivants : metrorail et Routes |
![]() |
Si vous choisissez All transits en paramètre global de couches, définissez les types d'entités suivants : metrorail, Routes, Itinéraires Bus, Arrêts de Bus et Etiquettes. |
![]() Note: Pour Python et Tcl, votre code doit contenir une déclaration |
Retourne la variable Le paramètre global Le paramètre global |
Note: Prenez note du style d'indentation des blocs de code. L'éditeur de code source de FME utilise des tabulations pour l'indentation des blocs, alors que d'autres environnements de développement Python (comme IDLE) remplacent les tabulations par quatre espaces (par défaut). Les styles mixtes dans un même bloc ne sont pas autorisés. Pour éviter les erreurs, vous devrez peut-être remplacer les tabulations ou les espaces dans le code copié depuis un autre environnement.
Exécuter le Traitement
Pour exécuter le traitement, sélectionnez Exécuter > Saisie des paramètres ou appuyez sur Ctrl+r
La boîte de dialogue Paramètres de traitement s'affiche. Le traitement sera mise en pause jusqu'à ce que vous choisissiez les couches à regrouper.
Si vous sélectionnez Tout, les entités sont définies comme tous les types d'entités :
Si vous sélectionnez seulement Information Bus, par exemple, les types d'entités sont définis comme Itinéraires Bus et ArrêtsBus :
Actions Python/Tcl supplémentaires
Ce tableau donne des exemples d'actions qu'il est possible d'inclure dans votre script Python ou Tcl.
Action | Python | Tcl |
---|---|---|
Accéder aux autres paramètres |
FME_MacroValues['MacroName']
|
Changer la valeur de la macro dans le lexique n'aura en aucun cas un effet en-dehors de votre code. |
Installer d'autres paramètres | Non applicable |
pose Noter que cela va installer ce paramètre dans le lexique FME_MacroValues après l'exécution de votre code. Changer |
Écrire dans le fichier de log. Le message apparaîtra dans la fenêtre de journal du Workbench en contexte d'exécution avec la couleur indiquée par le niveau d'erreur. | Non applicable |
pose {Tcl2 FME_LogMessage fme_fatal {message message}} |
Pour écrire à la fin du fichier de log. Le message apparaîtra à la fin, au niveau "Info". |
Si vous avez plusieurs déclarations |
pose {Tcl2 error {my message}} Voir l'aide FME Factories and Functions pour une description complète de la fonction |