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.