Elementberechnungsreihenfolge

Die Standardreihenfolge, in der Essbase Gliederungselemente berechnet, ist im Allgemeinen: Accounts, Time, Dense und Sparse, wobei die Reihenfolge der Dimensionen in der Gliederung berücksichtigt wird und ob Formeln angewendet werden.

Wenn Sie eine Standardberechnung (CALC ALL) für eine Datenbank ausführen, berechnet Essbase die Dimensionen in der folgenden Reihenfolge:

  • Wenn sowohl eine als Konten getaggte Dimension als auch eine als Zeit getaggte Dimension vorhanden ist und Formeln auf Elemente in der Account-Dimension angewendet werden, berechnet Essbase in der folgenden Reihenfolge:

    1. Dimension als Konten getaggt

    2. Dimension getaggt als Zeit

    3. Andere dicht besetzte Dimensionen (in der Reihenfolge, in der sie im Datenbank-Outline angezeigt werden)

    4. Andere Sparse-Dimensionen (in der Reihenfolge, in der sie im Datenbank-Outline angezeigt werden)

  • Andernfalls berechnet Essbase in der folgenden Reihenfolge:

    1. Dense-Dimensionen (in der Reihenfolge, in der sie im Datenbank-Outline angezeigt werden)

    2. Dünn besetzte Dimensionen (in der Reihenfolge, in welcher sie in einer Gliederung angezeigt werden)

Hinweis:

Attribute-Dimensionen, die nicht in der Datenbankkonsolidierung enthalten sind, wirken sich nicht auf die Berechnungsreihenfolge aus. Siehe Mit Essbase-Attributen arbeiten.

In der Sample Basic-Datenbank werden die Dimensionen in der folgenden Reihenfolge berechnet: Measures, Year, Scenario, Product und Market.

Sie können die Standardreihenfolge mit einem Berechnungsskript überschreiben. Siehe Berechnungsskripte für Block Storage-Cubes entwickeln.

Berechnungsauswirkungen von Elementbeziehungen

Die Reihenfolge der Berechnung innerhalb der einzelnen Essbase-Dimensionen hängt von den Beziehungen zwischen Elementen in der Modellstruktur ab. Die Art und Weise, wie Elemente in der Gliederung zusammengefasst (konsolidiert) werden, ist mit einem Kilometerzähler vergleichbar.

Innerhalb jeder Verzweigung (Hierarchie) einer Dimension werden zuerst die Werte der Ebene 0 berechnet, gefolgt von dem übergeordneten Wert der Ebene 1. Dann werden die Werte der Ebene 0 der nächsten Verzweigung berechnet, gefolgt von dem übergeordneten Wert der Ebene 1. Die Berechnung wird so lange fortgesetzt, bis alle Ebenen berechnet werden.

Die folgende Abbildung zeigt die Year-Dimension aus der Sample Basic-Datenbank. Die Berechnungsreihenfolge ihrer Elemente wird links von jedem Element angegeben. In diesem Beispiel wird davon ausgegangen, dass die übergeordneten Elemente nicht mit Dynamische Berechnung getaggt sind.

Abbildung 19-3: Berechnungsreihenfolge für Dimension "Jahr" der Stichprobe - Grundlegend


Erweiterte Year-Dimensionsstruktur mit Zahlen zur Darstellung der Berechnungsreihenfolge der zugehörigen Elemente. Die Bestellung, von 1 bis 17, ist Jan, Feb, Mär, Qtr1, Apr, Mai, Jun, Qtr2, Jul, Aug, Sep, Qtr3, Okt, Nov, Dez, Qtr4, Jahr.

Jan ist das erste Mitglied in der ersten Filiale. Jan hat keine Formel, daher wird sie nicht ausgewertet. Das gleiche gilt für Feb und Mar, die anderen beiden Mitglieder in der Filiale.

Essbase berechnet das Quartal 1, indem Jan, Feb und Mar konsolidiert werden. In diesem Beispiel werden diese Monate hinzugefügt, wie durch den Konsolidierungsoperator + angegeben, um einen Wert für das Quartal 1 anzugeben.

Essbase berechnet dann die Verzweigungen Qtr2 bis Qtr4 auf dieselbe Weise.

Schließlich berechnet Essbase das Year-Element, indem die Werte von Qtr1 bis Qtr4 konsolidiert werden. Wie von den +-Konsolidierungsoperatoren angegeben, werden diese Quartale hinzugefügt, um einen Wert für "Jahr" bereitzustellen.

So konsolidieren Mitglieder

Sie können wählen, wie Essbase Elemente in einem Block Storage-Cube konsolidiert, indem Sie einen Berechnungsoperator (+, -, /, *,%, ~, ^) auf die Elemente in der Datenbank-Outline anwenden.

Wenn ein Kontenelement ein Zeitsalden-Tag (Erster, Letzter oder Durchschnitt) aufweist, konsolidiert Essbase es entsprechend. Siehe Erste, Letzte und Durchschnittswerte berechnen.

