Pomocí trasování výpočtů v systému Essbase získáte přehled o zpracování vzorců prvků, což vám pomůže ladit a upřesňovat výpočetní skripty blokového úložiště. Povolte použití funkce CALCTRACE pro kontextově závislé trasování výpočtů v modulu Smart View nebo použijte příkaz SET TRACE k výběru datových průniků k trasování.
Po úspěšném provedení skriptu výpočtu v krychli nabídne sledování výpočtů přístup k zaprotokolovaným informacím o výpočtu.
Sledování výpočtu neprovádí žádné změny v chování výpočtu. Pokud výpočet spustíte v inteligentním zobrazení a správce povolil na připojeném serveru sledování výpočtu, zobrazí inteligentní zobrazení po spuštění výpočtu překryvné dialogové okno s podrobnostmi. Informace o sledování výpočtu lze vložit z překryvného dialogového okna do textového editoru. Stejné informace můžete případně najít v souboru calc_trace.txt
umístěném v adresáři databázových souborů v aplikaci Essbase.
Informace o sledování výpočtu vám pomohou ladit provedení skriptu výpočtu v případě, kdy výsledky výpočtu neodpovídají vašemu očekávaní.
Sledování výpočtu není podporováno v aplikacích s aktivovanou správou scénáře.
Chcete-li aktivovat sledování výpočtu, správce musí nejprve zapnout konfigurační parametr aplikace CALCTRACE. Jakmile je u aplikace povoleno sledování výpočtu, existují dva způsoby, jak toho využít:
Vypočítá se celý rozsah výpočtu obsažený ve skriptu, ale během výpočtu bude sledován pouze kontext zvýrazněné datové buňky.
Pokud během výpočtu nebyla upravena zvýrazněná datová buňka, zobrazí se zpráva o tom, že buňka nebyla upravena.
SET TRACE mbrList
(pro aktivaci sledování výpočtu napříč seznamem prvků) a SET TRACE OFF
(pro deaktivaci sledování výpočtu až do okamžiku, kdy je ve skriptu nalezen nový příkaz SET TRACE). Při použití příkazu SET TRACE je nutné spustit výpočetní skript mimo modul Smart View pomocí nástroje Cube Designer, příkazu calc rozhraní příkazového řádku (CLI), úlohy Spustit výpočet ve webovém rozhraní Essbase nebo příkazu spustit výpočet jazyka MaxL.Následující skript výpočtu se provádí v ukázkovém základním souboru. Skript obsahuje příkaz SET TRACE vyžadující protokolování podrobných informací o datovém průniku (buňce), který představuje rozpočtovaný lednový prodej na trhu Kalifornie pro produkt s číslem SKU 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:
Je také doporučeno použít příkaz SET TRACEID, aby nedošlo k přepsání souboru trasování výpočtů.Vzorový základní soubor obsahuje dvě řídké dimenze: produkt a trh. Vzorec prvku se nachází v husté dimenzi Sales, která je prvkem ukazatelů. Seznam prvků výrazu FIX obsahuje pouze jeden řídký prvek, a to California, který patří do dimenze Market.
Počet existujících bloků v rozsahu FIX určuje, kolikrát proběhne výpočet trasované buňky. V tomto příkladu výpočet postupně projde všechny existující kombinace řídkého prvku California. Každá z těchto kombinací představuje blok.
Po dokončení výpočtu budou následující informace o trasování zaznamenány a zobrazí se v souboru calc_trace_id042.txt
:
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 sledování výpočtu nabízí následující přehledné informace o způsobu fungování výpočtu u sledované buňky:
Sledovaná buňka byla několikrát vypočítána a hodnota buňky byla pokaždé přepsána novou hodnotou (hlášený počet aktualizací buňky se zastaví na hodnotě 8).
Před výpočtem byla hodnota buňky 840,00.
Pro každé provedení výpočtu se zobrazují závislé a nové hodnoty. Závislé hodnoty pocházejí ze vzorce prvku ve výrazu FIX.
Konečná hodnota sledované buňky po dokončení všech výpočtů je 9, ta ovšem představuje hodnotu produktu „400-20“->California
dělenou 10.
Za aktualizované hodnoty odpovídají řádky 91-93 skriptu výpočtu obsahující vzorec prvku v sešitu Prodeje.
Pro každý blok, který je součástí cyklu, proběhne výpočet parametru Sales pomocí vzorce:
"100-10"=@MEMBER(@CONCATENATE(@NAME(@PARENT("Product")),"-20"))/10
Na levé straně obsahuje vzorec řídký prvek, který by mohl způsobit rozdíl mezi skutečným blokem výpočtu a původním blokem výrazu FIX. Například pokud výpočet projde buňkami "Kalifornie"->"100-20", výpočty budou ve skutečnosti provedeny v buňkách "Kalifornie"->"100-10".
Položky protokolu sledování nazvané Blok z rozsahu FIX
a Skutečný blok použitý ve výpočtu
jsou uvedeny pouze v případě nesouladu mezi bloky ve výrazu FIX a bloky zastoupenými ve vzorci prvku. Tyto položky protokolu mohou sloužit jako náznak, proč jste narazili na duplicitní výpočty, takže pomohou s laděním skriptů výpočtu.