Regole di coerenza¶
Dove si trova: /config/coherence-rules — voce di menu Regole di coerenza nella sezione di configurazione.
A cosa serve¶
Le regole di coerenza definiscono i controlli incrociati tra documenti collegati (es. ordine d'acquisto, DDT e fattura): quantità ordinate contro quantità consegnate, prezzi dell'ordine contro prezzi fatturati, valuta, e così via. Ogni regola confronta due valori (con un'eventuale tolleranza) e, se il controllo fallisce, produce un esito con la severità scelta. L'effetto pratico per chi valida: nella sezione delle relazioni del documento e nella pagina di riconciliazione ogni riga mostra un badge verde/giallo/rosso per ciascun controllo, e le righe con errori vengono evidenziate.
Cosa vedi¶

- In alto il titolo Regole di coerenza, il conteggio delle regole e i pulsanti Nuova regola e Aggiorna.
- Una tabella con le regole esistenti (15 per pagina), con le colonne:
- Nome — il nome della regola.
- Nome del documento — a quale tipo si applica; se vuoto compare "Tutti".
- Aspetto — l'aspetto controllato: Quantità, Prezzo, oppure "—".
- Confronto — un riepilogo leggibile della formula (operando sinistro, simbolo dell'operatore, operando destro).
- Tolleranza — la tolleranza ammessa (assoluta e/o in percentuale), "—" se nessuna.
- Severità — badge rosso Errore o giallo Warning.
- I pulsanti di modifica ed eliminazione.
- Cliccando su modifica o su Nuova regola si apre sotto la tabella il pannello di modifica con Salva e Annulla.
Cosa puoi fare¶
Creare o modificare una regola¶
Clicca Nuova regola (per una nuova regola il tipo proposto è l'ordine d'acquisto) oppure la matita su una regola esistente. Compila:
- Nome — nome della regola (obbligatorio).
- Si applica a (EntityType) — il tipo di documento "radice" delle relazioni su cui applicare il controllo; lascia vuoto per applicarla a tutte (suggerimento nella casella: "vuoto = tutte"). Puoi scegliere dai suggerimenti o digitare liberamente.
- Aspetto three-way — l'aspetto del controllo incrociato: Nessuno, Quantità o Prezzo. Serve a classificare il controllo.
- Operatore — il confronto richiesto:
Equal(uguale),NotEqual(diverso),Less(minore),LessOrEqual(minore o uguale),Greater(maggiore),GreaterOrEqual(maggiore o uguale). - Tipo confronto — come interpretare i valori: Numeric (numeri), String (testi) oppure Expression (formula libera, vedi sotto).
- Tolleranza assoluta — scarto massimo ammesso in valore assoluto.
- Tolleranza % — scarto massimo ammesso in percentuale.
- Severità — Warning (avviso giallo) o Error (errore rosso).
- Messaggio (placeholder: {left} {right} {op}) — il testo mostrato all'operatore quando il controllo fallisce; puoi inserire i segnaposto
{left},{right}e{op}che verranno sostituiti con i due valori confrontati e l'operatore.
Se il Tipo confronto è "Expression" compare invece il campo Formula (NCalc, booleana): una formula libera che deve dare vero/falso. Il suggerimento sotto la casella spiega come citare i valori: i campi della riga per nome (es. entityQuantity, entityUnitPrice), i campi della testata col prefisso root_ (es. root_currency), e gli aggregati dei documenti collegati nella forma sum_TIPO_CAMPO / avg_TIPO_CAMPO / count_TIPO (TIPO: ddt/invoice/all; CAMPO: quantity/unitprice/total o i nomi dei valori extra). Esempio: entityQuantity == sum_ddt_quantity.
Negli altri casi compaiono i due riquadri Operando sinistro e Operando destro, cioè i due valori da confrontare. Per ciascuno:
- Sorgente — da dove viene il valore:
- EntityLine — la riga dell'ordine/hub della relazione (es. quantità ordinata).
- EntityRoot — la testata dell'ordine/hub (es. valuta, fornitore).
- Documents — i documenti collegati alla riga (DDT, fatture...).
- Constant — un valore fisso.
- Con sorgente Constant compare solo Valore costante.
- Con le altre sorgenti compare Campo — il nome del campo da leggere; i suggerimenti cambiano in base alla sorgente (per la riga es.
EntityQuantity,EntityUnitPrice; per la testata es.Currency,SupplierName; per i documenti es.DocumentQuantity,DocumentUnitPrice). Puoi anche digitare un nome libero, ad esempio una chiave dei valori extra della relazione. - Con sorgente Documents compaiono anche:
- Tipo documento — limita il controllo a un tipo di documento collegato (suggerimento: "ddt / invoice — vuoto = tutti").
- Aggregazione — come combinare i valori quando i documenti collegati sono più di uno:
None,Sum(somma),Min,Max,Avg(media),Count(conteggio),First(il primo).
Sezione "Quando applicare questa regola" — l'ambito di applicabilità opzionale (gruppi riusabili e/o condizioni inline); funziona come descritto nella scheda delle regole di matching. Vuoto = la regola si applica sempre.
Clicca Salva: il Nome è obbligatorio (altrimenti compare l'avviso "Assegna un nome alla regola"). A salvataggio riuscito compare "Regola salvata" e la tabella si ricarica.
Eliminare una regola¶
Clicca il cestino: conferma con Elimina nella finestra "Eliminare la regola "..."?".
Aggiornare l'elenco¶
Il pulsante Aggiorna ricarica l'elenco e chiude il pannello di modifica.
Buono a sapersi¶
Quando vengono eseguiti i controlli
I controlli di coerenza vengono ricalcolati quando si salvano i documenti e si (ri)costruiscono le relazioni: cambiare una regola qui cambia gli esiti dei prossimi salvataggi, senza altri interventi. Le relazioni su cui girano i controlli sono definite dalle regole di relazione.
Un esempio classico
"La somma delle quantità consegnate nei DDT non deve superare la quantità ordinata": operando sinistro = Documents / DocumentQuantity / tipo ddt / aggregazione Sum; operatore LessOrEqual; operando destro = EntityLine / EntityQuantity; severità a scelta.
Tolleranze e severità
Con tolleranza assoluta e percentuale entrambe valorizzate, lo scarto è ammesso se rientra nelle tolleranze impostate. Ricorda che una regola con severità Error evidenzia in rosso le righe della relazione: usa Warning per i controlli indicativi.