Implementere parametre for datakilder

Hvis du vil gjøre datakilder mer fleksible, kan du implementere kjøretidsparametre i spørringen, slik at datakilden kan bruke variabler.

De kan være erstatningsvariabler som er definert i Essbase, kjøretidsparametre som defineres av rutenettkonteksten når Smart View-brukere driller gjennom til eksterne data, eller brukerdefinerte funksjoner som er skrevet i et eksternt kildesystem.

Når du planlegger å bruke variabler i Essbase-datakilder, må du først gjøre følgende:

  1. Inkludere variabelsyntaks i datakildespørringen. Datakildespørringen må for eksempel inneholde ? i syntaksen, der ? er en plassholder for enkelte variabler som må defineres ved kjøring.

  2. Gjør ett av følgende:

    • Definer en fast verdi for standardparameter i datakilden som Essbase skal bruke som reserve hvis variabelen har en ugyldig kontekst under kjøring, ELLER

    • Definer en erstatningsvariabel som skal brukes av datakilden
    • Send en ekstern, brukerdefinert funksjon (eller lagret prosedyre) som en parameter

Hvis du skal definere datakilder og implementere parametre for dem, må du være applikasjonsstyrer eller høyere.

Hvis du aktiverer bruken av variabler i Essbase-datakilder, kan du effektivisere operasjoner ved at færre datakilder må ajourføres. Når du implementerer variabler til datakilder, kan du angi en spørringskontekst under kjøring som skal brukes når en bruker får tilgang til en datakilde med en Essbase-kube.

Tenk deg for eksempel følgende brukstilfeller:

  • En databasestyrer har oversikten over en gjentagende datalastingsjobb som laster data til kuben hver måned. Databasestyreren kan nå bruke en erstatningsvariabel til å laste data for den inneværende måneden, i stedet for å ajourføre en lasteregel for hver måned.

  • En applikasjonsstyrer ajourfører definisjoner av gjennomdrillingsrapporter for forskjellige forretningsbrukstilfeller. Applikasjonsstyreren implementerer variabler i den underliggende datakilden som Smart View-brukere henter fra sine gjennnomdrillingsoperasjoner. Resultatet er at applikasjonsstyreren får færre definisjoner av gjennomdrillingsrapporter som må ajourføres og feilletes.

Angi en standardparameter i en datakilde

Angi en standardparameter i en datakilde hvis du vil aktivere bruken av variabler i spørringene Essbase genererer ved arbeid med data lagret utenfor kuben.

