Techniki zaawansowane: Odwoływanie się do wartości przechowywanych w zmiennych

Na przykład trzeba utworzyć analizę, w której tytule jest wyświetlana nazwa bieżącego użytkownika. Można to zrobić, odwołując się do zmiennej.

W analizach, pulpitach informacyjnych i czynnościach można stosować różne typy zmiennych: sesyjne, modelu semantycznego (repozytoryjne), prezentacyjne, żądaniowe i globalne. Autorzy zawartości mogą samodzielnie definiować zmienne prezentacyjne, żądaniowe i globalne, lecz inne typy zmiennych, tj. zmienne sesyjne i zmienne modelu semantycznego, (repozytoryjne), są definiowane w modelu semantycznym.

Uwaga: Oracle Analytics w uwierzytelnieniach połączenia ze źródłem danych nie obsługuje zmiennej :user ani :password.

Typ zmiennej Definiowana w Definiowana przez Więcej informacji

Sesyjna

  • Systemowa

  • Niesystemowa

Model semantyczny

Autorzy modelu danych

Zmienne sesyjne - informacje podstawowe

Zmienna modelu semantycznego (repozytoryjna)

  • Dynamiczna

  • Statyczna

Model semantyczny

Autorzy modelu danych

Zmienne modelu semantycznego (repozytoryjne) - informacje podstawowe

Prezentacyjna

Filtry monitujące dla analiz i pulpitów informacyjnych

Autorzy zawartości

Zmienne prezentacyjne - informacje podstawowe

Żądaniowa

Filtry monitujące dla analiz i pulpitów informacyjnych

Autorzy zawartości

Zmienne żądaniowe - informacje podstawowe

Globalna

Analizy

Administratorzy

Zmienne globalne - informacje podstawowe i Tworzenie zmiennych globalnych

Zmienne sesyjne - informacje podstawowe

Zmienne sesyjne są inicjalizowane po zalogowaniu się użytkownika.

Zmienne te istnieją dla każdego użytkownika przez cały czas sesji przeglądania i wygasają, gdy użytkownik zamknie przeglądarkę i się wyloguje. Istnieją dwa typy zmiennych sesyjnych: systemowe i niesystemowe.

Zmienne sesyjne systemowe

Istnieje kilka zmiennych sesyjnych systemowych, których można używać w raportach i pulpitach informacyjnych.

Nazwy zmiennych sesyjnych systemowych są zarezerwowane i dlatego nie można używać tych nazw dla żadnej innej zmiennej.

Zmienna sesyjna systemowa Opis Przykładowe zapytanie SQL (okno dialogowe "Zmienna")

PORTALPATH

Identyfikuje domyślny pulpit informacyjny, widziany przez użytkownika po zalogowaniu się (użytkownicy mogą zmienić tę preferencję po zalogowaniu się).

Aby po zalogowaniu się użytkownika został wyświetlony pulpit informacyjny "mydashboard":

 select ‘/shared/_portal/mydashboard’ from dual;

TIMEZONE

Określa domyślną strefę czasową po zalogowaniu się użytkownika.

Strefa czasowa użytkownika jest zazwyczaj ustalana na podstawie profilu użytkownika. Użytkownicy mogą zmienić swoją domyślną strefę czasową za pomocą preferencji (aplikacja "My Account").

Aby ustawić strefę czasową po zalogowaniu się użytkownika:

select ‘(GMT-08:00) Pacific Time (US & Canada)’ from dual;

DATA_TZ

Określa przesunięcie od pierwotnej strefy czasowej, stosowane dla danych.

Zmienna ta umożliwia konwersję strefy czasowej, tak aby użytkownicy widzieli odpowiednią strefę czasową.

Aby przekonwertować strefę czasową na standardowy czas wschodni amerykański (EST):

select ‘GMT-05:00’ from dual;

Ten przykład przedstawia uniwersalny czas średni (GMT) - 5 godzin

DATA_DISPLAY_TZ

