A cosa servono le dimensioni

Le dimensions in Business Central sono attributi di analisi che classificano le registrazioni contabili senza moltiplicare i conti del General Ledger. Invece di creare conti separati per reparto, area geografica o progetto, si assegna una dimension con i suoi dimension values alle transazioni, mantenendo il piano dei conti snello e la reportistica flessibile (Analysis by Dimensions, account schedules, Power BI).

Ogni dimensione ha un elenco di dimension values, ciascuno con un Dimension Value Type (Standard, Heading, Begin-Total, End-Total, Total) che permette di raggruppare i valori in gerarchie per il reporting.

Global vs Shortcut dimensions

Nella General Ledger Setup si definiscono al massimo:

  • 2 Global Dimensions — memorizzate come veri e propri campi sulle ledger entries. Sono le uniche filtrabili direttamente su report standard, account schedules e come colonne fisse nei documenti.
  • 6 Shortcut Dimensions aggiuntive (Shortcut Dimension 3-8; le posizioni 1 e 2 coincidono con le global). Compaiono come colonne rapide su journal e documenti, ma non sono campi indicizzati sulle entries.

Cambiare una Global Dimension è un’operazione costosa: richiede il batch Change Global Dimensions, che riscrive tutte le tabelle contenenti il campo dimensione. Su un database in produzione è lungo, bloccante e va pianificato con attenzione. Le shortcut aggiuntive, invece, si modificano liberamente perché sono solo scorciatoie di input. Regola pratica: assegna a Global 1 e 2 le due dimensioni più usate nei filtri e nei report (tipicamente Department e Project/Area).

Default dimensions e Value Posting

Sui master data (Customer, Vendor, Item, G/L Account, Resource, Fixed Asset…) si impostano Default Dimensions che precompilano la transazione. Il comportamento è governato dal campo Value Posting:

  • (vuoto) — suggerisce il valore di default ma consente qualsiasi valore o nessuno.
  • Code Mandatory — la dimensione è obbligatoria; qualsiasi valore è ammesso ma non si può lasciare vuoto.
  • Same Code — è ammesso solo lo specifico dimension value indicato (utile per forzare, es., un conto sempre sul reparto AMM).
  • No Code — la dimensione non deve essere valorizzata; qualunque valore genera errore.

Le default dimensions si possono definire anche a livello di Default Dimension per singolo account o come Multiple su gruppi.

Combinations e priorità

Le Dimension Combinations definiscono quali coppie di dimensioni possono coesistere: Blocked (mai insieme) o Limited (solo alcuni value combinations ammessi, dettagliati nella tabella Dimension Value Combinations). Servono a impedire, per esempio, che un reparto venga abbinato a un progetto non pertinente.

Quando una transazione riceve default dimensions da più fonti (cliente, articolo, conto) con value diversi per la stessa dimensione, interviene la Default Dimension Priorities, configurata per Source Code (es. SALES, PURCHASES):

  • Ogni tabella sorgente riceve un numero di Priority.
  • Vince la priorità più bassa (1 batte 2 batte 3).
  • Se due sorgenti hanno lo stesso numero di priorità e i value confliggono, Business Central genera un errore e blocca la registrazione finché non si assegnano priorità distinte.

Le Dimension Rules (versioni recenti) permettono regole condizionali più avanzate su quando una dimensione è richiesta o vietata in base al contesto.

Trappole tipiche d’esame

  • Cliente, Item e G/L Account hanno default diversi sulla stessa dimensione → chi vince? Non “l’ultimo inserito”: vince la sorgente con il numero di Priority più basso nella Default Dimension Priorities del Source Code. Se le priorità sono uguali e i value differiscono, la registrazione va in errore.
  • Il cliente ha bisogno di aggiungere una terza dimensione ai filtri di report standard, ma sono già occupate 2 global → l’unica via è promuoverla a Global eseguendo Change Global Dimensions (operazione pesante), non basta una shortcut aggiuntiva.
  • Value Posting = Same Code ma l’utente digita un altro value → errore in posting: Same Code ammette solo il codice specificato, non “qualsiasi valore obbligatorio” (quello è Code Mandatory).
  • Serve impedire che due dimensioni compaiano mai insiemeDimension Combination = Blocked, non una default dimension; per ammetterne solo alcune coppie si usa Limited.
  • Value Posting = No Code su un conto ma un default arriva da un’altra fonte → la registrazione fallisce, perché No Code vieta qualunque value su quella dimensione a prescindere dai default ereditati.