Workflow

Prev Next

Les règles de transitions

Comment empêcher certains changements d’état ou garantir qu’une équipe suive toujours le même workflow de travail ?

Prenons l’exemple d’un service de comptabilité qui gère ses factures avec un outil informatique.
Lorsqu’une commande doit être facturée, son statut passe à “À facturer”, puis à “facturé une fois la facture envoyée au client.
Enfin, lorsque le paiement est reçu, la commande atteint l’état “payé.

Il est impossible de refacturer une commande déjà facturée et il est essentiel de ne jamais modifier un état payé afin d’éviter les erreurs comptables.

Si un Tracker gère ce type de workflow, il est donc nécessaire de définir précisément les transitions autorisées.

Pour chaque tracker, il est possible de configurer les transitions pour un champ donné. Ce champ doit obligatoirement être un champ de type liste (“Selectbox”).

Deux modes de configuration sont disponibles : un mode simple et un mode avancé.

Info pratique

La configuration s’effectue dans l’onglet Transition du menu Workflow.

Le mode simple

Par défaut, un workflow est créé en mode simple.
Dans ce mode, la configuration porte sur les états eux-mêmes. Ainsi, toutes les transitions sortantes d’un état partagent les mêmes règles.

Attention !

Si vous activez le bouton “Activer les règles de transition”, l’état courant de la configuration du workflow est appliquée aux utilisateurs qui sont en train de naviguer sur le tracker.

Actions sur les transitions dans le mode simple

Pour chaque transition, le lien Configurer l’état permet de définir :

  • le groupe d’utilisateur autorisé à changer la valeur du champ ;

  • la liste des champs du tracker qui doivent être obligatoirement renseignés pour autoriser la transition ;

  • la saisie d’un commentaire obligatoire (sauf lors de la création d’un artifact) ;

  • une suite d’actions (à ajouter en cliquant sur “Ajouter une action”), telles que :

    • configurer ou modifier la valeur d’un champ numérique ou flottant

    • configurer ou modifier la valeur d’un champ date

    • déclencher un job Jenkins ou Hudson

    • geler la valeur d’un champ pour empêcher sa modification dans un état précis

    • masquer un groupe de champs afin d’alléger l’affichage pour un état donné.

Le mode avancé

En mode avancé, chaque transition est configurée individuellement.
L’administrateur du tracker doit donc définir la configuration transition par transition.

Pour activer ce mode, sélectionnez simplement “Utiliser la configuration avancée”.

Attention !

Si vous revenez au mode de configuration simple, vous perdez les règles spécifiques accordées à vos transitions. Ainsi, la première configuration de la colonne de l'état destination (“In Progress” par exemple) sera copiée pour tout l'état.

Actions sur les transitions dans le mode avancé

Pour chaque transition, le lien “Configurer” permet de définir :

  • le groupe autorisé à effectuer la transition ;

  • les champs qui doivent impérativement être renseignés avant le changement d’état ;

  • l’obligation de saisir un commentaire (sauf lors de la création de l’artifact) ;

  • une liste d’actions possibles, comme :

    • configurer un champ numérique ou flottant

    • configurer un champ date

    • déclencher un job Jenkins ou Hudson.

Les règles globales

Il peut être nécessaire de mettre en place certaines règles sur les champs des trackers pour par exemple éviter que la date de démarrage d’une tâche soit postérieure à la date de clôture comme montré ci-dessous.

Attention !

Il est possible de créer autant de règles que nécessaire. Cependant, un nombre élevé de règles augmente fortement le risque de blocage, car il devient plus probable qu’au moins l’une d’entre elles soit enfreinte.

Lorsqu’un utilisateur tente d’enfreindre une règle, il sera notifié du message suivant :

Error message indicating date submission must be earlier than the end date.

La modification tentée par l’utilisateur ne sera pas prise en compte (l’artifact ne sera pas modifié) et il sera invité à corriger son erreur.

Les dépendances entre champs

Très souvent, lorsque de nombreux champs sont utilisés, certaines relations existent entre eux.
Il arrive également que certaines combinaisons de valeurs entre deux champs soient impossibles ou doivent être interdites.

Par exemple, dans un tracker d’activité hebdomadaire, chaque activité doit être planifiée sur une journée.
Deux types d’activités peuvent être renseignés : personnelle ou professionnelle.
Une activité professionnelle peut être programmée du lundi au vendredi, tandis qu’une activité personnelle doit être planifiée uniquement le weekend.

La configuration de ces règles se fait dans l’espace d’administration du tracker, dans la section Gestion des dépendances entre champs.

La dépendance se configure entre deux champs d’un même tracker, à condition qu’il s’agisse de champs de type liste ou liste à choix multiple.
Après avoir sélectionné le champ qui influence le second, il suffit de définir les combinaisons de valeurs autorisées.

Une fois la dépendance configurée, elle s’applique lors de la création et de la modification des artifacts du tracker.
Toute modification du premier champ ajuste automatiquement les valeurs disponibles dans le second champ.

Info pratique

Il est possible de configurer plusieurs dépendances entre différents champs.

Les déclenchements

Les déclencheurs inter-trackers permettent d’automatiser la mise à jour de champs entre un artéfact parent et ses artéfacts enfants.
Ils sont particulièrement utiles, par exemple, pour fermer automatiquement un artéfact parent lorsque tous ses enfants ont été terminés.

Info Pratique

On configure cela dans le menu Workflow du Tracker Parent

Consultez cet article pour en savoir plus sur la hiérarchie des trackers.

Webhooks

Il est possible de configurer un tracker pour déclencher un webhook à chaque création ou mise à jour d’un artifact.
La configuration des webhooks se fait dans la section « Workflow » de l’administration du tracker.

Adding a webhook URL for artifact creation and updates in the administration interface.

Tuleap Functions

Les Tuleap Functions permettent d’exécuter automatiquement un calcul lors de la création ou de la mise à jour d’un artifact. Cela peut servir, par exemple, à évaluer un risque à partir de plusieurs facteurs. Cette approche évite d’avoir à passer par un webhook et un serveur externe pour effectuer le calcul.

Le code exécuté est une fonction WebAssembly (WASI Preview un) mise en ligne par l’administrateur du tracker. Tuleap exécute cette fonction de manière asynchrone après chaque création ou mise à jour d’un artifact.

Pour plus d’informations, merci de consulter la documentation technique.

Instructions for uploading WebAssembly functions in Tuleap project management tool.