Ausgewählte Tupel berechnen

Indem Sie Tupel auswählen, können Sie Ihre Essbase-Berechnungen im aktiven Smart View-Raster auf bestimmte Datensegmente im Block Storage Cube eingrenzen.

In den folgenden Abschnitten wird die Tupelberechnung beschrieben:

Die Syntax für die Verwendung von @GRIDTUPLES in einem Berechnungsskript finden Sie unter FIX…ENDFIX.

Anwendungsfall für die Tupelberechnung

Indem Sie Tupel auswählen, können Sie Ihre Essbase-Berechnungen im aktiven Smart View-Raster auf bestimmte Datensegmente im Block Storage Cube eingrenzen.

Mit der Tupelauswahl können Sie asymmetrische Rasterberechnungen über Dimensionen hinweg optimieren und so unnötige Berechnungen vermeiden.

Essbase-Berechnungstupel unterscheiden sich von Tupeln in MDX-Abfragen. Die Berechnungsperformance und die Cube-Größe hängen größtenteils von der Anzahl der Blöcke im Cube ab (bei einer bestimmen Blockgröße). Aus diesem Grund werden Berechnungstupel nur für dünn besetzte Elementkombinationen angegeben. Darüber hinaus können zur einfacheren Skripterstellung für Berechnungen mehrere Elemente aus einer einzelnen Sparse-Dimension in die Spezifikation für ein Berechnungstupel aufgenommen werden. Beispiel: Wenn Sie ("New York", "California", "Actual", "Cola") als Berechnungstupel angeben, berechnen Sie die folgenden Zellenschnittmengen:

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

Sehen Sie sich das folgende symmetrische Raster an. Es ist symmetrisch, weil für jedes Produkt dieselben Märkte und dasselbe Szenario (Actual) im Raster dargestellt wird.

Symmetrisches Raster mit Istwerten ("Actual") für Januar für fünf Märkte für Cola und dieselben fünf Märkte für Diet Cola

Das folgende Raster ist asymmetrisch, weil das Produkt "Diet Cola" weniger Märkte im Raster hat als das Produkt "Cola".

Asymmetrisches Raster mit Istwerten ("Actual") für Januar für fünf Märkte für Cola, aber nur zwei Märkte für Diet Cola

Wenn eine FIX-Anweisung oder der Point of View (POV) eines Smart View-Rasters mehrere Dimensionen enthält, wird standardmäßig das Kreuzprodukt (alle möglichen Kombinationen) der Elemente in der FIX-Anweisung oder im Raster berechnet. Anders ausgedrückt: Eine POV-gesteuerte Berechnung, bei der Kombinationen aus Produkt und Markt aus dem Raster übernommen werden, berechnet alle der folgenden Zeilen-Element-Kombinationen:

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

Dabei könnten mehr Daten berechnet werden als eigentlich nötig. Wenn Sie nur die im Raster angezeigten Kombinationen berechnen möchten, können Sie die zu berechnenden Tupel angeben und die Berechnung auf ein kleineres Segment begrenzen. Mit Berechnungstupeln können Sie auch die Berechnungszeit und die Cube-Größe reduzieren.

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

Tupelbasierte Berechnung

Ein Tupel für Berechnungen ist eine Möglichkeit, ein Datensegment von Elementen aus zwei oder mehr Sparse-Dimensionen darzustellen, das in einer Essbase-Block-Storage-Berechnung verwendet werden soll.

Beispiele für gültige Berechnungstupel:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

Wenn Sie MDX-Ausdrücke schreiben, kennen Sie möglicherweise diese Tupeleinschränkungen für MDX:

  • Aus jeder Dimension kann nur ein Element in ein MDX-Tupel aufgenommen werden.
  • Alle Tupel in einem MDX-Set müssen dieselben Dimensionen in derselben Reihenfolge darstellen.

Bei der Auswahl von Tupeln in Berechnungsskripten werden diese Anforderungen allerdings aus Gründen der Einfachheit gelockert. Sie können Tupelausdrücke frei schreiben, und die Tupel können Elementlisten beschreiben (wie das folgende Tupel): (@Children(East), Cola).

Tupel für Point-of-View-Berechnung auswählen

Eine einfache Auswahlmöglichkeit für Tupel besteht darin, diese explizit als Liste in der FIX-Anweisung in ein Berechnungsskript aufzunehmen.

Denken Sie daran, dass das Format einer FIX-Anweisung wie folgt aussieht:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

In der unten stehenden FIX-Anweisung sind zwei Tupel vor Beginn des Befehlsblocks angegeben. Die Tupel sind in die geschweiften Klammern { } eingeschlossen, die ein Set (eine Sammlung von Tupeln) abgrenzen.

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

Sie können Tupel auch kontextbezogen auswählen, basierend auf den vorhandenen Elementen in einem POV des Smart View-Rasters zur Ausführungszeit der Berechnung. Dazu geben Sie die @GRIDTUPLES-Funktion als Argument für die FIX-Anweisung im Berechnungsskript an.

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

Wenn Sie dieses Berechnungsskript aus Smart View für das unten stehende Raster ausführen, werden nur die angezeigten Kombinationen aus Produkten und Märkten berechnet. Beispiel: "Diet Cola"->Massachusetts wird nicht berechnet, da dies nicht explizit im Raster angezeigt wird. Beachten Sie, dass alle Szenarios (die dritte Sparse-Dimension in diesem Beispiel-Cube) berechnet werden, obwohl nur "Actual" im Raster angezeigt wird. Grund dafür ist, dass die Scenario-Dimension nicht Teil der GRIDTUPLES-Anweisung im Berechnungsskript ist.

