L'ultimo software applicativo che ho scritto per un importante ospedale di Melbourne Australia aveva il seguente scopo. Permettere la definizione di entità di livello superiore, in questo caso un Ospedale, c'erano diversi Ospedali nel gruppo. All'interno di un'entità di primo livello definita si poteva definire qualsiasi numero di entità di livello inferiore, definendo il genitore della nuova entità. Ci potrebbero essere diverse entità di livello inferiore con lo stesso genitore, ma il contributo percentuale di ogni entità al suo genitore potrebbe, deve, essere definito. L'entità di livello più basso in ogni entità di livello superiore era un centro di costo. Una volta stabilita la struttura necessaria, i saldi della contabilità generale, ottenuti da un'altra applicazione proprietaria, potevano essere arrotolati nella struttura, permettendo così di rivedere i dettagli finanziari a ogni livello di entità. Le relazioni circolari sono state evitate e qualsiasi centro di costo sconosciuto attaccato a un'entità fittizia per un'indagine e correzione successiva. L'entità "Trial Balance", in cui ogni costo del General Ledger veniva arrotolato, doveva bilanciare a zero dopo ogni esercizio di "roll up" e se non lo faceva significava che il General Ledger era in fase di aggiornamento. Il 'Roll Up' veniva poi ripetuto fino a quando l'entità di contabilità generale non si azzerava.
Era anche possibile, e necessario, definire tanti Reporting Group quanti ne volevano per ogni struttura. I proprietari di ogni entità erano definiti e i proprietari avevano accesso solo a quelle strutture di cui erano proprietari. Era anche possibile definire delle giunzioni inclusive o esclusive tra le strutture definite usando gruppi di reporting specificati, permettendo così una struttura che mostrava, per esempio, il costo delle "graffette" ad ogni livello di una struttura.
Potevi fare un report su ogni livello su cui avevi autorità e i conti dettagliati della contabilità generale erano anche allegati ai centri di costo di livello più basso e potevano essere riportati, interattivamente o come un report.
Questo fu costruito a metà degli anni '90 e conteneva 750.000 linee di codice. La mia memoria non è più quella di una volta, ma devo aver datato e cronometrato ogni "Roll Up" in modo che solo i record di contabilità generale con una data e un'ora successive fossero processati ogni volta che il "Roll Up" veniva eseguito, riducendo così il tempo del "Roll Up" al minimo. C'erano altre astuzie ma il dettaglio ora mi sfugge, penso che si potessero confrontare i saldi di più anni finanziari in qualsiasi data. Il sistema conteneva anche dei budget con i quali gli effettivi potevano essere confrontati e spostati dall'amministratore finanziario tra le entità come richiesto.
L'attività su ogni livello di struttura veniva registrata e l'amministratore di sistema poteva rivedere e riferire sull'attività degli utenti.