Zobrazují se příspěvky se štítkemExperts Bootcamp. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemExperts Bootcamp. Zobrazit všechny příspěvky

pondělí 28. května 2012

9. Oracle Czech BI/DW Experts Bootcamp

V pátek 25.5.2012 proběhl již 9. Oracle Czech BI/DW/DIS Experts Bootcamp, kterého se zúčastnilo 13 vybraných konzultantů a architektů od 12 partnerů:
  • Jan Jůza (CCA)
  • Karel Hübl (GEMsystem)
  • Lukáš Hrnčíř (Neit Consulting)
  • Richard Sklenařík (NESS Logos)
  • Jiří Zamouřil (Oracle Consulting)
  • Petr Zeman (OKsystem)
  • Martin Čevela (Fujitsu)
  • Jiří Doubravský (Pike Electronic)
  • Petr Šimbera (Simora)
  • Jakub Genža (Sophia Solutions)
  • Michal Zima (Teura)
  • Václav Bíba (Teura)
  • Petr Jurászek (Infinity)
  • Erik Eckhardt, Josef Krejčí, Petr Podbraný, David Krch (Oracle Presales)

Prezentace:

I. Novinky Oracle:
II. Tipy, triky a zkušenosti z BI/DW/DIS projektů:

pondělí 5. prosince 2011

8. Oracle Czech BI/DW Experts Bootcamp

V pátek 25.11.2011 proběhl již 8. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 15 vybraných konzultantů a architektů od 13 BI/DW partnerů:

  • Jan Jůza (CCA)
  • Vojtěch Šíp (Datacons)
  • Karel Hübl (GEMsystem)
  • Jan Nožka (Neit Consulting)
  • Michal Tomek (Neit Consulting)
  • Richard Sklenařík (NESS Logos)
  • Jiří Zamouřil (Oracle Consulting)
  • Petr Zeman (OKsystem)
  • Martin Čevela (O2 Business Solutions)
  • Jiří Doubravský (Pike Electronic)
  • Michal Kaštovský (Sefira)
  • Petr Šimbera (Simora)
  • Jakub Genža (Sophia Solutions)
  • Michal Zima (Teura)
  • Václav Bíba (Teura)
  • Erik Eckhardt, Josef Krejčí, Petr Podbraný, David Krch (Oracle Presales)

Agenda setkání a prezentace:

Novinky Oracle I. část
Tipy, triky a zkušenosti z BI/DW/DIS projektů
Novinky Oracle II. část

pondělí 23. května 2011

7. Oracle Czech BI/DW Experts Bootcamp

V pátek 20.5.2011 proběhl již 7. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 13 vybraných konzultantů a architektů od 11 Oracle partnerů:
  • Jiří Zamouřil (Oracle Consulting)
  • Petr Šimbera (Simora)
  • Jan Jůza (CCA)
  • Karel Hübl (GEMsystem)
  • Jiří Doubravský (Pike Electronic)
  • Jiří Bohuslav (Sophia Solutions)
  • Petr Kovář (SITEWELL)
  • Richard Sklenařík (NESS Logos)
  • Jan Nožka (Neit Consulting)
  • Michal Kaštovský (Sefira)
  • Jaroslav Oplíštil (Adastra)
  • Martin Čevela (O2 Business Solutions)
  • Jakub Illner (Oracle Consulting)

  • Erik Eckhardt, Josef Krejčí, Petr Podbraný (Oracle Presales)

Agenda setkání a prezentace:

I. část - Tipy, triky a zkušenosti z BI/DW projektů:

II. část - Novinky z Oracle

pondělí 6. prosince 2010

6. Oracle Czech BI/DW Experts Bootcamp

V pátek 3.12.2010 proběhl již 6. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 14 vybraných konzultantů a architektů od 10 Oracle partnerů:
  • Jiří Zamouřil (Oracle Consulting)
  • Vít Hlaváček (Oracle Consulting)
  • Petr Šimbera (Simora)
  • Jan Jůza (CCA)
  • Karel Hübl (GEMsystem)
  • Václav Bíba (Teura)
  • Michal Zima (Teura)
  • Petr Zeman (OKsystem)
  • Petr Kříž (OKsystem)
  • Jiří Doubravský (Pike Electronic)
  • Jakub Genža (CapGemini)
  • Vojtěch Šíp (DATACONS)
  • Michla Nový (Aquasoft)
  • Radan Návrat (T-Systems)

Agenda setkání a prezentace:

pondělí 31. května 2010

5. Oracle Czech BI/DW Experts Bootcamp

V pátek 28.05.2010 proběhl již 5. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 13 vybraných konzultantů a architektů od 10 Oracle partnerů + dva zástupci ze strany zákazníka:
  • Jiří Zamouřil (Oracle Consulting)
  • Jan Jůza (CCA)
  • Karel Hübl (GEMsystem)
  • Václav Bíba (Teura)
  • Michal Zima (Teura)
  • Petr Zeman (OKsystem)
  • Petr Kříž (OKsystem)
  • Jiří Doubravský (Pike Electronic)
  • Jakub Genža (CapGemini)
  • Jiří Bohuslav (CapGemini)
  • Vojtěch Šíp (DATACONS)
  • Petr Šimbera (Simora)
  • Petr Jurászek (ITsystems)

  • Radek Matyáš (Vodafone)
  • Lukáš Flek (Vodafone)

Agenda setkání:
  • Zahájení / představení
  • Novinky - Co se stalo od posledního 4. Bootcampu
  • Zákaznická půlhodinka (Případová studie)
  • 1. workshop
    - Tipy, triky a zkušenosti z BI/DW projektů
    - Co se vyřešit nepodařilo
  • Novinky – Co je nového v Oracle
  • Společný oběd a ubytování
  • 2. workshop
    - Vyjednávání a strategie při budování BI/DW řešení
  • Večeře, volná diskuse a zábava ...

Prezentace:

Hlavní prezentace z 5. Oracle Czech BI/DW Experts Bootcampu

Zákaznická půlhodinka (Případová studie)
Prezentace z 1. workshopu - Tipy, triky a zkušenosti z BI/DW projektů:

pondělí 23. listopadu 2009

