Śledzenie obliczeń

Korzystając z funkcji śledzenia obliczeń Essbase, można uzyskać spostrzeżenia dotyczące przetwarzania formuł elementów, które ułatwią wykrywanie błędów w skryptach obliczeń woluminu blokowego oraz dopracowywanie tych skryptów. Należy włączyć polecenie CALCTRACE, aby śledzić obliczenia w widoku Smart View, w których jest uwzględniany kontekst, ale można też użyć polecenia SET TRACE, aby wybrać przecięcia do śledzenia.

Gdy skrypt obliczeń zostanie ponownie wykonany w odniesieniu do kostki, funkcja śledzenia obliczeń zapewnia dostęp do — zarejestrowanych w dzienniku — informacji dotyczących obliczeń.

Śledzenie obliczenia niczego nie zmienia w jego działaniu. Jeśli obliczenie zostanie uruchomione w Smart View i jeśli używany serwer ma włączone przez administratora śledzenie obliczeń, to — gdy obliczenie zostanie wykonane — Smart View wyświetli wyskakujące okno dialogowe, zawierające szczegółowe informacje. Informacje ze śledzenia obliczenia można wkleić z tego okna dialogowego do edytora tekstów. Te same informacje można także znaleźć w pliku calc_trace.txt, w katalogu plików bazy danych w Essbase.

Informacje ze śledzenia obliczeń mogą być pomocne przy wykrywaniu błędów w skrypcie obliczeń, gdy uzyskiwane wyniki nie są zgodne z oczekiwanymi.

Śledzenie obliczeń nie jest obsługiwane w aplikacjach z włączonym zarządzaniem scenariuszami.

Aby można było włączyć śledzenie obliczeń, administrator musi najpierw włączyć parametr konfiguracyjny aplikacji — CALCTRACE. Jeśli śledzenie obliczeń zostanie włączone dla aplikacji, można z niego korzystać na dwa sposoby:

  • W Smart View można używać śledzenia kontekstowego wartości jednej komórki.
    1. W Smart View połączyć arkusz zapytań z aplikacją, dla której zostało włączone śledzenie obliczeń.
    2. Wyróżnić komórkę danych, której obliczana wartość ma być śledzona.
    3. W panelu "Dane" karty "Essbase" nacisnąć przycisk Oblicz, po czym wybrać uruchamiany skrypt obliczeń. W trybie wykonawczym, w filtrach monitujących śledzenia elementu pojawi się punkt widoku bazujący na wyróżnionej komórce danych.
    4. Nacisnąć przycisk Uruchom, aby uruchomić skrypt obliczeń.

      Zostaną wykonane wszystkie obliczenia zawarte w skrypcie, lecz podczas obliczania będzie jedynie śledzony kontekst wyróżnionej komórki danych.

    5. Gdy wykonywanie skryptu obliczeń zostanie ukończone, sprawdzić okno dialogowe Wynik obliczeń, w którym są pokazywane wyniki sprzed obliczeń i po obliczeniach dla wyróżnionej komórki danych.

      Jeśli wyróżniona komórka danych nie zostanie zmodyfikowana wskutek obliczeń, pojawi się komunikat z informacją, że komórka nie została zmodyfikowana.

  • W skryptach obliczeń można, w celu wybrania śledzonych wspólnych części (przecięć) danych, użyć obliczeniowego polecenia SET TRACE. Polecenie SET TRACE umożliwia śledzenie wielu komórek danych. Ponadto można śledzić sekcje skryptów obliczeń, używając kombinacji poleceń SET TRACE listaElementów (aby włączyć śledzenie obliczeń dla listy elementów) i SET TRACE OFF (aby wyłączyć śledzenie obliczeń do chwili pojawienia się nowego polecenia SET TRACE w skrypcie). Aby można było użyć polecenia SET TRACE, trzeba wykonać skrypt obliczeń poza narzędziem Smart View, używając narzędzia Cube Designer, polecenia interfejsu wiersza poleceń calc, zlecenia Uruchamianie obliczania w interfejsie internetowym Essbase lub narzędzia MaxL (instrukcja wykonywanie obliczeń).

Poniższy skrypt obliczeń jest uruchamiany dla kostki Sample Basic. Skrypt zawiera polecenie SET TRACE zlecające rejestrowanie szczegółowych informacji dla przecięcia reprezentującego ujętą w budżecie sprzedaż w styczniu na rynku "California" dla produktu o numerze 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;

Uwaga:

Zalecane jest także używanie polecenia SET TRACEID w celu zapobieżenia zastąpieniu pliku śledzenia obliczeń.

Sample Basic zawiera dwa rzadkie wymiary: "Product" i "Market". Formuła odnosi się do elementu "Sales", będącego elementem gęstego wymiaru "Measures". Lista elementów polecenia FIX zawiera tylko jeden rzadki element o nazwie "California", który należy do wymiaru "Market".

Liczba istniejących bloków w zakresie polecenia FIX określa, ile razy śledzona komórka będzie obliczana. W tym przykładzie obliczenie przechodzi przez wszystkie istniejące kombinacje rzadkiego elementu "California". Każda z tych kombinacji reprezentuje jeden blok.

Po ukończeniu obliczania następujące informacje ze śledzenia zostaną zarejestrowane i wyświetlone w pliku 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;
)

Dziennik śledzenia obliczeń dostarcza informacji, w jaki sposób były wykonywane obliczenia dla śledzonej komórki:

  • Śledzona komórka była obliczana kilka razy i za każdym razem jej wartość była zastępowana nową wartością (raportowana liczba aktualizacji zatrzymuje się na 8).

  • Wartość komórki przed obliczaniem wynosiła wynosi 840.00.

  • Dla każdego wystąpienia obliczenia są pokazywane wartości zależne i nowe. Wartości zależne pochodzą z formuły elementu zawartej w instrukcji FIX.

  • Końcowa wartość komórki po wszystkich obliczeniach wynosi 9, lecz reprezentuje wartość produktu "400-20"->California podzieloną przez 10.

  • Za aktualizowane wartości odpowiadają linie 91-93 skryptu obliczeń, zawierające formułę elementu "Sales".

Dla każdego z bloków, przez który następuje przejście, wartość Sales jest obliczana za pomocą następującej formuły:

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

Po lewej stronie formuły występuje rzadki element, który mógłby spowodować, że faktyczny blok obliczeń różniłby się od początkowego bloku w instrukcji FIX. Na przykład, gdy obliczenie przechodzi przez "California"->"100-20", obliczenia są faktycznie wykonywane w "California"->"100-10".

Wpisy w dzienniku śledzenia, zatytułowane Block from FIX scope (Blok z zakresu FIX) i Actual block used in calculation (Faktyczny blok użyty w obliczeniu), pojawiają się tylko wtedy, gdy występuje rozbieżność między blokami z instrukcji FIX, a blokiem reprezentowanym w formule elementu. Wpisy w dzienniku śledzenia mogą wskazywać, dlaczego występują zduplikowane obliczenia, oraz mogą pomóc wykryć błędy w skryptach obliczeń.