
Le modèle et la notation des processus métiers (BPMN) servent de langue universelle pour décrire les flux de travail. Dans cette norme visuelle, événements agissent comme des déclencheurs et des résultats qui font avancer tout le processus. Sans une compréhension claire de la manière dont ces événements fonctionnent, un modèle de processus peut devenir ambigu ou techniquement non exécutable. Ce guide analyse les trois catégories principales : événements de démarrage, événements intermédiaires et événements de fin.
Les événements sont représentés par des cercles dans la notation BPMN. Leurs symboles internes déterminent leur comportement spécifique. Ils marquent le début, l’occurrence ou la terminaison d’une activité de processus. Les avoir correctement définis garantit que la logique s’écoule logiquement d’une tâche à l’autre.
🟢 Événements de démarrage : le point de déclenchement
Un événement de démarrage initie un processus. C’est le point d’entrée où le flux de travail commence son exécution. Visuellement, un événement de démarrage est un cercle à bord mince. Il existe des types spécifiques d’événements de démarrage qui déterminent la manière dont le processus est déclenché.
1. Événement de démarrage sans type
- Symbole :Cercle vide à l’intérieur d’un cercle plus grand.
- Comportement : Il s’agit du comportement par défaut. Il attend une intervention manuelle ou un appel système externe pour démarrer le processus.
- Cas d’utilisation : Idéal pour les processus qui commencent à la demande, comme un flux de travail « Demande d’approbation » lancé par un utilisateur.
2. Événement de démarrage par message
- Symbole :Icône d’enveloppe à l’intérieur du cercle.
- Comportement : Le processus démarre lorsqu’un message spécifique est reçu. Cela implique un déclenchement asynchrone.
- Cas d’utilisation : Réception d’une confirmation par courriel ou d’un appel API qui déclenche un cycle de traitement.
3. Événement de démarrage par minuterie
- Symbole :Icône de cadran d’horloge à l’intérieur du cercle.
- Comportement : Le processus démarre à une heure précise ou selon un calendrier récurrent.
- Cas d’utilisation : Génération de rapports quotidiens, exécution mensuelle des paies ou sauvegardes système.
4. Événement de démarrage par signal
- Symbole : Foudre jaune à l’intérieur du cercle.
- Comportement : Le processus commence lorsque un signal est diffusé. Ce signal peut être capté par plusieurs processus simultanément.
- Cas d’utilisation : Une alerte système globale qui déclenche des flux de maintenance dans différents départements.
5. Événement de départ d’erreur
- Symbole : Point d’exclamation à l’intérieur d’un cercle (généralement rouge).
- Comportement : Peu utilisé comme événement de départ dans les flux standards, mais techniquement possible si un processus est conçu pour se remettre d’un état d’erreur spécifique immédiatement au démarrage.
Il est crucial de noter qu’un processus doit avoir exactement un événement de départ. Avoir plusieurs événements de départ peut entraîner une confusion quant à la condition qui déclenche le flux de travail.
🟡 Événements intermédiaires : L’occurrence
Les événements intermédiaires se produisent pendant l’exécution d’un processus. Ils se situent entre les événements de départ et de fin. Ces événements peuvent soit capturer un événement (en attente de quelque chose), soit lancer un événement (envoyer quelque chose). Visuellement, ils sont représentés par des cercles avec une bordure épaisse.
1. Événements intermédiaires de capture
Ces événements mettent en pause le flux du processus jusqu’à ce qu’une condition spécifique soit remplie. Une fois cette condition satisfaite, le flux reprend.
- Capture de message : Attend qu’un message spécifique arrive. Le processus est bloqué jusqu’à ce que les données soient reçues.
- Capture de minuteur : Retarde le processus pendant une durée spécifique (par exemple, attendre 3 jours) ou jusqu’à une date précise.
- Capture d’erreur : Attend qu’une erreur spécifique soit levée par une tâche amont. Cela est souvent utilisé dans les sous-processus de gestion des erreurs.
- Capture de signal : Attend qu’un signal soit diffusé. Contrairement aux messages, les signaux sont diffusés, et non envoyés à un destinataire spécifique.
- Capture de lien : Se connecte à un événement de diffusion de lien au sein du même processus. Utile pour les boucles longues ou les flux complexes.
- Capture d’escalade : Attend qu’une escalade soit déclenchée. Cela est spécifique à la gestion des escalades de processus.
2. Événements intermédiaires de lancement
Ces événements déclenchent immédiatement une action au moment où le flux les traverse. Ils ne mettent pas en pause le flux.
- Lancement de message : Envoie un message à un autre participant ou système immédiatement.
- Déclenchement de signal :Diffuse un signal à tous les processus en écoute de ce signal spécifique.
- Déclenchement d’une escalade :Déclenche une escalade au sein de la logique du processus.
- Déclenchement de lien :Envoie le flux de contrôle vers un événement de capture de lien ailleurs dans le diagramme.
3. Événements intermédiaires à la limite
Un type particulier d’événement intermédiaire attaché à la limite d’une tâche ou d’un sous-processus. Il offre une manière de gérer les interruptions sans interrompre immédiatement le flux principal.
- Limite d’annulation :Annule l’activité si l’événement se produit.
- Limite d’horloge :Déclenche un chemin alternatif si la tâche dure trop longtemps (délai dépassé).
- Limite de message :Permet à la tâche de continuer tout en écoutant un message.
- Limite d’erreur :Attrape une erreur levée pendant l’exécution de la tâche associée.
Comprendre la distinction entre le captage et le déclenchement est essentiel. Le captage attend ; le déclenchement agit. Confondre les deux peut entraîner des processus qui bloquent indéfiniment ou s’exécutent prématurément.
🔴 Événements de fin : La terminaison
Les événements de fin indiquent la réussite ou l’échec de la finalisation d’un processus. Ils marquent le point final d’exécution. Comme les événements de départ, ils sont circulaires, mais ils présentent souvent une bordure épaisse pour indiquer la finalité.
1. Événement de fin sans type
- Symbole :Cercle vide.
- Comportement :Le processus s’arrête simplement. Aucune donnée n’est envoyée, et aucune notification externe n’est effectuée.
- Cas d’utilisation :Un flux de travail standard qui se termine sans nécessiter de reconnaissance externe supplémentaire.
2. Événement de fin par message
- Symbole :Icône d’enveloppe.
- Comportement : Envoie un message en tant que dernière étape du processus.
- Cas d’utilisation : Envoi d’un e-mail de confirmation « Commande terminée » au client.
3. Événement de fin par signal
- Symbole : Foudre jaune.
- Comportement : Diffuse un signal pour terminer d’autres processus liés ou informer le système.
- Cas d’utilisation : Informer une mise à jour d’état globale indiquant qu’une transaction spécifique est terminée.
4. Événement de fin par erreur
- Symbole : Point d’exclamation.
- Comportement : Indique que le processus s’est terminé en raison d’une condition d’erreur.
- Cas d’utilisation : Enregistrement d’une transaction échouée qui ne peut pas être récupérée.
5. Événement de fin par terminaison
- Symbole : Cercle gras avec une croix (X) ou une bordure épaisse.
- Comportement : Arrête immédiatement l’instance entière du processus, annulant toutes les voies parallèles actives.
- Cas d’utilisation : Annulation d’une commande où toutes les étapes ultérieures doivent être immédiatement abandonnées.
📊 Tableau de comparaison des événements
Pour visualiser les différences, reportez-vous à la comparaison ci-dessous.
| Fonctionnalité | Événement de départ | Événement intermédiaire | Événement de fin |
|---|---|---|---|
| Forme | Cercle (bordure fine) | Cercle (bordure épaisse) | Cercle (bordure épaisse) |
| Flux de connexion | Un seul flux sortant | Un flux entrant, un flux sortant | Un seul flux entrant |
| Nombre de processus | Exactement un par processus | Zéro ou plusieurs par processus | Zéro ou plusieurs par processus |
| Chronologie | Déclenche le flux | Se produit pendant le flux | Termine le flux |
| Fonction principale | Déclencheur | Attendre, envoyer ou gérer | Terminer ou annuler |
⚠️ Meilleures pratiques et pièges courants
Lors de la modélisation de processus complexes, respecter les normes évite toute ambiguïté. Voici des lignes directrices essentielles pour maintenir clarté et intégrité technique.
1. Éviter les événements orphelins
Assurez-vous que chaque événement est connecté à un flux. Un événement sans flux d’entrée ou de sortie est souvent une erreur de modélisation. Les événements intermédiaires doivent avoir une connexion entrante et une sortie, sauf s’ils sont attachés à une borne d’une tâche.
2. Différencier les types de minuteurs
Ne pas confondre les événements de démarrage à minuteur avec les événements intermédiaires à minuteur.
- Démarrage à minuteur : Le processus commence parce que du minuteur.
- Événement intermédiaire du minuteur : Le processus est mis en pause parce que du minuteur.
3. Utilisez les événements limites pour la gestion des exceptions
Au lieu de créer des passerelles complexes pour vérifier les erreurs, attachez des événements limites d’erreur aux tâches. Cela maintient le chemin normal clair et sépare visuellement la logique des erreurs.
4. Conventions de nommage
Nommez clairement vos événements. Un « Événement de capture de message » doit être étiqueté avec le nom du message (par exemple, « Recevoir la confirmation de paiement »). Cela aide les parties prenantes à comprendre quelles données sont nécessaires à ce point précis.
5. Limitez la complexité des signaux
Bien que les signaux soient puissants, leur utilisation excessive peut rendre le processus difficile à suivre. Les signaux sont globaux. Si un signal est lancé, plusieurs processus pourraient y réagir. Documentez ces dépendances dans un diagramme complémentaire ou une spécification.
6. Direction du flux de séquence
Assurez-vous toujours que le flux va du départ à la fin. Les événements intermédiaires ne doivent jamais créer de boucles, sauf si elles sont explicitement conçues avec des passerelles. Les boucles infinies indiquent une erreur logique dans le traitement des événements.
🛠 Considérations d’implémentation
Traduire un diagramme en code exécutable nécessite une attention particulière aux sémantiques des événements.
- Gestion d’état :Les événements intermédiaires exigent souvent que le moteur maintienne un état (par exemple, en attente d’un message). Cela affecte les performances si trop de processus attendent simultanément.
- Comportement asynchrone :Les événements de message impliquent une communication asynchrone. Le système doit gérer les files d’attente de messages et les réessais.
- Gestion des délais d’attente :Les événements de minuteur doivent être robustes face aux changements d’horloge ou aux arrêts du système. Un minuteur défini sur 1 heure ne doit pas échouer si le système redémarre pendant 10 minutes.
- Propagation des erreurs :Les événements d’erreur doivent remonter dans la hiérarchie si ils ne sont pas traités localement. Assurez-vous que les conditions aux limites sont correctement définies.
🔍 Analyse détaillée du comportement des événements
Examinons les subtilités des interactions spécifiques entre événements dans un scénario du monde réel.
Scénario : Traitement de commande
Imaginez un flux de travail pour le traitement d’une commande client. Ce scénario utilise les trois types d’événements.
- Début : Un Événement de démarrage par message reçoit le chargement « Nouvelle commande » de la plateforme de commerce électronique.
- Intermédiaire : Après vérification du stock, un Événement intermédiaire de temporisation attend 24 heures pour la confirmation du paiement. Si le paiement n’est pas reçu, un Événement de jet intermédiaire de message envoie un rappel.
- Fin : Une fois le paiement confirmé, un Événement de fin de message envoie les détails d’expédition au entrepôt.
Dans ce flux, l’événement intermédiaire de temporisation agit comme un gardien. Si le minuteur expiré, le flux passe à la voie alternative (Rappel). Si le message est reçu avant l’expiration du minuteur, le flux continue vers l’événement de fin.
Gestion des événements simultanés
Que se passe-t-il si un processus attend un message, mais qu’une erreur se produit ? C’est là que les sous-processus d’événement entrent en jeu. Un sous-processus d’événement vous permet de définir un chemin distinct déclenché par un événement, indépendamment du flux principal. Cela est crucial pour maintenir la stabilité lorsque des événements imprévus surviennent.
- Déclencheur de sous-processus d’événement : Ne peut être qu’un événement d’interception intermédiaire (Erreur, Minuteur, Message, Signal, Escalade).
- Exécution : Il s’exécute en parallèle avec le processus principal.
- Portée : Il est contenu dans le processus principal, mais possède son propre flux interne.
🔗 Événements de lien et connexions
Les événements de lien constituent un sous-ensemble unique d’événements intermédiaires utilisés pour connecter des flux physiquement éloignés dans un diagramme ou pour gérer des logiques de boucle complexes.
- Jet de lien : Agit comme un marqueur de destination.
- Réception de lien : Agit comme un marqueur de source.
Bien qu’ils réduisent le besoin de lignes croisées, leur surutilisation peut rendre le diagramme difficile à lire. Utilisez-les avec parcimonie pour maintenir un flux visuel intuitif.
📝 Résumé des points clés
Maîtriser les subtilités des événements BPMN est essentiel pour créer des modèles de processus robustes. Les événements de départ définissent l’entrée, les événements intermédiaires gèrent le flux et les interruptions, et les événements de fin définissent la sortie.
- Consistance :Restez fidèle aux formes standard. N’associez pas arbitrairement des bordures fines et épaisses.
- Clarté :Donnez le nom à vos événements en fonction de l’action, et non de la forme.
- Logique :Assurez-vous que chaque chemin aboutit à une terminaison ou à une boucle valide.
- Validation :Vérifiez que chaque événement de démarrage et de fin est unique par instance de processus.
En appliquant ces principes, les architectes de processus peuvent concevoir des modèles qui sont non seulement visuellement clairs, mais aussi techniquement solides pour les moteurs d’exécution. La distinction entre attendre (récupérer) et agir (lancer) reste le concept le plus important à intégrer.