4. Oracle Czech BI/DW Experts Bootcamp

V pátek 20.11.2009 proběhl již 4. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 14 vybraných konzultantů a architektů od 12 Oracle partnerů:
  • Jaroslav Vlček (Adastra)
  • Jan Jůza (CCA)
  • Karel Hübl (GEM system)
  • Michal Tomek (Neit Consulting)
  • Lukáš Hrnčíř (Neit Consulting)
  • Václav Bíba (Ness Logos)
  • Petr Zeman (OKsystem)
  • Jiří Doubravský (Pike Electronic)
  • Jakub Genža (CapGemini)
  • Jiří Zamouřil (Oracle Consulting)
  • Martin Gerneš (Oracle Consulting)
  • Michal Zima (Teura)
  • Martin Cabák (Reporters)
  • Peter Hora (Sementa)

Agenda setkání:

Prezentace z 1. workshopu - Tipy, triky a zkušenosti z BI/DW projektů:

Erik Eckhardt (Oracle)
  • Zvýšení produktivity vývoje s ODI - Tvorba, úpravy a spouštění více jak +900 datových přenosů
Karel Hubl (GEM System)
  • Efektivní datové integrace s ODI
  • OBI 10.1.3.4.1 – Problém s filtry pro numerické datové typy
Michal Tomek (NEIT Consulting)
  • Essbase - trigger pro instalaci HSS
  • Posílání reportů z linuxového Publisheru na windowsový fileserver
  • 64bitová Essbase pro Linux
Jan Jůza (CCA)
  • Tipy, triky a zkušenosti z projektu „Převod analýz z Excelu do Oracle BI”
Jiří Doubravský (PIKE)
  • Použití kombinace funkcí Time Series (AGO a TODATE)
  • Doplnění legendy do reportu přes XML
  • Vliv nevhodného pojmenování časového údaje na použití v promptu
Michal Zima (Teura)
  • Zkušenosti s implementací OBIEE v clusteru
Jakub Genža (Capgemini Sophias)
  • Jak v OBI změnit defaultní menu pomocí currencies.xml (zkusenost z BIAPPS)
  • Jak v BIAPPS/ODI resetovat/vymazat jen jeden z modulů, ne celý warehouse (není zdokumentováno)
  • Jak odstranit v Answers při filtrování odkaz "Omezené volby", který může vygenerovat dost narocný dotaz
Jaroslav Vlček (Adastra)
  • BI Delivers versus autentifikace proti DB
Lukáš Hrnčíř (NEIT Consulting)
  • Transformace datových a report požadavků do designu metadat a designu reportů
Martin Gerneš (Oracle Consulting)
  • Integrace OBI EE, SSO, OAM, OID
  • Operátorská konzole pro OWB a ODI
Peter Hora (Semanta)
  • Komentáře a diskuze pro Oracle BI

pondělí 18. května 2009

3. Oracle Czech BI/DW Experts Bootcamp

V pátek 15.5.2009 proběhl 3. Oracle Czech BI/DW Experts Bootcamp na téma Oracle Data Integrator a Oracle EXADATA. Bootcampu se zúčastnilo 16 vybraných konzultantů a architektů od 13 Oracle partnerů:
  • Radan Návrat (Adastra)
  • Václav Bahník (Asseco)
  • Jiří Ludwig (BQS Consulting)
  • Petr Šimbera (BQS Consulting)
  • Bronislav Lukáš(BSC)
  • Jakub Genža (Capgemini Sophia)
  • Jiří Bohuslav (Capgemini Sophia)
  • Karel Jelínek (CCA)
  • Karel Hubl (GEM System)
  • Petr Jurászek (IT Systems)
  • Lukáš Hrnčíř (NEIT Consulting)
  • Václav Bíba (NESS)
  • Petr Zemanp (OK System)
  • Jiří Zamouřil (Oracle Consulting)
  • Jiří Doubravský (PIKE Electronic)
  • Oleg Svatoš (TEURA)

Agenda setkání byla následující:

Prezentace z 1. workshop - Tipy, triky a zkušenosti z BI/DW projektů:
10 prezentujících, 11 příspěvků:

Jiří Doubravský (PIKE)
Jakub Genža (Capgemini Sophia)
Petr Šimbera (BQS Consulting)
  • Pokročilé modelování metadata repository
Lukáš Hrnčíř (NEIT)
Oleg Svatoš (Teura)
Petr Jurášek (IT Systems)
Karel Jelínek (CCA)
Karel Hubl (GEM System)
Petr Zeman (OK System)
Jiří Zamouřil (Oracle)

pondělí 2. února 2009

SA System - automatické nastavení uživatelských profilů

Co to je?
SA System je systémový prezentační katalog, ve kterém můžeme předat základní informace o uživateli (jméno, skupiny, kontaktní údaje, ...) přímo prezentačnímu serveru. Ten tyto informace dokáže užitečně použít například v komponentě BI Delivers.


Příklad využití
Pomocí BI Delivers lze rozesílat emaily. Protože v definici iBotu (procesu v BI Delivers) jsou jako adresáti vybíráni uživatelé analytického systému, je nutné všem uživatelům přiřadit emailovou adresu. To se děje standardně tak, že každý uživatel si po přihlášení do systému vytvoří vlastní profil s emailovou adresou v sekci „Můj účet“. Jde tedy o nastavení, které nemá administrátor pod kontrolou.
Definice systémového katalogu „SA System“ je možnost, jak nastavení uživatelských profilů vytvořit a udržovat hromadně.


Jak na to?
Použití SA System katalogu je velmi jednoduché. Je třeba v metavrstvě vytvořit prezentační katalog se specifickým jménem a specifickou strukturou záznamů.


Prezentační katalog je samozřejmě nutno odvodit z Business Modelu resp. tabulek v databázi. Zde se jednotlivá řešení mohou rozcházet, záleží zejména na způsobu, jakým je v systému vyřešena autorizace a autentifikace. Obvykle ale vycházíme z databázové tabulky, ve které máme uloženy zejména tyto informace (pro účely zasílání mailů):
  • uživatelské jméno
  • emailová adresa
  • formát emailů (html / plain text)
  • priorita emailu

