Kosten nach Produkten umlegen

Dieses Beispiel für ein Essbase-Block Storage-Berechnungsskript weist jedem Produkt auf jedem Markt monatlich Gemeinkosten zu. Es verwendet ARRAY, FIX und CALC DIM. #Missing-Werte werden nicht aggregiert.

Gemeinkosten werden basierend auf dem Umsatzwert jedes Produkts als Prozentsatz des Gesamtumsatzes für alle Produkte umgelegt.

Angenommen, Sie haben der Measures-Dimension zwei Elemente hinzugefügt:

  • OH_Kosten für die umgelegten Gemeinkosten

  • OH_TotalCost für die Gesamtgemeinkosten

Beispielskript:

/* Declare a temporary array called ALLOCQ based on the Year dimension */

ARRAY ALLOCQ[Year];

/* Turn the Aggregate Missing Values setting off. If this is your system default, omit this line */

SET AGGMISSG OFF;

/* Allocate the overhead costs for Actual values */

FIX(Actual)
   OH_Costs (ALLOCQ=Sales/Sales->Product; OH_Costs = 
   OH_TotalCost->Product * ALLOCQ;);

/* Calculate and consolidate the Measures dimension */

   CALC DIM(Measures);
ENDFIX

Essbase führt folgende Berechnungen aus:

  1. Erstellt ein eindimensionales Array mit dem Namen ALLOCQ, um den Wert "Sales" als Prozentsatz des Gesamtumsatzes für jede Elementkombination temporär zu speichern.

    Die Größe von ALLOCQ basiert auf der Anzahl der Elemente in der Year-Dimension.

  2. #MISSING-Werte aggregieren nicht zu den übergeordneten Werten (SET AGGMISSG ist auf OFF gesetzt). Datenwerte, die auf übergeordneten Ebenen gespeichert sind, werden nicht überschrieben.

    Wenn SET AGGMISSG OFF Ihr Systemstandard ist, lassen Sie diese Zeile weg. Siehe #MISSING Values.

    • Behebt die Istwerte.

    • Durchläuft die Elementkombinationen für Istwerte und berechnet OH_Kosten.

    • Nimmt den Verkaufswert für jedes Produkt in jedem Markt für jeden Monat und berechnet ihn als Prozentsatz des Gesamtumsatzes für alle Produkte in jedem Markt (Verkauf -> Produkt). Das Ergebnis wird in ALLOCQ eingefügt.

    • Nimmt die Gesamtgemeinkosten für alle Produkte (OH_TotalCost -> Produkt) und multipliziert sie mit dem Wert, den sie gerade in ALLOCQ platziert hat. Das Ergebnis wird in OH_Costs eingefügt.

      Beachten Sie, dass beide Gleichungen in Klammern ( ) stehen und mit dem OH_Costs-Element verknüpft sind: OH_Costs (gleich 1; gleich 2;).

  3. Berechnet und konsolidiert die Measures-Dimension.