Du kan göra datakällor mer flexibla genom att implementera exekveringsparametrar i frågan för att tillåta datakällan att använda variabler.
Det kan vara ersättningsvariabler definierade i Essbase, exekveringsparametrar definierade av rutnätskontexten när Smart View-användare genomborrar till externa data eller användardefinierade funktioner som är skrivna i ett externt källsystem.
Om du planerar att använda variabler i Essbase-datakällor behöver du först
Inkludera variabelsyntax i datakällans fråga. Datakällans fråga måste till exempel innehålla ?
i sin syntax, där ?
är en platshållare för en variabel som ska definieras vid exekvering.
Utför något av nedanstående:
Ange ett fast standardparameter-värde i datakällan som Essbase kan använda som reserv om variabeln har felaktig kontext vid exekvering eller
Överför en extern, användardefinierad funktion (eller lagrad procedur) som en parameter
För att kunna definiera datakällor och implementera parametrar i dem måste du vara applikationsansvarig eller högre.
Genom att möjliggöra användningen av variabler i Essbase-datakällor blir det enklare att effektivisera åtgärder eftersom du får färre datakällor att underhålla. Genom att implementera variabler i datakällor kan du ange en frågekontext för exekvering som tillämpas när en användare öppnar en datakälla som är associerad med en Essbase-kub.
Säg att vi har de här användningsfallen.
En databasansvarig övervakar ett återkommande dataladdningsjobb som laddar data till kuben varje månad. Databasansvariga kan nu använda en ersättningsvariabel för att ladda data för den aktuella månaden istället för att ha en laddningsregel för varje månad.
En applikationsansvarig hanterar definitioner av genomborrningsrapporter för olika verksamhetsanvändningsfall. Den applikationsansvariga implementerar variabler i den underliggande datakällan som Smart View-användare hämtar från i sina genomborrningsåtgärder. Det leder till att den applikationsansvariga får färre definitioner av genomborrningsrapporter att hantera och felsöka.
Ange en standardparameter i en datakälla om du vill kunna använda variabler i frågorna som Essbase genererar när det arbetar med data som lagras utanför kuben.
Så anger du standardparametern
Hämta eller skapa en anslutning till den externa datakällan (skapa till exempel en anslutning till Oracle Database).
Du kan använda en global anslutning om det redan finns en på sidan Källor i webbgränssnittet för Essbase. Annars kan du skapa en anslutning på applikationsnivå.
Skapa en datakälla via anslutningen som du använder för att få åtkomst till Oracle Database.
Du kan definiera en datakälla globalt om den ska vara tillgänglig för alla applikationer eller så kan du definiera den på applikationsnivå.
Du måste vara tjänsteadministratör för att kunna skapa en global datakälla. Klicka på Källor. Klicka på fliken Datakällor under ditt användarnamn och på Skapa datakälla.
Vill du skapa en datakälla på applikationsnivå måste du vara applikationsansvarig eller avancerad användare med behörighet att hantera den angivna applikationen. På fliken Applikationer klickar du på ett applikationsnamn. Sedan klickar du på Källor. Klicka på fliken Datakällor under ditt användarnamn och på Skapa datakälla.
I steget Allmänt väljer du som Anslutning den anslutning till Oracle Database som du skapade.
Ge datakällan ett namn i Namn.
Ange en fråga i Fråga (i det här exemplet används SQL). Om du vill göra det till en parametriserad fråga måste du inkludera ett filtervillkor (satsen WHERE) som mappar en relationskolumn i din källa till en platshållare. Du anger variabelns placering genom att använda en platshållare, ?, i frågesyntaxen. Platshållaren är till för en parameter som du överför i ett senare steg.
select * from SB_DT where DIMENSION_YEAR=?
Tänk dig till exempel att din relationsdatabas har följande tabell med namnet SB_DT. Tabellen har kolumnen DIMENSION_YEAR med månader som värden:
Om du vill använda en variabel för valet av månadsvärden från kolumnen DIMENSION_YEAR tillämpar du följande filtersyntax i frågan: where DIMENSION_YEAR=?
Klicka på Nästa.
I steget Kolumner tillämpar du den lämpliga datatypen som Essbase ska associera med varje kolumn från dina relationskälldata.
Ange till exempel de numeriska kolumnerna som typen Dubbel och lämna de alfanumeriska kolumnerna som typen Sträng.
Klicka på Nästa.
I steget Parametrar skapas Param1 – den här parametern finns eftersom du använde ett ? i frågan i steget Allmänt.
Avmarkera Använd variabler, dubbelklicka på textfältet under Värde och ange ett standardvärde för exekveringsparametern. Syftet med det här standardvärdet är att Essbase ska kunna använda det som reserv om parametern har en ogiltig kontext vid exekvering. Det här steget är viktigt om du avser använda exekveringsparametrar som en del av definitionerna av genomborrningsrapporterna.
Du kan även ändra namn på Param1 till ett namn som är meningsfullt för ditt användningsfall. Du kan till exempel ändra namnet till param_G_month för att ange att parametern använder en global variabel för den aktuella månaden eller så kan du ändra namnet till param_<appName>_month för att ange att parametern använder en variabel på applikationsnivå för den aktuella månaden. Det kan vara användbart att anpassa parameternamnen vid felsökning av parametrar med loggfiler på Essbase-servern.
Om du vill anpassa parametern för att referera till en ersättningsvariabel behöver du inte ange ett standardvärde. Se Använd ersättningsvariabler i en datakälla istället för det här ämnet.
Klicka på Nästa.
I steget Förhandsgranskning kan du se att standardparametern är tillämpad på din fråga. Det resulterar i att förhandsgranskningen endast fylls i med externa källposter där värdet i kolumnen DIMENSION_YEAR är Jan.
Även om förhandsgranskningen endast visade värden med den tillämpade standardparametern får du åtkomst till mer externa data senare när du implementerar exekveringsparametrar för definitionen av genomborrningsrapporter än vad som visades i förhandsgranskningen.
Klicka på Skapa för att skapa datakällan baserad på den här frågan om din externa datakälla. Datakällan aktiveras för implementering av exekveringsparametrar.
Följande arbetsflöde visar hur du skapar en Essbase-datakälla från en fråga med externa källdata med hjälp av en ersättningsvariabel som definierats i Essbase. Ersättningsvariabeln tillför mer flexibilitet i hur du utformar frågan som hämtar från dina källdata.
I det här exemplet använder du en ersättningsvariabel i Essbase för att deklarera den aktuella månaden. Istället för att uppdatera datakällor varje månad för att hämta data för den aktuella månaden kan du lämna datakällorna i fred och uppdatera ersättningsvariabeln som du definierade.
Skapa en global ersättningsvariabel eller en på applikationsnivå.
Hämta eller skapa en anslutning till den externa datakällan (skapa till exempel en anslutning till Oracle Database).
Du kan använda en global anslutning om det redan finns en på sidan Källor i webbgränssnittet för Essbase. Annars kan du skapa en anslutning på applikationsnivå.
Skapa en datakälla via anslutningen som du använder för att få åtkomst till Oracle Database.
Du kan definiera en datakälla globalt om den ska vara tillgänglig för alla applikationer eller så kan du definiera den på applikationsnivå.
I steget Allmänt väljer du som Anslutning den anslutning till Oracle Database som du skapade.
Ge datakällan ett namn i Namn.
Ange en fråga i Fråga (i det här exemplet används SQL). Om du vill göra det till en parametriserad fråga måste du inkludera ett filtervillkor (satsen WHERE) som mappar en relationskolumn i din källa till en platshållare. Du anger variabelns placering genom att använda en platshållare, ?
, i frågesyntaxen. Platshållaren är till för en parameter som du överför i ett senare steg.
select * from SB_DT where DIMENSION_YEAR=?
Tänk dig till exempel att din relationsdatabas har följande tabell med namnet SB_DT. Tabellen har kolumnen DIMENSION_YEAR med månader som värden:
Om du vill använda en variabel för valet av månadsvärden från kolumnen DIMENSION_YEAR tillämpar du följande filtersyntax i frågan: where DIMENSION_YEAR=?
Klicka på Nästa.
I steget Kolumner tillämpar du den lämpliga datatypen som Essbase ska associera med varje kolumn från dina relationskälldata.
Ange till exempel de numeriska kolumnerna som typen Dubbel och lämna de alfanumeriska kolumnerna som typen Sträng.
Klicka på Nästa.
I steget Parametrar skapas Param1 – den här parametern finns eftersom du använde ett ?
i frågan i steget Allmänt. Du kan anpassa Param1 till att referera en ersättningsvariabel genom att klicka på Använd variabler och sedan välja en ersättningsvariabel i listrutan Värde.
Om du skapar en datakälla i en applikation är både globala ersättningsvariabler och ersättningsvariabler på applikationsnivå tillgängliga. Variabler på applikationsnivå har applikationsnamnet som prefix. Om du skapar en global datakälla är endast globala ersättningsvariabler tillgängliga.
Du kan ändra namn på Param1 till ett namn som är meningsfullt för ditt användningsfall. Du kan till exempel ändra namnet till param_G_month för att ange att parametern använder en global variabel för den aktuella månaden eller så kan du ändra namnet till param_<appName>_month för att ange att parametern använder en variabel på applikationsnivå för den aktuella månaden. Det kan vara användbart att anpassa parameternamnen vid felsökning av parametrar med loggfiler på Essbase-servern.
Klicka på Nästa.
I steget Förhandsgranska kan du se att ersättningsvariabeln är tillämpad på din fråga. Det resulterar i att förhandsgranskningen endast fylls i med externa källposter där värdet i kolumnen DIMENSION_YEAR är Aug.
Klicka på Skapa för att skapa en datakälla baserad på den här frågan om dina externa källdata.