Tyto sloupce je třeba provázat až do připraveného prezentačního katalogu do odpovídajících sloupců. U ostatních sloupců, které v našem příkladě nevyužíváme, je nastavíme na úrovni Business Modelu inicializační hodnoty (konstatnty).


Kontrola výsledku
Pokud je vše nakonfigurováno správně, v sekci „Můj účet“ se každému uživateli objeví nový systémový profil i způsob doručení (systémový e-mail, systémový profil).


Pak už jen stačí vytvořit iBot, určit seznam příjemců a proces doručí report či dashboard na námi definované e-mailové adresy.


Tip na závěr
Abychom měli absolutní kontrolu nad uživatelskými profily, je třeba uživatelům zakázat možnost přidávání vlastních profilů a jejich aktivaci.

Varianta 1) Nastavení způsobů doručení a profilů je možné zakázat v menu – Administration – Manage privileges – My Account – Change Delivery Options. V tomto případě si ale uživatel nemůže zkontrolovat náležitosti systémově nastaveného profilu – odpovídající část v sekci „Můj účet“ úplně zmizí.

Varianta 2) Je možné zakázat jen zobrazení příslušných odkazů v nastavení účtu „Ad Delivery Profile“ případně „Ad Device“. Toho dosáhneme vytvořením vlastního XML souboru, kterým potlačíme defaultní zobrazení požadovaných komponent:


Tento XML soubor uložíme do adresáře $ORACLE_BI\web\msgdb\customMessages\
a restartujem službu Oracle BI Presentation Server.



Jakub Genža (Sophia Solutions).

pondělí 15. prosince 2008

Zkušenosti s vytvářením, používaním a výkonností vlastních ukazatelů

V následujícím příspěvku uvádím zkušenosti s vytvářením, používaním a výkonností vlastních ukazatelů (počítaných sloupců). Příspěvek navazuje na článek Dva způsoby jak definovat vlastní výpočty (ukazatele) v Business modelu.

Vlastní ukazatel (např. početní operace nad hodnotami dvou sloupců) lze definovat následujícími způsoby:
  1. Přímo při návrhu reportu
  2. Pomocí metadat použitím logických sloupců
  3. Pomocí metadat použitím fyzických sloupců

1. Při návrhu reportu
  • Jednoduché a rychlé nastavení
  • Vhodné při neopakovaném používání ukazatele (ukazatel je dostupný pouze v reportu kde je vytvořen)
  • Samotný výpočet je prováděn nad agregovanými nebo detailními ukazateli (záleží na tom zda výchozí ukazatel měl v metadata vrstvě přednastavenu agregační funkci)
  • Při nesprávném pochopení ukazatele z něhož se vychází a použití výpočetní funkce se může dojít k chybnému/nechtěnému výsledku (např. zprůměrovat již součtované ukazatele nebo viz. zde)
  • Doporučuji používat pouze v případě, kdy zdrojové sloupce jsou také obsahem reportu
  • V případě použití sloupců, které nejsou obsahem reportu má fyzický dotaz vysoký COST, který může narůst až o 6 řádů
  • Tento způsob využijí spíše koncoví uživatelé pro Ad-hoc potřebu


2. Pomocí metadat použitím logických sloupců
  • Výraz může odkazovat na sloupce/ukazatele v dané logické tabulce (i z více zdrojů)
  • Nejprve je prováděna agregace, a pak výpočet nového sloupce což může ovlivnit správnost / nesprávnost výsledků – více viz. zde
  • Pokud je odkazovaný sloupec obsahem reportu, tak je vše OK. Pokud není, pak fyzický dotaz má vysoký COST
  • Ukazatel je pojmenován a delegován až do prezentační vrstvy – je možné jej opakovaně používat

Ukázka výsledného dotazu:
WITH sawith0 AS
(SELECT DISTINCT t17101.is_on_us_flag AS c1, t1339.date_dt AS c2
FROM l1_owner.d_date t1339, l2_owner.a_stat_atm_agg t17101
WHERE (t1339.date_dt = t17101.audit_id)),
sawith1 AS
(SELECT SUM (t17101.amt_amt) AS c1, t1339.date_dt AS c2
FROM l1_owner.d_date t1339, l2_owner.a_stat_atm_agg t17101
WHERE (t1339.date_dt = t17101.audit_id)
GROUP BY t1339.date_dt)
SELECT DISTINCT CASE
WHEN sawith0.c2 IS NOT NULL
THEN sawith0.c2
WHEN sawith1.c2 IS NOT NULL
THEN sawith1.c2
END AS c1,
CASE
WHEN sawith0.c1 = '1'
THEN sawith1.c1
ELSE 0
END AS c2
FROM sawith0 FULL OUTER JOIN sawith1 ON sawith0.c2 = sawith1.c2
ORDER BY c1



3. Pomocí metadat použitím fyzických sloupců

  • Výraz může odkazovat na sloupce v připojených fyzických tabulkách (source)
  • Nejprve je prováděn výpočet, a pak agregace nového sloupce což může ovlivnit správnost / nesprávnost výsledků – více viz. zde
  • „Nepatrný“ COST fyzického dotazu a to ať jsou nebo nejsou zdrojové sloupce použity v reportu
  • Ukazatel je pojmenován a delegován až do prezentační vrstvy – je možné jej opakovaně používat

Ukázka výsledného dotazu:
SELECT t1339.date_dt AS c1,
SUM
(CASE
WHEN NOT t5199.resp_code_cd LIKE '00%'
THEN t17101.trn_cnt
ELSE 0
END
) AS c2
FROM l1_owner.d_date t1339,
lookup_owner.d_response_code t5199,
l2_owner.a_stat_atm_agg t17101
WHERE ( t1339.date_dt = t17101.audit_id
AND t5199.response_code_id = t17101.resp_cde_id
)
GROUP BY t1339.date_dt
ORDER BY c1



Závěr
Z výše uvedených informací vyplývá mé doporučení - pro definici vlastních ukazatelů používat v maximální míře fyzických sloupců:
  • Ukazatel je delegován až do prezentační vrstvy, takže jej lze opakovaně použít samotnými koncovými uživateli
  • Není limitováno dalším způsobem použití (viz koncové dotazy)
  • Nižší COST fyzického dotazu


