Analyse des goulots d'étranglement : guide pratique
Découvrez comment l'analyse des goulots d'étranglement transforme les données de Process Mining en possibilités d'amélioration métier. Explorez les tendances, i…
Ce que vous allez apprendre
Dans ce guide, vous apprendrez à créer de toutes pièces un journal d’événements de Process Mining. Nous présenterons les trois colonnes essentielles de tout journal d’événements, examinerons un exemple concret et vous montrerons comment créer votre premier journal avec Excel et SQL.
À lire également : En savoir plus sur l’amélioration des processus et trouver des modèles de données pour votre système. Découvrez également pourquoi nous évitons les connecteurs prêts à l’emploi au profit de modèles de données simples.
Un journal d’événements de Process Mining est un tableau qui consigne les opérations réalisées dans votre processus métier. Il suit chaque étape de chaque cas au fil de son parcours dans vos systèmes. Les logiciels de Process Mining utilisent ces données pour montrer le fonctionnement réel de votre processus.
Tout journal d’événements doit comporter trois colonnes essentielles :
| Colonne | Signification | Exemple |
|---|---|---|
| Identifiant du cas | Identifiant unique qui regroupe les événements associés | Commande n° 12345 |
| Horodatage | Moment où l’événement s’est produit | 15/01/2025 09:30:00 |
| Activité | Ce qui s’est produit | « Commande passée » |
C’est tout. Avec ces trois colonnes, vous pouvez commencer votre analyse de Process Mining. Les autres informations, comme le nom du client, le montant de la commande ou l’identifiant du collaborateur, sont facultatives. Ces champs supplémentaires sont appelés « attributs » et apportent un contexte utile à votre analyse.
Avant de poursuivre, clarifions un point qui prête souvent à confusion.
Une activité désigne un type d’action, comme « Commande expédiée » ou « Paiement reçu ». Considérez-la comme une catégorie ou une étiquette.
Un événement correspond à une occurrence précise de cette activité. Lorsque la commande n° 12345 est expédiée le 15 janvier à 14 h 30, il s’agit d’un événement.
Votre journal d’événements contient des événements, et chaque événement possède un nom d’activité. En pratique, ces termes sont souvent employés indifféremment, ce qui ne pose pas de problème. Retenez simplement que les activités décrivent « ce qui se passe », tandis que les événements précisent « quand et pour qui cela s’est produit ».
Pour rendre ce guide concret, prenons l’exemple d’un système fictif. Imaginez que vous gériez Pizza Palace, une pizzeria locale équipée d’un système de commande en ligne. Les clients passent commande sur le site, le personnel prépare les pizzas et les livreurs les distribuent.
Le système de Pizza Palace comprend plusieurs tables de base de données qui suivent les différentes étapes du traitement des commandes :
Votre objectif est de créer un journal d’événements qui retrace le parcours complet de chaque commande, de sa création à sa livraison.
Lors de la création d’un journal d’événements, vous rencontrerez deux types d’événements :
Les événements directs sont enregistrés explicitement dans votre système. Une personne a cliqué sur un bouton ou le système a enregistré une action, et la base de données contient un Timestamp correspondant.
Exemples chez Pizza Palace :
orders)payments)delivery_assignments)Les événements inférés ne possèdent pas leur propre Timestamp, mais vous pouvez déterminer quand ils se sont produits à partir d’autres données.
Exemples chez Pizza Palace :
delivery_assignments contient un champ created_at qui indique le moment de l’attributionLa différence essentielle est que les événements directs sont enregistrés explicitement, tandis que les événements inférés nécessitent l’interprétation d’autres champs de données. Les deux types sont valides et utiles pour le Process Mining.
Avant d’extraire les données, déterminez les événements à suivre. Pour Pizza Palace, suivons les activités suivantes :
Pour chaque événement, identifiez :
Voici notre correspondance :
| Activity | Table source | Champ Timestamp | Champ Case ID |
|---|---|---|---|
| Commande passée | orders | created_at | id |
| Paiement reçu | payments | payment_time | order_id |
| Commande envoyée en cuisine | kitchen_queue | queue_entry_time | order_id |
| Commande prête | kitchen_queue | completed_time | order_id |
| Attribuée à un livreur | delivery_assignments | assigned_at | order_id |
| Livraison terminée | delivery_assignments | delivered_at | order_id |
Le Case ID, le Timestamp et l’Activity sont obligatoires. Les attributs rendent votre analyse plus utile en ajoutant du contexte au moyen de colonnes supplémentaires.
Les attributs de cas décrivent l’ensemble du cas, ou de la commande, et restent identiques pour chaque événement de ce cas :
Les attributs d’événement s’appliquent à des événements individuels :
Conseil : vous pouvez inclure chaque attribut dans chaque ligne, même lorsqu’il ne s’applique pas à un événement donné. Par exemple, votre ligne « Commande passée » peut contenir une colonne « Nom du livreur » vide. Votre journal d’événements conserve ainsi un format de tableau simple et plat, facilement utilisable par les outils de Process Mining.
Votre journal d’événements final doit prendre la forme d’un tableau unique, avec un événement par ligne. Voici à quoi ressemblera le journal d’événements de Pizza Palace :
| Case ID | Timestamp | Activity | Client | Montant de la commande | Livreur | Mode de paiement |
|---|---|---|---|---|---|---|
| 1001 | 15/01/2025 18:30:00 | Commande passée | John Smith | 45,99 | ||
| 1001 | 15/01/2025 18:30:15 | Paiement reçu | John Smith | 45,99 | Carte bancaire | |
| 1001 | 15/01/2025 18:31:00 | Commande envoyée en cuisine | John Smith | 45,99 | ||
| 1001 | 15/01/2025 18:45:00 | Commande prête | John Smith | 45,99 | ||
| 1001 | 15/01/2025 18:46:00 | Attribuée à un livreur | John Smith | 45,99 | Maria Garcia | |
| 1001 | 15/01/2025 19:05:00 | Livraison terminée | John Smith | 45,99 | Maria Garcia | |
| 1002 | 15/01/2025 18:35:00 | Commande passée | Jane Doe | 28,50 | ||
| 1002 | 15/01/2025 18:35:20 | Paiement reçu | Jane Doe | 28,50 | PayPal | |
| … | … | … | … | … | … | … |
Notez que les attributs de cas, comme le client et le montant de la commande, sont répétés pour chaque événement d’un même cas. Cette duplication est volontaire et facilite l’utilisation des données.
Si vous pouvez exporter vos données vers une feuille de calcul, vous pouvez créer manuellement un journal d’événements. Cette méthode convient aux petits volumes de données et vous permet d’en comprendre les principes.
Créez une feuille de calcul pour chaque type d’activité :
Feuille 1 : Commande passée
| Case ID | Timestamp | Activity | Client | Montant de la commande |
|---|---|---|---|---|
| 1001 | 15/01/2025 18:30:00 | Commande passée | John Smith | 45,99 |
| 1002 | 15/01/2025 18:35:00 | Commande passée | Jane Doe | 28,50 |
Feuille 2 : Paiement reçu
| Case ID | Timestamp | Activity | Client | Montant de la commande | Mode de paiement |
|---|---|---|---|---|---|
| 1001 | 15/01/2025 18:30:15 | Paiement reçu | John Smith | 45,99 | Carte bancaire |
| 1002 | 15/01/2025 18:35:20 | Paiement reçu | Jane Doe | 28,50 | PayPal |
Vérifiez que toutes les feuilles contiennent les mêmes colonnes, dans le même ordre. Ajoutez des colonnes vides si nécessaire :
Feuille 1 : Commande passée (mise à jour)
| Case ID | Timestamp | Activity | Client | Montant de la commande | Livreur | Mode de paiement |
|---|---|---|---|---|---|---|
| 1001 | 15/01/2025 18:30:00 | Commande passée | John Smith | 45,99 |
Créez une nouvelle feuille « Journal d’événements ». Copiez-collez dans cette feuille toutes les lignes de chaque feuille d’activité, les unes à la suite des autres.
Sélectionnez toutes vos données et triez-les selon les critères suivants :
Les événements sont ainsi classés par ordre chronologique au sein de chaque cas, ce qui vous permet de suivre le parcours de chaque commande.
Enregistrez la feuille regroupée au format CSV. Ce format est compatible avec la quasi-totalité des outils de Process Mining.
Conseils pour Excel :
Pour les volumes importants ou les extractions récurrentes, SQL est plus efficace et plus facile à reproduire. La technique essentielle consiste à utiliser UNION ALL pour regrouper plusieurs requêtes dans un même jeu de résultats.
UNION ALL empile les résultats de plusieurs instructions SELECT. Chaque SELECT ajoute des lignes au résultat final. Toutes les instructions SELECT doivent comporter le même nombre de colonnes, avec des types de données compatibles.
Voici une requête SQL qui crée un journal d’événements pour Pizza Palace :
-- Event Log Extraction for Pizza Palace
-- This query combines multiple event types into a single event log
-- Each SELECT block represents one activity type
-- Event 1: Order Placed
-- Source: orders table
-- This captures when customers submit their orders
SELECT
o.id AS case_id, -- The order ID is our case identifier
o.created_at AS timestamp, -- When the order was placed
'Order Placed' AS activity, -- The activity name (hardcoded)
o.customer_name AS customer, -- Case attribute: who ordered
o.total_amount AS order_value, -- Case attribute: order value
NULL AS driver, -- Not applicable for this event
NULL AS payment_method -- Not applicable for this event
FROM orders o
WHERE o.created_at >= '2025-01-01' -- Filter to your desired date range
UNION ALL
-- Event 2: Payment Received
-- Source: payments table
-- This captures successful payment processing
SELECT
p.order_id AS case_id,
p.payment_time AS timestamp,
'Payment Received' AS activity,
o.customer_name AS customer, -- Join to get case attributes
o.total_amount AS order_value,
NULL AS driver,
p.payment_method AS payment_method -- Event-specific attribute
FROM payments p
JOIN orders o ON p.order_id = o.id -- Join to get order details
WHERE p.payment_time >= '2025-01-01'
AND p.status = 'successful' -- Only include successful payments
UNION ALL
-- Event 3: Order Sent to Kitchen
-- Source: kitchen_queue table
-- This captures when the kitchen starts working on the order
SELECT
k.order_id AS case_id,
k.queue_entry_time AS timestamp,
'Order Sent to Kitchen' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
NULL AS driver,
NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.queue_entry_time >= '2025-01-01'
UNION ALL
-- Event 4: Order Ready
-- Source: kitchen_queue table (different timestamp field)
-- This is an inferred event based on when the kitchen marked it complete
SELECT
k.order_id AS case_id,
k.completed_time AS timestamp, -- Different timestamp than entry
'Order Ready' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
NULL AS driver,
NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.completed_time >= '2025-01-01'
AND k.completed_time IS NOT NULL -- Only include completed orders
UNION ALL
-- Event 5: Assigned to Driver
-- Source: delivery_assignments table
-- This captures when a driver is assigned to deliver the order
SELECT
d.order_id AS case_id,
d.assigned_at AS timestamp,
'Assigned to Driver' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver, -- Event-specific attribute
NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.assigned_at >= '2025-01-01'
UNION ALL
-- Event 6: Delivery Completed
-- Source: delivery_assignments table (different timestamp field)
-- This captures when the order was delivered to the customer
SELECT
d.order_id AS case_id,
d.delivered_at AS timestamp,
'Delivery Completed' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver,
NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.delivered_at >= '2025-01-01'
AND d.delivered_at IS NOT NULL -- Only include completed deliveries
-- Final ordering: by case, then by time
-- This makes the event log easy to read and follow
ORDER BY case_id, timestamp;Pour ajouter d’autres événements à votre journal :
Par exemple, pour ajouter un événement « Livraison tentée » :
UNION ALL
-- Event 7: Delivery Attempted
-- Add this to track failed delivery attempts
SELECT
d.order_id AS case_id,
d.attempt_time AS timestamp,
'Delivery Attempted' AS activity,
o.customer_name AS customer,
o.total_amount AS order_value,
d.driver_name AS driver,
NULL AS payment_method
FROM delivery_attempts d
JOIN orders o ON d.order_id = o.id
WHERE d.attempt_time >= '2025-01-01' Commencez par les trois colonnes obligatoires et quelques activités importantes. Après avoir créé un journal d’événements de base et l’avoir chargé dans un outil de Process Mining, vous pourrez ajouter d’autres événements et attributs.
Avant de commencer votre analyse, vérifiez que votre journal d’événements ne présente pas les problèmes courants suivants :
Notez les éléments suivants :
Cette documentation vous sera utile lorsque vous devrez mettre à jour ou résoudre un problème dans votre journal d’événements.
Veillez à conserver des noms d’activités cohérents d’une extraction à l’autre :
Si vos données proviennent de plusieurs systèmes ou régions, vérifiez que tous les Timestamps utilisent le même fuseau horaire. L’UTC constitue souvent le choix le plus sûr pour garantir la cohérence.
Certains événements peuvent ne pas posséder leur propre Timestamp. Par exemple, un événement « Commande approuvée » peut être représenté uniquement par un indicateur booléen.
Solution : recherchez des Timestamps associés. Vous trouverez peut-être un champ « approved_at » ou pourrez utiliser le Timestamp « modified_at », correspondant au moment où l’indicateur d’approbation a changé.
Si votre journal contient plusieurs millions d’événements, vos requêtes d’extraction peuvent s’exécuter lentement, voire échouer.
Solution :
Une fois votre journal d’événements créé sous forme de fichier CSV ou d’export de base de données, vous pouvez le charger dans un outil de Process Mining. La plupart des outils suivent une démarche similaire :
Les outils modernes de Process Mining, comme ProcessMind, simplifient cette démarche. Importez les données de votre journal d’événements et l’outil visualise automatiquement votre processus, en révélant les goulots d’étranglement, les variations et les possibilités d’amélioration susceptibles de réduire les coûts et d’optimiser les processus opérationnels.
La création d’un journal d’événements pour le Process Mining ne nécessite ni outils spécialisés ni connaissances techniques approfondies. Il s’agit essentiellement d’organiser les données de votre processus dans un tableau comportant trois colonnes essentielles : identifiant du cas, horodatage et activité.
Que vous utilisiez Excel pour les petits jeux de données ou SQL pour des extractions plus volumineuses et complexes, les principes restent les mêmes :
La difficulté principale ne réside pas dans l’extraction technique, mais dans la compréhension de vos opérations métier, afin de savoir quels événements comptent réellement. Commencez par les événements évidents, comme la création et la clôture d’une commande, puis ajoutez des détails à mesure que vous découvrez les analyses révélées par votre outil de Process Mining.
Vous souhaitez aller plus loin ? Consultez nos pages consacrées à l’amélioration continue des processus pour obtenir des informations détaillées sur les activités et les exigences en matière de données de processus courants tels que Purchase to Pay, Order to Cash et Accounts Payable. Ces ressources comprennent des modèles de données pour des systèmes connus comme SAP, Oracle et Microsoft Dynamics, afin de vous aider à créer votre journal d’événements.
Commencez dès aujourd'hui
N’attendez pas d’avoir un journal d’événements parfait. Commencez avec ce dont vous disposez, tirez des enseignements des cartes de processus que vous créez et améliorez-les progressivement. Même un journal d’événements simple, avec des activités de base, peut révéler des informations utiles sur le fonctionnement réel de vos processus.
Découvrez comment l'analyse des goulots d'étranglement transforme les données de Process Mining en possibilités d'amélioration métier. Explorez les tendances, i…
Les connecteurs de Process Mining peuvent ajouter de la complexité, des délais et une dépendance à un fournisseur. Découvrez comment les modèles de données simp…
Découvrez le processus DMAIC, le processus Six Sigma et les outils d'amélioration des processus Lean pour obtenir des résultats métier mesurables.
Comparez le Process Mining de Celonis à ProcessMind pour trouver le logiciel adapté à vos processus, à votre budget et à vos objectifs.
Obtenez un accès immédiat, sans carte bancaire ni attente. Transformez le fonctionnement de votre organisation en processus clairs et connectés.
Construisez votre architecture des processus, définissez les responsabilités et les contrôles, puis alignez les rôles et les responsabilités à tous les niveaux.
Démarrez l’essai gratuit et créez une Fondation fiable pour gouverner, gérer et améliorer continuellement vos processus.
Nous utilisons des cookies pour améliorer votre expérience, personnaliser le contenu et analyser le trafic. En cliquant sur « Tout accepter », vous consentez à l’utilisation de cookies.