Trasovanie výpočtov

Trasovanie výpočtov Essbase použite na získanie prehľadu o spracovaní vzorcov členov, ktorý vám pomôže pri ladení a spresňovaní skriptov výpočtov ukladacieho priestoru blokov. Parameter CALCTRACE použite na trasovanie výpočtov s použitím rozlíšenia kontextu v aplikácii Smart View, alebo použite príkaz SET TRACE na výber prienikov dát, ktoré sa majú trasovať.

Trasovanie výpočtov umožňuje prístup k zaprotokolovaným informáciám o výpočte po tom, ako sa úspešne vykoná skript výpočtu pre kocku.

Trasovanie výpočtu nezmení nič na správaní výpočtu. Ak sa výpočet spustí v aplikácii Smart View a administrátor aktivoval trasovanie výpočtov na pripojenom serveri, aplikácia Smart View po vykonaní výpočtu zobrazí rozbaľovacie dialógové okno s detailmi. Informácie o trasovaní výpočtu možno prilepiť z rozbaľovacieho dialógového okna do textového editora. Rovnaké informácie prípadne nájdete aj v súbore calc_trace.txt, ktorý sa nachádza v adresári s databázovými súbormi v službe Essbase.

Informácie o trasovaní výpočtu môžu pomôcť ladiť vykonávanie skriptu výpočtu v prípade, že výsledky výpočtu nezodpovedajú očakávaniam.

Trasovanie výpočtov nie je podporované v aplikáciách s aktivovanou správou scenárov.

Na aktiváciu trasovania výpočtu musí administrátor najprv zapnúť parameter konfigurácie aplikácie CALCTRACE. Po aktivovaní trasovania výpočtov pre danú aplikáciu sú k dispozícii dva spôsoby jeho využitia:

  • V aplikácii Smart View môžete použiť trasovanie citlivé na kontext pre jednu hodnotu bunky.
    1. V aplikácii Smart View pripojte hárok dopytu k aplikácii, pre ktorú ste aktivovali trasovanie výpočtu.
    2. Zvýraznite bunku s dátami, ktorej vypočítanú hodnotu chcete trasovať.
    3. Na paneli Dáta na karte Essbase kliknite na tlačidlo Vypočítať a vyberte skript výpočtu, ktorý sa má vykonať. Vo výzvach pre členy trasovania počas runtime sa bude zobrazovať uhol pohľadu zo zvýraznenej bunky s dátami.
    4. Kliknite na tlačidlo Spustiť na vykonanie skriptu výpočtu.

      Vypočíta sa celý rozsah výpočtu uvedený v skripte, ale počas výpočtu sa bude trasovať iba kontext zvýraznenej bunky s dátami.

    5. Na konci skriptu výpočtu si pozrite dialógové okno Výsledok výpočtu, v ktorom sú zobrazené výsledky pred výpočtom a po výpočte pre zvýraznenú bunku s dátami.

      Ak zvýraznená bunka s dátami nebola počas výpočtu modifikovaná, zobrazí sa hlásenie s informáciou, že bunka nebola modifikovaná.

  • V skriptoch výpočtov môžete na výber trasovaných prienikov dát použiť príkaz výpočtu SET TRACE. Príkaz SET TRACE umožňuje trasovať viaceré bunky s dátami. Okrem toho môžete trasovať sekcie skriptov výpočtov použitím kombinácie príkazov SET TRACE mbrList (na zapnutie trasovania výpočtu v zozname členov) a SET TRACE OFF (na vypnutie trasovania výpočtu, kým sa v skripte nevyskytne nový príkaz SET TRACE). Ak chcete použiť príkaz SET TRACE, je potrebné spustiť skript výpočtu mimo aplikácie Smart View pomocou návrhára kociek, príkazu rozhrania príkazového riadka calc, úlohy Spustenie výpočtu vo webovom rozhraní Essbase alebo príkazu MaxL (príkaz vykonávanie výpočtov).