Miroslav Petr (Adastra).

pondělí 24. listopadu 2008

Optimalizace dotazů s použitím HINTů

V tomto příspěvku bych se chtěl podělit o zkušenost s atributem Hint, který jsme byli nuceni použít z důvodu optimalizace dotazů.

Po implementaci dashboardu u jednoho nejmenovaného klienta doba trvání všech dotazů probíhala v požadovaných časech (1-3 sekundy). Cca 2 měsíce po nasazení do produkčního provozu došlo k náhlému poklesu výkonnosti dotazů až na několik desítek minut. Toto bylo způsobeno tím, že faktové tabulky se měsíčně „rozmnožovaly“ o cca 10 miliónů záznamů.

Optimalizaci jsme se rozhodli vyřešit nasazením atributů hint v metadatech přímo u fyzické tabulky. Po nasazení se výkon dotazů vrátil do původních požadovaných časových intervalů (u některých dotazů byla doba trvání dotazu dokonce nižší než po zahájení produkčního provozu).

Pro nastavení jednoho HINTu vše funguje jak má:

Např. syntaxe pro použití konkrétního indexu je: INDEX(název_tabulky, název_indexu) Hint se uvádí u tabulek ve Fyzické vrstvě metadata repository:



My jsme ale museli řešit požadavek, kdy u daného dotazu se mohly zadat různé filtry (podmínky) na více hlavních atributů – vždy alespoň na jeden z nich. Na každý daný hlavní atribut byl v databázi použit index na který jsme chtěli nastavit hint. Syntaxe použití více hintů najednou je (opět pro index) tato (oddělovačem je mezera):

INDEX(název_tabulky, název_indexu) INDEX(název_tabulky, název_indexu) INDEX(název_tabulky, název_indexu)
Bohužel použitá verze OBI EE (10.1.3.3.0) neumí tento zápis rozklíčovat.

Řešení je jednoduché („vypocené“): pro 2. a další hint se nesmí použít název fyzické tabulky, ale její alias, pod kterým je uvedena ve výsledném fyzickém SQL.

Naštěstí je tento alias neměnný (zřejmě se generuje z identifikátoru, pod kterým je tabulka uložená v metadatech).

Příklad:

INDEX(F_ATM, IDX_ATM_CARD) INDEX(T1391, IDX_ATM_TERM) INDEX(T1391, IDX_ATM_POSTDAT_AUDIT)



Miroslav Petr (konzultant společnosti Adastra).

čtvrtek 13. listopadu 2008

Jak s pomocí BI Delivers ukládat sestavy BI Answers do souborů

Článek popisuje postup jak s pomocí komponenty BI Delivers lze generovat reporty vytvořené v BI Answers přímo do souborů na filesystému. Podmínkou fungování je zprovoznění služby Oracle BI Scheduler - postup najdete zde.


1. NASTAVENÍ SLUŽBY JAVAHOST PRO ODESÍLÁNÍ IBOTŮ DO VLASTNÍCH JAVA TŘÍD

Konfigurační soubor služby JavaHost je na cestě [OracleBI]\web\javahost\config\config.xml. V tomto souboru je třeba nastavit v tagu "Scheduler" hodnotu "Enabled" na „True“ a přidat nebo odkomentovat tag "DefaultUserJarFilePath". Celý tag pak vypadá takto:


Dále je nutné zvýšit výchozí hodnoty pro PDF a InputStream (změňte nebo přidejte kamkoliv do config.xml):


Uložte soubor a přestartujte službu Oracle BI Java Host.


2. VLASTNÍ JAVA TŘÍDA PRO UKLÁDÁNÍ REPORTŮ DO SOUBORU

Pro vytvoření jednoduchého programu pro ukládání reportů do souboru jsem použil DeliveryManager API, které je součástí Oracle BI Publisheru a Scheduler API. Tato API jsou obsažená ve třech souborech *.jar, které je třeba přibalit do vlastního *.jar souboru s programem. Jsou to následující: xdocore.jar, versioninfo.jar a schedulerrpccalls.jar.

Vytvořený soubor jsem pojmenoval okdeliver.jar. Abyste mohli vlastní třídu používat, umístěte soubor okdeliver.jar na BI server na cestu, kterou jste nastavili v předchozím kroku jako DefaultUserJarFilePath. Třída samotná je nazvaná cz.oksystem.mis.delivery.Deliver. Tento plný název je třeba uvádět v místě jejího použití (viz níže). Zdrojový kód třídy je uveden na konci článku.


3. PRESENTATION SERVICES A OPRÁVNĚNÍ PRO PRÁCI S DELIVERY

Po instalaci Oracle BI nemá v Presentation Services nikdo oprávnění pro práci s iBoty a Delivery. To je třeba přidat. Přihlaste se proto jako uživatel ze skupiny Administrators – například Administrator k webovému rozhraní Presentation Services a zvolte Nastavení – Správa v pravé horní části okna. Otevře se okno pro administraci Prezentation Services:


Zde zvolte první odkaz –Správa – skupiny a uživatele Katalog prezentace. Zvolte Upravit u skupiny Presentation Server Administrators, dále pak Přidat nového člena – Zobrazit uživatele a skupiny a nakonec klikněte na Přidat u uživatele SchedulerAdmin.


Dvakrát potvrďte operaci tlačítkem Dokončeno. Pokračujte kliknutím na odkaz Správa oprávnění a dále srolujte k části s oprávněními pro Delivers:


Klikněte na odkaz „není povoleno“ na každém řádku v části Delivers a přidejte oprávnění pro skupinu Presentation Server Administrators. Akci potvrďte tlačítkem Dokončeno. Jakmile budete mít přidělena oprávnění tak, jak je vidět na obrázku výše, potvrďte celou akci tlačítkem Dokončeno v horní části okna a nakonec klikněte na tlačítko Zavřít okno.

