Dues famílies de missatges
Per ordenar els missatges del mòdul, el millor és separar-los segons què estàs fent quan apareixen:
- Valors de configuració que no quadren:
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.iMajor overdue threshold cannot exceed critical threshold.
- Accions o dades d'una excepció:
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.iSource record id must be positive.
Davant de Ignoring an exception requires a reason. la correcció és escriure un motiu abans d'ignorar l'excepció.
Si primer vols veure quins menús afegeix el mòdul i quin recorregut fa un registre, ho tens a com funciona el mòdul per dins.
Un cas de principi a fi
Exemple Cas il·lustratiu: l'empresa i les seves dades són inventades per explicar el flux.
Distribucions Garbí és una distribuïdora inventada que acaba d'instal·lar el mòdul al seu Odoo. La Marta, responsable de magatzem, s'encarrega de deixar-lo configurat i de revisar les excepcions cada matí. Anem seguint què fa i quin missatge li surt a cada moment.
Primer pas: la configuració
La Marta obre Inventory › Route Exceptions › Route Exception Settings, on hi ha un únic registre.

Primer posa a zero l'interval d'escaneig per provar i el mòdul respon amb Scan interval and retention must be at least 1. El missatge deixa clar el mínim: tant l'interval d'escaneig com la retenció han de valer 1 o més. La Marta torna a posar un valor vàlid i desa.
Després escriu per error un número negatiu en un valor de dies i apareix Day values cannot be negative. N'hi ha prou de canviar-lo per un valor que no sigui negatiu.
Amb el llindar de comandes pendents li passa una cosa semblant: el deixa a zero i surt Backorder threshold and lookback must be at least 1. Igual que abans, el llindar i el període de consulta enrere han de ser 1 com a mínim.
Tot seguit ajusta els trams d'antiguitat i repeteix el mateix límit en dos trams seguits. El mòdul ho rebutja amb Age bucket boundaries must increase strictly. Els límits han d'anar en ordre creixent i sense repetir-se, així que la Marta deixa cada límit per sobre de l'anterior.
Finalment, col·loca el llindar de retard de Major per sobre del de Critical. Surt Major overdue threshold cannot exceed critical threshold. La solució és baixar el de Major o pujar el de Critical fins que el primer no superi el segon.
Segon pas: treballar les excepcions
Amb la configuració desada, la Marta passa a Inventory › All Route Exceptions.

Hi ha una excepció que considera que no mereix seguiment i decideix ignorar-la sense escriure res. El mòdul atura l'acció amb Ignoring an exception requires a reason. La Marta hi afegeix el motiu i llavors ja la pot ignorar.
En una altra excepció intenta un canvi i apareix Cannot change route exception from %(old)s to %(new)s. El missatge indica d'on parteix el canvi i on intentava arribar, i vol dir que el mòdul no permet aquell pas concret. La Marta comprova en quin estat és l'excepció abans de triar un altre canvi.
En una tercera, una acció que necessita el document d'origen acaba en The source document no longer exists or is not accessible. El text dona dues possibilitats: que el document ja no existeixi o que el seu usuari no hi tingui accés. La Marta pregunta a l'administrador si el document encara existeix i si els seus permisos el cobreixen.
Tercer pas: el seguiment
Ja sense avisos pendents, la Marta revisa el tauler i l'informe per veure les excepcions obertes i el temps de resolució per tipus.


El missatge que no va sortir en el cas
La Marta no es va trobar Source record id must be positive., però val la pena conèixer-lo. Si es crea una excepció amb un identificador de registre d'origen que no és positiu, apareix aquest missatge. Cal revisar quin valor s'assigna a aquest identificador.
Resum de missatges i què fer
| Missatge | Què fer |
|---|---|
Day values cannot be negative. | Canviar el valor de dies per un que no sigui negatiu |
Scan interval and retention must be at least 1. | Posar 1 o més a l'interval d'escaneig i a la retenció |
Backorder threshold and lookback must be at least 1. | Posar 1 o més al llindar i al període enrere |
Age bucket boundaries must increase strictly. | Ordenar els límits dels trams de menor a major, sense repetir |
Major overdue threshold cannot exceed critical threshold. | Deixar el llindar de Major igual o per sota del de Critical |
Ignoring an exception requires a reason. | Escriure el motiu abans d'ignorar |
Cannot change route exception from %(old)s to %(new)s. | Revisar l'estat actual i triar un altre canvi |
The source document no longer exists or is not accessible. | Comprovar que el document existeix i que hi tens accés |
Source record id must be positive. | Revisar quin valor s'assigna a l'identificador d'origen |
Què n'aprenem, del cas
La majoria dels missatges de l'exemple van sortir durant la configuració i tots es van resoldre llegint el text: diu el mínim, l'ordre o la relació entre llindars que espera el mòdul. Abans de tocar els ajustos, tingues clar quins valors hi posaràs i en quin ordre van els trams.
En el dia a dia, els missatges aturen dues coses: ignorar una excepció sense motiu i fer un canvi que el mòdul no permet. Quan l'avís parla del document d'origen o del seu identificador, el problema és al document o al valor de l'identificador, no a l'excepció.
Com t'ajuda FlexigoTech
FlexigoTech implanta Odoo 17, 18, 19 i 20 i desenvolupa connectors i integracions a mida. El mòdul està publicat a Odoo Apps per a 17, 18, 19 i 20, a 9 € sense IVA per versió d'Odoo, pagament únic. Tens més detalls a la pàgina del mòdul i a la seva fitxa d'Odoo Apps.
Continua llegint
Comprovat al codi del mòdul (versió 20.0) i a les fonts enllaçades
Fonts
- Codi del mòdul: flexigo_warehouse_route_exception_dashboard 20.0 (8c481836): models/route_exception.py
- Codi del mòdul: 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