Wenn ein übergeordnetes Element einen Operator "Nur Label" aufweist, berechnet Essbase das übergeordnete Element nicht aus den untergeordneten Elementen.

Wenn ein Element über einen ~-Operator verfügt, konsolidiert Essbase das Element nicht bis zu seinem übergeordneten Element.

Wenn ein Element über einen ^-Operator verfügt, konsolidiert Essbase das Element in keiner Dimension.

Hinweis:

Wenn Sie dynamische Berechnungen verwenden, kann Essbase eine andere Berechnungsreihenfolge verwenden. Weitere Informationen finden Sie unter Berechnungsreihenfolge für dynamische Berechnung.

Reihenfolge der Dimensionen in der Datenbankstruktur

Um die erforderlichen Berechnungsergebnisse sicherzustellen, berücksichtigen Sie die Berechnungsreihenfolge der Dimensionen in der Essbase-Modellstruktur, wenn Berechnungsoperatoren zum Teilen (/), Multiplizieren (*) oder Berechnen von Prozentsätzen (%) für Elemente verwendet werden oder wenn einige Elemente Formeln haben.

Sie müssen die Berechnungsreihenfolge nicht berücksichtigen, wenn Sie nur Berechnungsoperatoren zum Hinzufügen von (+) und Subtrahieren (–) Elementen im Datenbank-Outline verwenden und keine Formeln im Outline verwenden.

Formeln für Elemente in der Datenbankstruktur

Wenn Sie Formeln für Elemente in der Essbase-Modellstruktur platzieren, berücksichtigen Sie die Berechnungsreihenfolge der Dimensionen. Eine Formel, die einem Element in einer Dimension zugeordnet ist, kann durch eine nachfolgende Berechnung in einer anderen Dimension überschrieben werden.

Beispiel: Die Datenbank "Beispielbasis" enthält eine Measures-Dimension, die als Accounts getaggt ist, und eine Year-Dimension, die als Time getaggt ist.


Year-Dimension des Typs "Zeit" und teilweise erweiterte Measures-Dimension des Typs "Konten", wobei das Element "Gewinnspanne" hervorgehoben ist.

Die Kennzahlen werden zuerst und das zweite Jahr berechnet. Wenn Sie eine Formel an die Marge in der Measures-Dimension anhängen, berechnet Essbase die Formel bei der Berechnung der Measures-Dimension. Essbase überschreibt dann die Formel, wenn die Year-Dimension konsolidiert wird. Weitere Informationen finden Sie unter Zellenberechnungsreihenfolge.

Verwendung der Berechnungsoperatoren *, / und %

Wenn Sie Berechnungsoperatoren verwenden, um Elemente in der Essbase-Modellstruktur zu multiplizieren ( *), zu dividieren (/) und Prozentsätze ( %) zu berechnen, berücksichtigen Sie die Berechnungsreihenfolge der Dimensionen. Die erforderlichen berechneten Werte können durch eine nachfolgende Berechnung in einer anderen Dimension überschrieben werden.

Beispiel: Die Datenbank "Beispielbasis" enthält eine Measures-Dimension, die als Accounts getaggt ist, und eine Year-Dimension, die als Time getaggt ist. Die Kennzahlen werden zuerst und das zweite Jahr berechnet. Wenn Sie Elemente in der Measures-Dimension multiplizieren, werden die berechneten Ergebnisse möglicherweise überschrieben, wenn Essbase Werte in der Year-Dimension konsolidiert. Siehe Reihenfolge der Zellberechnung.

Wenn Sie einen Multiplikationsoperator ( *), Division ( / ) oder Prozentsatz ( % ) verwenden, um Elemente zu konsolidieren, ordnen Sie die Elemente in der Verzweigung sorgfältig an, um das erforderliche Ergebnis zu erzielen.

In Abbildung 19-4 werden Berechnungsoperatoren angezeigt, wie sie in einer Gliederung angezeigt werden. Angenommen, der Benutzer möchte die Summe von Kind 2 und Kind 3 durch Kind 1 aufteilen. Wenn Kind 1 jedoch das erste Element ist, beginnt Essbase mit Kind 1, beginnend mit dem Wert #MISSING, und dividiert es durch Kind 1. Das Ergebnis ist #MISSING. Essbase fügt dann untergeordnete Elemente 2 und untergeordnete Elemente 3 hinzu. Offensichtlich ist dieses Ergebnis nicht das erforderliche.

Abbildung 19-4: Berechnungsoperatoren in der Datenbankgliederung


Berechnungsoperatoren in einer Outline.

Um das korrekte Ergebnis zu berechnen, machen Sie Child 1 zum letzten Element in der Verzweigung.

Sie können eine Formel auf ein Element im Datenbank-Outline anwenden, um dasselbe Ergebnis zu erzielen. Es ist jedoch viel effizienter, diese Berechnungsoperatoren für Elemente zu verwenden, wie in Abbildung 19-4 dargestellt.