DŮLEŽITÁ POZNÁMKA: Pokud autentizace BI je nastavena proti externímu zdroji, nesmí být uživatel, který vytváří a spouští iBoty současně v metadata repository. Pokud se tak stane, nebude probíhat spouštění iBotů (chyba: [nQSError: 10018] Access for the requested connection is refused. [nQSError: 13024] Successful completion of init block 'AUTH_IB' is required.).

V testovacím prostředí byl založen uživatel iBoter pouze v LDAP, zařazený do skupiny Administrators. Pod tímto uživatelem je třeba se jednou přihlásit a odhlásit, aby vznikl jeho záznam v Presentation Services katalogu. Poté se přihlašte jako Administrator a přidejte ho do skupiny Presentation Server Administrators jak je popsáno výše. Všechny další kroky při vytváření a správě iBotů provádějte jako uživatel iBoter. Uživatel SchedulerAdmin, který je superuživatelem pro službu Oracle BI Scheduler musí být zařazený v Presentation Server Administrators v každém případě! (jinak nastane při provádění iBotu chyba: [nQSError: 77006] Oracle BI Presentation Server Error: Access denied.).


4. VYTVOŘENÍ IBOTU A NASTAVENÍ JEHO DORUČENÍ DO VLASTNÍ TŘÍDY

Ve webovém rozhraní Presentation Services zvolte Další produkty – Delivers. Dále klikněte na odkaz Vytvořit nového agenta iBot. Na následujícím obrázku je vidět okno se záložkami pro vytváření a konfiguraci iBotů:


První záložka, kterou budete měnit (pokud je třeba) je Plán (konfigurace pro Scheduler). Zde je nastaveno jako výchozí jednorázové okamžité vykonání iBota. Nastavte plán podle vlastních požadavků. Dále na záložce Adresáti ponechte označeno „Já“ (musí být alespoň jeden adresát iBota, jinak iBot nevrátí žádná data). Na záložce Obsah doručení vyberte sestavu, která má být iBotem vykonávána (tlačítko Vybrat obsah...) a potom zvolte v roletě „Odeslat obsah jako“ příslušný formát (např. Příloha (PDF)). Otestované jako funkční jsou formáty PDF, CSV, XLS (Excel i Excel 2000). Na záložce Cíle odznačte všechna zaškrtnutá pole a zaškrtněte pouze Oracle BI Server Mezipaměť v sekci Systémové služby.

Nejdůležitější část konfigurace iBotu provedete na záložce Pokročilé. Klikněte na první tlačítko Přidat akci a z nabídky zvolte „vlastní program Java“ . Do pole Název třídy vyplňte cz.oksystem.mis.delivery.Deliver. Do pole Cesta třídy napište okdeliver.jar. Přepněte radibuton Výsledky na hodnotu „Předat programu Java obsah doručení“ a přidejte dva Jiné parametry. První uvádí cestu souboru včetně jeho názvu bez koncovky a druhý uvádí koncovku (typ) souboru. Koncovka musí odpovídat zvolenému formátu odesílaného obsahu (viz Odeslat obsah jako na záložce Obsah doručení). Na obrázku níže si všimněte především dvojitých zpětných lomítek v uváděné cestě:


Třída Deliver přidá k názvu souboru ještě časové razítko ve formátu _rrrr-MM-dd-hh-mm-ss a soubor uloží v příslušném formátu na uvedenou cestu (adresáře v cestě musejí existovat).


Zdrojový kód třídy cz.oksystem.mis.delivery.Deliver

package cz.oksystem.mis.delivery;

import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJavaExtension;
import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJobException;
import com.siebel.analytics.scheduler.javahostrpccalls.SchedulerJobInfo;
import java.io.FileInputStream;
import java.sql.Timestamp;
import java.util.Date;
import java.util.StringTokenizer;
import oracle.apps.xdo.delivery.DeliveryManager;
import oracle.apps.xdo.delivery.DeliveryRequest;
import oracle.apps.xdo.delivery.local.LocalPropertyDefinitions;

public class Deliver implements SchedulerJavaExtension{

public Deliver() {
}

public void run(SchedulerJobInfo jobInfo) throws SchedulerJobException {
try {
String filename = "c:\\mis-import\\sestava";
String extense = "pdf";
if (jobInfo.parameterCount() > 0) {
filename = jobInfo.parameter(0);
extense = jobInfo.parameter(1);
}
Date dnes = new Date();
Timestamp timestamp = new Timestamp(dnes.getTime());
String razitko = timestamp.toString();
razitko = replaceAllWords(razitko," ", "-");
razitko = replaceAllWords(razitko,":", "-");
razitko = razitko.substring(0,razitko.length()-4);
String cesta = filename + "_" + razitko + "." + extense;
FileInputStream fileInputStr = new FileInputStream(jobInfo.getResultSetFile());
DeliveryManager delMan = new DeliveryManager();
DeliveryRequest delReq = delMan.createRequest(DeliveryManager.TYPE_LOCAL);
delReq.addProperty(LocalPropertyDefinitions.LOCAL_DESTINATION, cesta);
delReq.setDocument(fileInputStr);
delReq.submit();
delReq.close();
}
catch(Exception ex) {
throw new SchedulerJobException(1, 1, ex.getMessage());
}
}

public void cancel() {
}

private String replaceAllWords(String original, String find, String replacement) {
StringBuilder result = new StringBuilder(original.length());
String delimiters = "$+-*/(),.: ";
StringTokenizer st = new StringTokenizer(original, delimiters, true);
String navrat = null;
while (st.hasMoreTokens()) {
String w = st.nextToken();
if (w.equals(find)) {
result.append(replacement);
} else {
result.append(w);
}
}
navrat = result.toString();
return navrat;
}
}



Petr Zeman (konzultant společnosti OKsystem).

pondělí 3. listopadu 2008

2. Oracle Czech BI/DW Experts Bootcamp

V pátek 31.10.2008 proběhl 2. Oracle Czech BI/DW Experts Bootcamp, kterého se zúčastnilo 18 vybraných konzultantů od 13 Oracle partnerů:
  • Jaroslav Vlček (Adastra)
  • Miroslav Petr (Adastra)
  • Jan Gottinger (CCA)
  • Jan Pospíšil (CD Telematika)
  • Petr Jurászek (IT SYSTEMS)
  • Radovan Man (K2 atmitec)
  • David Glivický (K2 atmitec)
  • Václav Bíba (NESS|Logos)
  • Jindřich Štěpánek (OK system)
  • Petr Zeman (OK system)
  • Jiří Doubravský (Pike Electronics)
  • Michal Tomek (Neit Consulting)
  • Lukáš Hrnčíř (Neit Consulting)
  • Jiří Bohuslav (Sophias)
  • Jakub Genža (Sophias)
  • Michal Kocman (Telefónica O2 Services)
  • Michal Zima (Teura)
  • Peter Hora (Semanta)

Agenda setkání byla následující:

09:30 Zahájení a představení
09:40 Předání cen

09:45 Novinky – Oracle Exadata

10:00 1. workshop – Tipy, triky a zkušenosti z projektů

12:00 Oběd

13:15 1. workshop – Tipy, triky a zkušenosti z projektů (pokračování)

15:15 Novinky – Oracle Essbase

15:30 2. workshop – Co jsem v dokumentaci nenašel

17:30 Novinky – Oracle BI 10.1.3.4.0

17:45 Metalink3

18:00 Večeře, volná diskuse a zábava ...


Prezentace z 1. workshopu – Tipy, triky a zkušenosti z projektů:
13 prezentujících, 28 příspěvků:

Jan Gottinger (CCA)
  1. Autentizace pomocí SSO
  2. Distribuce změn k zákazníkům
  3. Spojení 2 tabulek (union)
  4. Instalace OBI do prostředí VMware

Petr Zeman (OK System)
  1. BI Delivers a generování reportů do file systemu
  2. BI Publisher a integrace s BI Serverem a LDAPem
  3. Latin2 a ODBC na Linux/Unix platformě

Václav Bíba (Ness | Logos)
  1. „Nedimenzionální“ reporting v OBIEE
  2. Problém kumulací v pivot tabulce
  3. Informace o počtu záznamů sestavy

Radovan Man (K2)
  1. Integrace Oracle BI do IS K2 (Komunikace s OBI pomocí webové služby a GO URL)
  2. HTML stránky získané pomocí WS a GO URL obsahují v cestách k javascriptům a kaskádovým stylům předponu „Missing_“

Jakub Genža (Sophias)
  1. Použití writebacku pro stanovení hranic tachometru + zjištění omezení
  2. Možnost uživatelské změny svého hesla na strance „My Account“ včetně grafické úpravy
  3. Nastavení Delivery profilu (především email adresy) pomocí SA SYSTEM Subject Area pro použití v BI Delivers

Jiří Bohuslav (Sophias)
  1. Problémy s registrací a odregistrací lokací v OWB (uložení registračních údajů, nechtěná ztráta runtime history)

Miroslav Petr (Adastra)
  1. Zkušenosti s vytvářením, používaním a výkonností vlastních ukazatelů
  2. Optimalizace dotazů v OBI s použitím hints


Jiří Doubravský (PIKE)
  1. Použití zobrazení “výběr sloupce“ pro výběr hodnoty hierarchie

Michal Tomek (NEIT)
  1. Downgrade repository např. 10.1.3.3.2 -> 10.1.3.3.1

Michal Kocman (O2 Services)
  1. Nevyrovnaná stromová struktura dimenze, hierachie s rozdílnými listovými úrovněmi
  2. Přechod od Expressu bez AWM, velký objem AW => rozdělení, výpočty

Petr Jurášek (IT Systems)
  1. Zvláštní nápočty penetrací

Peter Hora (Semanta)
  1. Embedded video v reporte
  2. Simulacia výstupu waterfall chart
  3. Ergonomie reportov

Michal Zima (Teura)
  1. Jak nejlépe přistupovat k vývoji, testování a produkci u metadata repository
  2. Jak nejlépe přistupovat k vývoji, testování a produkci u web katalogu

pondělí 30. června 2008

Klonování reportů pomocí XML zobrazení

Omlouvám se za poněkud brutální metodu výroby reportů, ale byla vyvolána potřebou vyvinout poměrně rychle sadu reportů, které jsou hodně podobné.

Ukázkový report vypadá asi takto:


A aby byl hezký, doplníme nadpis s logem ...


... a na závěr jej obdaříme promptem pro výběr distribučního kanálu.


Výsledek:


Nyní potřebujeme podobný report, ten však nebude obsahovat sloupec Rok, ale Mesic. Report vytvoříme pomocí klonování a úpravy XML definice.

Klikneme na záložku "Pokročilé" a celý obsah okna “Žádost XML“ ...


... nabereme do clipboardu. Otevřeme libovolný editor a vložíme do něj obsah schránky.

Ve Wordu vybereme záložku Úpravy – Nahradit a nahradíme slovo Rok slovem Mesic ...


... zvolíme "Nahradit vše". Nyní do clipboardu nabereme upravený text z Wordu a nahradíme jím XML kód v okně “Žádost XML“. Poté zvolíme “Nastavit XML“ a klonovaný report můžeme uložit pod jiným jménem než byl originál.

Ukázka klonovaného reportu:


Můžete si vyzkoušet, že změna funguje i v promptu, dokonce je možné nahradit výběr sloupce Rok v promptu sloupcem Mesic. Funguje dokonce i pro loga (namísto Rok1_logo.jpg se podalo logo Mesic1_logo.jpg) a samozřejmě funguje i pro kontingenční tabulky a grafy.

Je to skvělý pocit, když takto naklonujete komplikovaný report, kde se samotné nahrazení názvů položek provede třeba třicetkrát! Samozřejmě, klonování má své meze. Pokud funguje, je to odměna za dobré a přehledné konstruování reportů a rozumně volené názvy objektů.


Příspěvek vytvořil a zaslal Jiří Doubravský - BI/DW konzultant společnosti PIKE Electronic. Díky!

Prezentováno na 1. Oracle Czech BI/DW Experts Bootcampu v sekci Úlohy, které jsem vyřešil a chci se o ně podělit s ostatními.

pondělí 23. června 2008

Interaktivní mapy na dashboardu

