Analisi dei colli di bottiglia dei processi: guida pratica
Scopra come l’analisi dei colli di bottiglia dei processi trasformi i dati di Process Mining in opportunità di miglioramento aziendale. Esplori i pattern, indiv…
Cosa imparerà
In questa guida imparerà a creare da zero un Event Log per il Process Mining. Vedremo le tre colonne essenziali di ogni Event Log, analizzeremo un esempio reale e mostreremo come costruire il Suo primo Event Log utilizzando sia Excel sia SQL.
Correlato: scopra di più sul miglioramento dei processi e trovi i Template di dati per il Suo sistema. Legga anche perché evitiamo i connettori pronti all’uso a favore di semplici Template di dati.
Un Event Log per il Process Mining è una tabella che registra ciò che accade nel processo aziendale. Tiene traccia di ogni passaggio di ciascun caso mentre attraversa i sistemi. Il software di Process Mining utilizza questi dati per mostrare come funziona realmente il processo.
Ogni Event Log richiede tre colonne essenziali:
| Colonna | Significato | Esempio |
|---|---|---|
| ID del caso | Identificatore univoco che raggruppa gli eventi correlati | Ordine n. 12345 |
| Timestamp | Momento in cui si è verificato l’evento | 15/01/2025 09:30:00 |
| Attività | Cosa è accaduto | “Ordine effettuato” |
Tutto qui. Con queste tre colonne può iniziare a fare Process Mining. Tutto il resto, come nomi dei clienti, valori degli ordini o ID dei dipendenti, è facoltativo. Questi campi aggiuntivi sono chiamati “attributi” e aggiungono contesto all’analisi.
Prima di proseguire, chiariamo un punto che genera spesso confusione.
Un’attività è un tipo di azione, come “Ordine spedito” o “Pagamento ricevuto”. La consideri come una categoria o un’etichetta.
Un evento è una specifica occorrenza di quell’attività. Quando l’ordine n. 12345 viene spedito il 15 gennaio alle 14:30, quello è un evento.
Il Suo Event Log contiene eventi e ogni evento ha un nome di attività. Nella pratica, questi termini vengono spesso utilizzati come sinonimi, e va bene così. Ricordi: le attività descrivono il “che cosa”, mentre gli eventi descrivono “quando è accaduto e a chi”.
Per rendere pratica questa guida, utilizziamo un sistema fittizio. Immagini di gestire Pizza Palace, una pizzeria locale con un sistema di ordinazione online. I clienti effettuano gli ordini tramite il sito web, il personale prepara le pizze e i conducenti le consegnano.
Il sistema di Pizza Palace dispone di diverse tabelle di database che registrano le varie fasi del processo degli ordini:
L’obiettivo è creare un Event Log che mostri il percorso completo di ogni ordine, dall’inserimento alla consegna.
Quando crea un event log, incontrerà due tipi di eventi:
Gli eventi diretti vengono registrati esplicitamente nel sistema. Qualcuno fa clic su un pulsante oppure il sistema registra un’azione, e nel database è presente un timestamp corrispondente.
Esempi di Pizza Palace:
orders)payments)delivery_assignments)Gli eventi dedotti non dispongono di un timestamp proprio, ma è possibile determinare quando si sono verificati utilizzando altri dati.
Esempi di Pizza Palace:
delivery_assignments contiene un campo created_at che indica quando è stata effettuata l’assegnazioneLa differenza fondamentale è che gli eventi diretti vengono registrati esplicitamente, mentre per gli eventi dedotti è necessario interpretare altri campi dati. Entrambi sono validi e utili per il Process Mining.
Prima di estrarre i dati, decida quali eventi desidera acquisire. Per Pizza Palace, monitoriamo le seguenti attività:
Per ogni evento, identifichi:
Ecco la nostra mappatura:
| Attività | Tabella di origine | Campo timestamp | Campo Case ID |
|---|---|---|---|
| Ordine effettuato | orders | created_at | id |
| Pagamento ricevuto | payments | payment_time | order_id |
| Ordine inviato alla cucina | kitchen_queue | queue_entry_time | order_id |
| Ordine pronto | kitchen_queue | completed_time | order_id |
| Assegnato al corriere | delivery_assignments | assigned_at | order_id |
| Consegna completata | delivery_assignments | delivered_at | order_id |
Case ID, Timestamp e Activity sono obbligatori. Gli Attributi rendono l’analisi più utile, aggiungendo contesto tramite colonne supplementari.
Gli Attributi di caso descrivono l’intero caso, cioè l’ordine, e rimangono invariati per ogni evento appartenente a quel caso:
Gli Attributi di evento si applicano ai singoli eventi:
Suggerimento: È perfettamente accettabile includere ogni Attributo in ogni riga, anche quando non si applica a un evento specifico. Ad esempio, la riga “Ordine effettuato” può contenere una colonna “Nome del corriere” vuota. In questo modo l’event log mantiene un formato tabellare semplice e piatto, facilmente utilizzabile dagli strumenti di Process Mining.
L’event log finale dovrebbe essere un’unica tabella, con un evento per riga. Ecco come apparirà l’event log di Pizza Palace:
| Case ID | Timestamp | Activity | Cliente | Valore ordine | Corriere | Metodo di pagamento |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Ordine effettuato | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:30:15 | Pagamento ricevuto | John Smith | 45.99 | Carta di credito | |
| 1001 | 2025-01-15 18:31:00 | Ordine inviato alla cucina | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:45:00 | Ordine pronto | John Smith | 45.99 | ||
| 1001 | 2025-01-15 18:46:00 | Assegnato al corriere | John Smith | 45.99 | Maria Garcia | |
| 1001 | 2025-01-15 19:05:00 | Consegna completata | John Smith | 45.99 | Maria Garcia | |
| 1002 | 2025-01-15 18:35:00 | Ordine effettuato | Jane Doe | 28.50 | ||
| 1002 | 2025-01-15 18:35:20 | Pagamento ricevuto | Jane Doe | 28.50 | PayPal | |
| … | … | … | … | … | … | … |
Si noti che gli Attributi di caso, come Cliente e Valore ordine, vengono ripetuti per ogni evento dello stesso caso. Questa duplicazione è intenzionale e rende i dati più semplici da utilizzare.
Se può esportare i dati in un foglio di calcolo, può creare manualmente un event log. Questo approccio è adatto a dataset di piccole dimensioni e La aiuta a comprendere i concetti di base.
Crei un foglio di lavoro per ogni tipo di attività:
Foglio 1: Ordine effettuato
| Case ID | Timestamp | Activity | Cliente | Valore ordine |
|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Ordine effettuato | John Smith | 45.99 |
| 1002 | 2025-01-15 18:35:00 | Ordine effettuato | Jane Doe | 28.50 |
Foglio 2: Pagamento ricevuto
| Case ID | Timestamp | Activity | Cliente | Valore ordine | Metodo di pagamento |
|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:15 | Pagamento ricevuto | John Smith | 45.99 | Carta di credito |
| 1002 | 2025-01-15 18:35:20 | Pagamento ricevuto | Jane Doe | 28.50 | PayPal |
Si assicuri che ogni foglio contenga le stesse colonne nello stesso ordine. Aggiunga le colonne vuote dove necessario:
Foglio 1: Ordine effettuato (aggiornato)
| Case ID | Timestamp | Activity | Cliente | Valore ordine | Corriere | Metodo di pagamento |
|---|---|---|---|---|---|---|
| 1001 | 2025-01-15 18:30:00 | Ordine effettuato | John Smith | 45.99 |
Crei un nuovo foglio “Event Log”. Copi e incolli in questo foglio combinato tutte le righe di ciascun foglio delle attività, una dopo l’altra.
Selezioni tutti i dati e li ordini per:
In questo modo gli eventi vengono disposti in ordine cronologico all’interno di ogni caso, consentendoLe di seguire il percorso di ciascun ordine.
Salvi il foglio combinato come file CSV. Questo formato è compatibile con praticamente ogni strumento di Process Mining.
Suggerimenti per Excel:
Per dataset di grandi dimensioni o estrazioni ricorrenti, SQL è più efficiente e ripetibile. La tecnica fondamentale consiste nell’utilizzare UNION ALL per combinare più query in un unico set di risultati.
UNION ALL accoda i risultati di più istruzioni SELECT. Ogni SELECT aggiunge righe al risultato finale. Tutte le istruzioni SELECT devono avere lo stesso numero di colonne, con tipi di dati compatibili.
Ecco una query SQL che crea un event log per 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;Per aggiungere altri eventi al log:
Ad esempio, per aggiungere un evento “Consegna tentata”:
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' Inizi con le tre colonne obbligatorie e alcune attività essenziali. Dopo aver creato un event log di base e averlo caricato in uno strumento di Process Mining, potrà aggiungere altri eventi e Attributi.
Prima di iniziare l’analisi, verifichi che il Suo event log non presenti problemi comuni:
Prenda nota di:
Questa documentazione è preziosa quando in seguito dovrà aggiornare o risolvere problemi nel Suo event log.
Mantenga coerenti i nomi delle attività nelle diverse estrazioni:
Se i dati provengono da più sistemi o aree geografiche, si assicuri che tutti i timestamp utilizzino lo stesso fuso orario. UTC è spesso la scelta più sicura per garantire la coerenza.
Alcuni eventi potrebbero non avere un timestamp proprio. Ad esempio, un evento “Ordine approvato” potrebbe essere rappresentato soltanto da un flag booleano.
Soluzione: cerchi timestamp correlati. Potrebbe trovare un campo “approved_at” oppure utilizzare il timestamp “modified_at”, corrispondente al momento in cui è cambiato il flag di approvazione.
Se dispone di diversi milioni di eventi, le query di estrazione potrebbero essere lente o non riuscire.
Soluzione:
Dopo aver creato l’event log come file CSV o esportazione di database, è pronto per caricarlo in uno strumento di Process Mining. La maggior parte degli strumenti segue un processo simile:
Gli strumenti moderni di Process Mining, come ProcessMind, rendono questo processo semplice. Carichi i dati del Suo event log e lo strumento visualizzerà automaticamente il processo, mettendo in evidenza colli di bottiglia, varianti e opportunità di miglioramento che possono contribuire a ridurre i costi e ottimizzare i processi operativi.
Creare un event log per il Process Mining non richiede strumenti specializzati né una conoscenza tecnica approfondita. In sostanza, si tratta di organizzare i dati del Process Mining in una tabella con tre colonne essenziali: Case ID, Timestamp e Activity.
Che utilizzi Excel per dataset più piccoli o SQL per estrazioni più ampie e complesse, i principi rimangono gli stessi:
La parte più difficile non è l’estrazione tecnica, ma comprendere le operazioni aziendali abbastanza bene da sapere quali eventi siano rilevanti. Inizi dagli eventi più evidenti, come l’inserimento e il completamento di un ordine, e aggiunga dettagli man mano che scopre quali informazioni emergono dalle mappe di processo create con il Suo strumento di Process Mining.
Vuole approfondire? Consulti le nostre pagine sul miglioramento continuo dei processi per informazioni dettagliate sulle attività e sui requisiti dati dei processi più diffusi, come Purchase to Pay, Order to Cash e Accounts Payable. Queste risorse includono Template di dati per sistemi noti come SAP, Oracle e Microsoft Dynamics, offrendole un punto di partenza concreto per creare il Suo event log.
Inizi oggi
Non aspetti di avere l’event log perfetto. Inizi dai dati disponibili, impari dalle mappe di processo che crea e migliori progressivamente. Anche un event log semplice, con attività di base, può rivelare informazioni utili sul funzionamento reale dei Suoi processi.
Scopra come l’analisi dei colli di bottiglia dei processi trasformi i dati di Process Mining in opportunità di miglioramento aziendale. Esplori i pattern, indiv…
I connettori per il Process Mining possono aggiungere complessità e ritardi, oltre a creare dipendenza dal fornitore. Scopra come i Template di dati semplifican…
Scopra il processo DMAIC, il processo Six Sigma e gli strumenti per il miglioramento dei processi lean, così da ottenere risultati aziendali misurabili.
Confronti il Process Mining di Celonis con ProcessMind per trovare il software più adatto ai Suoi processi, al Suo budget e ai Suoi obiettivi.
Ottenga subito l’accesso, senza carta di credito né attese. Trasformi il modo in cui opera la Sua organizzazione in una progettazione dei processi chiara e connessa.
Costruisca l’architettura dei processi, definisca responsabilità e controlli e allinei ruoli e responsabilità a ogni livello.
Inizi la prova gratuita e crei un’unica base affidabile per governare, gestire e migliorare continuamente i processi.
Utilizziamo i cookie per migliorare la Sua esperienza, personalizzare i contenuti e analizzare il traffico. Facendo clic su "Accetta tutto", acconsente all’utilizzo dei cookie.