Beregne valgte tupler

Ved at vælge tupler kan du fokusere dine Essbase-beregninger i det aktive Smart View-gitter og begrænse deres omfang til specifikke udsnit af data i din bloklagringskube.

Følgende afsnit beskriver tupelberegning:

Se FIX…ENDFIX for at få oplysninger om syntaksen for anvendelse af @GRIDTUPLES i et beregningsscript.

Anvendelsesområde for tupelberegning

Ved at vælge tupler kan du fokusere dine Essbase-beregninger i det aktive Smart View-gitter og begrænse deres omfang til specifikke udsnit af data i din bloklagringskube.

Valg af tupler hjælper dig med at optimere beregninger af asymmetriske gitre på tværs af dimensioner, så du undgår overberegning.

Essbase-beregningstupler er anderledes end tupler, der bruges i MDX-forespørgsler. Ydeevnen af beregninger og kubestørrelsen bestemmes hovedsageligt af antallet af blokke i kuben (specifik blokstørrelse). Derfor angives beregningstupler kun for kombinationer af spredte medlemmer. For at lette arbejdet med beregningsscripts er det desuden muligt at inkludere flere medlemmer fra den samme spredte dimension i specifikationen af en beregningstupel. Hvis du for eksempel angiver ("New York", "California", "Actual", "Cola") som en beregningstupel, beregner du følgende celleskæringspunkter:

"New York"->"Actual"->"Cola"
"California"->"Actual"->"Cola"

Betragt følgende symmetriske gitter. Det er symmetrisk, fordi hvert af produkterne har de samme markeder og det samme scenarie (Actual), som er repræsenteret i gitteret.

Symmetrisk gitter med Actual, Jan-værdier for fem markeder for Cola og de samme fem markeder for Diet Cola

Det følgende gitter er asymmetrisk, fordi Diet Cola-produktet har færre markeder i gitteret end Cola-produktet.

Asymmetrisk gitter med Actual, Jan-værdier for fem markeder for Cola, men kun to markeder for Diet Cola

Standardberegningsvirkefeltet, når der er mere end én dimension i en FIX-sætning eller et Smart View-gitterskæringspunkt, er at beregne krydsproduktet (alle mulige kombinationer) af medlemmerne i FIX eller gitteret. En skæringspunktsdrevet beregning, hvor produkt- og markedskombinationer tages fra gitteret, beregner med andre ord alle disse række-medlem-kombinationer:

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Massachusetts"
"Diet Cola"->"Florida"
"Diet Cola"->"Connecticut"
"Diet Cola"->"New Hampshire"

Dette er måske mere beregningsaktivitet, end du har brug for. Hvis du kun vil beregne de kombinationer, som er vist i gitteret, kan du angive, hvilke tupler, der skal beregnes, og begrænse beregningen til et mindre udsnit. Beregningstupler kan også reducere beregningstiden og kubestørrelsen.

Cola->"New York"
Cola->"Massachusetts"
Cola->"Florida"
Cola->"Connecticut"
Cola->"New Hampshire"
"Diet Cola"->"New York"
"Diet Cola"->"Florida"

Om tupelbaseret beregning

En beregningstupel er en metode til repræsentation af et dataudsnit af medlemmer fra to eller flere spredte dimensioner, som skal bruges i en beregning af Essbase-bloklager.

Eksempler på gyldige beregningstupler:

  • ("Diet Cola", "New York")
  • ("Diet Cola", "Cola", Florida)
  • (Cola, "New Hampshire")

Hvis du skriver MDX-udtryk, er du muligvis opmærksom på disse tupelbegrænsninger, som gælder for MDX:

  • Kun et enkelt medlem fra hver dimension kan inkluderes i en MDX-tupel
  • Alle tupler i et MDX-sæt skal have samme de samme dimensioner repræsenteret, og deres rækkefølge skal være den samme

