Définir une sortie par défaut lors d’une escalade

Les escalations K2 (principe de surveillance des activités et instances) sont souvent utilisées pour alerter un ou des utilisateurs que leur tâche approche ou a dépassé les temps impartis. Mais grâce à elles, il est également possible de rediriger la tâche vers d’autres utilisateurs (action Redirect) ou vers d’autres activités (action Go to Activity) ou de la faire expirer (action Expire Activity).

Les actions d'escalade
Les actions d’escalade

Dans ce billet, nous allons donc voir une astuce qui permet de configurer l’escalation pour que l’instance prenne un chemin par défaut en cas de dépassement. Le comportement souhaité d’un point de vue fonctionnel peut être le suivant : si la demande (de congés par exemple) n’est pas validée dans les 5 jours, alors elle est automatiquement validée  (ou automatiquement refusée ).

Vous allez me dire, « bah c’est simple, il suffit de faire un Go To Activity sur un délai de 5 jours sur l’étape qui suit la validation »… alors effectivement ce serait une solution, mais qui n’est pas valable dans toutes les configurations car le Go To s’accompagne d’une annulation de toutes les tâches qui sont en cours sur l’instance. Donc si votre processus a été parallélisé, cela peut créer un dysfonctionnement.

La solution est très simple (comme souvent d’ailleurs), il suffit d’utiliser l’action d’expiration de manière complètement habituelle et de positionner une valeur par défaut à la variable d’activité outcome. L’action d’expiration a pour effet d’annuler la tâche donc si on reste sur une configuration par défaut, la tâche va disparaître de la liste des tâches des utilisateurs puis… c’est tout. S’il s’agissait de la dernière tâche en cours pour l’instance, alors celle-ci va passer dans un état terminé, si d’autres tâches étaient en cours, alors elles seront toujours disponibles. En revanche si on donne une valeur par défaut à l’outcome de l’activité, alors l’expiration de l’activité va déclencher les tests de sortie.

Pour illustrer ceci prenons le cas suivant : une tâche de validation dispose de 2 outcomes (valider et refuser) qui pointent chacune vers des étapes distinctes. Si cette tâche de validation n’est pas traitée dans les 2 jours, alors on souhaite prendre le même chemin que si l’utilisateur avait validé la demande.

Il suffit donc de configurer une expiration standard de l’activité, puis ensuite d’aller positionner la variable d’activité nommée outcome à la valeur correspond à l’outcome que vous souhaitez prendre. Comme sur la copie d’écran ci-dessous :

Mettre une valeur par défaut à l'outcome d'activité
Mettre une valeur par défaut à l’outcome d’activité

Ensuite, il est possible de pousser le concept un peu plus loin et de rajouter un lien qui ne sera emprunté qu’en cas d’expiration et qui aboutira sur la même activité que si la validation s’était faîte manuellement. Cela permet d’un coup d’oeil sur le suivi graphique de voir que le chemin a été emprunté manuellement ou automatiquement :

Utilisation d'un lien spécifique pour le chemin automatique
Utilisation d’un lien spécifique pour le chemin automatique

Dans ce cas, il suffit d’initialiser la valeur de la variable d’activité outcome avec une valeur ne correspondant à aucune outcome attendue puis de construire manuellement la condition sur le lien en testant que l’outcome est égale ou non à cette valeur.

En espérant que vous trouviez cela utile.

Happy K2ing!

jean

Directeur technique de K2 France depuis 2006 et passionné par les technologies, je travaille dans le monde du BPM et des applications métier depuis... que je travaille :). Vous pouvez également me suivre sur twitter, linkedin.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *