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'intéragir 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'echec. C'est à dire que petit à petit vous allez ajouter vos étapes, tester, et aprés chaque teste 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 utiliser 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 lachant le clique 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, ajouteé 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 de puis cette étape
En passant par le fomulaire 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é 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 tests pour vérifier le bon fonctionnement.
Félicitation 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, cebloc vous présente les raccourcis clavier pour utiliser le studio de conception.
Raccourcis :
Suppr/Delete : Supprime la sélection
Clic gauche : Sélectionne, déplacer le fond, un bloc ou créer une connexion
Clic droit : Affiche la liste des actions réalisables sur l'étape
Molette : Controle 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 de 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'expression, va vous permettre de créer graphiquement la majorité de vos requêtes.
Exemple : trier les pièces jointe de mail pour ensuite créer une demande GTF.
En cliquant sur l'écrou à coté 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 chaine pour détecter l'extension du fichier:
Cependant dans certain 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 fichier par extensions souhaitées :
Protéger les informations de connexions avec l'environnement
Si vous devez utiliser des informations sensibles comme des mot de passe. Il est conseillé de passer par un environnement de 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 sotcké en base dans une colonne chiffré, la clé est calculé sur le serveur d'aprés plusieurs information donc la donnée sera non accessible même pour l'administrateur base de donnée.
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'existance des objets liés ou de l'accéssibilité des services utilisés.
Il faudra surement recâbler vos périodes, vos modèles de mails, vos traitements FME, potentiellement installer des éxacutables sur votre serveur si vous utilisez des systemCaller, ...
Superviser les itérations
La supervision des itération utilise le même composant que pour la définition mais ne mode lecture seul. On retrouvera les même règle de coloration pour suivre le tracé de l'itération, même système d'accés au données, ...
Analyser la donnée et relancer une itération
En cliquant sur la loupe je peux visualiser la données 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 relancer avant de recréer cette dernière. Le moteur à 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 workflow 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 lancer qu'une seule fois pour l'instant.
Incohérence sur la séparation de flux : le moteur ne peut pour l'instant pas parrallé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 boucle 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 tranforme en une seule, ce n'est actuellement pas possible.
En revanche avoir deux branches suite à un tester qui entraine 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 expression trés complexe : La syntaxe utilisé pour les expression JmesPath peut donner des expression trés complexe, parfois il y a des différence 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.