Activités

Sous-processus de Transaction(Transaction Sub-Process)

Un sous-processus à sémantique du tout ou rien : soit chaque étape s'achève et la transaction se confirme, soit elle est annulée et les étapes achevées sont compensées. Dessiné avec une double bordure.

Le Sous-processus de Transaction enveloppe des étapes qui doivent réussir en tant qu'unité — le classique de la réservation de voyage : vol + hôtel + paiement. Son protocole a trois issues : succès (sortie par le flux normal), annulation (une Fin d'Annulation se déclenche à l'intérieur → les gestionnaires de compensation défont les étapes achevées → sortie via la Bordure d'Annulation) et hasard (quelque chose s'est brisé en plein protocole ; sortie via une bordure d'erreur).

Quand l'utiliser et l'éviter

Quand l'utiliser

  • Pour les unités métier du tout ou rien : réservations multi-articles, écritures coordonnées, commandes groupées.

  • Quand les étapes achevées disposent de gestionnaires de compensation déclarés qui rendent l'annulation automatique lors d'une annulation.

  • Quand le métier distingue explicitement les issues confirmer / annuler / hasard.

Quand NE PAS l'utiliser

  • Pour un simple regroupement sans sémantique transactionnelle — sous-processus incorporé.

  • Quand les étapes ne peuvent pas être compensées — le protocole n'a rien pour défaire.

  • Pour des transactions ACID de bases de données techniques — il s'agit ici d'un protocole *métier*, à durée de vie bien plus longue.

Exemple métier

Réserver un voyage comme une transaction

Diagrama BPMN: Réserver un voyage comme une transaction
Réserver un voyage comme une transaction

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. La Transaction (mise en évidence, double bordure) réserve le vol et l'hôtel comme une unité.
  2. Si le client abandonne, la Fin d'Annulation interne se déclenche : les réservations achevées sont compensées automatiquement.
  3. Le jeton sort par la Bordure d'Annulation vers le chemin de remboursement — sans jamais laisser un demi-voyage réservé.

Différences

Transaction vs Sous-processus Incorporé

Tous deux contiennent un flux ; seule la transaction porte le protocole d'annulation et de compensation (double bordure, Fin / Bordure d'Annulation, compensation automatique). Si rien n'a besoin d'être défait, un simple sous-processus incorporé suffit.

FAQ

Qu'est-ce qui déclenche la compensation à l'intérieur d'une transaction ?

L'atteinte d'un Événement de Fin d'Annulation en son sein (ou une annulation externe). Le moteur exécute alors les gestionnaires des activités achevées en ordre inverse.

Qu'est-ce que l'issue « hasard » ?

Une défaillance du protocole de transaction lui-même (modélisée avec une bordure d'erreur) — ni succès net, ni annulation ordonnée.

Éléments associés