Wyobraźmy sobie taką sytuację iż mamy personel na poziomie centrali który monitoruje pracę w oddziałach oraz managerów tychże oddziałów. Celem jest stworzenie pulpitu wspólnego dla menadżerów zarówno w centrali jak i w oddziałach. Problem jest w tym ze menadżerowie w centrali chcą widzieć w pierwszej kolejności wyniki oddziałów, natomiast menedżerowie oddziałów chcą widzieć wyniki za które to oni są odpowiedzialni czyli: swoich sklepów/ pracowników itp/itd
W przykładach oprę się na schemacie Sample Sales dostarczany przez Oracla
A więc w schemacie tym mamy wymiar sklepu “Market”

Jak widać mamy tutaj Distrykty (nazwijmy je Oddziałami) oraz sklepy. Załóżmy że pracownik centrali chce obserwować wyniki na poziomie oddziałów zaś kierownicy oddziałów chcą obserwowac wyniki swoich sklepów. Jak napisałem wyżej chcemy aby odbyło sie to na wspólnym dla wszystkich pulpicie pt: Dochody
W tym celu musimy (o ile juz nie mamy) przypisac poszczególnych kierowników Oddziałów do wspolnej grupy która nazwiemy Oddzialy
na potrzeby tego tematu założę użytkownika Oddziału 1 o nazwie: Adam.Nowak
Dodam też tego uzytkownika grupy ODDZIALY

Stwórzmy dwa raporty jeden na potrzeby pracownika centrali – nazwiemy go Dochody w oddziałach

Drugi na potrzeby Oddziału 1 – nazwiemy go Dochody oddzału 1

Dodatkowo zróbmy prosty raport który będzie zwracał wynik o ile zaloguje się ktoś z oddziału
W tym celu użyjemy zmiennej GROUP która wyświetla nam do jakich grup prynależy uzytkownik oraz funkcji LOCATE która jest podobna do Funkcji INSTR znanej z wielu języków (w tym SQL) i zwraca numer znaku szukanego ciągu
Nasza funkcja wyglądać będzie następująco
LOCATE(VALUEOF(NQ_SESSION.GROUP),'ODDZIALY')
a cały raport tak:

Nieważna jest zawartość takiego raportu ważne że zwróci on wiersze wyłacznie gdy uzytkownik będzie należał do grupy ODDZIALY w innym pryzpadku funkcja LOCATE zwróci zero i rekordy zostaną odfiltrowane (brak wyników)
Raport ten posłuży nam jako raport warunkowy nawigacji sterowanej sekcji na pulpicie.
Stwórzmy więc pulpit o nazwie DOCHODY. Jak wspomniałem idea tego pulpitu że jest to jeden wspólny dla całej firmy pulpit do monitorowania dochodów lecz zależnie od stopnia manadżera widzi on różne raporty (bardziej szczegółowe dla manadżera oddziału , mniej szczegółowe dla manadżera w centrali.
Umieśćmy na tym pulpicie dwie sekcje i rozmieśćmy oba raporty: Dochody w oddziałach i Dochody oddzału 1 – każdy w osobnej sekcji.
Teraz każdą z sekcji oznaczamy iż ma byś sterowana poprzez funkcję Nawigacji Sterowanej. Jako raport sterujący wybieramy raport z funkcją LOCATE utworzony poprzednio i dla pierwszej sekcji oznaczamy iż sekcja ma się pokazywać gdy raport nie zwaraca żadnych wierszy


Natomiast w drugiej sekcji ustawmy odwrotnie czyli opcję Jeśli raport zwraca wiersze
Teraz możemy przetestować pulpit. Logując się jako użytkownik nie należący do grupy ODDZIALY zobaczymy pulpit z raportem przeznaczonym dla centrali:

Natomiast logując się jako pracownik Oddziału Adam Nowak widzimy pulpit z raportem przygotowanym dla oddziału:

Zauważmy że raport przeznaczony dla oddziału wstępnie przefiltrowaliśmy dla oddziału 1 – oczywiście powiiniśmy zastosować dynamiczne filtrowanie w zależnośći z jakiego oddziału pochodzi uzytkownik logujący się do OBI – tak aby Manager Oddziału 1 widział dane Oddziału 1, Manager oddziału 2 – dane oddziału 2 itd. Zagadnienie to jest szczegółowo poruszone w tutorianu dostępnym na OTN ie – Ja też za parę dni sprobuję pokazać/ przypomnieć jak dla naszego stworzonego pulpitu filtrować dane dynamicznie.
Uff – cięzko mi idzie ale mam nadzieję że się rozkręcę