Slik angir du standardparameteren:

  1. Hent eller opprett en tilkobling til den eksterne kilden for dataene (du kan for eksempel opprette en tilkobling til Oracle Database).

    Du kan bruke en global tilkobling hvis det allerede finnes en på siden Kilder i Web-grensesnittet for Essbase, eller du kan opprette en tilkobling på applikasjonsnivå.

  2. Opprett en datakilde over tilkoblingen du skal bruke til å få tilgang til Oracle Database.

    Du kan definere en datakilde globalt hvis den skal være tilgjengelig for alle applikasjoner, eller du kan definere den på applikasjonsnivå.

    1. Du må være tjenesteadministrator for å kunne opprette en global datakilde. Klikk på Kilder, klikk på fanen Datakilder under brukernavnet ditt, og klikk deretter på Opprett datakilde.

      Hvis du vil opprette en datakilde på applikasjonsnivå, må du være applikasjonsstyrer eller privilegert bruker med applikasjonsstyringstillatelse til den angitte applikasjonen. Klikk på et applikasjonsnavn i fanen Applikasjoner. Klikk deretter på Kilder, klikk på fanen Datakilder under brukernavnet ditt, og klikk på Opprett datakilde.

    2. I trinnet Generelt velger du Oracle Database-tilkoblingen du har opprettet, under Tilkobling.

    3. Angi et navn for datakilden i Navn.

    4. Angi en spørring (dette eksemplet bruker SQL) under Spørring. Hvis du vil gjøre den til en spørring med parametre, må du inkludere en filterbetingelse (et WHERE-ledd) som tilordner en relasjonskolonne i kilden til en plassholder. Du angir plasseringen av variabelen ved å bruke en plassholder, ?, i spørringssyntaksen. Plassholderen er for en parameter du skal sende i et senere trinn.

      select * from SB_DT where DIMENSION_YEAR=?

      Tenk deg for eksempel at relasjonsdatabasen har tabellen nedenfor, med navnet SB_DT. Tabellen har kolonnen DIMENSION_YEAR med måneder som verdier:
      Bilde av en relasjonsdatabasetabell der kolonnen DIMENSION_YEAR er valgt. Alle verdiene er måneder: Jul, Aug, Aug, Sep, Sep, Oct og så videre.

      Hvis du skal bruke en variabel til å velge månedsverdier fra kolonnen DIMENSION_YEAR, bruker du følgende filtersyntaks i spørringen: der DIMENSION_YEAR=?
      Bilde av fanen Generelt i veiviseren for opprettelse av datakilder. Tilkobling: SAMPLE.oracledb_conn, Navn: oracledb_ds, Beskrivelse: Datakilde for Oracle-DB, Spørring: velg * fra SB_DT der dimension_year=?

    5. Klikk på Neste.

    6. I trinnet Kolonner bruker du den egnede datatypen som Essbase skal knytte til hver enkelt kolonne fra relasjonskildedataene.

      Du kan for eksempel sette de numeriske kolonnene til typen Dobbel og gi de alfanumeriske kolonnene typen Streng.


      Bilde av fanen Kolonner i veiviseren for opprettelse av datakilder, med Dobbel og Streng valgt for Type.

    7. Klikk på Neste.

    8. I trinnet Parametre er Param1 opprettet. Denne parameteren finnes fordi du brukte ? i spørringen i trinnet Generelt.

      Det skal ikke være merket av for Bruk variabler. Dobbeltklikk i tekstfeltet under Verdi, og angi en standardverdi for kjøretidsparameteren. Hensikten med denne standardverdien er at Essbase skal bruke den som reserve hvis parameteren har en ugyldig kontekst under kjøring. Dette trinnet er viktig hvis du har tenkt å bruke kjøretidsparametre som en del av definisjonen av gjennomdrillingsrapporten.

      Du kan endre navnet Param1 til et navn som gir mening i ditt brukestilfelle. Du kan for eksempel endre navnet til param_G_måned for å vise at parameteren bruker en global variabel for den inneværende måneden, eller du kan endre det til param_<appnavn>_måned for å angi at parameteren bruker en variabel på applikasjonsnivå for den inneværende måneden. Tilpasning av parameternavnene kan være nyttig ved feilleting av parametre ved hjelp av loggfilene for Essbase-tjeneren.


      Bilde av fanen Parametre i veiviseren for opprettelse av datakilder. Det er ikke merket av for Bruk variabler, og Jan er angitt for Verdi.

      Hvis du vil tilpasse parameteren slik at den refererer til en erstatningsvariabel, trenger du ikke å angi en standardverdi. Se Bruke erstatningsvariabler i en datakilde i stedet for dette emnet.

    9. Klikk på Neste.

    10. I Forhåndsvisning kan du se at standardparameteren er brukt på spørringen. Resultatet er at forhåndsvisningen fylles ut med bare eksterne kildeposter der verdien i kolonnen DIMENSION_YEAR er Jan.


      Bilde av fanen Forhåndsvisning i veiviseren for opprettelse av datakilder, som bare viser poster der DIMENSION_YEAR = Jan.

      Selv om forhåndsvisningen bare viste verdier der standardparameteren var brukt, kan du senere (når du implementerer kjøretidsparametre for definisjoner av gjennomdrillingsrapporter) få tilgang til flere eksterne data enn dataene som var synlige i forhåndsvisningen.

    11. Klikk på Opprett for å opprette datakilden basert på denne spørringen i de eksterne kildedataene. Datakilden er aktivert for implementering av kjøretidsparametre.

Bruke erstatningsvariabler i en datakilde

Arbeidsflyten nedenfor illustrerer hvordan du oppretter en Essbase-datakilde fra en spørring i eksterne kildedata, ved hjelp av en erstatningsvariabel som er definert i Essbase. Erstatningsvariabelen gir større fleksibilitet i utformingen av spørringen som henter fra kildedataene.

