www.sutol.cz
Převod LN aplikace do xPages
Josef Kadlčík,
[email protected]
23.11.2010 Greenpoint
www.sutol.cz
Agenda • • • • • • • •
Potřebné nástroje Porovnání LN a xPages / JSF Ukázka převáděné LN aplikace Komponenty Extension Library Ukázka převodu jednotlivých funkčností Debugging a logování chyb Ukázka xPage demo aplikací Zdroje další dokumentace
www.sutol.cz
Potřebné nástroje • • • • • • • •
Domino 8.5.2 a Lotus Designer 8.5.2 Extension library (http://extlib.openntf.org/) Instalace na server i do klienta Dojo 1.4.3 (součást Domino 8.5.2) Ukázka registrovaných součástí na serveru Oneuiv2 Mozila Firefox 3.6.12 IE 8 – pozor na compatibility view
www.sutol.cz
Komponenty LN aplikace • • • • •
Data Form View Profilové dokumenty Subform
• • • • • •
Agent Script library Page Frameset Shared actions Outline
www.sutol.cz
Demo aplikace • • • •
Evidence přijatých faktur Formulář s přílohou Různé pohledy Číselník dodavatelů
• Schvalování – LS knihovna, subform • Evidence platby k faktuře • DEMO
www.sutol.cz
xPages • JSF framework • MVC model • Javascript – business logika • EJB – business logika • Front end – Dojo
• Form = pouze data • View = indexovaná data • xPage • Custom control • Extension control component
www.sutol.cz
www v Lotus Notes • • • • • • •
$$Return $ViewTemplate WebQuerySave (wwwagentxyz)
| v pohledech $Body ….
• • • • • • • • • • •
MVC Java JavaScript XML CSS JSF Komponenty Datasources JavaBeans Ajax Dojo
www.sutol.cz
JSF cyklus
www.sutol.cz
view - strom komponent JSF • Datová reprezentace HTTP „requestu“ • Konverze „string“ hodnot komponent do objektůkomponent stromu • Cyklus pořadí zpracování - MVC • Render-kit zajistí překlad stromu – response • Dojo toolkit – komponenty pro tenkého klienta
www.sutol.cz
JSF cyklus x LN cyklus • Události LN
• Události JSF
• • • • • • •
• • • •
Konverze Validace QueryOpen QuerySave PostOpen PostSave Akce
View rebuild Konverze Validace Update model – Datasource události
• Akce • Render response
www.sutol.cz
@Formule, LS a Javascript • • • • • •
SS javascript 172 nepodporovaných formulí Možno doplnit jako funkce js do knihoven Možno používat balíčky Java Javascript – Client a Server Není přímý přístup do LS knihoven
www.sutol.cz
Extension library • • • • • •
Vyvíjená open source komunitou Dostupný source kód Možnost psát vlastní komponenty Možnost kupovat komponenty Extension Library API www.openntf.org
www.sutol.cz
Původní komponenty
www.sutol.cz
Extlib komponenty
www.sutol.cz
JSF metody uložení dat a komponent • Scope variables – – – –
applicationScope sessionScope requestScope viewScope
• EL expressions • Data binding • Java Beans
• • • •
context facesContext view getComponent
www.sutol.cz
Shrnutí funkčností • • • • • • • • •
Layout a navigator (Frameset a outline) Pohledy Editace v pohledu Vyhledávání Dialog Picklist Aktualizace hodnot formuláře Práce s Upload a Download prvky Form – webQuerySave, webPostSave
www.sutol.cz
Layout – rozvržení Aplikace • Application Layout -
• Vložit „custom XSP markup“ • Vytvořit callback facety – – –
<xp:callback xp:key=„LeftColumn" facetName="LeftColumn"> <xp:callback xp:key="callback1" facetName="MainContent"> <xp:callback xp:key="RightColumn" facetName="RightColumn">
Použít <xe:keepSessionAlive>
www.sutol.cz
Navigátory • <xe:navigator> • <xe:outline> – <xe:pageTreeNode> – <xe:separatorTreeNode>
www.sutol.cz
Data • JSF komunikuje s úložišti dat pomocí tzv. datasource – dominoView – dominoDocument – … do budoucna i RDBMS
• restService – store pro komponenty UI – JSON <xe:restService> – XML
www.sutol.cz
View • • • •
Převod pomocí datasource „Dominoview“ Standardní komponenta <xp:viewpanel> Nově pro ExtLib <xe:dynamicViewPanel> Hodně nastavení v <xe:dataView>
1. pohledy – datasource dominoview a) b) c) d)
xe:dynamicViewPanel xp:viewPanel xp:repeat xe:djxDataGrid - Restservice
2. linky a formulář 3. datasource dominodocument
www.sutol.cz
Dialog • • • • •
Umožňuje zpracovat externí data Ukázka editace profilu Ukázka realizace @Picklist Tooltip dialog – editace dodavatele <xe:Dialog> a <xe:tooltipDialog>
www.sutol.cz
Formulář „faktura“ • • • • • • • • • •
Vytvoření datasource Přenesení datových polí a vytvoření struktury Action bar – Uložit, Zrušit Vytvoření CustomControl pro subfoms @PickList webQueryOpen webQuerySave Computeonform Profil – nutno přidat „“ do volání getProfileDocument In-memory document
www.sutol.cz
Další vlastnosti • Convertory a Validátory • Práce s attachmenty – Upload a Download komponenta
• Volání agentů a existující LS logiky v událostech datasource • Dojo toolkit
www.sutol.cz
Jak na debugging • Prozatím nelze trasovat JavaScript • Používat try {} catch (e) {e.printstacktrace()}
• Pro uživatele • •
var ex:com.ibm.xsp.exception.EvaluationExceptionEx = requestScope.error ex.getErrorText(); ex.getMessage(); ex.getErrorPropertyId()
www.sutol.cz
Další zdroje informací • • • •
http://xpages.info/XPagesHome.nsf/Resources.xsp http://www-10.lotus.com/ldd/ddwiki.nsf http://www.bleedyellow.com http://www.dojotoolkit.org
• Videa na www.youtube.com • • •
Demo aplikace Demonstration Application for XPages in IBM Lotus Notes Domino R8.5.2 XPages Extension Library Demo