Werte innerhalb einer Dimension zuordnen
In diesem Beispiel für ein Essbase-Berechnungsskript wird die Funktion @ALLOCATE verwendet, um budgetierte Gesamtausgaben für zwei Produkte auf Aufwandskategorien umzulegen. Die budgetierten Gesamtaufwendungen werden auf Basis der Istwerte für das Vorjahr umgelegt.
Angenommen, Sie haben die folgenden Änderungen an Sample Basic vorgenommen, wie in der folgenden Gliederung dargestellt:
-
Untergeordnetes Objekt "Leasing" unter "Gesamtaufwand" in der Dimension "Kennzahlen" hinzugefügt
-
Ein untergeordnetes Element, PY Actual, wurde zur Scenario-Dimension hinzugefügt
Abbildung 24-3: Geänderte Kennzahlen und Szenariodimensionen

Angenommen, die Datenwerte 1000 und 2000 werden in "Budget -> Gesamtausgaben für Colas" bzw. "Root Beer" geladen. Diese Werte müssen jeder Aufwandskategorie zugeordnet werden, wobei die Werte gleichmäßig auf die nicht fehlenden untergeordneten Werte der Gesamtausgaben aus dem Istwert des Vorjahrs verteilt werden. Die zugeteilten Werte müssen auf den nächsten Dollar gerundet werden.
Beispielskript:
/* 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 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* Rundungsfehler werden zu diesem Wert hinzugefügt.
Essbase durchläuft die Datenbank und führt folgende Berechnungen durch:
-
Fixes für die untergeordneten Elemente der Gesamtausgaben.
Die Verwendung einer FIX-Anweisung mit @ALLOCATE kann die Berechnungsperformance verbessern.
-
Für Budget -> Spalten -> Marketing dividiert 1 durch die Anzahl der nicht fehlenden Werte für jede Aufwandskategorie in Vorjahreswert -> Spalten für jeden Monat.
In diesem Fall wird 1 durch 3 geteilt, da es 3 nicht fehlende Aufwandswerte für Budget -> Colas gibt.
-
Nimmt den Wert aus Schritt 2 (.333) an, multipliziert ihn mit dem Wert für Budget -> Spalten -> Gesamtausgaben (1000) und rundet ihn auf den nächsten Dollar (333). Das Ergebnis wird in Budget -> Colas -> Marketing platziert.
-
Wiederholt die Schritte 2 und 3 für jede Aufwandskategorie für Budget -> Colas und dann für Budget -> Root Beer.
-
Wie im Berechnungsskript angegeben, rundet er die zugewiesenen Werte auf den nächsten ganzen Dollar.
Essbase führt einen zweiten Durchlauf durch den Block aus, um die Summe der gerundeten Werte gleich dem Zuordnungswert zu machen (z.B. 1000 für Budget -> Spalten -> Gesamtausgaben). In diesem Beispiel gibt es einen Rundungsfehler von 1 für Budget -> Spalten -> Gesamtaufwendungen, da die Aufwandskategorien 999 ergeben, nicht 1000, was der Umlagewert ist. Da alle zugewiesenen Werte identisch sind (333), wird der Rundungsfehler von 1 zum ersten Wert im Zuordnungsbereich hinzugefügt, Budget -> Colas -> Marketing (also ein Wert von 334).