Du kan gøre datakilder mere fleksible ved at implementere runtime-parametre i forespørgslen for at tillade datakilderne at bruge variabler.
Det kan være erstatningsvariabler, der er defineret i Essbase, runtime-parametre, der er defineret af gitterkonteksten, når brugere af Smart View borer gennem til eksterne data, eller brugerdefinerede funktioner, der er skrevet i et eksternt kildesystem.
Når du planlægger at bruge variabler i Essbase-datakilder, skal du først gøre følgende:
Inkluder variabelsyntaks i forespørgslen på datakilden. For eksempel skal forespørgslen på datakilden inkludere ?
i syntaksen, hvor ?
er en pladsholder for en variabel, der skal defineres ved runtime.
Gør et af følgende:
Angiv en fast standardparameterværdi i datakilden, som Essbase kan bruge som tilbagestilling, hvis variablen har en ugyldig kontekst ved runtime.
Overfør en ekstern, brugerdefineret funktion (eller lagret procedure) som en parameter.
Hvis du vil definere datakilder og implementere parametre for dem, skal du være applikationsansvarlig eller højere.
Hvis du aktiverer brugen af variabler i Essbase-datakilder, er det med til at strømline operationer, da det kræver vedligeholdelse af færre datakilder. Med implementering af variabler i datakilder kan du angive en forespørgselskontekst ved runtime, der anvendes, hver gang en bruger får adgang til en datakilde, der er knyttet til en Essbase-kube.
Antag for eksempel følgende anvendelsesområder:
En databaseansvarlig fører tilsyn med et tilbagevendende dataindlæsningsjob, der indlæser data til kuben på månedsbasis. Den databaseansvarlige kan nu bruge en erstatningsvariabel til at indlæse data for indeværende måned i stedet for at vedligeholde en indlæsningsregel for hver måned.
En applikationsansvarlig vedligeholder definitioner af gennemboringsrapporter for forskellige forretningsmæssige anvendelsesområder. Den applikationsansvarlige implementerer variabler i den underliggende datakilde, som brugere af Smart View trækker data ud af i deres gennemboringsoperationer. Som resultat har den applikationsansvarlige færre definitioner af gennemboringsrapporter, der skal vedligeholdes og foretages fejlfinding af.
Angiv en standardparameter i en datakilde, hvis du vil aktivere brugen af variabler i de forespørgsler, som Essbase genererer under arbejdet med data, der er lagret uden for kuben.
Sådan angiver du standardparameteren:
Hent eller opret en forbindelse til den eksterne datakilde (opret for eksempel en forbindelse til Oracle Database).
Du kan bruge en global forbindelse, hvis en sådan allerede findes på siden Kilder i Essbase-webinterfacet, eller du kan oprette en forbindelse på applikationsniveau.
Opret en datakilde via den forbindelse, som du skal bruge til at få adgang til Oracle Database
Du kan definere en datakilde globalt, hvis den skal være tilgængelig for alle applikationer, eller du kan definere den på applikationsniveau.
Du skal være tjenesteadministrator for at oprette en global datakilde. Klik på Kilder, klik på fanen Datakilder under dit brugernavn, og klik på Opret datakilde.
Eller du skal være applikationsansvarlig eller superbruger med tilladelse til applikationsstyring af den angivne applikation for at oprette en datakilde på applikationsniveau. Klik på et applikationsnavn på fanen Applikationer. Klik derefter på Kilder, klik på fanen Datakilder under dit brugernavn, og klik på Opret datakilde.
Vælg den Oracle Database-forbindelse, som du har oprettet, i trinnet Generelt for Forbindelse.
Angiv et navn til datakilden i Navn.
Angiv en forespørgsel (dette eksempel bruger SQL) i Forespørgsel. Hvis du vil gøre den til en parameteriseret forespørgsel, skal du inkludere en filterbetingelse (WHERE-klausul), der mapper en relationskolonne i din kilde til en pladsholder. Du angiver variablens placering ved at bruge pladsholderen ? i forespørgselssyntaksen. Pladsholderen bruges til en parameter, som du videregiver i et senere trin.
select * from SB_DT where DIMENSION_YEAR=?
Antag for eksempel, at relationsdatabasen har følgende tabel med navnet SB_DT. Tabellen indeholder kolonnen DIMENSION_YEAR med måneder som værdier:
Hvis du vil bruge en variabel til valg af månedsværdier fra kolonnen DIMENSION_YEAR, skal du anvende følgende filtersyntaks i forespørgslen: where DIMENSION_YEAR=?
Klik på Næste.
I trinnet Kolonner skal du anvende den relevante datatype, som Essbase skal knytte til hver kolonne fra dine relationskildedata.
Angiv for eksempel de numeriske kolonner til typen Dobbelt, og lad de alfanumeriske kolonner være som typen Streng.
Klik på Næste.
Param1 oprettes i trinnet Parametre – denne parameter findes, fordi du har brugt et ? i forespørgslen i trinnet Generelt.
Lad Brug variabler være umarkeret, dobbeltklik på tekstfeltet under Værdi, og skriv en standardværdi for runtime-parameteren. Essbase skal bruge denne standardværdi som tilbagestilling, hvis parameteren har en ugyldig kontekst ved runtime. Dette trin er vigtigt, hvis du vil bruge runtime-parametre i definitioner af gennemboringsrapporter.
Du kan også omdøbe Param1 til noget, der giver mening for dit anvendelsesområde. Du kan for eksempel omdøbe den til param_G_month for at angive, at parameteren bruger en global variabel for indeværende måned, eller du kan omdøbe den til param_<appName>_month for at angive, at parameteren bruger en variabel på applikationsniveau for den indeværende måned. Det kan være nyttigt at tilpasse parameternavne under fejlfinding af parametre ved hjælp af Essbase-serverlogfilerne.
Hvis du vil tilpasse parameteren, så den refererer til en erstatningsvariabel, behøver du ikke at angive en standardværdi. Se Bruge erstatningsvariabler i en datakilde i stedet for dette emne.
Klik på Næste.
Bemærk i Eksempel, at standardparameteren er anvendt på din forespørgsel. Derfor er eksemplet kun udfyldt med eksterne kilde-records, hvor værdien af kolonnen DIMENSION_YEAR er Jan.
Selvom eksemplet kun viser værdier, hvor standardparameteren er anvendt, får du senere, når du implementerer runtime-parametre til definition af en gennemboringsrapport, adgang til flere eksterne data end dem, der var synlige i eksemplet.
Klik på Opret for at oprette datakilden på basis af denne forespørgsel på dine eksterne kildedata. Datakilden er aktiveret til implementering af runtime-parametre.
Følgende workflow illustrerer, hvordan du opretter en Essbase-datakilde fra en forespørgsel på eksterne kildedata ved hjælp af en erstatningsvariabel, der er defineret i Essbase. Erstatningsvariablen giver større fleksibilitet i designet af den forespørgsel, der trækker værdier ud af dine kildedata.
I dette eksempel skal du bruge en erstatningsvariabel i Essbase til at erklære den aktuelle måned. I stedet for at opdatere datakilder hver måned for at trække data ind for den indeværende måned kan du lade datakilder være og nøjes med at opdatere den erstatningsvariabel, som du har defineret.
Opret en erstatningsvariabel, der er global eller på applikationsniveau.
Hent eller opret en forbindelse til den eksterne datakilde (opret for eksempel en forbindelse til Oracle Database).
Du kan bruge en global forbindelse, hvis en sådan allerede findes på siden Kilder i Essbase-webinterfacet, eller du kan oprette en forbindelse på applikationsniveau.
Opret en datakilde via den forbindelse, som du skal bruge til at få adgang til Oracle Database
Du kan definere en datakilde globalt, hvis den skal være tilgængelig for alle applikationer, eller du kan definere den på applikationsniveau.
Vælg den Oracle Database-forbindelse, som du har oprettet, i trinnet Generelt for Forbindelse.
Angiv et navn til datakilden i Navn.
Angiv en forespørgsel (dette eksempel bruger SQL) i Forespørgsel. Hvis du vil gøre den til en parameteriseret forespørgsel, skal du inkludere en filterbetingelse (WHERE-klausul), der mapper en relationskolonne i din kilde til en pladsholder. Du angiver variablens placering ved at bruge pladsholderen ?
i forespørgselssyntaksen. Pladsholderen bruges til en parameter, som du videregiver i et senere trin.
select * from SB_DT where DIMENSION_YEAR=?
Antag for eksempel, at relationsdatabasen har følgende tabel med navnet SB_DT. Tabellen indeholder kolonnen DIMENSION_YEAR med måneder som værdier:
Hvis du vil bruge en variabel til valg af månedsværdier fra kolonnen DIMENSION_YEAR, skal du anvende følgende filtersyntaks i forespørgslen: where DIMENSION_YEAR=?
Klik på Næste.
I trinnet Kolonner skal du anvende den relevante datatype, som Essbase skal knytte til hver kolonne fra dine relationskildedata.
Angiv for eksempel de numeriske kolonner til typen Dobbelt, og lad de alfanumeriske kolonner være som typen Streng.
Klik på Næste.
Param1 oprettes i trinnet Parametre – denne parameter findes, fordi du har brugt et ?
i forespørgslen i trinnet Generelt. Hvis du vil tilpasse Param1 til at referere til en erstatningsvariabel, skal du klikke på Brug variabler og vælge en erstatningsvariabel på rullelisten Værdi.
Hvis du skal oprette en datakilde i en applikation, kan både globale erstatningsvariabler og erstatningsvariabler på applikationsniveau vælges. Variablerne på applikationsniveau har applikationsnavnet som præfiks. Hvis du skal oprette en global datakilde, kan kun globale erstatningsvariabler vælges.
Du kan omdøbe Param1 til noget, der giver mening for dit anvendelsesområde. Du kan for eksempel omdøbe den til param_G_month for at angive, at parameteren bruger en global variabel for indeværende måned, eller du kan omdøbe den til param_<appName>_month for at angive, at parameteren bruger en variabel på applikationsniveau for den indeværende måned. Det kan være nyttigt at tilpasse parameternavne under fejlfinding af parametre ved hjælp af Essbase-serverlogfilerne.
Klik på Næste.
I Eksempel skal du bemærke, at erstatningsvariablen er anvendt på din forespørgsel. Derfor er eksemplet kun udfyldt med eksterne kilde-records, hvor værdien af kolonnen DIMENSION_YEAR er Aug.
Klik på Opret for at oprette en datakilde på basis af denne forespørgsel på dine eksterne kildedata.