Använd filterfunktioner i stället för tidsseriefunktioner

Det här avsnittet förklarar skillnaden mellan tidsseriefunktioner och filterfunktioner, och hur du implementerar filterfunktioner. Den här informationen gäller för både arbetsböcker och klassiska infopaneler.

Tidsseriefunktioner kontra filterfunktioner

Med tidsseriefunktionerna Ago och Todate får du ett enkelt sätt att skapa mått att beräkna year-ago, year-to-date, och så vidare. Den här metoden fungerar bra för affärsanvändares rapporter, men dessa funktioner genererar komplexa frågor på bekostnad av prestanda. Varje gång en av dessa funktioner används i en rapport genereras dessutom en ytterligare underfråga som använder ännu fler resurser i databasen.

I klassiska infopaneler kan du istället för att använda tidsseriefunktioner vanligen uppnå samma resultat genom att använda basmått och filtrera på lämplig tidsperiod med funktionen Filter. Den metoden kan vara för komplex för affärsanvändares rapporter, men den fungerar bra i infopaneler som fördefinierats av IT-teamet. Den här metoden ger en fysisk SQL-kod som är betydligt enklare och effektivare och inte kräver en ytterligare delfråga. Det innebär att SQL-frågan körs snabbare och använder färre resurser i databasen, vilket minskar databasens totala processoranvändning och anrop om indata-utdata.

Följande figur visar ett exempel på den fysiska fråga som genereras när du använder både basmåttet och måttet month Ago i samma rapport. Två frågor genereras.

Beskrivning av GUID-37245A7E-00E9-4071-9627-1A5BAED91311-default.jpg följer
.jpg

Följande figur visar den SQL-kod som genereras för en enda fråga när du använder funktionen Filter i stället.

Beskrivning av GUID-F1D33998-F8D4-40BF-B630-6EDCEF1DCEFC-default.jpg följer
.jpg

Implementera filterfunktioner i en infopanel med frågor

I de flesta implementeringar innehåller infopanelen redan en fråga så att användarna kan välja den månad de letar efter. Det första steget är att identifiera de tidsperioder som behöver filtreras baserat på en användares urval.

I det här exemplet innehåller kalenderdimensionen kolumnen Julian Period Number eftersom det förenklar beräkningen. Det går även utan Julian Period Number, men det skulle kräva betydligt mer komplexa formler för att beräkna den tidsperiod som valts.

  1. Ändra frågan Month och lägg till presentationsvariabeln (MonthSelected).

    Beskrivning av GUID-DEEBC7D1-806C-48E9-965C-6131745A65CE-default.png följer
    .png

  2. Skapa sedan en separat infopanelsfråga för att hämta motsvarande värde för Julian Period Number och lägga till det i en annan variabel (PeriodNumberSelected). Den här andra frågan visas inte för slutanvändaren utan är dold i infopanelen och värdet beräknas automatiskt baserat på variabeln MonthSelected.

    Beskrivning av GUID-D41AE43F-CD62-498D-B041-9700D586BF77-default.png följer
    .png

  3. Redigera infopanelsegenskaperna och klicka på Filter och variabler.
  4. Lägg till frågesökvägen Julian Period.

    Beskrivning av GUID-E46E926E-F0A3-4934-9D10-F0119B9109DF-default.jpg följer
    .jpg

  5. I analysen tar du bort det globala filtret på kolumnen Month och använder filterfunktionerna för kolumnformler baserade på Julian Period Number efter behov. Några exempel:

    Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})

    Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)

    Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)

    Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})

Implementera filterfunktioner i en arbetsbok med parametrar

Du kan använda samma princip i en arbetsbok. Frågor och presentationsvariabler ersätts av ett infopanelsfilter och parametrar.

Skapa tre parametrar: MonthSelected, PeriodNumberSelected och YearSelected. Endast parametern MonthSelected visas på ritytan i ett infopanelsfilter.

De möjliga värdena för parametern MonthSelected definieras baserat på en logisk SQL-fråga som väljer alla månader.

De möjliga värdena fylls inte i för parametrarna PeriodNumberSelected och YearSelected.Beskrivning av GUID-B0D153C1-7DDF-445F-BF09-7E21EBECB88B-default.jpg följer
.jpg

Det är bara startvärdet som fylls i med en logisk fråga som filtreras baserat på värdet för MonthSelected.Beskrivning av GUID-C21AC2BA-E3B8-43BC-A812-517A074DBFA2-default.jpg följer
.jpg