Tento skript výpočtu sa spustí na základnej vzorovej kocke. Skript zahŕňa príkaz SET TRACE požadujúci zaprotokolovanie detailných informácií pre prienik dát (bunku), ktorý predstavuje rozpočtovaný januárový predaj na kalifornskom trhu pre číslo SKU produktu 100-10.

SET TRACEID "id042"
SET TRACE ("100-10", "California", "Jan", "Sales", "Budget");
FIX("California", "Budget")
   "Sales" (
      "100-10" = @MEMBER(@CONCATENATE(@NAME(@PARENT("Product")), "-20")) / 10;
   );
ENDFIX;

Poznámka:

Odporúča sa tiež použiť príkaz SET TRACEID na zabránenie prepísaniu súboru trasovania výpočtov.

Základná vzorka má dve riedke dimenzie: produkt a trh. Vzorec člena je pre Predaj, čo je člen mier, ktorý je hustou dimenziou. Zoznam členov príkazu FIX obsahuje len jeden riedky člen Kalifornia, ktorý patrí do dimenzie Trh.

Počet existujúcich blokov v rozsahu FIX určuje, koľkokrát sa vypočíta trasovaná bunka. V tomto príklade výpočet prebehne cez všetky existujúce kombinácie s riedkym členom Kalifornia. Každá z týchto kombinácií predstavuje blok.

Po dokončení výpočtu sa zaprotokolujú a zobrazia v umiestnení calc_trace_id042.txt tieto informácie o trasovaní:

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 1)
Previous value: 840.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00

Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 2)
Block from FIX scope: [100-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [100-20][California][Jan][Sales][Budget] = 140.00
New value: [100-10][California][Jan][Sales][Budget] = 14.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 3)
Block from FIX scope: [200-10][California]
Actual block used in calculation: [100-10][California]
Previous value: 14.00
Dependent values: 
        [200-20][California][Jan][Sales][Budget] = 520.00
New value: [100-10][California][Jan][Sales][Budget] = 52.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

[...calc iterations 4-7 are omitted from example...]

Tracing cell: [100-10][California][Jan][Sales][Budget]  (Cell update count: 8)
Block from FIX scope: [400-30][California]
Actual block used in calculation: [100-10][California]
Previous value: 9.00
Dependent values: 
        [400-20][California][Jan][Sales][Budget] = 90.00
New value: [100-10][California][Jan][Sales][Budget] = 9.00
Computed in lines: [91 - 93] using:
"Sales"(
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10;
)

Protokol trasovania výpočtu poskytuje tieto informácie o tom, ako prebehol výpočet v bunke, ktorá sa trasovala:

  • Trasovaná bunka bola vypočítaná niekoľkokrát a hodnota bunky bola vždy prepísaná novou hodnotou (hlásený počet aktualizácií bunky sa zastaví na čísle 8).

  • Hodnota bunky pred výpočtom bola 840,00.

  • Pre každý výskyt výpočtu sa zobrazia závislé hodnoty a nové hodnoty. Závislé hodnoty pochádzajú zo vzorca člena v príkaze FIX.

  • Konečná hodnota trasovanej bunky po dokončení celého výpočtu je 9, ale predstavuje hodnotu násobku "400-20"->California vydelenú číslom 10.

  • Riadky 91 - 93 skriptu výpočtu, ktoré obsahujú vzorec člena pre Predaj, sú zodpovedné za aktualizované hodnoty.

Pre každý z prejdených blokov sa vypočíta Predaj pomocou vzorca:

"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10

Vzorec obsahuje na ľavej strane riedky člen, čo môže mať za následok, že skutočný vypočítaný blok bude odlišný od pôvodného bloku FIX. Napríklad keď výpočet prechádza cez položky „Kalifornia“ -> „100-20“, výpočty sa v skutočnosti robia v položke „Kalifornia“ -> „100-10“.

Položky protokolu trasovania s názvom Block from FIX scope a Actual block used in calculation sa vytlačia len v prípade nesúladu medzi blokmi v príkaze FIX a blokom zastúpeným vo vzorci člena. Tieto položky protokolu môžu poskytnúť informácie o tom, prečo existujú duplicitné výpočty, a tým pomáhajú ladiť skripty výpočtov.