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

form_simple

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

studio vierge

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.

Création de workflow

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

Création de workflow

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.

Lancement de test

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 visualisation des données

  • 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 assistant première utilisation

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.

bind with expression

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.

final first steps

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.

assistant_attach_simple

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:

assistant_attach_filter

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 :

assistant_attach_object

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.

viz and restart

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.

erreur

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.

error_modal

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. cannot loop

  • 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. cannot split

  • 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. cannot merge

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.