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

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
- La Transaction (mise en évidence, double bordure) réserve le vol et l'hôtel comme une unité.
- Si le client abandonne, la Fin d'Annulation interne se déclenche : les réservations achevées sont compensées automatiquement.
- 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.