Case study
ODP automatici nel MES
Niente più creazione manuale. Zero duplicazioni. Continuità garantita. Generazione automatica degli ordini di produzione settimanali (lun–ven), basata su logica deterministica, idempotente e resiliente.

Contesto
Un’azienda nel settore del recupero e lavorazione di pneumatici usati lavora su una pianificazione produttiva settimanale (lun–ven).
La creazione degli ordini di produzione (ODP) era manuale: un’attività ripetitiva, esposta a errori e dipendente dalla presenza operativa.
Il risultato:
- dimenticanze nella generazione degli ordini
- duplicazioni
- incoerenza nei dati (codici, cicli, articoli)
- ritardi operativi
Sfida
Automatizzare non bastava.
Serviva un sistema che funzionasse sempre:
- affidabile nel tempo
- allineato al MES esistente
- resistente a interruzioni (server spento, manutenzione, ecc.)
- senza duplicazioni o errori
Architettura
Il cliente utilizzava già un sistema MES completo, inclusi moduli di produzione e manutenzione (CMMS).
L’obiettivo non era modificare il sistema, ma estenderlo in modo controllato.
È stata quindi sviluppata una logica esterna, integrata tramite API e database, capace di operare in autonomia senza impattare il core del MES.
Il MES rimane stabile. La logica evolve fuori.

Approccio
È stata progettata una soluzione deterministica e modulare, basata su un plugin esterno al MES.
Principi chiave:
- nessuna modifica invasiva al sistema
- generazione basata su regole prevedibili (settimana/anno)
- logica idempotente (mai duplicare)
- resilienza tramite meccanismi di recovery (catch-up)
- Il sistema non decide. Esegue regole.
Soluzione
È stato sviluppato un plugin custom basato su:
- Next.js (Node.js)
- integrazione via API e SQL diretto
- database Microsoft SQL Server
Configurazione da interfaccia
- scheduler cron (lunedì ore 01:00 – Europe/Rome)
- prefisso ordini
- quantità
- priorità
- note operative
Funzionamento
La pipeline di generazione gira una sola volta per settimana: articolo, ciclo e ODP seguono regole fisse e controlli dedicati.
All’avvio del sistema
- creazione automatica tabella log (se assente)
- verifica settimana corrente
- se l’ODP non esiste → viene generato
- se è domenica → non anticipa
Scheduler
- esecuzione automatica ogni lunedì alle 01:00
- fuso Europe/Rome
- completamente configurabile
Articolo
- generato automaticamente se non configurato
- formato: ART00 + settimana + anno
Ciclo
- creato e collegato all’articolo
- oppure riutilizzato da configurazione
Ordine di produzione (ODP)
- codice: L00 + settimana + anno
- consegna: venerdì della settimana ISO
- quantità e parametri configurabili

Anti-duplicazione
Una settimana → un solo ODP. Sempre.
- verifica preventiva su order_number
- se esiste → nessuna azione
Tracciamento e integrazione
- log persistente (AUTO, CATCH-UP, MANUAL)
- eventi real-time per dashboard e UI
API e controllo
- generazione manuale
- storico operazioni
- test (“dry run”)
- configurazione
Risultato
Il processo diventa invisibile.
Funziona, senza essere gestito.
- ODP sempre presenti, senza intervento umano
- zero duplicazioni grazie a logica deterministica
- continuità operativa anche in caso di downtime
- dati coerenti e strutturati per analisi e report
Perché un plugin esterno
Estendere il MES con un plugin esterno, anziché intervenire sul core, riduce rischi e accelera l’evoluzione della logica di business.
- nessuna modifica al core MES
- riduzione del rischio su aggiornamenti futuri
- maggiore flessibilità evolutiva
- isolamento della logica di business