V souvislosti s OBI se často mluví o interaktivnosti, podpoře standardů, otevřenosti řešení. Že to nejsou jen prázdné pojmy se pokusím dokázat v následujícím příspěvku.


O co jde?
Uživatelé jistě ocení rozšíření analytických možností při zachování komfortu prostředí interaktivního dashboardu. Pro zkoumání dat z geografického hlediska můžeme analytikům nabídnout interaktivní mapu, do které jsou zaintegrovány informace z OBI.


K tomu, abychom zobrazili mapu na dashboardu a provázali ji s dalším obsahem není nutné být programátor a složitě integrovat draze zakoupený geografický software. Stačí využít možností, které nám poskytuje internet. Proč bychom tedy řešili něco, co někdo vyřešil za nás? Například portál atlas.cz nebo Google Maps (viz. ukázka využití Oracle BI v praxi) poskytuje na svých stránkách interaktivní mapy, k nimž je zároveň k dispozici otevřené API rozhraní, kterým je možno zobrazení mapy ovlivňovat. To nám umožní přímo z dashboardu zobrazit požadovaný výsek mapy v patřičném detailu, navíc s označením zvoleného města. Dodatečnou informaci o prodejích ve městě mohu získat v bublině. Ta je sice součástí mapy, ale díky tomu, že na konkrétní report v OBI se lze odkázat pomocí URL, mohu zajistit plnohodnotné zobrazení správně vyfiltrované sestavy týkající se daného města.


Přípravné práce
Předpokladem je, že v prezentační vrstvě máme k dispozici faktovou tabulku s navázanou geografickou dimenzí. V mém případě ji tvoří tabulka českých a slovenských měst (id a název) zařazeným do příslušného regionu a státu. Takto definovanou dimenzi je třeba pro naše účely rozšířit o sloupeček GPS do kterého vložíme GPS souřadnice každého města (upravené URL encoderem, např. pomocí http://www.opinionatedgeek.com/DotNet/Tools/
UrlEncode/Encode.aspx). Ty později využijeme pro volání požadované části mapy. Nový sloupeček je samozřejmě nutné zpropagovat přes fyzický a business model do příslušného prezentačního katalogu.

Faktová tabulka je kromě geografické dimenze dimenzována podle času (rok, měsíc, den) a dle produktů (kategorie produktů, produkt). Jsou v ní uloženy ukazatele Tržby, Náklady, Zisk a prodané jednotky.


Abychom mohli využívat API pro mapy na Atlas.cz, je třeba se zaregistrovat na adrese
http://amapy.atlas.cz/api/registration.aspx. Je zde také k prostudování dokumentace „AMapy API“, zejména příklady použití. Dále je potřeba mít povolené použití HTML a JavaScriptu v rámci Oracle BI reportů a dashboardů, návod naleznete zde.


Trocha JavaScriptu
Předtím, než přistoupíme k tvorbě reportů, je třeba si připravit pomocnou HTML stránku, přes kterou budeme komunikovat s Atlas mapami. Stránku musím umístit do adresáře webového serveru, v mém případě je to adresář Tomcatu (c:\Program Files\Tomcat 6.0\webapps\analytics\), jinak většinou adresář serveru přibaleného k OBI ($BI_HOME\oc4j_bi\j2ee\home\applications\analytics\analytics\).

Stěžejní částí celého postupu je kód této HTML stránky, která v hlavičce "HEAD" obsahuje JavaScriptové volání API funkcí specifikujících zobrazení mapy, v těle "BODY" pak definici velikosti oblasti "DIV", ve které se mapa objeví. Na tuto stránku se pak budeme z OBI odkazovat spolu s parametry, které API funkcím předají informaci o tom, které město se má označit.

Nejprve je třeba v hlavičce zavolat odkaz na JavaScript:

Poté s využitím dokumentace a příkladů k API může JavaScript vypadat například takto:


Kurzívou označená hodnota parametru maxUrl v kódu definuje URL odkaz na report, který se má zobrazit uvnitř mapy v bublině. Příslušný report zatím nemáme vytvořený, doplnění hodnoty můžeme nechat na později.

V samotném těle HTML dokumentu nám již stačí jen zavolat:



Příprava reportů
Nyní již máme vše připraveno k tomu, abychom mohli začít pracovat v Answers. K demonstraci řešení budeme potřebovat tři reporty:
  1. Navigační report – jednoduchý seznam měst, který použijeme pro nastavení mapy.
  2. Mapa – report, který zajistí samotné zobrazení mapy.
  3. Vnitřní report – report, který se objeví v bublině uvnitř mapy.

Navigační report je obyčejný číselník měst, které jsou pro přehlednost rozřazeny do regionů. Později, až budeme mít připravenu dashboardovou stránku zde doplníme ještě navigační link.


Zobrazení samotné mapy zajistíme zvláštním reportem, ve kterém využijeme typ zobrazení Narrative. Do výběru zařadíme sloupce Město, GPS a ID_mesta a přidáme filtr na jedno z měst. Ten slouží jako defaultní nastavení (v tomto případě nedoporučuji využít filtr typu „Is Prompted“ / "Obsahuje výzvu").

Do složeného zobrazení zařadíme jediný prvek Narrative (Popis) a do jeho těla vložíme následující HTML kód:


Kde místo localhost:8080 doplňte jméno a port vlastního serveru. Tím zajistíme zobrazení dříve připravené stránky jako součást reportu. Zároveň v URL předáváme parametry pomocí proměnných @číslo_sloupce, pomocí kterých je API funkcím předávána informace o tom, které město má být zobrazeno.


Třetím krokem je report, který se objeví v bublině uvnitř mapy. V něm uživateli předložíme podrobné informace o zvoleném městě. V mém případě jsem k městu zařadil několik ukazatelů s vazbou na časovou dimenzi (rok). Do filtru zařadíme číselný sloupec ID_mesta jako „Is Prompted“, který využijeme pro předání parametru.

Report upravíme do požadovaného zobrazení.


Po uložení se můžeme zpět vrátit k editaci HTML stránky s JavaSriptem a doplnit k hodnotě parametru maxURL správnou cestu k tomuto reportu.

