Żeby monit nie startował od razu

December 11th, 2010 2 comments

Mała sztuczka:

Jest sobie raport:

zeby-monit1

Po ustawieniu filtra kolumny raportu na “jest monitowane”, zapisaniu tego raportu na pulpicie z odpowiednim monitem uzyskujemy:

zeby-monit2

Po zapisaniu zmian w pulpicie monit niczego nie wybiera od razu (w tym przypadku ID klienta) i  pokazują nam się wszystkie rekordy raportu. Jak raport prosty, to pół biedy, jak nie prosty to admin bazy zaczyna tracić do nas cierpliwość (dlatego najlepiej jak samemu jest się adminem :)

Rozwiązanie (pewnie niejedyne):

ustawiamy dodatkowy filtr na zerowe ID (zakładając, że nie ma takiego klienta):

zeby-monit3

po czym na pulpicie raport domyślnie wygląda tak:

zeby-monit4

i o to nam chodziło. Raport nie startuje od razu i nie traci jednocześnie funkcjonalności “jest monitowane”.

Po wybraniu ID klienta w monicie uzyskujemy oczywiście:

zeby-monit5

Można by oczywiście ustawić w monicie, żeby podawał domyślnie jakieś ID, ale to trochę bez sensu.

Categories: Answers, Dashboards, OBIEE Tags: , , ,

OBIEE 11g – zaczynamy

August 24th, 2010 No comments
Categories: 11g, Info, OBIEE Tags: , ,

Jak zaciągnąć listę wartości z Excela do raportu ?

Często zdarza się, że mamy listę jakichś wartości/numerów ID/kodów (niepotrzebne skreślić) w pliku tekstowym, csv, albo co gorsza w ukochanym przez naszych użytkowników Excelu (stosunek autora postu do wyżej wymienionej aplikacji pomińmy kojącym milczeniem :) ).

Jak  sprawić, żeby raport policzył się tylko dla wartości z tej listy ?

Oto prosty (pewnie niejedyny) sposób:

1. Mamy raport (przykład z Sample Sales Reduced):

lista-wartosci1

są na nim jakieś zamówienia i jest ich dużo (nie filtrowałem go w żaden sposób)

lista-wartosci9

2. Mamy listę z numerami zamówień, które nas interesują w Excelu (może to być też oczywiście zwykły plik *.txt):

lista-wartosci3

3. Tworzymy sobie monit dla obszaru Sample Sales Reduced:

  • klikamy w link lista-wartosci5
  • potem w ikonkę nowego monitu pulpitu informacyjnego lista-wartosci4
  • wybieramy odpowiedni obszar zainteresowań (tu: Sample Sales Reduced)
  • klikamy w odpowiednią kostkę, którą chcemy monitować (tu: Order Key)
  • ustawiamy Wybór wielu

lista-wartosci6

  • Zapisujemy monit

4. Wrzucamy monit na pulpit razem z raportem z pkt. 1

5. Po kliknięciu w 3 kropki monitu klikamy w Edytuj i do okienka, które się pokaże wklejamy listę skopiowaną z Excela (bez żadnych znaków rozdzielających):

lista-wartosci7

6. No i mamy raport tylko dla interesujących nas wartości klucza Order Key:

lista-wartosci8

BI-Portal.pl na Facebooku

No i stało się :)

Założyłem dla mojego bloga stronę na Facebooku.

bi-portal

Wypromuj również swoją stronę

Mam zamiar informować tam o nowych wpisach na bi-portal.pl i zamieszczać posty nieco luźniej związane z OBIEE, w końcu na BI’aju życie się nie kończy :) (no i przy okazji sprawdzę o co to wielkie halo z tym całym Facebookiem :) )

Zainspirował mnie autor bloga like a geek który zrobił sobie taką stronę: FB.

Categories: Info Tags:

Jak układać kostki w OBIEE ?

Ostatnio zastanawiałem się nad zagadnieniem sortowania i grupowania kostek (Presentation Columns) w ramach tabel prezentacji (Presentation Tables).

Na szkoleniach niespecjalnie o tym mówią, a z mojego doświadczenia wynika, że to dość ważna sprawa.

