Spore beregninger

Brug Essbase-beregnings-tracing til at få indsigt i behandling af medlemsformel, så du får hjælp til fejlfinding og finjustering af dine beregningsscripts til bloklagring. Aktiver CALCTRACE for kontekstafhængig Smart View-beregnings-tracing, eller brug SET TRACE-kommandoen til at vælge dataskæringspunkter til tracing.

Sporing af beregninger giver dig adgang til loggede oplysninger om en beregning, efter at beregningsscriptet er udført mod en kube.

Sporing af en beregning ændrer ikke noget i forbindelse med beregningens funktionsmåde. Hvis en beregning startes i Smart View, og en administrator har aktiveret sporing af beregning for den forbundne server, viser Smart View en pop-op-dialogboks med detaljer, når beregningen er kørt. Oplysningerne om sporing af beregningen kan indsættes fra pop-op-dialogboksen i en teksteditor. Du kan finde de samme oplysninger i calc_trace.txt, der findes i kataloget med databasefiler i Essbase.

Oplysningerne om sporing af beregningen kan hjælpe dig med at foretage fejlfinding af scriptudførelse, hvis resultaterne af beregningen ikke er, hvad du forventede.

Sporing af beregninger understøttes ikke i applikationer, hvor styring af scenarier er aktiveret.

Administratoren skal slå applikationskonfigurationsparameteren CALCTRACE til for at aktivere sporing af beregninger. Efter at beregningssporing er aktiveret for din applikation, kan du drage fordel af det på to måder:

  • I Smart View kan du bruge kontekstafhængig sporing for en enkelt celleværdi.
    1. Opret forbindelse mellem et forespørgselsark og den applikation, som du har aktiveret beregningssporing for, i Smart View.
    2. Fremhæv en datacelle, hvis beregnede værdi du vil spore.
    3. Klik på knappen Beregn i panelet Data på fanen Essbase, og vælg et beregningsscript, som du vil udføre. Du kan se skæringspunktet fra din fremhævede datacelle i runtime-prompterne for sporingsmedlemmer.
    4. Klik på Start for at udføre beregningsscriptet.

      Beregningens fulde omfang, som scriptet indeholder, beregnes, men kun den fremhævede datacelles kontekst spores under beregningen.

    5. I slutningen af beregningsscriptet kan du se dialogboksen Beregningsresultat, som viser før- og efterberegningsresultaterne for din fremhævede datacelle.

      Hvis den fremhævede datacelle ikke blev modificeret under beregningen, kan du se en meddelelse med oplysninger om, at cellen ikke blev modificeret.

  • I beregningsscripts kan du bruge beregningskommandoen SET TRACE til at vælge de dataskæringspunkter, der skal spores. SET TRACE gør det muligt for dig at spore flere dataceller. Derudover kan du spore afsnit af beregningsscripts ved at bruge en kombination af SET TRACE mbrList (for at aktivere beregningssporing for en medlemsliste) og SET TRACE OFF (for at deaktivere beregningssporing, indtil et nyt SET TRACE findes i scriptet). For at bruge kommandoen SET TRACE skal du udføre beregningsscriptet uden for Smart View ved hjælp af Kubedesigner, CLI-kommandoen calc et Kør beregning-job i Essbase-webinterfacet, eller MaxL (execute calculation-sætningen).

Følgende beregningsscripts køres i Sample Basic. Scriptet omfatter en SET TRACE-kommando, der anmoder om, at der logges detaljerede oplysninger for det dataskæringspunkt (den celle), som repræsenterer det budgetterede salg for januar på det californiske marked for produktet med varenr. 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;

Bemærk:

Kommandoen SET TRACEID anbefales også for at forhindre overskrivning af dine beregnings-tracing-fil.

Sample Basic har to spredte dimensioner: Product og Market. Medlemsformlen er i Sales, som er et medlem af den tætte dimension Measures. FIX-sætningens medlemsliste indeholder kun ét spredt medlem, California, der hører til dimensionen Market.

Antallet af eksisterende blokke i FIX-omfanget bestemmer det antal gange, som den sporede celle beregnes. I dette eksempel gennemgår beregningen alle de eksisterende kombinationer af California for spredte medlemmer. Hver af disse kombinationer repræsenterer en blok.

Når beregningen er fuldført, logges og vises følgende tracing-oplysninger 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;
)

Loggen for beregningssporingen giver følgende indsigt i, hvordan beregningen fungerede i den celle, der blev sporet:

  • Den sporede celle blev beregnet flere gange, og celleværdien blev hver gang overskrevet med den nye værdi (det rapporterede celleopdateringsantal stopper ved 8).

  • Værdien for cellen før beregning var 840,00.

  • For hver beregningsforekomst vises der afhængige værdier og nye værdier. Afhængige værdier kommer fra medlemsformlen i FIX-sætningen.

  • Den endelige værdi for den sporede celle, efter at alle beregninger er fuldført, er 9, men den repræsenterer værdien for produktet "400-20"->California divideret med 10.

  • Linje 91-93 i beregningsscriptet, der indeholder en medlemsformel i Sales, er ansvarlig for de opdaterede værdier.

Sales beregnes ved hjælp af følgende formel for hver af de gennemgåede blokke:

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

Formlen indeholder et spredt medlem til venstre, der kan bevirke, at den faktiske beregningsblok er forskellig fra den indledende FIX-blok. Når beregningen for eksempel gennemgår "California"->"100-20", udføres den faktisk i "California"->"100-10".

Sporingslogposterne Block from FIX scope og Actual block used in calculation udskrives kun, hvis der er uoverensstemmelse mellem blokkene i FIX-sætningen og den blok, der er repræsenteret i medlemsformlen. Disse logposter kan være en indikator for, om der er dublerede beregninger, og hjælpe dig med at foretage fejlfinding af dine beregningsscripts.