Vorwärtsberechnungsreferenzen vermeiden

Um die erwarteten Berechnungsergebnisse zu erhalten, stellen Sie sicher, dass die Modellstruktur keine Vorwärtsberechnungsreferenzen enthält. Vorwärtsberechnungsreferenzen treten auf, wenn der Wert eines berechneten Elements von einem Element abhängig ist, das Essbase noch nicht berechnet hat. In diesen Fällen liefert Essbase möglicherweise nicht die erforderlichen Berechnungsergebnisse.

Beispiel: Die unten gezeigte Product-Dimension mit drei Vorwärtsberechnungsreferenzen: zwei gemeinsame Elemente (P100–20 und P300–20) und ein nicht gemeinsam verwendetes Element (P500–20):

Abbildung 19-5 Produktdimension mit Vorwärtsberechnungsreferenzen


Diese Abbildung zeigt die Produktdimensionsstruktur mit drei Vorwärtsberechnungsreferenzen.

Wenn Sie die Gliederung prüfen, identifiziert Essbase im Gliederungs-Editor gemeinsame Elemente mit Vorwärtsberechnungsreferenzen. Wenn Sie die Modellstruktur prüfen, werden keine nicht gemeinsam verwendeten Elemente mit Vorwärtsberechnungsreferenzen identifiziert. Sie können eine Gliederung mit Vorwärtsberechnungsreferenzen speichern und verwenden.

Betrachten Sie die fünf Mitglieder unter Diät. Die Elemente P100-20, P300-20 und P500-20 haben Vorwärtsberechnungsreferenzen:

  • P100-20 (+) (Gemeinsames Element): Essbase berechnet das gemeinsame Element P100-20, bevor es das Prototypelement P100-20 berechnet. Da das Prototypenelement P100-20 über untergeordnete Elemente verfügt, muss Essbase das Prototypenelement berechnen, indem es seine untergeordneten Elemente hinzufügt, bevor es das gemeinsame Element P100-20 genau berechnen kann.

  • P300-20 (+) (Gemeinsames Element): Essbase berechnet das gemeinsame Element P300-20, bevor es das Prototypelement P300-20 berechnet. Da das Prototypenelement P300-20 eine Formel enthält, muss Essbase das Prototypenelement berechnen, bevor das gemeinsame Element P300-20 korrekt berechnet werden kann.

  • P500-20 (+) ("P200-20" + "P300-20"): Die Formel, die auf P500-20 angewendet wird, bezieht sich auf Elemente, die Essbase noch nicht berechnet hat. Ein solches Prototyp-Element, P300-20, hat eine eigene Formel, und Essbase muss P300-20 berechnen, bevor es P500-20 genau berechnen kann. Die Elemente P200-20 und P400-20 werden korrekt berechnet, da sie keine Zuflussberechnungsreferenzen haben.

  • P200-20 (+) (gemeinsames Element): P200-20 ist keine Vorwärtsberechnungsreferenz, obwohl Essbase das gemeinsame Element P200-20 berechnet, bevor es das Prototypelement P200-20 berechnet. Das Prototypenelement P200-20 weist keine Berechnungsabhängigkeiten auf (keine untergeordneten Elemente und keine Formel). Daher muss Essbase das Prototyp-Element nicht vor dem gemeinsamen Element berechnen. Essbase nimmt einfach den Wert des Prototypelements an.

  • P400-20 (+) ("P200-10" * 2): P400-20 ist keine Vorwärtsberechnungsreferenz, obwohl die Formel, die auf P400-20 angewendet wird, ein Element referenziert, das Essbase noch nicht berechnet hat. Der Elementprototyp in der Formel weist selbst keine Berechnungsabhängigkeiten auf. P200-10 ist das einzige Element in der Formel, und P200-10 selbst hat keine Kinder oder eine Formel. Essbase berechnet P400-20 korrekt.

Um genaue Berechnungsergebnisse für P100-20, P300-20 und P500-20 zu erhalten, ändern Sie die Reihenfolge der Elemente in der Gliederung. Indem Sie die gemeinsamen Diät-Elemente nach den regulären Elementen platzieren, wie unten gezeigt, stellen Sie sicher, dass Essbase die Elemente in der erforderlichen Reihenfolge berechnet.

Abbildung 19-6: Geänderte Produktdimension ohne Terminkalkulationsreferenzen


Diese Abbildung zeigt die Produktdimensionsstruktur ohne Vorwärtsberechnungsreferenzen.

Jetzt berechnet Essbase:

  • Das Prototyp-Element P100-20, bevor es das gemeinsame Element P100-20 berechnet. Daher hat P100-20 keine Vorwärtsberechnungsreferenz mehr.

  • Das Prototyp-Element P300-20 vor dem gemeinsamen Element P300-20. Daher hat P300-20 keine Vorwärtsberechnungsreferenz mehr.

  • Das Element mit der Formel P300-20 vor dem Element P500-20. Daher hat P500-20 keine Vorwärtsberechnungsreferenz mehr.