Określa strefę czasową do wyświetlania danych.

Aby był używany standardowy czas wschodni amerykański (EST):

select ‘GMT-05:00’ from dual;

Ten przykład przedstawia uniwersalny czas średni (GMT) - 5 godzin

Zmienne sesyjne niesystemowe

Zmienne sesyjne niesystemowe są tworzone i nazywane w modelu semantycznym.

Na przykład osoba odpowiedzialna za model danych może utworzyć zmienną SalesRegion, która po zalogowaniu się użytkownika przyjmuje wartość jego regionu sprzedaży.

Zmienne modelu semantycznego (repozytoryjne) - informacje podstawowe

Zmienna modelu semantycznego (repozytoryjna) to zmienna, która w dowolnym momencie ma konkretną wartość.

Zmienne modelu semantycznego (repozytoryjne) mogą być statyczne lub dynamiczne. Wartość statycznej zmiennej modelu semantycznego (repozytoryjnej) jest stała i nie ulega zmianie, dopóki nie zostanie zmieniona przez administratora. Wartość dynamicznej zmiennej modelu semantycznego (repozytoryjnej) jest odświeżana na podstawie danych zwracanych przez zapytania.

Zmienne prezentacyjne - informacje podstawowe

Zmienna prezentacyjna jest tworzona podczas tworzenia filtra monitującego kolumny lub filtra monitującego zmiennej.

Typ Opis

Filtr monitujący kolumny

Zmienna prezentacyjna tworzona razem z filtrem monitującym kolumny jest powiązana z daną kolumną i może przyjmować tylko wartości pochodzące z tej kolumny.

Aby utworzyć zmienną prezentacyjną razem z filtrem monitującym kolumny, należy w oknie dialogowym "Nowy filtr monitujący" w polu Ustaw zmienną wybrać opcję Zmienna prezentacyjna. Następnie należy wpisać w polu Nazwa zmiennej nazwę zmiennej.

Filtr monitujący zmiennej

Zmienna prezentacyjna tworzona razem z filtrem monitującym zmiennej nie jest powiązana z żadną kolumną i trzeba zdefiniować wartości, które ta zmienna może przyjmować.

Aby utworzyć zmienną prezentacyjną razem z filtrem monitującym zmiennej, należy w oknie dialogowym "Nowy filtr monitujący" w polu Monit o wybrać opcję Zmienna prezentacyjna. Następnie należy wpisać w polu Nazwa zmiennej nazwę zmiennej.

Wartość zmiennej prezentacyjnej jest nadawana przez filtr monitujący kolumny lub zmiennej, z którym dana zmienna prezentacyjna została utworzona. Oznacza to, że za każdym razem, gdy użytkownik wybiera wartości w filtrze monitującym kolumny lub zmiennej, wartość zmiennej prezentacyjnej jest ustawiana zgodnie z tymi wybranymi wartościami.

Zmienne żądaniowe - informacje podstawowe

Zmienna żądaniowa umożliwia przesłonięcie wartości zmiennej sesyjnej, ale tylko na czas trwania żądania bazy danych zainicjowanego przez filtr monitujący kolumny. Zmienna żądaniowa jest tworzona jako element procesu tworzenia filtra monitującego kolumny.

Zmienna żądaniowa jest tworzona jako element procesu tworzenia jednego z następujących typów filtra monitującego pulpitu informacyjnego:

  • Zmienna żądaniowa tworzona razem z filtrem monitującym kolumny jest powiązana z daną kolumną i może przyjmować tylko wartości pochodzące z tej kolumny.

    Aby utworzyć zmienną żądaniową razem z filtrem monitującym kolumny, należy w oknie dialogowym "Nowy filtr monitujący" w polu Ustaw zmienną wybrać opcję Zmienna żądaniowa. Następnie należy w polu Nazwa zmiennej wpisać nazwę przesłanianej zmiennej sesyjnej.

  • Zmienna żądaniowa tworzona razem z filtrem monitującym zmiennej nie jest powiązana z żadną kolumną i trzeba zdefiniować wartości, które ta zmienna może przyjmować.

    Aby utworzyć zmienną żądaniową razem z filtrem monitującym zmiennej, należy w oknie dialogowym "Nowy filtr monitujący" (lub "Edycja filtra monitującego") w polu Monit o wybrać opcję Zmienna żądaniowa. Następnie należy w polu Nazwa zmiennej wpisać nazwę przesłanianej zmiennej sesyjnej.

