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


Beispiel für einen einfachen Gliederungsabschnitt mit geänderten 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

Die Ergebnisse des Berechnungsskripts:

                             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:

  1. Fixes für die untergeordneten Elemente der Gesamtausgaben.

    Die Verwendung einer FIX-Anweisung mit @ALLOCATE kann die Berechnungsperformance verbessern.

  2. 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.

  3. 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.

  4. Wiederholt die Schritte 2 und 3 für jede Aufwandskategorie für Budget -> Colas und dann für Budget -> Root Beer.

  5. 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).