Staje się to istotne w momencie, który zazwyczaj prędzej czy później następuje, czyli w czasie gdy kostek jest już tak dużo, że nie pamiętamy gdzie która jest, tylko zaczynamy ich mniej lub bardziej nerwowo szukać.

Wyróżniłbym dwa przypadki:

1. Jeśli tabela prezentacji (czy cały obszar) jest specjalizowana, to znaczy używana przez tylko określoną, małą grupę użytkowników (np. kilka osób z działu, które dokładnie wiedzą czego szukają), to uważam, że powinno się najczęściej wykorzystywane kostki dać od razu na górę, tak żeby mieli je pod ręką. Przy projektowaniu obszaru i podczas rozmowy z użytkownikami, od razu można zorientować się jakich faktów i wymiarów będą najczęściej potrzebować. Dodatkowo my, przy swoim projekcie układamy “logicznie z grupowaniem”, czyli najważniejsze na górze, dodatkowo poprzedzielane tematycznie kreskami (——————–), względnie kreskami z opisem grupy (—–KONTA—–).

Tak można zrobić kreski:

ukladanie-kostek

2. Jeśli tabela prezentacji ma charakter ogólny, to znaczy jest to “worek” z kostkami dla wszystkich, wtedy proponuję alfabetycznie, bo i tak nie wiadomo co, komu i jak często będzie potrzebne.

I jeszcze ważna rada – zdecydować się od razu jaki model układania kostek przyjąć – jeśli użytkownicy już się przyzwyczają do danego ułożenia, to późniejsze mieszanie kostkami przyjmują bardzo źle i w sumie nie ma się im co dziwić …

Uważaj co filtrujesz …

March 19th, 2010 1 comment

Ostatnio przy robieniu raportu dla użytkownika zdarzyło mi się przeoczyć dość podstawową rzecz. Otóż, przy ustawianiu filtru nie zwróciłem uwagi na to, że chcę przefiltrować wartości faktu jako >= x, przy czym na raporcie przedstawiłem ten fakt jako już zagregowany.

Ale może na przykładzie z Sample Sales Reduced:

Mamy wymiary Product Type i Product - przy czym Product Type jest wyżej w hierarchii niż Product (grupuje produkty).

Mamy również fakt Revenue, który interesuje nas pod warunkiem, że jest >= 5000

uwaga-na-filtry

Spodziewamy się, że na raporcie zobaczymy produkty o dochodzie >= 5000

I tu UWAGA !!!

Oto co wychodzi:

uwaga-na-filtry-1

Zobaczmy ilość zafakturowanych (dodałem podsumowanie całkowite tabeli):

uwaga-na-filtry-3

Wszystko niby fajnie, ale dodajmy najniższy poziom hierarchii wymiaru (czyli zróbmy szczegółowy raport) – dodajemy sobie pole Order Key:

uwaga-na-filtry-4

A teraz zobaczmy na podsumowanie tabeli:

uwaga-na-filtry-5

Coś się ewidentnie nie zgadza, a konkretnie ilość zafakturowanych produktów jest mniejsza.

WNIOSEK

Dopiero na szczegółowym raporcie nasz filtr >=5000 zadziałał zgodnie z naszymi intencjami, to znaczy przefiltrowaliśmy sobie produkty powyżej 5000.

Na raporcie pierwszym mieliśmy zagregowane wartości faktów i one zawsze były większe niż 5000, więc pokazały się po prostu wszystkie produkty.

Categories: Answers, OBIEE Tags: , , ,

Nadpisywanie nazwy logicznej kolumny w repozytorium OBIEE

January 15th, 2010 No comments

Pracując w repozytorium OBIEE trzeba uważać na następującą rzecz:

Załóżmy, że mamy kolumnę logiczną “Saldo” jak w przykładzie poniżej:

nadpis1

Kolumna ta jest zmapowana do określonej kolumny fizycznej, co widać na zakładce Data Type:

nadpis2

Załóżmy teraz, że chcemy do tej samej tabeli logicznej “Fakty” (z poprzedniego screena) dodać kolumnę z zupełnie innej fizycznej lokalizacji – pechowo pole, które nas interesuje również nazywa się SALDO:

nadpis3

Choć pierwotnie nasze saldo w warstwie biznesowej mapuje się do pola jakaśtabela.saldo_wyliczane, to po przeciągnięciu naszego nowego pola SALDO z obrazka powyżej do źródła logicznego tabeli logicznej “Fakty” okazuje się, że utworzy nam się nowa kolumna logiczna SALDO, która przykryje kolumnę saldo, która tam już była.

Na zakładce Data Type jest oczywiście “po nowemu”:

nadpis4

czyli mamy teraz logiczną kolumnę SALDO, która idzie do innatabela.saldo w warstwie fizycznej.

Jeśli nie zwrócimy na to uwagi i zapiszemy sobie repozytorium, to wtedy nasze poprzednie saldo zacznie działać zupełnie inaczej (a tego byśmy nie chcieli – a użytkownicy w szczególności). Niestety na zakładce General w warstwie biznesowej zostaje poprzedni opis, co może skutkować tym, że zauważymy całe zamieszanie dopiero po jakimś czasie:

nadpis5

Wersja toola, na której to zauważyłem to

wersja-toola

Porównywanie dat w Answers (TIMESTAMPDIFF)

December 30th, 2009 2 comments

Jeśli chcemy porównać dwie daty w Answers OBIEE możemy to zrobić na przykład przy użyciu funkcji

TIMESTAMPDIFF(interval, expr, timestamp2)

gdzie:

interval

SQL_TSI_DAY,
SQL_TSI_WEEK,
SQL_TSI_MONTH,
SQL_TSI_QUARTER,
SQL_TSI_YEAR

oraz

SQL_TSI_SECOND,
SQL_TSI_MINUTE,
SQL_TSI_HOUR

(ale wtedy musimy mieć daty w formacie timestamp (z godzinami))

expr

pierwsza data do porównania

timestamp2

druga data do porównania

Przykład:

daty

Uzyskujemy różnicę w datach w postaci ilości dni:

daty1

Kostkę “Różnica dat” możemy wykorzystać do stwierdzenia, czy te daty są różne i o ile dni się różnią. Przy zastosowaniu innych wartości klauzuli interval możemy sprawdzać różnicę w sekundach, miesiącach czy latach.

Możemy sobie teraz przefiltrować np. tylko te rekordy, które mają różne daty, bądź daty różne od siebie np. o 3 dni …

Categories: Answers, OBIEE Tags: , , ,

Bezpośrednie zapytanie do bazy danych

December 8th, 2009 8 comments

Kilka uwag odnośnie bezpośredniego zapytania. Pisałem już o tym tutaj.

Plusy dodatnie:

1. Daje możliwość połączenia kostek z istniejących już w OBI obszarów zainteresowań z tabelami/widokami/materializowanymi widokami, których nie przewidywaliśmy w ogóle do objęcia BI’jem, oraz co nawet ciekawsze – z obiektami innej bazy danych (poprzez Database Links). Czyli możemy sobie zrobić w jednym zapytaniu klauzulę from tabela, tabela@inna_baza_danych. Bez grzebania w repozytorium.

Przydaje się to w sytuacjach, gdy potrzebujemy zrobić coś na szybko, lub raport jest potrzebny tylko np. jednej osobie do ściśle określonego celu.

2. Można sumować, ale na tabeli przestawnej, na tabeli zwykłej nie można (chodzi mi o podsumowanie całkowite)

3. Można pokolorować kolumny, można zrobić wykres, czyli nasze bezpośrednie zapytanie wygląda całkiem jak poważny raport :)

Oto tabela przestawna z prostego zapytania:

SELECT CALENDAR_YM_NAME,
CALENDAR_YM_DESC,
1 AS ilosc_dni
FROM times
WHERE year = 2009

times to standardowa tabela wymiaru czasu wygenerowana ze skryptu.

bezp

Plusy ujemne:

1. Problem z komentarzami:

SELECT CALENDAR_YM_NAME,
CALENDAR_YM_DESC,
1 AS ilosc_dni
–comment
FROM times
WHERE year = 2009

nie pójdzie …

