Formeln in Aggregate Storage-Modellstrukturen erstellen

Formeln berechnen Beziehungen zwischen Elementen in einer Essbase-Modellstruktur. Aggregate Storage-(ASO-)Formeln unterscheiden sich von Block Storage-Formeln. Sie schreiben Aggregate Storage-(ASO-)Formeln in MDX als numerische Werteausdrücke und wenden sie auf die Cube-Modellstruktur an, wo sie beim Datenabruf dynamisch berechnet werden.

Unterschiede zwischen ASO- und BSO-Formeln

Wenn Sie mit Formeln in Block Storage-(BSO-)Modellstrukturen vertraut sind, beachten Sie die Unterschiede zu Formeln in Aggregate Storage (ASO).

  • Essbase bietet eine native Berechnungssprache zum Schreiben von Formeln in Block Storage-Outlines. Um Formeln für Aggregate Storage-Modellstrukturen zu schreiben, verwenden Sie die Sprache MDX (Multidimensional Expressions).

  • Wenden Sie Formeln direkt auf Elemente in der Modellstruktur an. Bei Block Storage-Cubes können Formeln in einem Berechnungsskript platziert werden. Bei Aggregate Storage-Cubes können Sie keine Formeln in einem Berechnungsskript platzieren.

Formelberechnung für ASO-Cubes

Essbase berechnet Formeln in Aggregate Storage-Modellstrukturen nur, wenn Daten abgerufen werden. Die Berechnungsreihenfolge kann sich auf die Berechnungsergebnisse auswirken. Wenn Sie MDX-Formeln für mehrere Dimensionen in einer Aggregate Storage-Modellstruktur verwenden, empfiehlt es sich, die Lösungsreihenfolge für jedes Element oder jede Dimension festzulegen. Siehe Berechnungsreihenfolge und Lösungsreihenfolge in ASO-Cubes.

Hinweis:

Berücksichtigen Sie beim Entwerfen einer Aggregate Storage-Berechnung, dass Aggregate Storage-Elemente mit MDX-Formeln dynamisch berechnet werden. Die dynamisch berechneten Elemente haben den Wert #MISSING, bis sie abgefragt werden.

MDX-Formeln verwenden

Eine MDX-Formel muss immer ein numerischer MDX-Wertausdruck sein. In MDX ist ein numerischer Wertausdruck eine beliebige Kombination aus Funktionen, Operatoren und Elementnamen, die eine der folgenden Aktionen ausführt:

  • Berechnet einen Wert

  • Tests für eine Bedingung

  • Führt eine mathematische Operation durch

Ein numerischer Wertausdruck unterscheidet sich von einem Satzausdruck. Ein Mengenausdruck wird für Abfrageachsen verwendet und beschreibt Element- und Elementkombinationen. Ein numerischer Wertausdruck gibt einen Wert an.

Ein numerischer Wertausdruck wird in Abfragen verwendet, um berechnete Elemente zu erstellen. Dabei handelt es sich um logische Elemente, die zu Analysezwecken im WITH-Abschnitt der Abfrage erstellt wurden, jedoch nicht im Outline vorhanden sind.

Die folgende Abfrage definiert ein berechnetes Element und verwendet einen numerischen Wertausdruck, um einen Wert dafür bereitzustellen:

WITH MEMBER
 [Measures].[Prod Count]
AS
 'Count (
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )', SOLVE_ORDER=1
SELECT
 {[Geography].children}
ON COLUMNS,
 {
  Crossjoin (
     {[Units]},
     {[Products].children}
    ),
   ([Measures].[Prod Count], [Products])
 }
ON ROWS
FROM
 ASOsamp.Sample

In der Beispielabfrage definiert die WITH-Klausel das berechnete Element "Product Count" in der Measures-Dimension wie folgt:

WITH MEMBER
 [Measures].[Prod Count]

Der numerische Wertausdruck folgt der WITH-Klausel und wird in einfache Anführungszeichen gesetzt. In der Beispielabfrage wird der numerische Wertausdruck wie folgt angegeben:

'Count ( 
    Crossjoin (
     {[Units]},
     {[Products].children}
    )
  )'

Die Eigenschaft SOLVE_ORDER legt die Reihenfolge fest, in der Elemente und Formeln ausgewertet werden. Siehe Berechnungsreihenfolge und Lösungsreihenfolge in ASO-Cubes.

Hinweis:

Eine Erläuterung der Syntaxregeln, mit denen der numerische Wertausdruck in diesem Beispiel erstellt wird, finden Sie in der Dokumentation für die Funktionen Anzahl, CrossJoin und Untergeordnete.

Ein numerischer Wertausdruck kann auch als MDX-Formel verwendet werden, um den Wert eines vorhandenen Outline-Elements zu berechnen.

Anstatt die Beispielabfrage zu erstellen, können Sie daher ein Outline-Element für die Measures-Dimension namens Prod Count erstellen, das in der Modellstruktur auf dieselbe Weise berechnet wird wie die hypothetische Produktanzahl in der Beispielabfrage berechnet wurde.

So erstellen Sie ein berechnetes Element mit einer Formel:

  1. Erstellt ein Element.

  2. Ordnen Sie dem Element eine MDX-Formel zu.

    Wenn Sie das Beispielelement "Produktionsanzahl" erstellt haben, verwenden Sie die folgende Formel, die dem numerischen Wertausdruck entspricht, mit dem das berechnete Element in der Beispielabfrage erstellt wird:

    Count(Crossjoin ( {[Units]}, {[Products].children}))
  3. Prüfen Sie die Formel, indem Sie die Gliederung prüfen.

    Wenn Sie Daten aus dem Aggregate Storage-Cube abrufen, wird die Formel zur Berechnung des Elementwertes verwendet.

    Sie können Substitutionsvariablen in Formeln verwenden. Beispiel: Sie können eine Substitutionsvariable mit dem Namen "EstimatedPercent" definieren und verschiedene Prozentsätze als Substitutionsvariablenwerte angeben. Informationen hierzu finden Sie unter Variablen zum Ändern von Informationen implementieren.

Bevor Sie Formeln auf Elemente in der Gliederung anwenden, können Sie MDX-Abfragen erstellen, die berechnete Elemente enthalten. Wenn Sie eine MDX-Abfrage schreiben können, die die gewünschten berechneten Elementergebnisse zurückgibt, können Sie die Logik des numerischen Wertausdrucks auf ein Outline-Element anwenden und den Ausdruck validieren und testen. Siehe MDX-Abfragen schreiben.