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:
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.
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á.
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.