Wartość zmiennej żądaniowej jest wypełniania przez filtr monitujący kolumny, z którym dana zmienna żądaniowa została utworzona. Oznacza to, że za każdym razem, gdy użytkownik wybiera wartość w filtrze monitującym kolumny, wartość zmiennej żądaniowej jest ustawiana zgodnie z tą wybraną wartością. Jednakże ta wartość jest uwzględniania tylko od momentu, w którym użytkownik naciśnie przycisk Wykonaj filtra monitującego do momentu zwrócenia wyników analizy do pulpitu informacyjnego.

Niektóre systemowe zmienne sesyjne (np. USERGUID lub ROLES) nie mogą być przesłaniane przez zmienne żądaniowe. Inne systemowe zmienne sesyjne, np. DATA_TZ lub DATA_DISPLAY_TZ (strefa czasowa), mogą być przesłaniane, o ile zostało to skonfigurowane za pomocą narzędzia Model Administration Tool.

Wiele wartości obsługują jedynie zmienne żądaniowe napisowe i liczbowe. Pozostałe typy danych przekazują tylko pierwszą wartość.

Zmienne globalne - informacje podstawowe

Zmienna globalna to kolumna utworzona przez połączenie określonego typu danych z wartością. Wartością może być data, godzina, data i godzina, liczba oraz tekst.

Zmienna globalna jest obliczana w chwili przetwarzania analizy i w analizie jest podstawiana uzyskana wartość.

Zmiennymi globalnymi mogą zarządzać (dodawać, edytować i usuwać) tylko użytkownicy mający przypisaną rolę "Administrator usługi BI".

Zmienne globalne tworzy się podczas tworzenia analizy przy użyciu okna dialogowego "Edycja formuły kolumny". Zmienna globalna jest zapisywana w Katalogu, stając się dostępną dla wszystkich innych analiz w systemie określonego dzierżawcy.

Tworzenie zmiennych globalnych

Obliczenia można zapisywać jako zmienne globalne, a następnie używać ich w różnych analizach.

  1. Otworzyć analizę do edycji.
  2. W okienku "Wybrane kolumny" kliknąć na ikonie Opcje obok nazwy kolumny.
  3. Wybrać opcję Edytuj formułę - zostanie wyświetlona karta "Formuła kolumny".
  4. Wybrać opcję Zmienna, a następnie Globalne.
  5. Wybrać opcję Dodaj nową zmienną globalną.
  6. Podać wartość w polu Nazwa. Na przykład: "gv_region", "date_and_time_global_variable" lub "rev_eastern_region_calc_gv".
    Przy odwoływaniu się do zmiennej globalnej trzeba używać jej w pełni kwalifikowanej nazwy, poprzedzonej kwalifikatorem "global.variables". Na przykład zmienna globalna skonfigurowana na potrzeby obliczania przychodu jest w następujący sposób wyświetlana w oknie dialogowym "Formuła kolumny":

    "Base Facts"."1- Revenue"*@{global.variables.gv_qualified}

  7. Podać wartości w polach Typ i Wartość.
    • W przypadku wybrania typu danych "Data i godzina" należy podać wartość zgodnie z następującą przykładową składnią: 03/25/2004 12:00:00 AM
    • Jeśli jako wartość jest podane wyrażenie (obliczenie), trzeba użyć typu danych "Tekst", jak w następującym przykładzie: "Base Facts"."1- Revenue"*3.1415
  8. Kliknąć OK. Nowa zmienna globalna zostanie dodana do okna dialogowego "Wstawianie zmiennej globalnej".
  9. Wybrać właśnie utworzoną nową zmienną globalną i nacisnąć przycisk OK. Zostanie wyświetlone okno dialogowe "Edycja formuły kolumny" ze zmienną globalną w okienku "Formuła kolumny". Pole wyboru Nagłówki niestandardowe jest zaznaczone automatycznie.
  10. Podać nową nazwę dla kolumny, do której została przypisana dana zmienna globalna, tak aby precyzyjniej odzwierciedlała zmienną.
  11. Kliknąć OK.

