Integrazioni / ERP / Odoo
Odoo offre la schedulazione della produzione? Come funziona il pulsante Pianifica e quando affiancare SkyPlanner APS
Odoo offre una schedulazione della produzione di base che rispetta la capacità effettiva delle macchine e del personale. Il pulsante Pianifica di Odoo Manufacturing assegna ogni ordine di produzione al primo intervallo libero nel calendario del suo centro di lavoro. In questo modo, due ordini pianificati non si sovrappongono mai sullo stesso centro. Tuttavia, pianifica un ordine di fabbricazione alla volta considerando un solo vincolo, senza modificare la sequenza, ottimizzare o ripianificare l’insieme degli ordini. Gli stabilimenti che devono sequenziare tutti gli ordini in base alle scadenze e agli attrezzaggi usano SkyPlanner APS accanto a Odoo.
Nella sua comunicazione commerciale, Odoo dichiara che è possibile “plan resources with finite capacity planning” (pianificare le risorse rispettandone la capacità disponibile) (odoo.com/app/manufacturing). Di seguito vediamo cosa significa in Odoo 19.0, sulla base della documentazione ufficiale e del codice sorgente: come funziona Pianifica, quali sono i suoi limiti e quando basta da solo.
Come Odoo pianifica gli ordini di produzione, passo dopo passo
1. Attivare gli ordini di produzione e configurare i centri di lavoro
Vai in Manufacturing > Configuration > Settings e attiva Work Orders. A questo punto, sotto Configuration compare la voce Work Centers. Ogni centro di lavoro (mrp.workcenter) contiene i campi usati dal pianificatore:
| Campo | Funzione nella pianificazione |
|---|---|
| Working Hours | Il calendario di disponibilità del centro di lavoro. L’impostazione predefinita è “Standard 40 hours/week”, dal lunedì al venerdì |
| Time Efficiency | Percentuale che accelera o rallenta ogni ordine di produzione su questo centro di lavoro |
| Setup Time / Cleanup Time | Minuti aggiunti prima e dopo ogni ordine di produzione |
| Alternative Workcenters | Altri centri di lavoro che il comando Plan può usare in alternativa |
| Scheda Product Capacities | Pezzi per ciclo e minuti di attrezzaggio e pulizia specifici per prodotto (mrp.workcenter.capacity) |
| OEE Target | Obiettivo di prestazione per la reportistica, non un dato usato per pianificare |
| Allowed Employees | Chi è autorizzato a lavorare su questo centro. È un filtro, non una capacità produttiva |
2. Le operazioni nella distinta base
Non esiste un’anagrafica condivisa dei cicli di lavorazione. Le operazioni sono definite in ogni distinta base, nella scheda Operations (mrp.routing.workcenter). Ogni operazione ha un Work Center e un’impostazione Duration Computation: un tempo fisso inserito manualmente oppure un tempo calcolato sugli ultimi ordini di produzione (10 per impostazione predefinita). La durata prevista è data dal tempo di attrezzaggio più il tempo di pulizia più il numero di cicli moltiplicato per il tempo ciclo; la componente relativa ai cicli viene divisa per Time Efficiency (mrp_routing.py).
Attivando Work Order Dependencies, un’operazione può essere bloccata da un’altra tramite Blocked By. La documentazione Odoo spiega: “A blocked work order is scheduled at the end of the time period specified in the Expected Duration field of the work order that precedes it.” (Un ordine di produzione bloccato viene pianificato al termine del periodo indicato nel campo Expected Duration dell’ordine di produzione che lo precede.) (fonte)
3. Confermare il MO, poi premere Pianifica
Confermando un ordine di fabbricazione (mrp.production) si creano i relativi ordini di produzione (mrp.workorder). Premendo Plan sull’ordine di fabbricazione, Odoo parte dagli ordini di produzione finali e pianifica ricorsivamente prima tutti quelli che ne bloccano l’avvio. Ogni ordine di produzione viene collocato in avanti nel tempo, dopo i suoi predecessori. Per ogni ordine di produzione, Odoo:
- Prende il momento più tardivo tra l’inizio del MO, l’istante attuale e la fine degli eventuali ordini di produzione bloccanti.
- Prova il centro di lavoro principale e tutti i centri alternativi indicati in Alternative Workcenter.
- Cerca in avanti su ciascun calendario il primo intervallo libero abbastanza lungo da coprire la durata prevista.
- Sceglie il centro di lavoro che termina prima e ne riserva l’intervallo sul calendario con un record
resource.calendar.leaves.
Il codice sorgente della versione 19.0 enuncia chiaramente la regola: “The available interval is disjoinct with all other workorders planned on this workcenter” (L’intervallo disponibile non si sovrappone a nessun altro ordine di produzione pianificato su questo centro di lavoro) (mrp_workcenter.py). È questo l’aspetto a capacità finita della schedulazione. Un ordine di produzione che incontra un periodo di chiusura prosegue nell’intervallo lavorativo successivo. Se non trova spazio entro 700 giorni, l’orizzonte di ricerca predefinito, Pianifica si interrompe con il messaggio “Impossible to plan the workorder.” (Impossibile pianificare l’ordine di produzione.)
4. Indisponibilità e centri alternativi
Con l’app Time Off e la modalità sviluppatore è possibile bloccare un centro di lavoro per manutenzione o per una festività. Pianifica assegna quindi gli ordini di produzione ai centri alternativi indicati in Alternative Workcenters. In assenza di alternative, la documentazione Odoo spiega che “work orders begin to pile up at the work center until it is operational again” (gli ordini di produzione iniziano ad accumularsi sul centro di lavoro finché non torna operativo) (fonte).
5. Verificare e correggere
Manufacturing > Planning > Planning by Production e Planning by Workcenter aprono le viste di pianificazione degli ordini di produzione. Enterprise mostra un diagramma di Gantt con trascinamento. Community offre viste elenco, calendario, pivot e grafico. La documentazione descrive una modifica manuale: “Times and planned work centers can be changed by clicking to access the individual work order.” (È possibile modificare orari e centri di lavoro pianificati facendo clic per accedere al singolo ordine di produzione.) (fonte)
I limiti di Odoo
- Chi arriva prima viene pianificato prima. Pianifica lavora un MO alla volta: ciò che viene pianificato per primo occupa i primi intervalli disponibili. Se si selezionano più MO, vengono pianificati secondo l’ordinamento predefinito di Odoo: prima la priorità, poi la data di inizio. Il sistema non bilancia le scadenze con i cambi produzione e non sposta un MO già pianificato per fare posto a uno più urgente.
- La sequenza non tiene conto degli attrezzaggi. Setup Time aggiunge un tempo fisso a ogni ordine di produzione: gli stessi minuti, indipendentemente dalla lavorazione precedente. Odoo non dispone di una matrice dei cambi produzione e non raggruppa le operazioni simili per evitare i cambi.
- Un solo vincolo. Solo il calendario del centro di lavoro vincola il piano. Gli operatori sono gestiti tramite il filtro Allowed Employees. Quando Pianifica occupa un intervallo, non verifica la disponibilità di utensili e materiali. Le prenotazioni dei componenti e le date degli ordini di acquisto alimentano solo il riapprovvigionamento.
- L’MRP ignora la capacità. Le regole di riordino e l’MTO creano i MO sulla base del campo Manuf. Lead Time della distinta base, espresso in giorni di calendario. La documentazione precisa: “Lead times do not consider weekends, holidays, or work center capacity” (I lead time non considerano fine settimana, festività o capacità dei centri di lavoro) (fonte). Le scadenze dei MO e le date di consegna promesse derivano dai giorni di calendario, non dalla coda effettiva.
- L’MPS è un elenco di proposte. Neppure il piano principale di produzione (Enterprise) tiene conto del carico. “The MPS only suggests the amount of product to be replenished, requiring the user to actually create the replenishing POs/MOs.” (L’MPS suggerisce solo la quantità di prodotto da riapprovvigionare; spetta all’utente creare gli ordini di acquisto o di fabbricazione necessari.) (fonte)
- Nessuna ripianificazione automatica. Un guasto o un ordine urgente non spostano nulla automaticamente. Una volta avviato un ordine di produzione, Odoo impedisce di annullare la pianificazione del MO: “Some work orders have already started, so you cannot unplan this manufacturing order.” (Alcuni ordini di produzione sono già iniziati, quindi non è possibile annullare la pianificazione di questo ordine di fabbricazione.) (mrp_production.py)
- I sottoassiemi vengono pianificati separatamente. Le distinte base multilivello generano MO figli distinti, ciascuno pianificato per conto proprio. Il pianificatore deve pianificarli nell’ordine corretto, in modo che il sottoassieme sia pronto quando serve all’operazione del livello superiore.
- Gantt e MPS sono riservati a Enterprise. La pagina delle edizioni indica che le funzioni di Manufacturing “Scheduling” (Schedulazione) e “Shopfloor” (Reparto produttivo) sono disponibili solo in Enterprise (odoo.com/page/editions). In Community, i pianificatori lavorano con elenchi e un calendario.
Quando basta la pianificazione nativa di Odoo
Il pulsante Pianifica di Odoo è sufficiente quando:
- Per ogni operazione la scelta del centro di lavoro è univoca e i volumi sono moderati.
- Pochi ordini si contendono lo stesso collo di bottiglia, quindi pianificarli in ordine di arrivo produce date accettabili.
- Le macchine alternative sono identiche, quindi Alternative Workcenters e Time Off permettono di gestire la maggior parte delle interruzioni.
- Gli attrezzaggi sono brevi o non dipendono dall’operazione precedente.
- Un pianificatore può controllare la vista Pianificazione per centro di lavoro una volta al giorno e risolvere manualmente i pochi conflitti.
Se questa è la situazione del vostro stabilimento, concentratevi sulla qualità dei dati. Assegnate un calendario a ogni centro di lavoro e inserite valori realistici per Setup Time e Cleanup Time. Usate durate fisse quando i dati storici sono troppo variabili, attivate le dipendenze e pianificate i MO in ordine di priorità.
Quando serve uno schedulatore della produzione
Pianifica non basta più quando si verificano diverse di queste condizioni:
- Molti ordini si contendono due o più colli di bottiglia e la sequenza deve essere determinata dalle scadenze.
- L’attrezzaggio dipende dalla lavorazione precedente, quindi la sequenza delle operazioni influisce sui volumi prodotti.
- Il personale e i turni vincolano il piano quanto le macchine.
- L’arrivo dei materiali determina quando può iniziare un’operazione.
- Ordini urgenti, guasti e ritardi nelle consegne impongono di ripianificare più volte alla settimana.
- L’ufficio commerciale ha bisogno di date di consegna basate sulla coda reale, non su Manuf. Lead Time.
Cosa cercare
- Rispetto della capacità effettiva di tutti i centri di lavoro contemporaneamente, tenendo conto di turni, personale e assenze.
- Sequenziamento dell’insieme degli ordini per scadenza e priorità, non un MO alla volta.
- Una matrice dei tempi di attrezzaggio per i cambi produzione dipendenti dalla sequenza, così che il motore scelga la sequenza delle operazioni con il minor tempo di attrezzaggio.
- Utensili e squadre come vincoli: un utensile condiviso in uso su una macchina non è disponibile per un’altra, e un’operazione può richiedere più operatori contemporaneamente.
- Schedulazione che tiene conto dei materiali, verificando le scorte e gli ordini di acquisto in arrivo.
- Centri di lavoro alternativi scelti dal motore in funzione dell’intero piano, non di un singolo ordine di produzione alla volta.
- Gestione dei prodotti multilivello, affinché i sottoassiemi siano completati prima che servano al livello superiore.
- Rischedulazione automatica all’avanzare della produzione o al variare degli ordini.
- Un Gantt per i pianificatori e una coda di operazioni per gli operatori, anche su Community.
- Una regola chiara su chi governa la sequenza tra lo schedulatore e Odoo. In Odoo, le date degli ordini di produzione sono calcolate a partire dagli intervalli riservati sul calendario. Premendo di nuovo Plan, queste date vengono sovrascritte. Stabilisci che sia lo schedulatore a governare la sequenza, riscrivi date e centri di lavoro tramite
mrp.workordered escludi gli ordini di produzione già in corso. - L’API adatta alla versione e al piano scelti. Odoo 19 dispone della External JSON-2 API. La rimozione di XML-RPC e JSON-RPC è prevista in Odoo 22 (Odoo Online 21.1). L’accesso alle API esterne è disponibile solo con i piani tariffari Custom, non con One App Free o Standard (documentazione delle API esterne). I moduli personalizzati richiedono Odoo.sh o un’installazione on-premise (prezzi di Odoo).
Le opzioni si dividono in quattro gruppi:
- La pianificazione nativa di Odoo comprende il pulsante Pianifica e, in Enterprise, la vista Gantt.
- I moduli aggiuntivi nel client Odoo, mantenuti da un partner Odoo, migliorano il quadro di pianificazione o la logica di assegnazione agli intervalli disponibili.
- I motori per la supply chain e le suite APS enterprise vengono collegati tramite un progetto di implementazione e gestiti da un team di pianificazione dedicato.
- Gli APS cloud con gestione dell’esecuzione in reparto, categoria a cui appartiene SkyPlanner, schedulano automaticamente ogni risorsa produttiva accanto a Odoo. Ripianificano al variare della produzione e mettono il programma di lavoro a disposizione degli operatori.
Il ruolo di SkyPlanner
SkyPlanner APS risponde a ciascuno dei limiti elencati sopra:
- Dall’ordine di arrivo a una vera sequenza. Il motore Arcturus AI schedula insieme tutti gli ordini aperti in pochi secondi, rispettando la capacità produttiva effettiva e ordinandoli per data di completamento, priorità, priorità del cliente, Fast Track e Dynamic Priorities.
- Da attrezzaggi fissi ad attrezzaggi più brevi. Una matrice dei tempi di attrezzaggio registra il tempo di cambio produzione per ogni coppia di prodotti, che può variare in base alla direzione: da blu a rosso 30 minuti, da rosso a blu 60. Lo schedulatore sceglie la sequenza con il minor tempo di attrezzaggio ed esegue le operazioni simili una dopo l’altra.
- Da un solo vincolo a tutti i vincoli. Centri di lavoro, turni, personale, assenze, attrezzature e materiali vengono verificati nello stesso programma di produzione. Le attrezzature sono risorse a capacità finita: un’attrezzatura di fissaggio in uso su una macchina non viene quindi prenotata contemporaneamente su un’altra. Un’operazione può richiedere più operatori nello stesso momento e, quando la risorsa principale non è disponibile, il motore ricorre a macchine o personale alternativi. Lo stesso modello gestisce anche gruppi di centri di lavoro, efficienze e suddivisione di un’operazione tra più centri di lavoro. La verifica dei materiali tiene conto delle giacenze e delle righe aperte di
purchase.order: i componenti ordinati sono considerati disponibili alla data di consegna dell’ordine di acquisto e le giacenze vengono aggiornate quando l’ordine è contrassegnato come Delivered. - Sottoassiemi sincronizzati. La schedulazione dei componenti intermedi e dei prodotti multilivello fa sì che i componenti siano pronti quando servono per l’assemblaggio.
- Dalla rischedulazione manuale ad Autopilot. Autopilot rischedula automaticamente quando la produzione cambia, rispettando i blocchi impostati, Running Time Lock e le priorità.
- Gantt e strumenti per il reparto anche in Community. I pianificatori modificano il programma su un Gantt interattivo. Gli operatori consultano la propria coda di lavoro e registrano le attività da telefono o tablet con Mobile Confirmations, Production Timer e Quick Log Mode.
Odoo resta il sistema di riferimento per prodotti, distinte base, scorte, acquisti e contabilità. SkyPlanner si integra con Odoo in entrambe le direzioni tramite External JSON-2 API, oppure tramite XML-RPC e JSON-RPC nelle versioni precedenti:
- In ingresso:
mrp.production,mrp.workorder,mrp.workcenter,mrp.bome righe aperte dipurchase.order. - Di ritorno a Odoo: inizio e fine pianificati e centro di lavoro scelto, tramite un’operazione
writesu ognimrp.workorder(date_start,date_finished,workcenter_id). Questo sposta l’intervallo riservato nel calendario di Odoo, così le viste di pianificazione di Odoo mostrano le date di SkyPlanner. - Reparto produttivo: le conferme degli operatori vengono registrate come Time Logs di tipo
mrp.workcenter.productivity.
I webhook di SkyPlanner trasmettono le modifiche al programma non appena avvengono. Ogni stabilimento usa Odoo in modo diverso, con le proprie operazioni, i propri calendari e moduli personalizzati. Durante l’avviamento, il team SkyPlanner configura l’integrazione in base al tuo ambiente e ne assicura il supporto dopo la messa in produzione. Anche il tuo partner Odoo o i tuoi sviluppatori possono realizzare l’integrazione usando l’API REST documentata di SkyPlanner (documentazione di riferimento dell’API). Per iniziare basta una chiave API. I dettagli sulle API e sulle funzionalità sono nella documentazione di SkyPlanner.
Scegli SkyPlanner quando molti ordini si contendono gli stessi colli di bottiglia e le scadenze devono determinare la sequenza di tutti gli ordini.
Scegli SkyPlanner quando i cambi produzione dipendono dalla sequenza, oppure utensili condivisi e operazioni che richiedono più operatori determinano cosa può essere eseguito subito dopo.
Scegli SkyPlanner quando rischeduli più volte alla settimana e vuoi un programma utilizzabile per la tua produzione in poche settimane, anziché al termine di un lungo progetto.
Inizia con un’esportazione CSV o XLSX nella prova gratuita di 30 giorni (fino a 20 centri di lavoro, senza carta di credito) e confronta il programma di SkyPlanner con i risultati del pulsante Plan. Al termine della prova, i prezzi partono da 199 € al mese con 5 centri di lavoro inclusi, fatturazione mensile e disdetta in qualsiasi momento. Il preventivo per l’integrazione viene fornito in anticipo insieme al piano, in base ai tuoi processi e alle tue esigenze, così conosci il costo complessivo prima di iniziare. L’implementazione viene normalmente completata entro poche settimane dall’inizio dell’avviamento. Consulta prezzi e funzionalità.
Scopri di più su SkyPlanner per Odoo, consulta la guida all’integrazione con Odoo e le altre integrazioni ERP.
SkyPlanner: le testimonianze delle aziende manifatturiere
2 hrisparmiate ogni settimana
“Con SkyPlanner siamo passati dalla pianificazione della produzione su fogli Excel all’ottimizzazione della produzione in tempo reale.”
Kalle Kalliomäki, specialista della supply chain
UTU · Quadri e apparecchiature elettriche di manovra
La pianificazione della produzione fa risparmiare 2 ore di lavoro ogni settimana e una nuova coda di lavoro arriva alla linea in pochi secondi.
+90%di efficienza produttiva
“L’efficienza in produzione è aumentata del 90%.”
Abdul Rucyinga, responsabile IT
Laboratory & Allied · Produzione farmaceutica
L’efficienza produttiva è aumentata del 90% e bastano meno di 30 minuti per creare un programma ottimizzato di tre mesi per tutti i centri di lavoro.
6 mesidi visibilità sulla capacità disponibile per il reparto commerciale
“SkyPlanner fornisce una base solida e affidabile per tutta la pianificazione della produzione.”
Anu Järvinen, responsabile di produzione
Fredman Operations · Carte per imballaggi idonee al contatto alimentare
Il reparto commerciale vede la capacità disponibile con sei mesi di anticipo e le richieste di modifica del programma che prima richiedevano un’ora o più ricevono risposta in pochi secondi.
98%di affidabilità delle consegne, rispetto al 50% circa iniziale
“SkyPlanner svolge un ruolo decisivo nel mantenere l’affidabilità delle nostre consegne.”
Hannu Lahtinen, amministratore delegato
KJH-Comp · Lavorazione della lamiera e produzione conto terzi
L’affidabilità delle consegne è passata da circa il 50% fino al 98% e ora per la schedulazione basta un supervisore anziché due.
Domande frequenti
Odoo Community offre la schedulazione della produzione?
Sì, a livello di base. Community include ordini di fabbricazione, ordini di produzione, centri di lavoro e il pulsante Plan, con viste elenco, calendario, pivot e grafico. La vista Gantt per la schedulazione, Shop Floor e Master Production Schedule sono funzionalità di Enterprise. SkyPlanner offre agli stabilimenti che usano Community un Gantt e una coda di lavoro per gli operatori.
L’MRP di Odoo tiene conto della capacità dei centri di lavoro?
No. Il riapprovvigionamento usa lead time espressi in giorni di calendario e la documentazione di Odoo afferma che i lead time “do not consider weekends, holidays, or work center capacity” (non tengono conto dei fine settimana, dei giorni festivi o della capacità dei centri di lavoro). La capacità viene considerata solo quando premi Plan su un MO.
Odoo può eseguire più operazioni contemporaneamente sullo stesso centro di lavoro?
Nello schedulatore, no. Il codice della versione 19.0 assegna a ogni ordine di produzione un intervallo che non si sovrappone a quelli degli altri ordini di produzione sullo stesso centro di lavoro. La scheda Product Capacities serve a impostare il numero di pezzi per ciclo all’interno di un singolo ordine di produzione, non a pianificare ordini di produzione in parallelo.
Odoo gestisce tempi di attrezzaggio dipendenti dalla sequenza?
No. Setup Time e Cleanup Time sono valori fissi in minuti per centro di lavoro, oppure per prodotto nella scheda Product Capacities. Odoo li aggiunge a ogni ordine di produzione, indipendentemente dall’operazione eseguita prima. La matrice dei tempi di attrezzaggio di SkyPlanner registra i tempi di cambio produzione per ogni coppia di prodotti, distinguendo il passaggio dall’uno all’altro nei due sensi, e dispone le operazioni in sequenza per ridurli al minimo.
Come si collega SkyPlanner APS a Odoo?
SkyPlanner si integra con Odoo in entrambe le direzioni tramite l’API esterna JSON-2 oppure, nelle versioni da 16.0 a 18.0, tramite execute_kw su XML-RPC o JSON-RPC. Le date pianificate e i centri di lavoro vengono scritti in ogni mrp.workorder, mentre i tempi registrati diventano Time Logs in Odoo. Il team SkyPlanner configura l’integrazione durante l’avviamento e fornisce assistenza anche dopo la messa in produzione. I dettagli sono nella guida all’integrazione con Odoo.
Posso provare SkyPlanner prima di integrarlo con Odoo?
Sì. La prova di 30 giorni utilizza esportazioni CSV o XLSX dalle viste elenco di Odoo, con un massimo di 20 centri di lavoro e senza carta di credito. Puoi confrontare il programma di SkyPlanner con i risultati del pulsante Plan prima di collegare i sistemi. Inizia la prova gratuita oppure contatta il reparto commerciale.