Spore beregninger

Bruk Essbase-beregningssporing til å få innsikt i behandlingen av medlemsformler, noe som hjelper deg med å feilsøke og justere beregningsskriptene for blokklagring. Aktiver CALCTRACE for kontekstsensitiv beregningssporing i Smart View, eller bruk kommandoen SET TRACE til å velge dataskjæringspunkt som skal spores.

Ved hjelp av beregningssporing kan du få tilgang til loggede opplysninger om en beregning når beregningsskriptet er utført mot en kube.

Beregningssporing medfører ingen endringer av virkemåten for beregninger. Hvis du starter en beregning i Smart View og den tilkoblede tjeneren har beregningssporing aktivert av en administrator, viser Smart View en hurtigdialogboks med detaljer når beregningen er kjørt. Du kan lime inn opplysningene om beregningssporingen fra hurtigdialogboksen til et tekstredigeringsprogram. Du finner også de samme opplysningene i filen calc_trace.txt i katalogen for databasefiler i Essbase.

Opplysningene om beregningssporinger kan hjelpe deg med å feilsøke skriptutførelse for beregninger i tilfelle resultatene av beregninger ikke er slik du forventer.

Beregningssporing støttes ikke i applikasjoner med scenariostyring aktivert.

Hvis du vil aktivere beregningssporing, må administratoren først aktivere applikasjonskonfigurasjonsparameteren CALCTRACE. Når beregningssporing er aktivert for applikasjonen, kan det brukes på to måter:

  • I Smart View kan du bruke kontekstavhengig sporing for én celleverdi.
    1. I Smart View kobler du et spørringsark til applikasjonen du aktiverte beregningssporing for.
    2. Merk en datacelle der du ønsker å spore den beregnede verdien.
    3. Klikk på knappen Beregn i ruten Data i fanen Essbase, og velg et beregningsskript som skal utføres. Du ser skjæringspunktet fra den merkede datacellen i ledetekstene for kjøretid for sporingsmedlem.
    4. Kjør beregningsskriptet ved å klikke på Start.

      Hele omfanget av beregningen i skriptet beregnes, men bare konteksten for den merkede datacellen spores under beregningen.

    5. Ved slutten av beregningsskriptet undersøker du dialogboksen Beregningsresultat, som viser resultatene før og etter beregning for den merkede datacellen.

      Hvis den merkede datacellen ikke ble endret under beregningen, ser du en melding som angir at cellen ikke ble endret.

  • I beregningsskript kan du bruke beregningskommandoen SET TRACE til å velge dataskjæringspunkt som skal spores. SET TRACE gir deg muligheten til å spore flere dataceller. I tillegg kan du spore deler av beregningsskript ved å bruke en kombinasjon av SET TRACE mbrList (hvis du vil aktivere beregningssporing over en medlemsliste) og SET TRACE OFF (hvis du vil aktivere beregningssporing til SET TRACE forekommer på nytt i skriptet). Hvis du skal bruke kommandoen SET TRACE, må du utføre beregningsskriptet utenfor Smart View ved hjelp av kubeutformeren, CLI-kommandoen calc, en Kjør beregning-jobb i Web-grensesnittet for Essbase eller MaxL (setningen utføre beregninger).

Følgende beregningsskript kjøres i Sample Basic. Skriptet inkluderer en SET TRACE-kommando som ber om at detaljerte opplysninger skal logges for dataskjæringspunktet (cellen) som representerer budsjettert salg for januar i markedet California, for produktlagerenhetsnummeret 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;

Merknad:

Kommandoen SET TRACEID anbefales også for å forhindre at beregningssporingsfilen overskrives.

Sample Basic har to spredte dimensjoner: Produkt og Marked. Medlemsformelen er i Salg, et medlem av Målinger, som er en tett dimensjon. Medlemslisten for FIX-setningen inneholder bare ett spredt medlem, California, som tilhører dimensjonen Marked.

Antallet eksisterende blokker i FIX-omfanget fastslår hvor mange ganger den sporede cellen beregnes. I dette eksemplet sirkulerer beregningen gjennom alle eksisterende spredte medlemskombinasjoner av California. Hver av disse kombinasjonene representerer en blokk.

Når beregningen er fullført, logges og vises følgende sporingsopplysninger i 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;
)

Beregningssporingsloggen gir følgende innsikt i hvordan beregningen fungerte for den sporede cellen:

  • Den sporede cellen ble beregnet flere ganger, og celleverdien ble overskrevet hver gang med den nye verdien (det rapporterte antallet celleoppdateringer stopper på åtte).

  • Verdien for cellen var 840,00 før beregning.

  • Avhengige verdier og nye verdier vises for hver beregningsforekomst. Avhengige verdier kommer fra medlemsformelen i FIX-setningen.

  • Den endelige verdien for den sporede cellen etter at all beregning er fullført, er ni, men den representerer verdien for produktet "400-20"->California delt på ti.

  • Linjene 91-93 i beregningsskriptet, som inneholder en medlemsformel for Salg, er ansvarlig for de oppdaterte verdiene.

For hver av de gjennomsirkulerte blokkene beregnes Salg ved hjelp av formelen:

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

Formelen inneholder et spredt medlem på venstre side som kan føre til at den faktiske beregningsblokken blir forskjellig fra den innledende FIX-blokken. Når beregningen for eksempel sirkulerer gjennom California->100-20, utføres beregningene faktisk i California->100-10.

Sporingsloggoppføringene med tittelen Blokk fra FIX-omfang og Faktisk blokk brukt i beregning skrives bare ut hvis det er et avvik mellom blokkene i FIX-setningen og blokken som er representert i medlemsformelen. Disse loggoppføringene kan gi indikasjoner om hvorfor det finnes dupliserte beregninger og hjelpe deg med å feilsøke beregningsskriptene.