Oracle Business Intelligence

blog związany z Business Intelligence, używanie, wdrażanie, doświadczenia

OBI EE Filtrowanie po datach użycie zmiennych repozytorium predefiniowanych

Posted by Marek Gregor on Grudzień 18th, 2009

Wpis ten potraktuję jako pomoc użytkownikom w mojej firmie ale można go też potraktować jako good practice.

So, go on….

Bardzo często filtrujemy po datach i bardzo dobrze po to są. Więc tworzymy mozolnie raport, robimy skomplikowane funkcje, przestawiamy to wszystko w tabelach przestawnych, robimy super kolorowe wykresy i… dodajemy filtr na daty tak aby pokazać wynik za poprzedni miesiąc czyli np filtrujemy jakies pole aby zawierało się w datach 2009-11-01 do 2009-11-30. Zapisujemy ten raport na pulpicie i już mamy  gotowca którego możemy oglądać codziennie i cieszyć się dobrymi wynikami ale…. tylko przez miesiąc za miesiąc musimy wejść i przestawić datę i tak co miesiąc. Jeszcze gorzej jest gdy mamy raport filtrowany datą dzienną czyli załóżmy zawsze na wczoraj. Jakie jest rozwiązanie

1. Filtrować funkcją opartą na dacie (nie o tym ten topik ale pokażę) czyli np zamiast filtrować na sztywno w raporcie  Data=’2009-11-16′ robimy filtr na funkcji która wygląda następująco:

Data=TIMESTAMPDIFF(SQL_TSI_DAY,Current_Date,1)

O funkcjach na datach zrobię osobny wpis

2. Użyć zmiennych przedefiniowanych przez administratora (czyli w VB Leasing przeze mnie :) )

Otóż
Zrobiłem na potrzeby użytkowników szereg zmiennych tzw repozytorium które zwracają różne daty ustalane na podstawie bieżącej daty.
Oto lista tych zmiennych wraz z komentarzem i przykładem co zwróci taka zmienna zakładając że wykonana jest w dniu zrobienia tego wpisu tj w dniu: 2009-12-16

Nazwa zmiennej Opis Przykład (dla dnia 2009-12-16)
varData1dago wczorajsza data 2009-12-15
varData0mago dzisiejsza data 2009-12-16
varData1mago data miesiąc temu 2009-11-16
varData2mago 2 miesiące temu 2009-10-16
varData3mago 3 miesiące temu 2009-09-16
varData4mago 4 miesiące temu 2009-08-16
varData5mago 5 miesiące temu 2009-07-16
varData6mago 6 miesiące temu 2009-06-16
varData12mago 12 miesiące temu 2008-12-16
varFirstCurrent pierwszy dzien bieżącego miesiąca 2009-12-01
varFirst1mago pierwszy dzień 1 miesiąc temu 2009-11-01
varFirst2mago pierwszy dzień 2 miesiąc temu 2009-10-01
varFirst3mago pierwszy dzień 3 miesiąc temu 2009-09-01
varFirst4mago pierwszy dzień 4 miesiąc temu 2009-08-01
varFirst5mago pierwszy dzień 5 miesiąc temu 2009-07-01
varFirst6mago pierwszy dzień 6 miesiąc temu 2009-06-01
varFirst12mago pierwszy dzień 12 miesiąc temu 2008-12-01
varLastCurrent ostatni dzien bieżącego miesiąca 2009-12-31
varLast1mago ostatni dzień 1 miesiąc temu 2009-11-30
varLast2mago ostatni dzień 2 miesiąc temu 2009-10-31
varLast3mago ostatni dzień 3 miesiąc temu 2009-09-30
varLast4mago ostatni dzień 4 miesiąc temu 2009-08-31
varLast5mago ostatni dzień 5 miesiąc temu 2009-07-31
varLast6mago ostatni dzień 6 miesiąc temu 2009-06-30
varLast12mago ostatni dzień 12 miesiąc temu 2008-12-31
varRMcurrent Rok miesiąć dzisiejszej daty 2009-12
varRM1mago Rok miesiąć 1 miesiąc temu 2009-11
varRM2mago Rok miesiąć 2 miesiące temu 2009-10
varRM3mago Rok miesiąć 3 miesiące temu 2009-09
varRM6mago Rok miesiąć 6 miesięcy temu 2009-06
varRM12mago Rok miesiąć 12 miesięcy temu 2008-12
varRcurrent bieżący rok 2009
varLastCurrent ostatni dzień bieżącego roku 2009-12-31

Tak więc użycie tak więc użycie takiej zmiennej i dynamiiczne filtrowanie danych będzie polegało na zastąpieniu statycznie wprowadzonej daty zmienną repozytorium.

Przykład:

Tworzymy raport z polem daty do filtrowania i filtrujemy

zmienne 1

Wybieramy zmienną serwera
zmienne 2

Wpisujemy zmienną z tabeli wyzej (na przykłądzie chce pokazac raport z dnia wczorajszego więc użyję zmiennej varData1dago)
zmienne 3

i cieszymy się wynikiem
zmienne 4

Dodano 2010-01-05

Dodałem jeszcze parę zmiennych do tego zestawu tj
tj zestaw zwracający daty od 13 do 24 miesięcy wstecz
varData13mago

varData14mago

varData15mago

varData16mago

varData17mago

varData18mago

varData19mago

varData20mago

varData20mago

varData20mago

varData20mago



Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>