Activités

Marqueur de Compensation(Compensation Marker)

Le marqueur de rembobinage (◀◀) qui désigne une activité comme gestionnaire de compensation — exécutée uniquement pour défaire une activité achevée, jamais par le flux normal.

Une activité marquée pour compensation est la recette d'annulation d'une autre activité : reliée depuis l'Événement de Bordure de Compensation de cette activité par une association en pointillés, elle reste entièrement hors du flux normal. Elle ne s'exécute que lorsqu'une compensation est levée après l'achèvement de sa partenaire.

Quand l'utiliser et l'éviter

Quand l'utiliser

  • Pour définir l'inverse métier de chaque étape conséquente : annuler une réservation, rembourser un débit, contre-passer une écriture.

  • Dans les transactions et les sagas, où les protocoles d'annulation / compensation les invoquent automatiquement.

  • Un gestionnaire par activité — une annulation précise et ciblée.

Quand NE PAS l'utiliser

  • Pour un travail atteignable par le flux de séquence normal — les gestionnaires ne peuvent pas être câblés dans le flux.

  • Quand l'effet de l'activité n'a pas d'inverse pertinent — la compensation ne peut pas en inventer un.

  • Comme nettoyage générique sans lien avec une activité achevée spécifique.

Exemple métier

La recette d'annulation d'une réservation d'hôtel

Diagrama BPMN: La recette d'annulation d'une réservation d'hôtel
La recette d'annulation d'une réservation d'hôtel

Ouvrez cet exemple dans l'éditeur de processus HEFLO et explorez le diagramme de l'intérieur.

Ouvrir dans l'éditeur HEFLO →

Étape par étape

  1. Annuler la réservation d'hôtel (mise en évidence, marqueur de rembobinage) est suspendue à la tâche de réservation via l'association en pointillés — hors du flux normal.
  2. Elle dort pendant l'exécution normale.
  3. Quand le paiement est refusé et qu'une compensation est levée, le moteur l'invoque pour défaire la réservation achevée.

Différences

Gestionnaire de compensation vs chemin d'exception

Un chemin d'exception (issu d'une bordure d'erreur) traite une étape qui *a échoué en cours d'exécution*. Un gestionnaire de compensation défait une étape qui *a réussi* mais doit être annulée ultérieurement. Échec → exception ; annulation rétroactive → compensation.

FAQ

Pourquoi ne peut-il pas avoir de flux de séquence entrants ?

Par spécification : les activités de compensation sont invoquées exclusivement par le mécanisme de compensation, jamais par des jetons.

Reçoit-il les données de l'activité d'origine ?

Oui — les moteurs fournissent l'instantané de l'activité achevée afin que l'annulation puisse référencer exactement ce qui a été fait.

Éléments associés