http://localhost:8080/analytics/saw.dll?GO&Path=/shared//& Action=Navigate&P0=1&P1=eq&P2=Obchody.ID_mesta&P3='+id_mesta

V argumentu P2 je zadáno jméno tabulky a sloupečku (prezentační), dle kterého filtruji, do P3 předávám hodnotu JavaScript proměnné id_mesta. Více o zobrazení reportu či dashboardu pomocí URL naleznete v administrátorské dokumentaci k prezentačnímu serveru (Presentation Services Administration Guide) v kapitole Integrating Oracle BI Presentation Services into Corporate Environments Using HTTP.


Tvorba Dashboardu a revize výsledku
Nyní nám už stačí jen všechny připravené komponenty poskládat na jeden dashboard. Pro naše účely si vytvoříme zvláštní dashboard, nebo alespoň samostatnou stránku. Na něj zařadíme jednak navigační report a také samotný report s mapou.


Po uložení dashboardu se ještě vrátíme k editaci navigačního reportu, kde ve vlastnostech sloupce Město nastavíme navigaci na hodnoty. Jako cíl zvolíme právě vytvořenou dashboardovou stránku.



Rekapitulace - Fungující řešení dle popsaného postupu by mělo vypadat následovně:
V navigačním reportu na dashboardu klikneme na jedno z měst. Na akci zareaguje report s mapou, který označí vybrané město. V bublině uvnitř mapy, která ukazuje na zvolené město, se po maximalizaci zobrazí detailní report ke konkrétnímu městu.

A podrobněji:
  1. Kliknutím na konkrétní město v navigačním reportu si zavoláme znovu stránku, kterou máme zobrazenu. Na kliknutí ale zareaguje filtr v reportu s mapou (který není chráněný) a nastaví se zvolené město.
  2. Report s mapou přiřadí zvolenému městu příslušné ID_mesta a gps souřadnici. Tyto hodnoty předá jako URL parametry externí HTML stránce, kterou jsme si na začátku připravili.
  3. Tato stránka je schopna ve svém JavaScript kódu využít předané parametry jednak pro specifické volání API funkcí map na Atlas.cz a jednak pro sestavení URL pro zobrazení reportu v bublině pomocí URL.

Příspěvek vytvořil a zaslal Jakub Genža - BI/DW konzultant společnosti Sophia Solutions. Jakube díky!

Prezentováno na 1. Oracle Czech BI/DW Experts Bootcampu v sekci Úlohy, které jsem vyřešil a chci se o ně podělit s ostatními.

čtvrtek 12. června 2008

Zobrazení celkového počtu záznamů ve výběru

Jak bylo popsáno v příspěvku „Počet záznamů u kombinovaných dotazů“, přidáme-li do libovolného výběru sloupec obsahující funkci COUNT(1), pak hodnota tohoto sloupce ukazuje pořadové číslo řádku ve výběru.

Tuto vlastnost lze velmi jednoduše použít také k zobrazení číselného údaje podávajícího informaci o celkovém počtu řádku, které daný výběr obsahuje.

Příklad použití: Máme velmi jednoduchý výběr


Jak je zřejmé z kriterií je výstup všech produktů, jejichž počet v roce 2006 je větší nebo rovný 100 000 ks.


Je zřejmé, že toto kriterium splňuje více produktů. Pro zjištění kolik si pomocí funkce RCOUNT(1) zobrazíme pro každý řádek jeho pořadové číslo


Výsledkem je:


A použijeme-li na sloupec RCOUNT(1) agregační funkci MAX() ….


Pak dostaneme výstup


Poslední sloupec již obsahuje počet řádku. Z estetických důvodu jej ve volbě “Formát sloupce“ označíme jako skrytý a protože jeho hodnota je stejná ve všech řádcích, umístíme jej do zobrazení "Popis".


A výsledkem složeného rozložení je pak



Příspěvek vytvořil a zaslal Jiří Doubravský - BI/DW konzultant
společnosti PIKE Electronic. Díky!

(Požadavek pro řešení této úlohy vznikl na 1. Oracle Czech BI/DW Experts Bootcampu).

čtvrtek 22. května 2008

Transpozice v kontingenční tabulce

Kontingenční tabulku lze využít pro výpis údajů k detailu konkrétního záznamu. Pokud potřebujeme zobrazit velké množství atributů k jednomu záznamu a nechceme uživatele nutit scrollovat doprava (sloupců je více, než se vejde na obrazovku), můžeme využít kontingenční tabulku k transpozici řádkového výpisu do sloupce.

Takový detailní výpis je často cílem navigační linky z nějakého přehledového reportu. Proto nezapomeňte zařadit do dotazu filtr „is prompted“ nebo filtr na konkrétní hodnotu.



Jako formu zobrazení výsledku zvolíme kontingenční tabulku a všechny sloupce přetáhneme do oblasti „Measures“. Pomocí „drag and drop“ je možné přetahovat nejen sloupce, ale i celé složky. V tuto chvíli se nám ve výsledku zobrazí hodnoty ukazatelů, ne však ostatních sloupců.

Proto, aby se v kontingenční tabulce zobrazily všechny hodnoty všech sloupců, musíme nastavit agregaci u polí, které ji nemají definovánu v metadatech (edit formula – aggregation rule – např. max). Při větším množství sloupců je doporučený postup nastavit agregaci u jednoho sloupečku a poté v záložce „Advanced“ rozkopírovat nastavení „aggRule="max"“ do všech zbývajících neagregovatelných polí.



Nyní jsou v kontingenční tabulce vidět všechny hodnoty. Přesouváním záhlaví „Measure Labels“, lze transponovat výpis do řádkového či sloupcového zobrazení.



Řádkové zobrazení:


Sloupcové zobrazení:



V případě potřeby zobrazení více než jednoho záznamu (v mém případě produktu) v kontingenční tabulce lze přesunout jednoznačný identifikátor záznamu (sloupec Produkt) na druhou osu než „Measure Labels“.


Příspěvek vytvořil a zaslal Jakub Genža - BI/DW konzultant společnosti Sophia Solutions. Díky! (Požadavek pro řešení této úlohy vznikl na 1. Oracle Czech BI/DW Experts Bootcampu).