IT programátor týmu Databáze, ČSOB, od 09/2019 Interní školení a konzultace APEX řešení APEX Community of Practice leader LinkedIn: https://www.linkedin.com/in/wlada92/ X (Twitter): @Wlada92
produkční aplikace. Prezentace nijak neodráží obchodní význam nebo funkční povahu této aplikace, pouze zvolený přístup k jejímu vývoji. Prezentovaný kód nebo jeho fragmenty: • nepochází z produkčního kódu žádné konkrétní aplikace • nejsou vlastnictvím žádného ze subjektů, kde jsem dříve působil nebo aktuálně působím • vznikly čistě pro účely této prezentace
pro správu dat před dalším odesláním Struktura 60+ tabulek v 6 různých agendách Odlišné struktury jednotlivých tabulek Pro každou tabulku: Report přehledu s možností filtrování Editační formulář pro jeden záznam Náhled na historii změn/žurnál 3 úrovně přístupu pro každou z agend Hromadné operace Nad vybranými záznamy Nad celým vyfiltrovaným datasetem Naše vize Report přehledu APEX IR s konkrétními filtry v separátním regionu Tlačítka pro otevření dialogu hromadné operace Z povahy operací pro každou operaci zvlášť APEX IR s obslužnými sloupci: Sloupec pro checkbox (check all v záhlaví) Sloupce s odkazy na editaci, kopírování záznamu Dialog s editační obrazovkou pro single row edit APEX IR pro náhled na historii změn/žurnál Všechny stránky jsou koncepčně shodné, liší se jen strukturou samostatných tabulek
řešení Nevyžaduje velké znalost APEXu Vhodné na zaučení „nového APEXáře“ Nevýhody Každá stránka v aplikaci je specifická Zdlouhavé i při „Create Page as Copy“ Vysoká pravděpodobnost copy/paste chyb Výsledek I v případě zkušenějšího vývojáře takovéto klikání spíše otráví než nadchne. I v případě zkušenějšího vývojáře může činnost zabrat řádově desítky dní čisté práce. Nevýhody převažují nad výhodami a existovalo nadšení pro hledání alternativní cesty.
bezpečné řešení Vhodné pro pokročilejší vývojáře k získání vhledu „pod kapotu“ APEX Builderu Drobnosti (převážně labely) lze doladit v Utilities Nevýhody Nutná vyšší opatrnost při práci Často nezdokumentované/wrapped prostředí Při použití nemusí být 100% (absence náhledu na wrapped PCK a celkového návazného flow) Výsledek Zkušenější vývojář bude umět najít co potřebuje a dohledat/doplnit vlastní kód. Jednou z absencí je právě založení default reportu při vytvoření IR, create nemá všechny parametry (např. labely), atp. To znamená, že i takto generovaný obsah potřebuje další péči, ale co když to lze udělat lépe a tyto nedostatky odladit?
jednotlivými prvky Možnost maximalizace potřeb Vhodné pro pokročilejší vývojáře k získání vhledu „pod kapotu“ APEX Exportu Nevýhody Poměrně tenký led, nutná maximální opatrnost Absolutně nezdokumentované/wrapped prostředí Při nesprávné manipulaci lze rozbít i Builder Potřebná časová investice do výzkumu a testování Výsledek Pro tvorbu takových aplikací, kde je každá stránka svou povahou specifická, je toto jednoznačný overkill. Pravděpodobně připravený generátor znovu nikde jinde nepoužijeme – jednorázová investice. Přestože je výhod oproti nevýhodám velmi málo, bylo řešení přijato jako to, které potřebujeme (a zajímavou výzvou).
API má staré jmenné konvence Většina z nich právě na terminologii Oracle Flows Můžeme pozorovat i v nejaktuálnějších verzích Pro porozumění wwv_flow je třeba investovat čas do rozklíčování a mapování terminologie APEX public views jsou napsaná pro vývojáře s APEX terminologií, odkazují však na wwv_flows objekty pod userem APEX_230100 (dle verze) „APEX Behind the Scenes“ Velmi dobrá prezentace (z července 2013, avšak v mnoha bodech stále aktuální), autor Scott Spendolini https://www.slideshare.net/Enkitec/apex-behind-the-scenes
obnovu Nesprávným postupem můžete rozbít Builder (APEX Builder je také „jen“ APEX aplikace!) Pokud se něco nepovede, počítejte i s hrozbou úplného backupu prostředí „Hrajte si“ ve vývojovém nebo úplně separovaném prostoru Nepoužívejte výsledek pro nasazení na jiná prostředí Aplikaci modifikujte tímto postupem pouze na bezpečném pískovišti Do dalších prostředí aplikaci následně exportujte dle vašich běžných postupů nebo code standardů Pozor na ID Nebojte se do scriptu zakořenit konstanty pro název WORKSPACE, APP_ID a pracovat s jedním dedikovaným Pokud chcete aplikace pro porovnání, uchovávejte si výstupy, případně posouvejte APP_ID v různých iteracích ručně
opakovaná spuštění si odstraňte a nainstalujte aplikaci znovu (viz APEX_APPLICATION_INSTALL) Dobře mohou posloužit i APEX_UTIL nebo APEX_STRING, záleží na tom jak to sami uchopíte Využijte maximálně wwv_flow_api, wwv_flow_imp_api, wwv_flow_id, … Vneste do generovaných obrazovek řád Obrazovkám nadefinujte systém, např. přehledová obrazovka i*100, editační dialog (i*100)+1, … Loopujte sekvence pro itemy, sloupce v IR, IG… Nejde o procesní kód - na výsledek si o pár vteřin déle počkat můžete Pomoci si můžete například i nějakou dočasnou konfigurační tabulkou Nesnažte se hned dosáhnout 100% Ono se to stejně asi nepovede - osvědčilo se napsat pár řádků a spustit kód, klidně i několikrát za den