E-Irattár Oracle APEX-ben -...
Transcript of E-Irattár Oracle APEX-ben -...
Egy fejlesztés tapasztalatai
E-Irattár Oracle APEX-ben
FirstLine Experts
QNSZT
Projekt résztvevők
Tartalom
e-Zóna csomag
e-Irattár és Apex
Az APEX előnyei
Kihívások a fejlesztés során
GLOBÁLIS MEGOLDÁS,
SZINKRONBAN A TERMÉSZETTEL
irodai termékcsomag
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ó
Egy fejlesztés tapasztalatai
E-Irattár Oracle APEX-ben
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
apex_mail.SEND (
p_to => l_emails,
p_from => l_admin_address,
p_subj => l_subject,
p_body => l_message_text,
p_body_html => l_message_text_html
);
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
);
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 + e-
Szignó 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/standard-
edition/comparisons/index.html
http://www.qnszt.hu
http://www.firstline.hu
http://www.ezona.hu
Köszönjük a figyelmet!