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.
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.
Das folgende Raster ist asymmetrisch, weil das Produkt "Diet Cola" weniger Märkte im Raster hat als das Produkt "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"
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:
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)
.
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.
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
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:
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.
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
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.
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.