Składnia odwoływania się do zmiennych

W analizach i pulpitach informacyjnych można odwoływać się do zmiennych.

Sposób odwoływania się do zmiennej zależy od wykonywanego zadania. W przypadku zadań polegających na korzystaniu z pól w oknach dialogowych trzeba określić tylko typ i nazwę zmiennej (składnia niepełna), np. odwoływanie się do zmiennej w definicji filtra.

W przypadku innych zadań, takich jak odwoływanie się do zmiennej w widoku tytułowym, trzeba użyć pełnej składni. Zależy ona od typu zmiennej, zgodnie z opisem w następującej tabeli.

Typ Składnia Przykład

Zmienna sesyjna

@{biServer.variables['NQ_SESSION.nazwa_zmiennej']}

gdzie nazwa_zmiennej jest nazwą zmiennej sesyjnej, np. DISPLAYNAME.

@{biServer.variables['NQ_SESSION.SalesRegion']}

Zmienna modelu semantycznego (repozytoryjna)

@{biServer.variables.nazwa_zmiennej}

lub

@{biServer.variables['nazwa_zmiennej']}

gdzie nazwa_zmiennej jest nazwą zmiennej, np. prime_begin

@{biServer.variables.prime_begin}

lub

@{biServer.variables['prime_begin']}

Zmienna prezentacyjna lub żądaniowa

@{variables.nazwa_zmiennej}[format]{wartość_domyślna}

lub

@{zakres.variables['nazwa_zmiennej']}

gdzie:

nazwa_zmiennej jest nazwą zmiennej prezentacyjnej lub żądaniowej, np. MójUlubionyRegion.

(opcjonalnie) format jest maską formatu zależną od typu danych zmiennej, np. # ##0 lub DD-MM-YY hh:mm:ss. (Należy zauważyć, że format nie jest stosowany do wartości domyślnej).

(opcjonalnie) wartość_domyślna jest stałą lub odwołaniem do zmiennej i oznacza wartość używaną, gdy zmienna określona przez nazwa_zmiennej nie jest wypełniona.

zakres identyfikuje kwalifikatory zmiennej. Zakres jest konieczny w sytuacji, w której dana zmienna jest używana na wielu poziomach (analizy, strony pulpitów informacyjnych i pulpity informacyjne) i jest potrzebny dostęp do konkretnej wartości. (Jeśli zakres nie jest określony, wówczas jest stosowana kolejność analizy, strony pulpitów informacyjnych i pulpity informacyjne).

W przypadku używania filtra monitującego pulpitu informacyjnego ze zmienną prezentacyjną, która może zawierać wiele wartości, składnia zależy od typu kolumny. Listy wielowartościowe składają się z wartości rozdzielonych przecinkami i dlatego klauzula formatująca jest stosowana osobno dla każdej wartości przed połączeniem ich przecinkami.

@{variables.MójUlubionyRegion}{REGION WSCHODNI}

lub

@{dashboard.MyFavoriteRegion}{EASTERN REGION}

lub

@{dashboard.variables['MójUlubionyRegion']}

lub

