Obliczenia z użyciem wybranych krotek

Wybierając krotki, można skoncentrować swoje obliczenia Essbase w aktywnej tabeli Smart View, ograniczając ich zakres do określonych wycinków danych w kostce stanowiącej wolumin blokowy.

Obliczenia z użyciem krotek opisano w następujących podrozdziałach:

Składnia wywołania @GRIDTUPLES w skrypcie obliczeń jest dostępna pod hasłem FIX…ENDFIX.

Przypadek użycia obliczeń z krotkami

Wybierając krotki, można skoncentrować swoje obliczenia Essbase w aktywnej tabeli Smart View, ograniczając ich zakres do określonych wycinków danych w kostce stanowiącej wolumin blokowy.

Poprzez wybór krotek można zoptymalizować asymetryczne obliczenia w tabeli obejmujące różne wymiary, unikając w ten sposób nadmiernych wyników.

Krotki używane w obliczeniach w Essbase różnią się od krotek używanych w zapytaniach MDX. Wydajność obliczeń i rozmiar kostki zależą głównie od liczby bloków w kostce (zakładając określony rozmiar bloku). Z tego powodu krotki dla obliczeń są określane tylko dla kombinacji elementów rzadkich. Ponadto, w celu ułatwienia tworzenia skryptów obliczeń, w specyfikacji krotki dla obliczeń można zawrzeć wiele elementów z jednego wymiaru rzadkiego. Na przykład, jeśli jako krotka dla obliczeń zostanie użyta krotka ("New York", "California", "Actual", "Cola"), to można obliczyć następujące części wspólne komórek:

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

Rozważmy pokazaną poniżej tabelę symetryczną. Jest ona symetryczna, ponieważ w tabeli są dla każdego produktu zawarte te same rynki i ten sam scenariusz (Actual).

Tabela symetryczna z wartościami "Actual" (Faktyczne) i "Jan" (styczeń) dla produktu Cola oraz tymi samymi pięcioma rynkami dla produktu Diet Cola

Poniższa tabela jest asymetryczna, ponieważ produkt Diet Cola ma w tabeli mniej rynków niż produkt Cola.

Tabela asymetryczna z wartościami "Actual" (Faktyczne) i "Jan" (styczeń) z pięcioma rynkami dla produktu Cola, lecz tylko z dwoma rynkami dla produktu Diet Cola

Domyślnym zakresem obliczeń, gdy w instrukcji FIX lub w punkcie widzenia (POV) tabeli Smart View występuje więcej niż jeden wymiar, jest obliczanie iloczynu wektorowego (wszystkich możliwych kombinacji) elementów z instrukcji FIX lub tabeli. Inaczej mówiąc, obliczenie sterowane punktem widzenia, w którym kombinacje produktów i rynków pochodzą z tabeli, oblicza wszystkie następujące kombinacje "wiersz-element":

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"

To może być działanie przekraczające oczekiwane. Chcąc obliczyć tylko kombinacje pokazane w tabeli, można określić, które krotki mają być używane w obliczeniu, oraz ograniczyć obliczenie do mniejszego wycinka. Obliczenia z użyciem krotek mogą się także przyczynić do skrócenia czasu obliczania oraz zmniejszenia rozmiaru kostki.

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

Obliczenia oparte na krotkach — omówienie

Krotka obliczeniowa to sposób reprezentowania wycinka danych z elementów z dwóch lub większej liczby wymiarów rzadkich, który ma być używany w obliczeniach Essbase w woluminie blokowym.

Przykłady poprawnych krotek obliczeniowych

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

Pisząc wyrażenia MDX, należy pamiętać o następujących ograniczeniach dla krotek:

  • W krotce MDX może zostać zawarty tylko jeden element z każdego z wymiarów
  • Wszystkie krotki w zbiorze MDX muszą reprezentować te same wymiary, w tej samej kolejności

Jeśli jednak krotki są wybierane w skryptach obliczeń, wymagania te ulegają złagodzeniu. Można swobodnie pisać wyrażenia oparte na krotkach, przy czym krotki mogą opisywać listy elementów, jak ma to miejsce w następującej krotce: (@Children(East), Cola).

Wybór krotek dla obliczeń związanych z punktem widzenia (POV)

Łatwym sposobem wyboru krotek jest wstawienie ich jawnie w skrypcie obliczeń, w postaci listy w obrębie instrukcji FIX.

Format instrukcji FIX ma następującą postać:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

W poniższej instrukcji FIX są podane, przed blokiem poleceń, dwie krotki. Krotki są ujęte w nawiasy klamrowe { } ograniczające zbiór, będący kolekcją krotek.

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

Innym sposobem wyboru krotek jest wybór kontekstowy, oparty na elementach występujących w punkcie widzenia (POV) tabeli Smart View w chwili tworzenia obliczenia. Wyboru tego dokonuje się, używając — w skrypcie obliczeń — funkcji @GRIDTUPLES jako argumentu instrukcji FIX.

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

Jeśli ten skrypt obliczeń zostanie uruchomiony z aplikacji Smart View w odniesieniu do podanej poniżej tabeli, to będą obliczane tylko wyświetlane kombinacje produktów i rynków. Na przykład kombinacja "Diet Cola"->Massachusetts nie zostanie obliczona, ponieważ nie jest pokazywana w tabeli. Należy pamiętać, że obliczane są wszystkie scenariusze (trzeci wymiar rzadki w tej przykładowej kostce), mimo że w tabeli jest pokazywany tylko scenariusz "Actual". Wynika to z tego, że wymiar "Scenariusz" (Scenario) nie jest częścią instrukcji GRIDTUPLES w skrypcie obliczeń.

