Événements

Événement Intermédiaire d'Émission de Compensation(Intermediate Compensation Throw Event)

Déclenche les gestionnaires de compensation d'activités déjà achevées — la manière BPMN d'« annuler » un travail terminé. Double cercle fin avec des flèches de rembobinage remplies.

Le travail métier ne peut souvent pas être annulé comme une transaction de base de données — un hôtel réservé doit être *annulé*, une carte débitée doit être *remboursée*. L'Événement d'Émission de Compensation (Compensation Throw Event) invoque les gestionnaires de compensation (rattachés via des événements de compensation en bordure) des activités déjà achevées, dans l'ordre inverse.

Quand l'utiliser et l'éviter

Quand l'utiliser

  • Lorsqu'un échec tardif nécessite d'annuler des étapes antérieures déjà achevées (annuler des réservations, contrepasser des écritures).

  • Dans les sagas / transactions de longue durée où le rollback classique est impossible.

  • Associé à des événements de compensation en bordure qui définissent *comment* chaque activité est annulée.

Quand NE PAS l'utiliser

  • Lorsque rien n'a encore été achevé — acheminez simplement vers une fin.

  • Pour des nouvelles tentatives techniques d'une étape en échec — c'est de la gestion d'erreur, pas de la compensation.

  • Lorsqu'un Sous-Processus de Transaction avec une Fin d'Annulation orchestre déjà l'annulation — ne déclenchez pas en double.

Exemple métier

Annuler une réservation d'hôtel après un paiement refusé

Diagrama BPMN: Annuler une réservation d'hôtel après un paiement refusé
Annuler une réservation d'hôtel après un paiement refusé

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. Réserver l'hôtel s'achève ; sa bordure de compensation + le gestionnaire « Annuler la réservation d'hôtel » définissent comment l'annuler.
  2. Le paiement est refusé au niveau de la passerelle.
  3. L'Événement d'Émission de Compensation (mis en évidence) se déclenche — le moteur invoque le gestionnaire de la réservation achevée, l'annulant — et le processus se termine avec la demande rejetée.

Différences

Compensation vs Erreur

L'Erreur traite *cette* étape en échec. La Compensation annule les *étapes précédentes réussies* parce qu'une condition ultérieure les a invalidées. Elles fonctionnent généralement ensemble : une erreur déclenche le chemin qui émet la compensation.

FAQ

Dans quel ordre les gestionnaires sont-ils exécutés ?

Dans l'ordre inverse d'achèvement — l'activité terminée le plus récemment est compensée en premier, comme le dépilement d'une pile.

Les activités sans gestionnaire de compensation sont-elles annulées ?

Non — la compensation n'atteint que les activités ayant déclaré un gestionnaire via un événement de compensation en bordure.

Éléments associés