čtvrtek 7. května 2009

Navigace mezi reporty s předáváním parametrů mezi různými oblastmi, tabulkami a sloupci

Potřebujete-li propojit více reportů do sebe s funkcionalitou předávání parametrů, pak na vybraném sloupci zdrojového reportu nastavíte „Navigaci“ odkazující se na report cílový, který na vybraných sloupcích obsahuje filtr s názvem „Obsahuje výzvu“.


Poté co uživatel klikne na hodnotu ve zdrojovém reportu je automaticky přesměrován do cílového reportu s tím, že cílový report vyfiltruje data dle zdrojových hodnot.
Vše funguje perfektně pokud pracujete v jedné cílové oblasti s identicky pojmenovanými tabulkami a sloupci (nebo aliasy), ale co když chcete propojovat reporty z úplně jiných oblastí, tabulek a jinak pojmenovaných sloupců?


Řešeních existuje několik:

1/ JavaScript GoNav
2/ URL GO API
3/ Navigace + filtr Obsahuje výzvu + pod dotaz
4/ .... určitě existují ještě další možnosti :)


1/ JavaScript GoNav
JavaScript GoNav je součástí BI Presentation Services a jeho kód je umístěn v souboru viewhelper.js. Použití je celkem jednoduché, ale stejně musíte část kódu napsat ručně a také vědět co napsat - tj. nic pro business uživatele, který preferuje jednoduché klikání myší. Hlavní nevýhodou je, že GoNav umožňuje předat pouze jeden parametr! (samozřejmě vám nic nebrání v tom, aby jste si na základě GoNav vytvořili vlastní funkci, která umožní více parametrů)

Detailní popis najdete v dokumentaci Oracle BI Presentation Services Administration Guide, kapitola Navigation Using JavaScript, str. 215.


2/ URL GO API
Předávání více parametrů (v současné verzi max. 6) mezi reporty řeší URL GO API. Jeho výhodou jsou jeho možnosti, kterých je opravdu hodně - využívá se např. pro integraci Oracle BI s externí aplikací. Nevýhodou je poměrně více ručního psaní než u GoNav a také větší složitost – opět nic pro business uživatele.

Detailní popis najdete v dokumentaci Oracle BI Presentation Services Administration Guide, kapitola Passing Filters to the Oracle BI Presentation Services Go URL Through a URL (Navigation), str. 212.


3/ Navigace + filtr Obsahuje výzvu + pod dotaz
Nedávno jsem spolu s Petrem Podbraným přišel na další možnost, která je mnohem jednodušší než ty předchozí (dá se klikat myší) a samozřejmě podporuje předávání více parametrů. Tato možnost využívá standardní Navigaci + filtr „Obsahuje výzvu“ a navíc ještě filtr založený na výsledcích jiného dotazu. Díky této kombinaci jsme schopni propojit jakékoli reporty a mezi nimi předávat hodnoty parametrů z různých cílových oblastí, tabulek a sloupců.


Jak na to a v čem je finta?
V mém případě budu mít dva reporty:
  1. Zdrojový report nad cílovou oblastí Analýza prodeje (česká metadata), sloupce Geografie.Stát, Období.Rok a Výnosy.Výnos

  2. Cílový report nad cílovou oblastí Paint (anglická metadata), sloupce Markets.Market, Periods.Year a SalesMeasures.Dollars
Funkcionalita: Jakmile uživatel klikne ve zdrojovém reportu na nějakou hodnotu sloupce Období.Rok bude automaticky přesměrován do cílového reportu - hodnota sloupce Období.Rok je předána do sloupce Periods.Year, hodnota sloupce Geografie.Stát je předána do sloupce Markets.Market.


1/ Vytvořte zdrojový report a na sloupce přes které chcete filtrovat / předávat parametry nastavte filtr „Obsahuje výzvu“ – první část finty (v mém případě sloupce pro filtr jsou Geografie.Stát a Období.Rok)


2. Vytvořte cílový report nad jinou oblastí (v mém případě nad oblastí Paint)


3. Do cílového reportu doplňte filtr/y založené na výsledcích jiného dotazu (toho zdrojového) – druhá část finty. Filtry postupně doplňte na všechny sloupce které se mají limitovat (v mém případě na Markets.Market a Periods.Year).

a/ tvorba filtru


b/ nastavení filtru – do pole „Uložený dotaz“ vyberte Váš zdrojový report a do pole „Použít hodnoty ve sloupci“ vyberte sloupec přes který chcete reporty svázat (v mém případě Periods.Year = Období.Rok).


c/ dle potřeby přidejte další filtry (v mém případě Markets.Market = Geografie.Stát)

Poznámka: menší nevýhoda toho řešení je v tom, že když cílový report spustíte samostatně tak obsahuje pouze informace za danou podmínku – tj. pouze ty řádky, které jsou totožné se zdrojovým reportem!

4. Otevřete zdrojový report a na sloupec přes který se bude navigovat doplňte Navigaci na cílový report.



Výsledkem je propojení dvou reportů s předáváním parametrů mezi různými oblastmi, tabulkami a sloupci:




Erik Eckhardt.

Žádné komentáře: