Urmărirea calculelor

Utilizaţi trasajul calculului Essbase pentru a obţine statistici despre procesarea formulelor membrilor, care să vă ajute să remediaţi erorile şi să vă perfecţionaţi script-urile de calcul pentru stocarea în blocuri. Activaţi opţiunea CALCTRACE pentru trasajul calculului Smart View dependent de context sau utilizaţi comanda SET TRACE pentru a selecta intersecţii de date de trasat.

Urmărirea calculelor vă permite să accesaţi informaţiile jurnalizate despre un calcul, după ce scriptul de calcul este executat cu succes pt. un cub.

Urmărirea unui calcul nu modifică nimic legat de comportamentul calculului. Dacă un calcul este lansat în Smart View, iar serverul conectat are urmărirea calculelor activată de un administrator, Smart View afişează o casetă de dialog pop-up ce conţine detaliile după rularea calculului. Informaţiile de urmărire a calculelor pot fi lipite din dialogul pop-up într-un editor de text. Ca alternativă, puteţi căuta aceleaşi informaţii în calc_trace.txt, aflat în directorul de fişiere din baza de date din Essbase.

Informaţiile de urmărire a calculelor vă pot ajuta să depanaţi executarea script-urilor de calcul în cazul în care rezultatele calculului nu sunt cele pe care le aşteptaţi.

Urmărirea calculelor nu este acceptată în aplicaţii cu managementul scenariilor activat.

Pentru a activa urmărirea calculelor, administratorul trebuie să activeze mai întâi parametrul de configurare al aplicaţiei, CALCTRACE. După activarea urmăririi calculului pt. aplicaţia dvs., există două moduri de a profita de aceasta:

  • În Smart View, puteţi utiliza urmărirea dependentă de context pt. valoarea unei singure celule.
    1. În Smart View, conectaţi o foaie de interogare cu aplicaţia pt. care aţi activat urmărirea calculului.
    2. Evidenţiaţi o celulă de date a cărei valoare calculată doriţi s-o urmăriţi.
    3. În panoul Date din fila Essbase, faceţi clic pe butonul Calcul şi selectaşi un script de calcul de executat. Veţi vedea perspectiva din celula dvs. de date evidenţiată în prompturile la runtime de urmărire a membrilor.
    4. Faceţi clic pe Lansare pt. a executa scriptul de calcul.

      Domeniul complet al calculului, aşa cum este inclus în script, va fi calculat, dar doar contextul celulei de date evidenţiate va fi urmărit în cursul calculului.

    5. La finalul scriptului de calcul, examinaţi caseta de dialog Rezultat calcul, care afişează rezultatele pre- şi post-calcul pt. celula dvs. de date evidenţiată.

      Dacă celula de date evidenţiată nu a fost modificată în cursul calculului, veţi vedea un mesaj ce indică faptul că celula nu a fost modificată.

  • În script-urile de calcul, puteţi utiliza comanda de calcul SET TRACE pt. a selecta intersecţiile de date de urmărit. SET TRACE vă permite să urmăriţi mai multe celule de date. În plus, puteţi urmări secţiuni din script-urile de calcul, utilizând o combinaţie a comenzilor SET TRACE mbrList (pt. a activa urmărirea calculului pt. o listă de membri) şi SET TRACE OFF (pt. a dezactiva urmărirea calculului până când este întâlnită o nouă comandă SET TRACE în script. Pentru a utiliza comanda SET TRACE, trebuie să executaţi scriptul de calcul în afara Smart View, utilizând Cube Designer, comanda CLI calc, un job Rulare calcul din interfaţa web Essbase sau MaxL (instrucţiunea executare calcul).

Următorul script de calcul este rulat pt. Sample Basic. Scriptul include o comandă SET TRACE, ce solicită jurnalizarea de informaţii detaliate pt. intersecţia de date (celula) ce reprezintă vânzările bugetate pe ianuarie, de pe piaţa din California, pt. produsul cu codul unic de stocare (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;

Notă:

Comanda SET TRACEID este şi ea recomandată pentru a împiedica suprascrierea fişierului de trasaj al calculului.

Sample Basic are două dimensiuni dispersate: Produs şi Piaţă. Formula pt. membri este în Vânzări, un membru al dimensiunii Subindicatori, care este o dimensiune densă. Lista de membri a instrucţiunii FIX conţine doar un membru dispersat, California, care aparţine dimensiunii Piaţă.

Numărul de blocuri existente în domeniul de acoperire pe care îl are FIX stabileşte de câte ori este calculată celula trasată. În acest exemplu, calculul ciclează prin toate combinaţiile membrilor dispersaţi existenţi din California. Fiecare dintre aceste combinaţii reprezintă un bloc.

La finalizarea calculului, sunt jurnalizate şi afişate următoarele informaţii de trasaj în 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;
)

Jurnalul de urmărire a calculelor oferă următoarele informaţii utile despre modul în care a funcţionat calculul, în celula care a fost urmărită:

  • Celula urmărită a fost calculată de mai multe ori, iar valoarea celulei a fost suprascrisă de fiecare dată cu noua valoare (numărul de actualizări al celulei raportate se opreşte la 8).

  • Valoarea celulei înainte de calcul era 840,00.

  • Pentru fiecare apariţie a calculului, sunt afişate valorile dependente şi valorile noi. Valorile dependente provin din formula pt. membri din instrucţiunea FIX.

  • Valoarea finală a celulei urmărite, după finalizarea întregului calcul, este 9, dar reprezintă valoarea produsului "400-20"->California, împărţită la 10.

  • Liniile 91-93 ale scriptului de calcul, ce conţin o formulă pt. membri din Vânzări, sunt responsabile de valorile actualizate.

Pentru fiecare dintre blocurile în care s-a ciclat, "Vânzări" este calculată utilizând formula:

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

Formula conţine un membru dispersat în partea stângă, care poate determina ca blocul de calcul efectiv să fie diferit de blocul FIX iniţial. De exemplu, când calculul ciclează prin "California"->"100-20", calculele sunt efectuate efectiv în "California"->"100-10".

Intrările din jurnalul de urmărire, intitulate Bloc din domeniul FIX şi Bloc efectiv utilizat în calcul sunt tipărite doar dacă există o discrepanţă între blocurile din instrucţiunea FIX şi blocul care este reprezentat în formula pt. membri. Aceste intrări din jurnal pot oferi indicaţii despre motivul pt. care există calcule duplicat, ajutându-vă să vă depanaţi script-urile de calcul.