Due famiglie di messaggi
Per orientarti conviene dividere i messaggi del modulo in base a cosa stai facendo quando compaiono:
- Valori di configurazione che non tornano:
Day values cannot be negative.,Scan interval and retention must be at least 1.,Backorder threshold and lookback must be at least 1.,Age bucket boundaries must increase strictly.eMajor overdue threshold cannot exceed critical threshold.
- Azioni o dati di un'eccezione:
Ignoring an exception requires a reason.,Cannot change route exception from %(old)s to %(new)s.,The source document no longer exists or is not accessible.eSource record id must be positive.
Davanti a Ignoring an exception requires a reason. la correzione è scrivere un motivo prima di ignorare l'eccezione.
Se prima vuoi vedere quali menu aggiunge il modulo e che percorso fa un record, lo trovi in come funziona il modulo dall'interno.
Un caso dall'inizio alla fine
Esempio Caso illustrativo: l'azienda e i suoi dati sono inventati per spiegare il flusso.
Distribuzioni Garbí è un distributore inventato che ha appena installato il modulo nel suo Odoo. Marta, responsabile di magazzino, si occupa di configurarlo e di controllare le eccezioni ogni mattina. Seguiamo cosa fa e quale messaggio le compare in ogni momento.
Primo passo: la configurazione
Marta apre Inventory › Route Exceptions › Route Exception Settings, dove c'è un unico record.

Per prima cosa, come prova, mette a zero l'intervallo di scansione e il modulo risponde con Scan interval and retention must be at least 1. Il messaggio chiarisce il minimo: sia l'intervallo di scansione sia la conservazione devono valere 1 o più. Marta rimette un valore valido e salva.
Poi scrive per errore un numero negativo in un valore di giorni e compare Day values cannot be negative. Basta sostituirlo con un valore non negativo.
Con la soglia degli ordini arretrati le succede qualcosa di simile: la lascia a zero ed esce Backorder threshold and lookback must be at least 1. Come prima, la soglia e il periodo di analisi a ritroso devono essere almeno 1.
Quindi regola le fasce di anzianità e ripete lo stesso limite in due fasce consecutive. Il modulo lo rifiuta con Age bucket boundaries must increase strictly. I limiti devono essere in ordine crescente e senza ripetizioni, quindi Marta imposta ogni limite sopra il precedente.
Infine mette la soglia di ritardo di Major sopra quella di Critical. Compare Major overdue threshold cannot exceed critical threshold. La soluzione è abbassare Major o alzare Critical finché la prima non supera più la seconda.
Secondo passo: gestire le eccezioni
Con la configurazione salvata, Marta passa a Inventory › All Route Exceptions.

C'è un'eccezione che secondo lei non merita di essere seguita e decide di ignorarla senza scrivere nulla. Il modulo blocca l'azione con Ignoring an exception requires a reason. Marta aggiunge il motivo e a quel punto può ignorarla.
Su un'altra eccezione tenta una modifica e compare Cannot change route exception from %(old)s to %(new)s. Il messaggio indica da dove parte la modifica e dove cercava di arrivare, e significa che il modulo non consente quel passaggio specifico. Marta verifica in che stato si trova l'eccezione prima di scegliere un'altra modifica.
Su una terza, un'azione che richiede il documento di origine termina con The source document no longer exists or is not accessible. Il testo indica due possibilità: il documento non esiste più oppure non è accessibile al suo utente. Marta chiede all'amministratore se il documento esiste ancora e se i suoi permessi lo coprono.
Terzo passo: il monitoraggio
Ormai senza avvisi in sospeso, Marta controlla la dashboard e il report per vedere le eccezioni aperte e il tempo di risoluzione per tipo.


Il messaggio che non è comparso nel caso
Marta non ha incontrato Source record id must be positive., ma conviene conoscerlo. Se un'eccezione viene creata con un identificativo del record di origine non positivo, compare questo messaggio. Bisogna controllare quale valore viene assegnato a quell'identificativo.
Riepilogo dei messaggi e cosa fare
| Messaggio | Cosa fare |
|---|---|
Day values cannot be negative. | Sostituire il valore di giorni con uno non negativo |
Scan interval and retention must be at least 1. | Inserire 1 o più nell'intervallo di scansione e nella conservazione |
Backorder threshold and lookback must be at least 1. | Inserire 1 o più nella soglia e nel periodo a ritroso |
Age bucket boundaries must increase strictly. | Ordinare i limiti delle fasce dal più basso al più alto, senza ripetizioni |
Major overdue threshold cannot exceed critical threshold. | Tenere la soglia di Major uguale o inferiore a quella di Critical |
Ignoring an exception requires a reason. | Scrivere il motivo prima di ignorare |
Cannot change route exception from %(old)s to %(new)s. | Controllare lo stato attuale e scegliere un'altra modifica |
The source document no longer exists or is not accessible. | Verificare che il documento esista e che tu abbia accesso |
Source record id must be positive. | Controllare quale valore viene assegnato all'identificativo di origine |
Cosa insegna il caso
La maggior parte dei messaggi dell'esempio è comparsa durante la configurazione e tutti si sono risolti leggendo il testo: indica il minimo, l'ordine o il rapporto tra soglie che il modulo si aspetta. Prima di toccare le impostazioni, chiarisci quali valori inserirai e in che ordine vanno le fasce.
Nel lavoro quotidiano i messaggi bloccano due cose: ignorare un'eccezione senza motivo e fare una modifica che il modulo non consente. Quando l'avviso parla del documento di origine o del suo identificativo, il problema sta nel documento o nel valore dell'identificativo, non nell'eccezione.
Come ti aiuta FlexigoTech
FlexigoTech implementa Odoo 17, 18, 19 e 20 e sviluppa connettori e integrazioni su misura. Il modulo è pubblicato su Odoo Apps per 17, 18, 19 e 20, a 9 € IVA esclusa per versione di Odoo, pagamento una tantum. Trovi maggiori dettagli nella pagina del modulo e nella sua scheda su Odoo Apps.
Continua a leggere
Verificato nel codice del modulo (versione 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigo_warehouse_route_exception_dashboard 20.0 (8c481836): models/route_exception.py
- Codice del modulo: flexigo_warehouse_route_exception_dashboard 20.0 (8c481836): models/route_exception_config.py
- apps.odoo.com/apps/modules/20.0/flexigo_warehouse_route_exception_dashboard
- apps.odoo.com/apps/modules/17.0/flexigo_warehouse_route_exception_dashboard
- apps.odoo.com/apps/modules/18.0/flexigo_warehouse_route_exception_dashboard
- apps.odoo.com/apps/modules/19.0/flexigo_warehouse_route_exception_dashboard
- flexigotech.com/en/services.html
