Alloca valori all'interno di una dimensione

In questo esempio di script di calcolo Essbase viene utilizzata la funzione @ALLOCATE per allocare le spese totali in budget tra le categorie di spesa per due prodotti. Le spese totali in budget vengono allocate in base ai valori effettivi dell'anno precedente.

Si supponga di aver apportato le seguenti modifiche a Sample Basic, come illustrato nella struttura riportata di seguito:

  • Aggiunto un figlio, Leasing, in Totale spese nella dimensione Misure

  • Aggiunta di un figlio, Effettivo PY, alla dimensione Scenario

Figura 24-3 Misure modificate e dimensioni scenario


Sezione struttura di base di esempio con dimensioni Misure e Scenario modificate.

Si supponga che i valori dei dati 1000 e 2000 vengano caricati rispettivamente in Budget -> Totale spese per colonne e birra radice. Questi valori devono essere allocati a ogni categoria di spesa, distribuendo in modo uniforme i valori in base ai figli non mancanti di Totale spese da Effettivo PY. I valori allocati devono essere arrotondati al dollaro più vicino.

Script di esempio:

/* Allocate budgeted total expenses based on prior year */

FIX("Total Expenses")
   Budget = @ALLOCATE(Budget->"Total Expenses",
   @CHILDREN("Total Expenses"),"PY Actual",,
   spread,SKIPMISSING,roundAmt,0,errorsToHigh)
ENDFIX

I risultati dello script di calcolo:

                             Budget   PY Actual
Colas       Marketing        334 *    150
            Payroll          #MI      #MI
            Lease            333      200
            Misc             333      100
            Total Expenses   1000     450
Root Beer   Marketing        500      300
            Payroll          500      200
            Lease            500      200
            Misc             500      400
            Total Expenses   2000     1100

* Gli errori di arrotondamento vengono aggiunti a questo valore.

Essbase esegue cicli nel database eseguendo i calcoli riportati di seguito.

  1. Correzioni sui figli delle spese totali.

    L'uso di un'istruzione FIX con @ALLOCATE può migliorare le prestazioni di calcolo.

  2. Per Budget -> Colas -> Marketing, divide 1 per il conteggio dei valori non mancanti per ogni categoria di spesa in Effettivo PY -> Colas per ogni mese.

    In questo caso, 1 è diviso per 3, perché ci sono 3 valori di spesa non mancanti per Budget -> Colas.

  3. Prende il valore dal passo 2 (.333), lo moltiplica per il valore di Budget -> Colas -> Totale spese (1000) e lo arrotonda al dollaro più vicino (333). Il risultato viene inserito in Budget -> Colas -> Marketing.

  4. Ripete i passi 2 e 3 per ogni categoria di spesa per Budget -> Colas e quindi per Budget -> Birra principale.

  5. Come specificato nello script di calcolo, arrotonda i valori allocati al dollaro intero più vicino.

    Essbase esegue un secondo passaggio nel blocco per rendere la somma dei valori arrotondati uguale al valore di allocazione (ad esempio, 1000 per Budget -> Colas -> Spese totali). In questo esempio, si verifica un errore di arrotondamento pari a 1 per Budget -> Colas -> Totale spese, poiché le categorie di spese corrispondono a un massimo di 999 e non a 1000, ovvero il valore di allocazione. Poiché tutti i valori allocati sono identici (333), l'errore di arrotondamento 1 viene aggiunto al primo valore nell'intervallo di allocazione, Budget -> Colas -> Marketing (quindi un valore pari a 334).