Studio de conception de workflow
Pour définir vos workflow, GTF met à disposition un studio pour vous permettre de développer des solutions rapidement et facilement.
Le studio de workflow est constitué de différents composants :
Une fenêtre de visualisation, qui permet d'interagir facilement avec chaque étape et de définir les connexions entre ces étapes
Un panneau de configuration qui s'adapte à chaque type d'étape
Un assistant de conception d'expression pour pouvoir câbler la donnée et dynamiser votre workflow
Tous ces composants vont être détaillés à travers la conception d'un workflow simple que l'on va faire évoluer petit à petit.
Premiers pas
Pour débuter, le plus simple est de développer vos workflows par l'échec. C'est-à-dire que petit à petit vous allez ajouter vos étapes, tester, et après chaque test le studio pourra vous aider à configurer la suite de votre flux.
Créer un premier workflow
On commence par créer un nouveau workflow

Par défaut lorsque vous utilisez le studio sur un workflow vierge vous arrivez sur cette interface.

Pour que votre workflow fonctionne la première chose à faire est d'ajouter un déclencheur, c'est l'étape qui va créer vos itérations et vous permettre de lancer vos premiers tests.
En cliquant sur le bouton d'ajout en haut à gauche, vous pouvez choisir un déclencheur en cliquant dessus, en lâchant le clic le trigger sera ajouté à une position par défaut, sinon vous pouvez glisser/déposer le bloc à la position souhaitée.
Pour un premier test le PeriodTrigger est le plus simpliste.
Vous pouvez maintenant cliquer sur l'écrou sur le bloc pour ouvrir la fenêtre de configuration de l'étape. Vous pouvez ensuite enchainer une action comme un AttributeCreator.

Cliquez sur l'écrou pour configurer l'étape, ajoutez quelques variables que l'on pourra utiliser par la suite.

En cliquant sur le bouton de lancement de test en haut à droite vous pourrez créer une itération de test sur votre workflow, comme vous utilisez un PeriodTrigger Il n'y a pas de formulaire, vous pouvez simplement valider.
L'itération ajoutée deviendra votre itération de référence, c'est-à-dire l'itération suivie par le workflow. L'itération de référence changera à chaque nouveau test, mais vous pouvez choisir l'itération que vous souhaitez pour développer.
Votre workflow va vous permettre de suivre l'avancement de l'itération.

La donnée accumulée sera accessible de deux manières
En cliquant sur la loupe du bloc, ce qui permet de voir la donnée et éventuellement de relancer l'itération depuis cette étape

En passant par le formulaire de configuration d'une étape, dans le formulaire il y a des champs qui ont un bouton sur la droite qui permet d'ouvrir un assistant de conception d'expression

Vous pouvez maintenant ajouter une nouvelle étape comme un DescriptionSetter, dans son formulaire de configuration, ouvrez l'assistant depuis le champ qui contient la description. L'itération sélectionnée dans l'assistant peut être différente de l'itération de référence pour tester votre expression dans différents cas d'utilisation.

Vous pouvez maintenant relancer un nouveau test pour vérifier le bon fonctionnement.
Félicitations, vous venez de réaliser votre premier workflow avec GTF.

La documentation des différentes étapes est disponible ici
Raccourcis clavier
Par défaut à la création d'un workflow un bloc d'aide est présent, ce bloc vous présente les raccourcis clavier pour utiliser le studio de conception.
Raccourcis :
Suppr/Delete : Supprime la sélection
Clic gauche : Sélectionne, déplace le fond, un bloc ou crée une connexion
Clic droit : Affiche la liste des actions réalisables sur l'étape
Molette : Contrôle le zoom
Clic Molette : Déplacer le fond
Glisser/déposer : Ajouter une étape à la position souhaitée
Expression JMESPath et dynamisation
Comme vu précédemment pour mapper vos données dans les étapes, vous allez devoir utiliser des expressions.
GTF utilise JMESPath comme moteur pour évaluer les expressions. Il faut considérer la donnée de votre workflow comme un seul objet JSON, JMESPath va vous permettre de créer des requêtes pour isoler la donnée dans cet objet JSON. JMESPath permet aussi de filtrer et de retravailler la donnée à une petite échelle.
L'assistant de conception d'expressions va vous permettre de créer graphiquement la majorité de vos requêtes.
Exemple : trier les pièces jointes de mail pour ensuite créer une demande GTF.

