Vai al contenuto

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

Schermata della pagina

  • 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:

  1. Nome — nome della regola (obbligatorio).
  2. 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.
  3. Aspetto three-way — l'aspetto del controllo incrociato: Nessuno, Quantità o Prezzo. Serve a classificare il controllo.
  4. Operatore — il confronto richiesto: Equal (uguale), NotEqual (diverso), Less (minore), LessOrEqual (minore o uguale), Greater (maggiore), GreaterOrEqual (maggiore o uguale).
  5. Tipo confronto — come interpretare i valori: Numeric (numeri), String (testi) oppure Expression (formula libera, vedi sotto).
  6. Tolleranza assoluta — scarto massimo ammesso in valore assoluto.
  7. Tolleranza % — scarto massimo ammesso in percentuale.
  8. SeveritàWarning (avviso giallo) o Error (errore rosso).
  9. 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.