Asymmetrisches Raster mit Istwerten ("Actual") für Januar für fünf Märkte für Cola, aber nur zwei Märkte für Diet Cola

Die Tupelauswahl, ob anhand von expliziten Tupellisten oder unter Verwendung der @GRIDTUPLES-Funktion, gilt nur im Kontext des FIX…ENDFIX-Berechnungsbefehls. Die Syntax der FIX-Anweisung wird erweitert, um die Tupelauswahl zu ermöglichen:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - Durch Komma getrenntes Set aus Tupeln.
  • dimensionList - Mindestens zwei Sparse-Dimensionen, deren Elemente aus dem aktiven Smart View-Raster verwendet werden, um die Berechnungsregionen zu definieren. (In Berechnungsskripten können Sie nur Sparse-Dimensionen zum Definieren von Tupeln verwenden.)
  • fixMbrs - Ein Element oder eine Liste mit Elementen.

Beispiele für Tupelauswahl zur Reduzierung des Berechnungsumfangs

Mit einem Smart View-Raster und einer Essbase-Berechnungsskript-FIX-Anweisung können Sie ausgewählte Elementtupel basierend auf dem Point of View (POV) des Rasters berechnen. Alternativ dazu können Sie die Tupelkombinationen in der FIX-Anweisung explizit eingeben und die Abhängigkeit von einem bestimmten Smart View-Raster zum Definieren des Berechnungsumfangs entfernen.

Durch die Berechnung ausgewählter Tupel können Sie effizient mit asymmetrischen Regionen in Berechnungsskripten und Smart View-Rastern arbeiten.

Beachten Sie folgende Beispiele:

  • Keine Tupelauswahl - Führt die Standardberechnung aus, basierend auf dem aktuellen Point of View (POV) des Smart View-Rasters. Die Berechnung ist nicht auf bestimmte Tupel begrenzt.
  • Auswahl benannter Sparse-Dimensionen - Berechnet Tupel aus zwei oder mehr Sparse-Dimensionen, die in einem Berechnungsskript benannt sind. Die Berechnung ist auf Elemente aus den Tupeldimensionen begrenzt, die im Smart View-Raster vorhanden sind.
  • Auswahl von Contextual-Sparse-Dimensionen - Berechnet Tupel aus Sparse-Dimensionen, die zur Laufzeit ausgewählt werden. Die Berechnung ist auf Elemente aus den Tupeldimensionen begrenzt, die im Smart View-Raster vorhanden sind.

Um die Beispiele auszuprobieren, laden Sie die Arbeitsmappenvorlage CalcTuple_Tuple.xlsx aus dem Abschnitt Technical >Calc des Ordners Galerie in den Bereich Dateien der Essbase-Weboberfläche herunter. Anweisungen finden Sie im Arbeitsblatt "README" in der Arbeitsmappe.

Keine Tupelauswahl

Das folgende Berechnungsskript demonstriert das standardmäßige Berechnungsverhalten von Essbase-Block Storage Cubes, wenn Sie keine Tupel auswählen. Dabei wird das gesamte Kreuzprodukt der Elemente der Product- und der Market-Dimension aus einem Smart View-Raster berechnet.

Mit zwei Laufzeitsubstitutionsvariablen (RTSV), die im Block SET RUNTIMESUBVARS definiert sind, wird die Berechnung auf die Points of View von "Product" und "Market" begrenzt, die zum Zeitpunkt der Berechnung aus Smart View im Raster vorhanden sind.

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

Auswahl benannter Sparse-Dimensionen

Mit der @GRIDTUPLES-Funktion zur Auswahl des Tupels der Product- und der Market-Dimension berechnet dieses Essbase-Block-Storage-Berechnungsskript nur Tupel für diese beiden Dimensionen. Dadurch wird der Umfang auf die vorhandenen Elemente in einem Smart View-Raster zum Ausführungszeitpunkt der Berechnung aus Smart View begrenzt.

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

Indem Sie nur die im Tupel benannten Sparse-Dimensionen in die FIX-Anweisung aufnehmen, verarbeitet die Berechnung sehr viel weniger Blöcke als eine Standardberechnung. Es werden allerdings alle Elemente aus Dimensionen, die nicht in der FIX-Anweisung genannt werden (Year, Scenario) von diesem Berechnungsskript berechnet.

Auswahl von Contextual-Sparse-Dimensionen

Mit der @GRIDTUPLES-Funktion und einer Laufzeitsubstitutionsvariable berechnet dieses Essbase-Block-Storage-Berechnungsskript nur ausgewählte Tupel aus dem Raster basierend auf den ausgewählten Sparse-Dimensionen im RTSV-Prompt.

Die Laufzeitsubstitutionsvariable &DimSelections, die im Block SET RUNTIMESUBVARS definiert ist, begrenzt den Berechnungsumfang auf nur die Sparse-Dimensionen des Cubes, mit Ausnahme des Szenarios. Die in der FIX-Anweisung verwendete @GRIDTUPLES-Funktion ruft diese Variable auf und begrenzt, wie viele Schnittmengen berechnet werden.

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

Die Berechnung umfasst noch weniger Blöcke als im vorherigen Beispiel, da die Tupeldefinition in diesem Fall sich auf mehr Sparse-Dimensionen außer "Product"->"Market" erstreckt.

Um die Beispiele auszuprobieren, laden Sie die Arbeitsmappenvorlage CalcTuple_Tuple.xlsx aus dem Abschnitt "Technisch" > "Berechnung" des Ordners Galerie in den Bereich Dateien der Essbase-Weboberfläche herunter. Anweisungen finden Sie im Arbeitsblatt "README" in der Arbeitsmappe.