2. Brak możliwości filtrowania w kryteriach zapytania – w pivocie można w ograniczonym zakresie. Najlepiej posortować sobie wcześniej SQL-em

3. Dla użytkownika, który ma mieć dostęp do wykonywania bezpośrednich zapytań należy dać uprawnienia:

- Wykonywanie bezpośrednich zapytań do bazy danych (w Administrowanie uprawnieniami/Aplikacja Answers)

- Edycja bezpośrednich zapytań do bazy danych (w Administrowanie uprawnieniami/Aplikacja Answers) – jeśli chcemy, żeby użytkownik mógł sam sobie to zapytanie edytować (z tym oczywiście ostrożnie)

- Direct Database Access w Administracji repozytorium: Manage/Security po wybraniu użytkownika(grupy) Permissions ustalamy Allow do odpowiedniej bazy:

bezp1

4. Bywa, że raport się nie uruchamia i niespecjalnie daje się wejść na kryteria żeby zobaczyć SQL-a. Raporty standardowo znajdują się w lokalizacji OracleBIData\web\catalog\XXX\root\shared… w postaci plików w formacie xml. Po skopiowaniu, trzeba zamienić ' na ‘ przy stringach, >= na > itp.

5. Kostki nie powinny mieć typu integer, tylko double oraz nie char tylko varchar – inaczej jest problem z prawidłowym wyświetlaniem wyników. Użycie funkcji cast załatwia sprawę (CAST(expr AS number) da nam double w Answers .

6. Zapytanie bezpośrednie “podpada” pod defaultowe ograniczenie zbyt wielu wyświetlanych wierszy.  Rozwiązanie tu: http://obiee101.blogspot.com/2008/02/obiee-controling-pivot-view-behavior.html (osobiście nie testowałem).

7. Lepiej używać do bezpośrednich zapytań IE, – u mnie w Firefoxie dłuższe SQL-e na zakładce kryteriów czasem ulegają dziwnemu obcięciu – choć samo zapytanie działa – ciekawe.

8. Nie możemy używać tego sposobu pisania zapytań w przypadku baz xml-owych takich jak Sample Sales (dostarczana z systemem). Przynajmniej mi się nie udało …

Po co nam ten BI, czyli uwagi po konferencji

November 28th, 2009 No comments

Ogólny wniosek jest taki, że BI ma się dobrze. Wygląda na to, że faktycznie jest tak, że jak kryzys, to do BIaja. Bo i gdzie szukać oszczędności, redukcji kosztów i przyspieszenia trudnych często decyzji ? Przecież nie w systemie ERP :)

Wszyscy mówili o tym, o czym ja przekonałem się na własne wdrożeniowe oczy – BI niejako wdraża się sam. Najlepiej zrobić małą prezentację (koniecznie na danych klienta) i już pojawiają się pierwsi “wyznawcy”.

Tradycyjne funkcje BI (łączenie systemów, analizy ad hoc tworzone przez użytkowników, synergia informacji zebranych z różnych źródeł, lepsza “komunikacja danych”, zastępowanie tradycyjnych systemów raportowych, pulpity do zarządzania wszystkim co możliwe) będą oraz bardziej wspomagane przez narzędzie prognozujące.

Bo skoro wiemy już jak było (BI + DWH), wiemy jak jest, to chcemy wiedzieć jak będzie.

Ja też myślę, że to przyszłość.

BI zawsze pozwala na utrzymanie organizacji na powierzchni, ale w czasie użytkowania systemu ludzie zaczynają szukać takiej przełomowej informacji, która pozwoli o tyle zwiększyć przewagę konkurencyjną, że firma w którymś momencie przestanie nerwowo oglądać się za siebie, a zacznie przewidywać co może stać się za chwilę.

I jeszcze jedno – BIaja nie wdrażają architekci, analitycy czy developerzy. Wdrażają go kluczowi użytkownicy. Jak się ich pozyska, wtedy sukces murowany. Ale tu uwaga – nie chodzi o gładkie konsultacyjne opowieści, raczej o zainspirowanie ich kreatywności poprzez pokazanie możliwości systemu na przykładowych raportach.

Categories: Info Tags: