E-Irattár Oracle APEX-ben Egy fejlesztés tapasztalatai
Projekt résztvevők FirstLine Experts QNSZT
Tartalom e-Zóna csomag
e-Irattár és Apex Az APEX előnyei
Kihívások a fejlesztés során
irodai termékcsomag GLOBÁLIS MEGOLDÁS, SZINKRONBAN A TERMÉSZETTEL
Globális megoldás, összhangban a természettel
Szolgáltatás, amely a kimenő és beérkező elektronikus számlázást oldja meg Alkalmazás az elektronikus dokumentum kezelés, a papír dokumentum kiváltására Az elektronikus dokumentumok archiválására szolgál
Az e-számláról A papír alapú számlával teljesen egyenértékű.
Sérthetetlen, mert pdf formátumú, amelyhez egy XML csatolmány tartozik.
Hiteles, mert elektronikusan aláírt és minősített időbélyeggel rendelkezik, de Minden példány eredeti példánynak minősül.
Kinyomtassam – ne nyomtassam? A dokumentumok és számlák elektronikusan kerülnek tárolásra?
Nincs több papír rakosgatás! Elveszett a számlám, vagy mégsem!!!???
Nem találom, hogyan keressem meg? Itt a NAV/KPMG…. –
Hiteles ez a dokumentum? Tényleg befér egy fiókba az összes dosszié?
Kinek jó ez? A cégnek, mert
nem kell hatalmas hely a dokumentumok tárolására A dolgozóknak, mert könnyű keresni a dokumentumok között Az auditoroknak, mert gyorsan megkapják a szükséges anyagokat A Földnek,
mert csökken a papír, festék felhasználás Önnek, mert egy hatékonyabb és környezettudatos
Hogyan működik? Azonnal elérhető web-es felület
Online dokumentum fel- és letöltés Hipergyors keresés Nincs bevezetési költség – csak annyit fizet amennyit használ A legkorszerűbb biztonságos dokumentum tárolás és elérés Törvényileg meghatározott és elfogadott dokumentum hitelesítés – PKI alapon NAV formátumú adatszolgáltatás
Hogyan működik, a technika Az elektronikus dokumentumok
(pl: e-számlák) elektronikus formában kerülnek tárolásra – megadva a dokumentum metaadatait (mikor került archiválásra, ki archiválta, mik a dokumentum alapadatai) A papír alapú dokumentumokat beszkenneljük, ellátjuk a megfelelő metaadatokkal és továbbítjuk az E-Irattárba
Hogyan működik, a technika A dokumentumok
a bekerülés pillanatában hitelesítésre kerülnek és ellátjuk őket időbélyeggel Az időbélyeg a dokumentum hitelességét igazolja akár 11 évig A dokumentum bármikor újra idő-bélyegezhető és korlátlan ideig tárolható
E-Irattár Oracle APEX-ben Egy fejlesztés tapasztalatai
e-Irattár – technológia APEX 4.1.1
Glassfish 3.1.2.2 Oracle 11gR2 XE
e-Irattár - üzleti igények e-Zóna programcsomag része – Integráció az e-Számlacentrum és az e-Iktató rendszerekkel
Közös autentikációs és autorizációs megoldás Rendszer/szervezet/felhasználó szintű beállítások Job kezelés Nyomon követhető javítócsomagok
e-Irattár - üzleti igények Papír alapú és teljesen vagy részben elektronikus
dokumentumok tárolása archivált, digitálisan aláírt és hitelesen időbélyegzett elektronikus dokumentumként Jó teljesítmény Nagy megbízhatóság Biztonság (pl. HTTPS) Szolgáltatásként és kihelyezett szerverként is
Oracle Application Express
Web alapú komplett fejlesztőeszköz (RAD tool) és
keretrendszer egyben
Ingyenes
Mint fejlesztőeszköz:
közös fejlesztés támogatása (beépített issue tracker, felhasználói visszajelzés) query builder és adatbázis adminisztrációs eszközök export / import workspace, user, security debugger, log
Mint keretrendszer (ld. a továbbiakban)
APEX az e-Irattárban Ezért választottuk
Gyors, intuitív fejlesztőeszköz
Rengeteg előre elkészített "alkatrész" pl. condition-ök, validációk, automatikus rekord lekérés és adathasználat
Komplett UI eszközkészlet menük, breadcrumbok, listák, riportok, stb.
Űrlap, táblázat, wizard generálás
Dinamikus listák
Autentikáció, autorizáció
Többnyelvűség támogatása
Testre szabható
APEX és e-Irattár - a megvalósítás MVC-jellegű felépítés
1. Model nagyrészt PL/SQL csomagok, ritka esetben közvetlenül APEX 2. View APEX
3. Controller részben APEX részben PL/SQL csomagok
APEX és e-Irattár - a megvalósítás APEX alapeszközök (form, riport)
Egyszerű logika (view) Összetettebb logika (PL/SQL)
Bejelentkezés és jogosultságok APEX beépített bejelentkezés
Custom authentication saját fejlesztésű PL/SQL security package context-ben tárolt jogosultsági szint, login adatok SQL-ben, PL/SQL -ben és így APEX-ben is használható
Séma alapú jogosultságkezelés
Autorizációs sémák - érvényes/nem érvényes oldalak, régiók, oldal elemek sémához köthetők
Context cache
Bejelentkezés és jogosultságok
Sablonok és témák
25 beépített téma
15 oldal sablon, összesen 70-80 oldal és régió sablon témánként
Könnyen testre szabható közvetlenül szerkeszthető HTML kód fájlrendszerből elérhető CSS kód
0. oldal: közös oldal elemek minden oldalon elérhető elemek egyedi láthatóság (pl. oldalszámra, jogosultság)
e-Irattár alapelemei: főmenü, lebegő menü, breadcrumb, info panelek, táblázatok, űrlapok
Riportok
Széleskörű beépített funkcionalitás
statisztikákhoz, táblázatokhoz ideális
Klasszikus riport: statikus, előre konfigurált
Interaktív riport: szabadon, akár felhasználó által is
konfigurálható
összeállítható szűrési feltételek aggregátumok, számított oszlopok grafikonok export (CSV, HTML, e-mail) oszlop láthatóság, elemszám / oldal globális és felhasználó szintű lekérdezés mentés / visszatöltés
Riportok
Szövegtár és többnyelvűség Alkalmazás szintű szövegtár
Nyelvenként megadható szövegek Könnyű fordíthatóság
felületen XLIFF export
Elérhető APEX-ben és PL/SQL-ből egyaránt
wwv_flow_lang.system_message Token csere lehetőség
Szövegtár és többnyelvűség
e-Mail kezelés és queue Beépített levélküldés
apex_mail csomag
utl_smtp csomagra épül -> adatbázis biztonsági beállítások szükségesek (csomag jogosultság, ACL)
Saját mail queue -> minden elküldött levél a sorba kerül Ütemezett, kötegelt queue ürítés
SMTP beállítások az APEX adminisztrációs felületen menedzselhetők
e-Mail kezelés és queue
szövegtár + e-Mail kezelés = nyelvfüggő, sablon alapú e-Mailek
e-Mail kezelés és queue l_message_text := wwv_flow_lang.SYSTEM_MESSAGE( p_name => ‘MAIL_REG_SUCCESS’ -- Sablon neve ,p0 => l_client_name -- %0 helyére: ügyfélnév ,p1 => l_username -- %1 helyére: felh. név ,p2 => l_password -- %2 helyére: jelszó ,p3 => TO_CHAR(SYSDATE, 'YY.MM.DD HH:mm') ,p_lang => ‘hu’ -- szöveg nyelve ,p_application_id => 101 -- alkalmazás azonosító ,p_security_group_id => wwv_flow_api.GET_SECURITY_GROUP_ID ); apex_mail.SEND ( p_to p_from p_subj p_body p_body_html );
=> l_emails, => l_admin_address, => l_subject, => l_message_text, => l_message_text_html
Oracle XE: 11 GB korlát vs. e-Irattár Irattárban a legnagyobb helyigény: dokumentumok
-> dokumentumok tárolása a fájlrendszeren! Véletlenszerű, hash alapú fájlnevek
Az adatbázisba csak a fájlnév és a meta adatok kerülnek => a 11 GB korlát csak a meta adatokra és kiegészítő táblákra érvényesül A fájlok LOB-okként kezelhetők
Oracle XE Fájl letöltés átadása a böngészőnek
owa_util.mime_header('application/octet', FALSE); htp.p('Content-length: ' || l_length); htp.p('Content-Disposition: attachment; filename="' || l_orig_file_name || '"'); owa_util.http_header_close; wpg_docload.download_file(l_bfile);
Összetett feladat: kötegelt archiválás Feladat: kötegelt archiválás SFTP-n feltöltött
dokumentumhalmazból masszív hibaellenőrzés, informatív hibajelentések
betöltési folyamatok nyomon követhetősége javítási lehetőség, újraindítás, engedélyezés
Összetett feladat: kötegelt archiválás Ütemezett feladatindítás: Job scheduler
Több lépéses betöltési folyamat vezérlése: Scheduler chain
Fájlok összegyűjtése, áthelyezése, takarítás: Bash scriptek scheduler job-okon keresztül indítva Vezérlőfájl betöltés, ellenőrzés: XMLDB + XSD Adatkezelés, meta-adat ellenőrzés, duplikáció ellenőrzés, jogosultságok, adatfeldolgozás, stb.: PL/SQL
package-ek
Összetett feladat: kötegelt archiválás Meta-adat csatolmány generálás: XMLDB
Kötegelt PDF konvertálás, aláírás: Bash script + eSzignó szerver
Információs és figyelmeztető levél küldés: APEX mail Monitoring és vezérlőfelület: APEX riport + javascript
Összetett feladat: kötegelt archiválás
Összetett feladat: kötegelt archiválás
Kihívás: összetett keresés Változó mennyiségű és típusú meta-adatok
Fix dokumentum attribútumok Testre szabható kritériumok Adattípustól függő beviteli mezők szám - tartomány dátum - tartomány szöveg - megadható keresési mód értéklista - dropdown Az eredmény rendezhető Minden szűrt oszlop látszik
Kihívás: összetett keresés Fix 4 oszlopos klasszikus riport speciális lekérdezés: apex_item.* csomag űrlap elem metódusai saját form/lekérdezés generátor csomag meta-adat típus azonosító alapján konkatenálja a megfelelő apex_item.* hívásokat pl. apex_item.select_list, apex_item.text, apex_item.hidden,
A bevitt adatok elérhetők a wwv_flow.g_f01 wwv_flow.g_f50 collection-ökön keresztül Keresés gomb -> metódus hívás = query string
Kihívás: összetett keresés Klasszikus riport
type: SQL Query (PL/SQL function body returning SQL query)
Headings Type: PL/SQL
Oszlopnevek felületen: COL01...COLn de (oszlop sorszám alapján) ugyanúgy testre szabhatók!
A csomagunk tovább bővült: build_search_query(...), get_headers(...)
(Keresés gomb) PL/SQL -> query építés -> "cache" PL/SQL -> fejléc lekérdezés -> "cache"
Kihívás: összetett keresés:
Oracle XE vs. Oracle SE One XE 1 GB memória használatra képes
XE maximum 11 GB méretű DB-t tud kezelni XE maximum 1 CPU-t használ
SE One több adatbiztonsági funkcióval rendelkezik SE One jobban skálázható SUPPORT!!!
Összegzés Az APEX használata nagymértékben rövidítette a
fejlesztési időt Könnyen, gyorsan hozhatóak létre a felületek Sok egyéb támogatás: több nyelv, jogosultsági rendszer, stb... Az Oracle XE a projekt fejlesztési fázisban remekül
megfelel az igényeknek Később az Oracle Standard Edition One vagy az Oracle Enterprise Edition jöhet
Hasznos linkek http://apex.oracle.com
http://www.apex-at-work.com http://skillbuilders.com/Apex-Security/
Oracle verziók összehasonlítása: http://www.oracle.com/us/products/database/standardedition/comparisons/index.html
Köszönjük a figyelmet! http://www.qnszt.hu http://www.firstline.hu http://www.ezona.hu