Výberom n-tíc môžete spresniť výpočty Essbase v aktívnej mriežke aplikácie Smart View a obmedziť ich rozsah na konkrétne výseky dát v kocke ukladacieho priestoru blokov.
Nasledujúce sekcie opisujú výpočet n-tíc:
Informácie o syntaxi pri používaní príkazu @GRIDTUPLES v skripte výpočtu nájdete v časti FIX…ENDFIX.
Výberom n-tíc môžete spresniť výpočty Essbase v aktívnej mriežke aplikácie Smart View a obmedziť ich rozsah na konkrétne výseky dát v kocke ukladacieho priestoru blokov.
Výber n-tíc vám pomáha optimalizovať výpočty v asymetrickej mriežke naprieč dimenziami a vyhnúť sa tak nadmerným výpočtom.
N-tice výpočtov Essbase sa líšia od n-tíc používaných v dopytoch MDX. Výkon výpočtu a veľkosť kocky sú určené najmä počtom blokov v kocke (pri danej veľkosti bloku). N-tice výpočtov sa preto zadávajú len pre kombinácie riedkych členov. Na uľahčenie skriptovania výpočtu je okrem toho možné zahrnúť do špecifikácie n-tice výpočtov viacero členov z jednej riedkej dimenzie. Ak napríklad zadáte hodnotu ("New York", "California", "Actual", "Cola") ako n-ticu výpočtu, vypočítate nasledujúce prieniky buniek:
"New York"->"Actual"->"Cola" "California"->"Actual"->"Cola"
Predstavte si nasledujúcu symetrickú mriežku. Je symetrická, pretože každý produkt má v mriežke zadané rovnaké trhy a rovnaký scenár (Actual).
Nasledujúca mriežka je asymetrická, pretože produkt Diet Cola má v mriežke menej trhov než produkt Cola.
Predvolený rozsah výpočtu v prípade, že príkaz FIX alebo uhol pohľadu mriežky aplikácie Smart View obsahuje viac ako jednu dimenziu, je výpočet krížového produktu (všetkých možných kombinácií) členov v príkaze FIX alebo v mriežke. Inak povedané, výpočet na základe uhla pohľadu, v ktorom kombinácie produktu a trhu vychádzajú z mriežky, vypočítava všetky nasledujúce kombinácie riadka a člena:
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"
Výsledkom môže byť rozsiahlejšia výpočtová aktivita, než akú potrebujete. Ak chcete vypočítať len kombinácie zobrazené v mriežke, môžete zadať, ktoré n-tice sa majú vypočítať, a obmedziť výpočet na menší výsek. Výpočet n-tíc tiež môže zredukovať trvanie výpočtu a veľkosť kocky.
Cola->"New York" Cola->"Massachusetts" Cola->"Florida" Cola->"Connecticut" Cola->"New Hampshire" "Diet Cola"->"New York" "Diet Cola"->"Florida"
N-tica výpočtu predstavuje spôsob prezentovania výseku dát členov z dvoch alebo viacerých riedkych dimenzií, ktoré sa majú použiť vo výpočte ukladacieho priestoru blokov Essbase.
Príklady platných n-tíc výpočtov:
("Diet Cola", "New York")
("Diet Cola", "Cola", Florida)
(Cola, "New Hampshire")
Ak vytvárate výrazy MDX, nezabúdajte na tieto obmedzenia n-tíc, ktoré sa vzťahujú na formát MDX:
Pri výbere n-tíc v skriptoch výpočtu sú však tieto požiadavky pre uľahčenie zmiernené. Výrazy s n-ticami môžete vytvárať bez obmedzení a n-tice môžu popisovať zoznamy členov, ako je to aj v prípade tejto n-tice: (@Children(East), Cola)
.
Jednoduchým spôsobom výberu n-tíc je ich explicitné vloženie do skriptu výpočtu ako zoznamu vnútri príkazu FIX.
Spomeňte si, že formát príkazu FIX je takýto:
FIX (fixMbrs) COMMANDS ; ENDFIX
V príkaze FIX uvedenom nižšie sú dve n-tice zadané pred začiatkom bloku príkazu. N-tice sa nachádzajú v zložených zátvorkách { } oddeľujúcich množinu, ktorá je kolekciou n-tíc.
FIX({ (@Children(East), Cola), ("New York", Florida, "Diet Cola") }) Sales (Sales = Sales + 10;); ENDFIX
Ďalším spôsobom výberu n-tíc je kontextovo na základe členov, ktoré sa nachádzajú v uhle pohľadu mriežky aplikácie Smart View v čase spustenia výpočtu. Robí sa to tak, že do príkazu FIX v skripte výpočtu sa ako argument uvedie funkcia @GRIDTUPLES.
FIX ({@GRIDTUPLES(Product, Market)}) Sales (Sales = Sales + 10;); ENDFIX
Ak vykonáte tento skript výpočtu z aplikácie Smart View na mriežke uvedenej nižšie, vypočítajú sa iba zobrazené kombinácie produktov a trhov. Napríklad kombinácia „Diet Cola“->Massachusetts sa nevypočíta, pretože nie je explicitne zobrazená v mriežke. Všimnite si, že sa vypočítajú všetky scenáre (tretia riedka dimenzia v tejto vzorovej kocke), hoci v mriežke sa zobrazí iba položka Actual (Skutočnosť). To je preto, lebo dimenzia Scenár nie je súčasťou príkazu GRIDTUPLES v skripte výpočtu.
Výber n-tíc, či už vykonaný pomocou explicitných zoznamov n-tíc, alebo s použitím funkcie @GRIDTUPLES, možno použiť iba v kontexte príkazu výpočtu FIX…ENDFIX. Syntax príkazu FIX sa rozšíri tak, aby umožňovala výber n-tíc:
FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs) COMMANDS ; ENDFIX
Používanie mriežky aplikácie Smart View a príkazu FIX v skripte výpočtu Essbase vám umožňuje vypočítať vybrané n-tice členov na základe uhla pohľadu mriežky. Alebo môžete explicitne zadať kombinácie n-tice v príkaze FIX a pri definovaní rozsahu výpočtu odstrániť závislosť na konkrétnej mriežke aplikácie Smart View.
Výpočet vybraných n-tíc umožňuje efektívne pracovať s asymetrickými oblasťami v oboch skriptoch výpočtov a mriežkach aplikácie Smart View.
Pozrite si nasledujúce príklady:
Na vyskúšanie týchto príkladov si stiahnite šablónu zošita CalcTuple_Tuple.xlsx
zo sekcie Technical > Calc
v priečinku Galéria v oblasti Súbory vo webovom rozhraní Essbase. Pokyny nájdete v zošite v hárku README.
Ako ukážku predvoleného správania výpočtu ukladacieho priestoru blokov Essbase v prípade, že nevyberiete n-tice, nasledujúci skript výpočtu vypočíta celý krížový súčin členov dimenzií Produkt a Trh z mriežky aplikácie Smart View.
Pomocou dvoch substitučných premenných runtime (RTSV) definovaných v bloku SET RUNTIMESUBVARS sa výpočet obmedzí na tie uhly pohľadu dimenzií Produkt a Trh, ktoré sú prítomné v mriežke, keď sa spustí výpočet z aplikácie 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
Pomocou funkcie @GRIDTUPLES na výber n-tice dimenzií Produkt a Trh tento skript výpočtu ukladacieho priestoru blokov Essbase vypočíta n-tice len pre tieto dve dimenzie, pričom rozsah sa obmedzí len na členy prítomné v mriežke Smart View v čase vykonania výpočtu v aplikácii Smart View.
FIX ( {@GRIDTUPLES(Product, Market)} ) Marketing( Marketing = Marketing + 1; ); ENDFIX
Tým, že sa do výpočtu zahrnú len riedke dimenzie uvedené v n-tici, bude výpočet obsahovať omnoho menší počet blokov ako predvolený výpočet. Tento skript výpočtu však vypočíta všetky členy z dimenzií, ktoré nie sú uvedené v zahrnutí (Rok, Scenár).
Pomocou funkcie @GRIDTUPLES a substitučnej premennej runtime tento skript výpočtu ukladacieho priestoru blokov Essbase vypočíta len vybrané n-tice z mriežky na základe výberov riedkych dimenzií vo výzve RTSV.
Substitučná premenná runtime &DimSelections, ktorá je definovaná v bloku SET RUNTIMESUBVARS, obmedzí rozsah výpočtu len na riedke dimenzie kocky a nezahŕňa scenár. Funkcia @GRIDTUPLES v príkaze FIX volá túto premennú a obmedzí počet vypočítaných prienikov.
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
Tento výpočet zahŕňa ešte menší počet blokov ako predchádzajúci príklad, pretože v tomto prípade definovaná n-tica pokrýva viac riedkych dimenzií, ktoré presahujú dimenzie Produkt->Trh.
Na vyskúšanie týchto príkladov si stiahnite šablónu zošita CalcTuple_Tuple.xlsx
zo sekcie Technical > Calc v priečinku Galéria v oblasti Súbory vo webovom rozhraní Essbase. Pokyny nájdete v zošite v hárku README.