Når du vælger tupler i beregningsscripts, er der dog af praktiske årsager lempet på disse krav. Du kan frit skrive tupeludtryk, og tuplerne kan beskrive medlemslister, som følgende tupel gør det: (@Children(East), Cola).

Vælge tupler til beregning af skæringspunkt

Det er nemt at vælge tupler ved at indsætte dem direkte i et beregningsscript som en liste i FIX-sætningen.

Husk på, at formatet af en FIX-sætning er følgende:

FIX (fixMbrs)
COMMANDS ;
ENDFIX

I nedenstående FIX-sætning er der angivet to tupler før starten på kommandoblokken. Tuplerne er omsluttet af krøllede klammer {}, der afgrænser et sæt, som er en samling af tupler.

FIX({
  (@Children(East), Cola),
  ("New York", Florida, "Diet Cola")
  })
Sales (Sales = Sales + 10;);
ENDFIX

Du kan også vælge tupler efter kontekst på basis af, hvilke medlemmer der findes i et Smart View-gitters skæringspunkt på beregningstidspunktet. Det gør du ved at angive @GRIDTUPLES-funktionen som et argument for FIX i dit beregningsscript.

FIX ({@GRIDTUPLES(Product, Market)})
   Sales (Sales = Sales + 10;);
ENDFIX

Hvis du udfører dette beregningsscript fra Smart View mod nedenstående gitter, beregnes kun de viste kombinationer af produkter og markeder. For eksempel beregnes "Diet Cola"->Massachusetts ikke, da det ikke vises eksplicit i gitteret. Bemærk, at alle scenarier (den tredje spredte dimension i denne eksempelkube) beregnes, selvom kun Actual vises i gitteret. Det skyldes, at dimensionen Scenario ikke er en del af GRIDTUPLES-sætningen i beregningsscriptet.

Asymmetrisk gitter med Actual, Jan-værdier for fem markeder for Cola, men kun to markeder for Diet Cola

Tupelvalg, hvad enten de foretages med eksplicitte lister over tupler eller med @GRIDTUPLES-funktionen, gælder kun i konteksten af FIX…ENDFIX-beregningskommandoen. Syntaksen i FIX-sætningen er udvidet for at muliggøre tupelvalg:

FIX ([{ tupleList | @GRIDTUPLES(dimensionList) },] fixMbrs)
COMMANDS ;
ENDFIX
  • tupleList - kommasepareret sæt af tupler.
  • dimensionList - mindst to spredte dimensioner, hvis medlemmer fra det aktive Smart View-gitter bruges til at definere beregningsområderne. (I beregningsscripts kan du kun bruge spredte dimensioner til at definere tupler).
  • fixMbrs - et medlem eller en liste over medlemmer.

Eksempler på tupelvalg for at reducere beregningsvirkefeltet

Ved hjælp af et Smart View-gitter og en FIX-sætning i et Essbase-beregningsscript kan du beregne valgte medlemstupler baseret på skæringspunktet på gitteret. Alternativt kan du indtaste tupelkombinationerne eksplicit i din FIX-sætning og fjerne afhængigheden af et bestemt Smart View-gitter for at definere beregningsvirkefeltet.

Ved at beregne udvalgte tupler kan du effektivt arbejde med asymmetriske områder i både beregningsscripts og Smart View-gitre.

Betragt følgende eksempler:

  • Intet tupelvalg - Beregner efter standardmetoden på basis af det aktuelle skæringspunkt på Smart View-gitteret. Beregningen er ikke begrænset til nogen specifikke tupler.
  • Valg af navngivne spredte dimensioner - Beregner tupler ud fra to eller flere spredte dimensioner, der er navngivet i et beregningsscript. Beregningen er begrænset til medlemmer af tupeldimensionerne, som findes i Smart View-gitteret.
  • Valg af spredte dimensioner i kontekst - Beregner tupler ud fra spredte dimensioner, der vælges ved runtime. Beregningen er begrænset til medlemmer af tupeldimensionerne, som findes i Smart View-gitteret.

