BC:xkafka1
Obsah
Zadání
Předběžné zadání
Systém pro generování objednávek
Cílem práce je navrhnout a implementovat systém pro generování objednávek/faktůr. Objednávka bude uložena ve formátu XML a pomocí XSL-FO transformace bude převedena do požadované výstupní formy v PDF či HTML. Systém bude implementovám pomocí Java EE a výstup bude realizován jako Portlet. Systém bude popsán pomocí UML 2.0 a řešen metodikou TDD.
Odkazy
What is a Portlet Článek na ONJava.com, o tom co jsou to portlety podle specifikace JSR 168
JSR 168: Portlet Specification Odkaz na specifikaci JSR 168
Apache Cocoon Web development framework
Jakarta Cactus Test framework pro webové aplikace
eXist Free XML databáze
JBoss Portál Portál JBoss
Sun Portál Portál od SUNu
xkafka1/UML
Pro přehlednost jsem UML diagramy zanořil o úroveň níž
Pozn.
UML je vytvářeno podle UML 2.0 v nástroji Visual Paradigm (až zjistím změny v UML 2.1, tak vše budu směřovat k této verzi standardu)
Analýza požadavku z hlediska XSL-FO transformací
Apache FOP
Apache FOP je projektem od Apache Foundation, zkratka znamená (Formatting Objects Processor)
Klady tohoto řešení:
- propracovanost
- jednoduchost
Zápory tohoto řešení:
- přes XSL-FO generuje např PDF, ale HTML a podobné formáty se mi s ním ještě nepodařilo jednoduše vytvořit, nutnost XSLT vedle XSL-FO
Apache Cocoon
Apache Cocoon je komplexní web framework, zahrnuje v sobě mimo jiných aplikací od Apache Foundation i Apache FOP
Klady tohoto řešení:
- robustnost, komplexnost
- obsahuje portál (zatím se mi to nepodařilo, úspěšně otestovat)
Zápory tohoto řešení:
- robustnost je na úkor složitosti
- portál se mi zatím nepodařilo správně nakonfigurovat
JasperReports
JasperReports je propracovaný systém reportování, je to opensource projekt
JasperReports v NetBeans použití JasperReports ve webové aplikaci
Klady tohoto řešení:
- jednoduše použitelné v NetBeans
Zápory tohoto řešení:
- práce se složitějšími prvky (dost možná je to mými malými zkušenostmi) UPDATE: umí to i tabulky apod, nepředstavuje problém
Výhoda/nevýhoda - využívá svůj vlastní xml formát tzv. jrxml, výhoda v tom, že pak stačí jeden template pro různé výstupy (HTML/PDF), FOP (aspoň myslím) vyžaduje XSLT pro HTML a XSL-FO pro PDF, bez toho se mi transformace nedařili. Nevýhoda v tom, že nevím, jak moc se dá jrxml brát za standard, navíc objednávky i faktury chci udržovat v XML formátu (což by i snad mohlo jsrxml splňovat...)
Seznam požadavků na řešení
Portály, analýza, výběr nejvhodnějšího
Pluto
Je to v podstatě Tomcat 5.5.9 s rozhraním pro práci s Portlety, nepodařilo se mi bezchybně rozchodit nějaký Container pro Portlety, v rc4 už to bylo lepší, ale stále komplikované a ne zrovna vhodné pro práci
SunAppServer
Zatím nejúspěšněji se mi ale podařilo použít Sun Applicatin Server ve spojení se Sun Application Platform, kde jsem si cvičně rozchodil Portlet Container, i přesto, že je uváděn jako Beta, je s ním práce poměrně příjemná, vše splňuje specifikaci JSR 168 (viz odkazy).
JBossPortal
Propracovaný, přívětivý, snadno použitelný s NetBeans, ale PortletContainer je opět ještě ve stádiu vývoje
Poznámky
Údaje potřebné pro dokumenty
Souhrn toho co by měla správná objednávka/faktura obsahovat
Poznámky ke značení:
- povinné údaje (R) REQUIRED
- nepovinné údaje (O) OPTIONAL
- opakovaný údaj {údaj}
Objednávka
- Číslo objednávky (R)
- Datum vystavení (R)
- Zákazník (=firma) (R)
- Datum dodání (O)
- {Položka objednávky (=věc)} (R)
- Celková cena bez DPH (R)
- Celková cena s DPH (R)
- Poznámka (O)
Faktura
- Číslo faktury (R)
- Datum vystavení (R)
- Datum splatnosti (R)
- Odběratel (R)
- Příjemce (O)
- {Položka faktury} (R)
- Celková cena bez DPH (R)
- Celková cena s DPH (R)
- Poznámka (O)