(@{mojaZmiennaLiczbowa}[# ##0]{1000})

lub

(@{variables.MójZnacznikczasu}[YY-MM-DD hh:mm:ss]{)

lub

(@{mojaZmiennaTekstowa}{A, B, C})

Zmienna globalna

@{global.variables.nazwa_zmiennej}

gdzie nazwa_zmiennej jest nazwą zmiennej globalnej, np. gv_region. Odwołując się do zmiennej globalnej, trzeba użyć w pełni kwalifikowanej nazwy, tak jak w pokazanym przykładzie.

Konwencja nazewnicza dla zmiennych globalnych musi być zgodna ze specyfikacją języków skryptowych ECMA dla JavaScript. Nazwa może mieć maksymalnie 200 znaków, nie może zawierać spacji, słów zastrzeżonych ani znaków specjalnych. Informacje dotyczące wymagań języka JavaScript są dostępne w dokumentacji odpowiednich firm.

@{global.variables.gv_date_n_time}

Do zmiennych można się również odwoływać w wyrażeniach. Wskazówki, dotyczące odwoływania się do zmiennych w wyrażeniach, są zawarte w następujących tematach:

Zmienne sesyjne

Wskazówki dotyczące odwoływania się do zmiennych sesyjnych w wyrażeniach:

  • Zmienną sesyjną umieścić jako argument funkcji VALUEOF.
  • Ująć nazwę zmiennej w cudzysłów.
  • Poprzedzić zmienną sesyjną przez NQ_SESSION i kropkę.
  • Ująć NQ_SESSION w cudzysłów.
  • Umieścić w nawiasach obie części składni: NQ_SESSION z kropką i nazwę zmiennej sesyjnej.

Na przykład:

"Market"."Region"=VALUEOF("NQ_SESSION"."SalesRegion")

Zmienne prezentacyjne

Wskazówki dotyczące odwoływania się do zmiennych prezentacyjnych w wyrażeniach:

Odwołując się do zmiennej prezentacyjnej trzeba używać następującej składni:

@{nazwa_zmiennej}{wartość_domyślna}

gdzie nazwa_zmiennej jest nazwą zmiennej prezentacyjnej a (opcjonalna) wartość_domyślna jest stałą lub odwołaniem do zmiennej i oznacza wartość używaną, gdy zmienna określona przez nazwę_zmiennej nie jest wypełniona.

Aby dokonać rzutowania (konwersji) zmiennej na napis lub zawrzeć więcej niż jedną zmienną, należy całą zmienną ująć w apostrofy, na przykład:

'@{user.displayName}'

Jeśli po znaku @ nie następuje {, wówczas jest on traktowany jak zwykły znak @. W przypadku używania zmiennej prezentacyjnej, która może zawierać wiele wartości, składnia zależy od typu kolumny.

W celu wygenerowania poprawnej instrukcji SQL należy użyć następującej składni, zależnej od typu kolumny:

  • Tekstowy - (@{nazwa_zmiennej}['@']{'wartość_domyślna'})

  • Liczbowy - (@{nazwa_zmiennej}{wartość_domyślna})

  • Daty-godziny - (@{nazwa_zmiennej}{timestamp 'wartość_domyślna'})

  • Daty (tylko data) - (@{nazwa_zmiennej}{date 'wartość_domyślna'})

  • Godziny (tylko godzina) - (@{nazwa_zmiennej}{time 'wartość_domyślna'})

Na przykład:

'@{user.displayName}'

Zmienne modelu semantycznego (repozytoryjne)

Podczas odwoływania się do zmiennych modelu semantycznego (repozytoryjnych) w wyrażeniach można korzystać z następujących wytycznych.

  • Zmienną umieszczać jako argument funkcji VALUEOF.
  • Ująć nazwę zmiennej w cudzysłów.
  • Do statycznej zmiennej modelu semantycznego (repozytoryjnej) odwoływać się za pomocą jej nazwy.
  • Do dynamicznej zmiennej modelu semantycznego (repozytoryjnej) odwoływać się za pomocą jej w pełni kwalifikowanej nazwy.

Na przykład:

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END