Du kan prøve eksemplerne ved at downloade projektmappeskabelonen CalcTuple_Tuple.xlsx fra sektionen Technical > Calc i mappen gallery i området Filer i Essbase-webgrænsefladen. Se projektarket README i projektmappen for at få instruktioner.

Intet tupelvalg

Her demonstreres den standardberegningsmåde for Essbase-bloklager, der opstår, hvis du ikke vælger tupler. Følgende beregningsscript beregner hele tværproduktet af dimensionsmedlemmerne Product og Market fra et Smart View-gitter.

Med hjælp fra to runtime-erstatningsvariabler (RTSV), der er defineret i blokken SET RUNTIMESUBVARS, begrænses beregningen til de Product- og Market-skæringspunkter, der findes i gitteret, når beregningen køres fra Smart View.

SET RUNTIMESUBVARS
{
ProductGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Product's members on the grid</description>
<type>member</type>
<dimension>Product</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
MarketGridMembers = POV
<RTSV_HINT><svLaunch>
<description>All Market's members on the grid</description>
<type>member</type> <dimension>Market</dimension><choice>multiple</choice>
</svLaunch></RTSV_HINT>;
};
FIX (
&ProductGridMembers, &MarketGridMembers
)
Marketing(
   Marketing = Marketing +1;
);
ENDFIX

Valg af navngivne spredte dimensioner

Når du bruger funktionen @GRIDTUPLES til at vælge tuplen for Product- og Market-dimensioner, beregner dette beregningsscript for Essbase-bloklagring kun tupler for disse to dimensioner, så dets virkefelt begrænses til de medlemmer, som findes i et Smart View-gitter på det tidspunkt, hvor beregningen udføres fra Smart View.

FIX (
{@GRIDTUPLES(Product, Market)}
)
Marketing(
   Marketing = Marketing + 1;
);
ENDFIX

Ved kun at rette de spredte dimensioner, der er navngivet i tuplen, omfatter beregningen et meget mindre antal blokke end standardberegningen. Men alle medlemmer fra dimensioner, der ikke er navngivet i rettelsen (Year, Scenario), beregnes af dette beregningsscript.

Valg af spredte dimensioner i kontekst

Ved hjælp af funktionen @GRIDTUPLES og en runtime-erstatningsvariabel beregner dette Essbase-bloklagers beregningsscript kun valgte tupler i gitteret på basis af valgene af spredte dimensioner i RTSV-prompten.

Runtime-erstatningsvariablen &DimSelections, som er defineret i SET RUNTIMESUBVARS-blokken, begrænser beregningens virkefelt til udelukkende de spredte dimensioner i kuben, eksklusive Scenario. Funktionen @GRIDTUPLES, der bruges i FIX-sætningen, kalder denne variabel og begrænser antallet af skæringspunkter, der beregnes.

SET RUNTIMESUBVARS
            {
            DimSelections = "Version", "Site", "Entity", "Product", "Market"
            <RTSV_HINT><svLaunch>
            <description>List two or more sparse dimensions used for forming calculation tuples:</description>
            <type>string</type>
            </svLaunch></RTSV_HINT>;
            };
            FIX (
            {@GRIDTUPLES(&DimSelections)}
            )
            Marketing(
            Marketing = Marketing + 1;
            );
            ENDFIX
        

Beregningen omfatter et endnu lavere antal blokke end det forrige eksempel, fordi tuplen i dette tilfælde udstrækker sig til flere spredte dimensioner uden for Product->Market.

Du kan prøve eksemplerne ved at downloade projektmappeskabelonen CalcTuple_Tuple.xlsx fra sektionen Teknisk > Beregn i mappen Galleri i området Filer i Essbase-webinterfacet. Se projektarket README i projektmappen for at få instruktioner.