En cliquant sur l'écrou à côté de la clé attachment utilisée dans l'expression précédente, l'assistant pourra générer des expressions plus spécifiques, exemple avec un filtre de fin de chaîne pour détecter l'extension du fichier :

Cependant dans certains cas très rares vous pourrez adapter vos requêtes pour tirer profit au maximum de JMESPath, exemple recréer un objet permettant de gérer des tableaux de fichiers par extensions souhaitées :

Protéger les informations de connexions avec l'environnement
Si vous devez utiliser des informations sensibles comme des mots de passe. Il est conseillé de passer par un environnement et de lier votre environnement à votre workflow.
L'environnement sera accessible via une expression en commençant par environment
Note
L'assistant pourra bientôt aider sur ces expressions également.
L'environnement est stocké en base dans une colonne chiffrée, la clé est calculée sur le serveur d'après plusieurs informations donc la donnée sera non accessible même pour l'administrateur de la base de données.
Sauvegarder et partager votre travail
Il est possible d'exporter et d'importer un workflow au format JSON.
Vous pourrez donc l'exporter, pour le stocker sur un logiciel de versionnement externe, ou le partager à un autre organisme.
En revanche, au moment de l'import il sera importé sans vérification d'existence des objets liés ou de l'accessibilité des services utilisés.
Il faudra sûrement recâbler vos périodes, vos modèles de mails, vos traitements FME, potentiellement installer des exécutables sur votre serveur si vous utilisez des SystemCaller, ...
Superviser les itérations
La supervision des itérations utilise le même composant que pour la définition mais en mode lecture seule. On retrouvera les mêmes règles de coloration pour suivre le tracé de l'itération, même système d'accès aux données, ...
Analyser la donnée et relancer une itération
En cliquant sur la loupe je peux visualiser la donnée disponible pour cette étape, et relancer la demande depuis cette étape si nécessaire.

Relancer une itération depuis un workflow, duplique en fait l'itération et toutes les étapes précédentes à celle relancée avant de recréer cette dernière. Le moteur de workflow prend en charge l'exécution normalement de la nouvelle itération à partir de l'étape en attente.
Détecter les erreurs
En parcourant le workflow dans la supervision, il est facile de voir les erreurs.

En cliquant sur la troisième icône vous pourrez accéder à un log d'erreur très simpliste, il faudra aller parcourir le véritable log pour en savoir plus.

Limitations
Le moteur qui gère les workflows de GTF rencontre encore quelques limitations :
Incapacité à boucler : il est actuellement impossible de faire fonctionner une boucle. Vous pourrez le faire dans le studio mais chaque étape ne peut être lancée qu'une seule fois pour l'instant.

Incohérence sur la séparation de flux : le moteur ne peut pour l'instant pas paralléliser deux étapes d'une même itération, il va suivre le flux d'une des deux connexions, il pourra potentiellement lancer la deuxième branche si le workflow n'est pas terminé. Il sera quasi-impossible de gérer la temporalité de lancement des deux branches si elle se lance.

Impossibilité de fusionner des flux : Pour la même raison que les boucles et la séparation de flux, il n'est pas possible de ramener deux flux en une même étape, le premier flux entrant lancera l'étape et le second n'aura aucun impact sur l'itération.

Avertissement
Ne pas confondre fusion de flux et branches.
Fusionner deux flux sous-entend que l'on a deux entités dans la même itération que l'on transforme en une seule, ce n'est actuellement pas possible.
En revanche avoir deux branches suite à un testeur qui entraîne l'exécution d'une étape commune par la suite, c'est possible car tout du long il n'y aura qu'une seule entité.
JMESPath et expressions très complexes : La syntaxe utilisée pour les expressions JMESPath peut donner des expressions très complexes, parfois il y a des différences entre le résultat visible et le résultat réel de l'expression (problème dans le moteur JMESPath), il est possible que de petites différences apparaissent en fonction de vos données. Ces cas devraient être très marginaux.