Tabela asymetryczna z wartościami "Actual" (Faktyczne) i "Jan" (styczeń) z pięcioma rynkami dla produktu Cola, lecz tylko z dwoma rynkami dla produktu Diet Cola

Wybór krotek — bez względu na to, czy jest dokonywany za pomocą jawnej listy krotek czy przy użyciu funkcji @GRIDTUPLES — ma zastosowanie tylko w kontekście obliczeniowego polecenia FIX…ENDFIX. Składnia instrukcji FIX została rozszerzona, tak aby był możliwy wybór krotek:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList — lista krotek rozdzielonych przecinkiem.
  • dimensionList — przynajmniej dwa wymiary rzadkie, których elementy z aktywnej tabeli Smart View są używane do definiowania obszarów obliczeń. (W skryptach obliczeń można do definiowania krotek używać tylko wymiarów rzadkich.)
  • fixMbrs — element lub lista elementów.

Przykłady wyboru krotek ograniczających zakres obliczeń

Używając tabeli Smart View i instrukcji FIX w skrypcie obliczeń Essbase, można obliczać wybrane krotki elementów zgodnie z punktem widzenia (POV) tabeli. Alternatywnie można — w celu zdefiniowania zakresu obliczeń — wpisać kombinacje krotek bezpośrednio w instrukcji FIX, usuwając w ten sposób zależność od tabeli Smart View.

Obliczając wybrane krotki, można skutecznie pracować z asymetrycznymi obszarami zarówno w skryptach obliczeń, jak i w tabelach Smart View.

Rozważmy następujące przykłady:

  • Bez wyboru krotek — Obliczenia są wykonywane w sposób domyślny, na podstawie bieżącego punktu widzenia (POV) tabeli Smart View. Obliczenia nie są ograniczone do żadnych określonych krotek.
  • Wybór nazwanych wymiarów rzadkich — Są obliczane krotki z dwóch lub większej liczby wymiarów rzadkich, nazwanych w skrypcie obliczeń. Obliczenia są ograniczane do elementów z wymiarów krotek, występujących w tabeli Smart View.
  • Wybór kontekstowych wymiarów rzadkich — Są obliczane krotki z wymiarów rzadkich, wybranych w trybie wykonawczym. Obliczenia są ograniczane do elementów z wymiarów krotek, występujących w tabeli Smart View.

Aby wypróbować te przykłady, należy pobrać szablon skoroszytu CalcTuple_Tuple.xlsx z sekcji Techniczne > Obliczenia folderu galerii, który znajduje się w obszarze Pliki w internetowym interfejsie Essbase. Odpowiednie instrukcje są zawarte w arkuszu README skoroszytu.

Bez wyboru krotek

Poniższy skrypt obliczeń, który stanowi przykład pokazujący domyślne działanie obliczeń woluminu blokowego Essbase, gdy nie zostaną wybrane żadne krotki, oblicza cały iloczyn wektorowy elementów wymiarów "Product" i "Market" z tabeli narzędzia Smart View.

Wskutek użycia dwóch zmiennych substytucyjnych trybu wykonawczego (RTSV), zdefiniowanych w bloku SET RUNTIMESUBVARS, obliczenia są ograniczone do punktów widzenia (POV) wymiarów "Product" i "Market" istniejących w tabeli, w chwili uruchamiania obliczeń ze Smart View.

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

Wybór nazwanych wymiarów rzadkich

Ten skrypt obliczeń woluminu blokowego Essbase, w którym w celu wybrania krotki wymiarów "Product" i "Market" jest używana funkcja @GRIDTUPLES, oblicza krotki tylko dla tych dwóch wymiarów, ograniczając zakres do tych elementów, które znajdują się w tabeli narzędzia Smart View w chwili uruchomienia obliczania za pomocą narzędzia Smart View.

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

Obliczenia, odnosząc się tylko do tych wymiarów rzadkich, które zostały podane w krotce, obejmuje liczbę bloków znacznie mniejszą niż w przypadku obliczeń domyślnych. Jednakże ten skrypt obliczeń oblicza wszystkie elementy z wymiarów nie podanych w instrukcji FIX, tj. wymiarów "Year" i "Scenario".

Wybór kontekstowych wymiarów rzadkich

Dzięki użyciu funkcji @GRIDTUPLES oraz zmiennej substytucyjnej trybu wykonawczego ten skrypt obliczeń woluminu blokowego Essbase oblicza wyłącznie wybrane krotki z tabeli, bazując na wyborze wymiarów rzadkich dokonanym w filtrze monitującym zmiennej RTSV.

Zmienna substytucyjna &DimSelections trybu wykonawczego, zdefiniowana w bloku SET RUNTIMESUBVARS, ogranicza zakres obliczeń do wymiarów rzadkich kostki, z pominięciem wymiaru "Scenario". Użyta w instrukcji FIX funkcja @GRIDTUPLES wywołuje zmienną, ograniczając liczbę obliczanych części wspólnych (przecięć).

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
        

Obliczenie obejmuje liczbę bloków mniejszą niż w poprzednim przykładzie, ponieważ w tym przypadku definicja krotki rozciąga się na więcej wymiarów rzadkich, wykraczających poza Product->Market.

Aby wypróbować te przykłady, należy pobrać szablon skoroszytu CalcTuple_Tuple.xlsx z sekcji "Techniczne > Obliczenia" folderu galerii, który znajduje się w obszarze Pliki w internetowym interfejsie Essbase. Odpowiednie instrukcje są zawarte w arkuszu README skoroszytu.