I dette eksemplet skal du bruke en erstatningsvariabel i Essbase til å deklarere den inneværende måneden. I stedet for å oppdatere datakilder månedlig for å hente data for den inneværende måneden, kan du la være å bruke datakildene og bare oppdatere erstatningsvariabelen du definerte.

  1. Opprett en erstatningsvariabel på globalt nivå eller applikasjonsnivå.


    Bilde av en erstatningsvariabel som er opprettet på applikasjonsnivå. Navn: CurrMonth, verdi: Aug

  2. Hent eller opprett en tilkobling til den eksterne kilden for dataene (du kan for eksempel opprette en tilkobling til Oracle Database).

    Du kan bruke en global tilkobling hvis det allerede finnes en på siden Kilder i Web-grensesnittet for Essbase, eller du kan opprette en tilkobling på applikasjonsnivå.

  3. Opprett en datakilde over tilkoblingen du skal bruke til å få tilgang til Oracle Database.

    Du kan definere en datakilde globalt hvis den skal være tilgjengelig for alle applikasjoner, eller du kan definere den på applikasjonsnivå.

    1. I trinnet Generelt velger du Oracle Database-tilkoblingen du har opprettet, under Tilkobling.

    2. Angi et navn for datakilden i Navn.

    3. Angi en spørring (dette eksemplet bruker SQL) under Spørring. Hvis du vil gjøre den til en spørring med parametre, må du inkludere en filterbetingelse (et WHERE-ledd) som tilordner en relasjonskolonne i kilden til en plassholder. Du angir plasseringen av variabelen ved hjelp av en plassholder, ?, i spørringssyntaksen. Plassholderen er for en parameter du skal sende i et senere trinn.

      select * from SB_DT where DIMENSION_YEAR=?

      Tenk deg for eksempel at relasjonsdatabasen har tabellen nedenfor, med navnet SB_DT. Tabellen har kolonnen DIMENSION_YEAR med måneder som verdier:
      Bilde av en relasjonsdatabasetabell der kolonnen DIMENSION_YEAR er valgt. Alle verdiene er måneder: Jul, Aug, Aug, Sep, Sep, Oct og så videre.

      Hvis du skal bruke en variabel til å velge månedsverdier fra kolonnen DIMENSION_YEAR, bruker du følgende filtersyntaks i spørringen: der DIMENSION_YEAR=?
      Bilde av fanen Generelt i veiviseren for opprettelse av datakilder. Tilkobling: SAMPLE.oracledb_conn, Navn: oracledb_ds, Beskrivelse: Datakilde for Oracle-DB, Spørring: velg * fra SB_DT der dimension_year=?

    4. Klikk på Neste.

    5. I trinnet Kolonner bruker du den egnede datatypen som Essbase skal knytte til hver enkelt kolonne fra relasjonskildedataene.

      Du kan for eksempel sette de numeriske kolonnene til typen Dobbel og gi de alfanumeriske kolonnene typen Streng.


      Bilde av fanen Kolonner i veiviseren for opprettelse av datakilder, med Dobbel og Streng valgt for Type.

    6. Klikk på Neste.

    7. I trinnet Parametre er Param1 opprettet. Denne parameteren finnes fordi du brukte ? i spørringen i trinnet Generelt. Hvis du skal tilpasse Param1 til å referere til en erstatningsverdi, klikker du på Bruk variabler og velger en erstatningsvariabel fra rullegardinlisten Verdi.

      Hvis du oppretter en datakilde i en applikasjon, er det mulig å velge erstatningsvariabler på både globalt nivå og applikasjonsnivå. Variablene på applikasjonsnivå får applikasjonsnavnet som prefiks. Hvis du oppretter en global datakilde, er det bare mulig å velge globale erstatningsvariabler.

      Du kan endre navnet Param1 til et navn som gir mening i ditt brukestilfelle. Du kan for eksempel endre navnet til param_G_måned for å vise at parameteren bruker en global variabel for den inneværende måneden, eller du kan endre det til param_<appnavn>_måned for å angi at parameteren bruker en variabel på applikasjonsnivå for den inneværende måneden. Tilpasning av parameternavnene kan være nyttig ved feilleting av parametre ved hjelp av loggfilene for Essbase-tjeneren.


      Bilde av fanen Parametre i veiviseren for opprettelse av datakilder. Det er merket av for Bruk variabler, og verdien er Sample.CurrMonth.

    8. Klikk på Neste.

    9. I Forhåndsvisning kan du se at erstatningsvariabelen brukes til spørringen. Resultatet er at forhåndsvisningen fylles ut med bare eksterne kildeposter der verdien i kolonnen DIMENSION_YEAR er Aug.


      Bilde av fanen Forhåndsvisning i veiviseren for opprettelse av datakilder, som bare viser poster der DIMENSION_YEAR = Aug.

    10. Klikk på Opprett hvis du vil opprette en datakilde basert på denne spørringen i de eksterne kildedataene.