[dannotes] xpages - beyound the basics
DESCRIPTION
Session for the DanNotes conference in Korsor, Danmark on May, 2nd 2012TRANSCRIPT
![Page 1: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/1.jpg)
XPages Beyond the Basics
02. – 03.05.2012Comwell Klarskovgaard, Korsør Danmark
Ulrich Krause, is@web, industrial services AG
DANNOTES
![Page 2: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/2.jpg)
Lotus Notes / Domino Administrator & Developer since V3 Business Application Developer
is@web, Nürnberg / Ratingen OpenNTF Contributor
IBM Champion 2011/2012• https://www-304.ibm.com/connections/blogs/socialbusiness/entry/
announcing_the_2011_ibm_champions_for_collaboration_solutions4?lang=de
Blog http://www.eknori.de Notes Forum (http://www.atnotes.de)
About: Ulrich Krause
![Page 3: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/3.jpg)
JavaScript/CSS Aggregation Pre-Load For Xpages JAVA / JAR Design Element Themes XPages Extension Library / Upgrade Pack XPages Relational Database Support DomSQL / BIRT Export Data To Excel / PDF JSF Lifecycle / Partial Refresh / Multi Language Resources, Books Of Interest
Agenda
![Page 4: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/4.jpg)
Aggregates multiple Dojo modules, or multiple CSSs into a single file • a decrease in requests sent from the browser to the server• an increase in user performance, particularly in the context of
networks with high latency• an increase in the speed of JS/CSS parsing from the browser• the freeing up of server connections to fulfill other requests
JavaScript/CSS Aggregation
On Sever: xsp.properties:xsp.resources.aggregate=true
![Page 5: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/5.jpg)
JavaScript/CSS Aggregation
![Page 6: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/6.jpg)
JavaScript/CSS Aggregation
![Page 7: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/7.jpg)
• New feature as of Notes / Domino 8.5.3
• Works on Server AND Client• XPagesPreload=1
• Loads XPages runtime components at server startup
• XPagesPreloadDB=Server!!Db.nsf/XPage.xsp,myLocalDb.nsf• Loads XPages runtime Java classes
Enable Pre-Load for XPages
![Page 8: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/8.jpg)
A Java design element is created just like you create any other design element.
Categorization in the Designer views is shown by using the "/" character to demark levels
In the virtual file system, the class file appears separate from the .java file, under WebContent\WEB-INF\classes
JAVA Design Element (8.5.3)
![Page 9: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/9.jpg)
Work with packaged Java code/libraries that are included in the application NSF
Frees you from having to deploy the JARS to a server and/or include the source files uniquely in the application database
Automatically manages the classpath and places the JAR file into web-inf/lib
Only available to XPages applications• automatically loaded by the
XPages runtime
JAR Design Element ( 8.5.4 )
![Page 10: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/10.jpg)
Single Document Containing References to all your CSS Resources• resource sections reference the CSS files used • control section define what CSS classes are applied to specific
controls
XML Based and Easy To Learn• creating a new theme document prefills sample content
Can Extend Other Themes• <theme extends="webstandard">• will automatically include all the resource and control definitions from
that theme• built-in themes to extend
• webstandard, notes, oneUI
Themes
![Page 11: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/11.jpg)
Can be simple• Just reference an internal CSS resource
Can be complex• Multiple CSS Resources
• Internal• External
• Specify client Side JavaScript Resources• Server Side does work, but is not available until page is rendered• Specify ‘Rendered’ properties on resources• Send certain CSS resources to certain web browsers
Themes – Resources Basics
![Page 12: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/12.jpg)
Specify If A Resource Is Only Used When Dojo Controls Are detected.
• <resource dojoTheme=”true”>
Browser / Client Detection• <resource rendered="#{javascript:context.getUserAgent().isFirefox()}">
Reference Server Based / External Files• <href>/.ibmxspres/global/theme/oneui/IEReallySucks.css</href>• <href>http://www.someserver.com/resources/myCSS.css</href>
Themes - Complex
![Page 13: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/13.jpg)
Theme Controls are used to define default values for properties• mode=”concat”
• Will append the properties onto any existing properties
• mode=”override”• Will override the properties with those defined in the control
Theme Control Names matchup with the types on controls on pages• or you can create your own Theme Control names• and then tell it what control to apply to using the themeID property
C:\Program Files (x86)\IBM\Lotus\Notes\xsp\nsf\themes
Theme Controls – The Basics
![Page 15: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/15.jpg)
Extension Library
The XPages Extension Library provides a set of new XPages artifacts that are ready to use. It contains a set of new XPages controls that supplement the existing ones by providing new capabilities like:
• An application layout object for rendering the main frame
• Improved UI components, like dialogs, in context forms, etc.
• A set of data pickers (value and name pickers)
• .... and a lot more!
![Page 16: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/16.jpg)
There are 2 sets of plugins included in OpenNTF delivery • “extlib” and “extlibx”
Each set is wrapped into its own XPages specific library• com.ibm.xsp.extlib.library• com.ibm.xsp.extlibx.library
The “extlibx” library contains eXperimental code • RDBMS support• Social Enabler and others
Experimental code can get added to the “extlib” library• once the code has matured and there is sufficient customer demand
XPages apps can depend on both the extlib and extlibx libraries
• RDBMS access requires both dependencies
XPages Extension Library OpenNTF
![Page 17: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/17.jpg)
Open Domino Designer. In File -> Preferences for Domino Designer, check Enable Eclipse plug-
in install if it is not already checked. Unpack downloaded file
XPages ExtLib Deployment (Client)
![Page 18: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/18.jpg)
Click File -> Application -> Install to open the Install/Update dialog
Select Search for new features to install and click Next
XPages ExtLib Deployment (Client)
![Page 19: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/19.jpg)
Use the Add Zip/Jar Location button to add updateSiteOpenNTF-designer.zip if it is not already there.
Ensure that updateSiteOpenNTF-designer.zip is selected and click Finish
XPages ExtLib Deployment (Client)
![Page 20: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/20.jpg)
Select all features if asked Click the Next Button
XPages ExtLib Deployment (Client)
![Page 21: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/21.jpg)
Accept the feature license Click the Next Button
XPages ExtLib Deployment (Client)
![Page 22: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/22.jpg)
Select Install this plug-in for each unsigned plug-in Restart Domino Designer and Notes® after the update
completes
XPages ExtLib Deployment (Client)
![Page 23: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/23.jpg)
Unpack updateSiteOpenNTF-designer.zip to domino\workspace\applications\eclipse in the Domino data directory.
Take care to strictly respect the directory hierarchy.
Previewing Ext Lib features in a browser
![Page 24: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/24.jpg)
Unpack updatesite.zip Copy „features“ and „plugins“ to server Stop / Start HTTP task
XPages ExtLib Deployment (Server)
<Domino-Data>\domino\workspace\applications\eclipse
![Page 25: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/25.jpg)
To verify the plugins for the extlib and extlibx XPages libraries are properly installed, you should use the OSGI command on the server console
tell http osgi ss com.ibm.xsp.extlib
Verify Installation
![Page 26: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/26.jpg)
Unzip download Unzip "updateSiteOpenNTF-designer.zip„ Create a new application dbname.nsf on server
Use template (Eclipse Update Site) Modify ACL, Anonymous at least needs Reader Access. Open Application Click "Import Local Update Site„ OSGI_HTTP_DYNAMIC_BUNDLES=dbname.nsf
Start / Stop HTTP task on server
XPages ExtLib Deployment in Domino 8.5.3
Open UpdateSite
![Page 27: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/27.jpg)
XPages Extension Library Deployment in Domino 8.5.3 and IBM XWork Server
• http://www-10.lotus.com/ldd/ddwiki.nsf/dx/XPages_Extension_Library_Deployment
XPages ExtLib Deployment in Domino 8.5.3
![Page 28: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/28.jpg)
http://www-10.lotus.com/ldd/ddwiki.nsf/xpViewCategories.xsp?lookupName=What%20is%20new%20in%20Domino%20Designer%208.5.3%20Upgrade%20Pack%201
8.5.3 Upgrade Pack 1
![Page 29: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/29.jpg)
Uninstall existing components first !!
8.5.3 Upgrade Pack 1
![Page 30: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/30.jpg)
8.5.3 Upgrade Pack 1- What is installed?
Designer Tooling
App Templates
ExtLib Runtime
Source Code
App Templates
ExtLib Runtime
App Templates*
ExtLib Runtime
* Discussion template installed with Notes client (no Teamroom)
![Page 31: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/31.jpg)
A set of Java plug-ins that greatly extend XPages functionality Works on web, Notes client and mobile devices Applicable to Domino, XWork Server, Notes, Domino Designer Cool new Domino Designer enhancements for Ext Lib controls Enhanced TeamRoom and Discussion templates A fully accessible runtime library and templates Implemented using the XPages Extensibility API Built to IBM globalization standards Online documentation Runtime is localized Officially supported by IBM Includes source code !
XPages Extension Library Upgrade Pack 1
![Page 32: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/32.jpg)
Code is first released on OpenNTF• Available early and gives full transparency on what is being done• Facilitates quicker user evaluation, feedback and contributions
Pieces from OpenNTF are selected and delivered as UP Upgrade Packs are supported by IBM
• Upgrade Packs are delivered on a shorter release cycle than products
• Upgrade Packs are integrated into the next revision of the product • Upgrade Packs do not modify the core base platform in any way !
Product, OpenSource, Upgrade Pack
![Page 34: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/34.jpg)
Debugging
![Page 35: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/35.jpg)
http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=XPage%20Debug%20Toolbar
dBar.info(message:String, context:String);dBar.warn(message:String, context:String);dBar.debug(message:String, context:String);dBar.error(message:String, context:String);
dBar.dump( anyObject )
dBar.startTimer( timerId:String );dBar.stopTimer( timerId:String );
![Page 36: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/36.jpg)
Get version of installed Extension Library
• var v = com.ibm.xsp.extlib.util.ExtLibUtil.getExtLibVersion();• return "XPages ExtLib version: "+ v
com.ibm.xsp.extlib.util.ExtLibUtil
![Page 37: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/37.jpg)
Contains many common methods• import static com.ibm.xsp.extlib.util.ExtLibUtil.*;
getCurrentSession(), getCurrentDatabase() …
Many more to access scoped variables etc.
com.ibm.xsp.extlib.util.ExtLibUtil
![Page 38: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/38.jpg)
Leverages JDBC when connecting to relational databases• Accesses any database with a JDBC driver available• You could access
• DB2,Oracle,MS SQL,MySQL,Derby... you name it!
• You need to obtain the JDBC driver from the database vendor or third party provider
RDBMS data is accessed directly – no synchronization is performed with NSF
Xpages efficiently manages the connections through a connections pool
Uses NSF specific connections The data is accessed using a set of dedicated data sources
XPages Relational Database Support
![Page 39: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/39.jpg)
extlibx library adds 2 new data sources:• JDBC Query for Read Only access• JDBC RowSet for CRUD (create/read/update/delete) access.
• Current implementation is based on com.sun.rowset.CachedRowSetImpl• Could be configured to use your own via the rowSetJavaClass property
Each of the provided new data sources could be easily utilized either by: • the core View Container Control (xp:viewPanel element) • the XPage itself (xp:view element)
The new data sources are now available in the Domino Designer Property Panel
XPages Relational Database Support
![Page 41: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/41.jpg)
To connect to your RDBMS you need to create a special file resource• .jdbc extension (for example “db2test.jdbc”)• specify the JDBC driver class to be used• the database host/port/name and users' credentials
XPages Relational Database Support
![Page 42: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/42.jpg)
Currently implemented @Functions:
• @JdbcInsert• @JdbcUpdate• @JdbcDelete• @JdbcExecuteQuery• @JdbcDbColumn• @JdbcGetConnection
Used to simplify various RDBMS operations Allows programmatic access to RDBMS data
Server Side JavaScript APIs and @Functions
![Page 43: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/43.jpg)
![Page 44: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/44.jpg)
XPages Extension Library OpenNTF and Relational support continues to evolve further and expected features in the pipeline include:• Global Domino server based RDBMS connection definition ability• Domino Designer tooling to work with the RDBMS tables' metadata• Even better JDBC connection pooling implementation using Apache
DBCP• JDBC Query via REST services• Additional @Functions
Another new interesting OpenNTF project• JDBC Access for IBM Lotus Domino (DomSQL)
– http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=JDBC%20Access%20for%20IBM%20Lotus%20Domino
RDBMS Future
![Page 45: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/45.jpg)
Do I need the extension Library ?????? …
What do we need?? Application JDBC – Driver
• MySQL http://dev.mysql.com/downloads/connector/j/• Available for all major databases
Code to access the database using the driver(Query / Insert / Update / Delete )
XPages Relational Database Support
![Page 46: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/46.jpg)
XPages Relational Database Support
MySQL Workbench
http://www.mysql.de/products/workbench/
![Page 47: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/47.jpg)
Package Explorer
Predefined Perspectives
Java in XPages
![Page 48: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/48.jpg)
Install Driver (Client)• Open Package Explorer
• Create Folder• WebContent WEB-INF lib
• Drag/Drop driver file into folder
• Buildpath• RightClick Build Path Use as Source Folder
XPages Relational Database Support
![Page 49: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/49.jpg)
Install Driver (Server)• data\domino\workspace\applications\eclipse\plugins• Stop / Start HTTP task
XPages Relational Database Support
![Page 50: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/50.jpg)
de.eknori.jdbc.MySQL• executeQuery()• executeUpdate()
XPages Relational Database Support
![Page 51: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/51.jpg)
JavaScript Library
XPages Relational Database Support
![Page 52: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/52.jpg)
![Page 53: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/53.jpg)
Exposes Domino data as relational tables and provides easy access to the tables using a JDBC driver• Expand the query capability of Note/Domino (N/D)
• Native N/D views lack some key features like dynamic queries and joins between views. The features Domino views lack are exactly those at which SQL excels
• Reporting – Data analytics• SQL is the de facto standard used by reporting/data analysis tools.
Making N/D data behave like relational data suddenly opens it to a large set of tools that understand JDBC
As of now, it only does read-only Uses another very popular open source project called
SQLite (http://www.sqlite.org/)
Domino JDBC Access (DomSQL)
![Page 54: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/54.jpg)
How does it compare to NotesSQL?• NotesSQL is a full implementation including write operations, while
DomSQL only allows read only operations• NotesSQL is based on top of ODBC while DomSQL uses JDBC. • DomSQL doesn't require any configuration
• DomSQL is provided as a set of OSGi plug-ins and does not require any installation steps beyond installing the plug-ins
• DomSQL not only exposes the views as is, but allows some fine grained customization of the tables, as well as a selection of the views being exposed.
• DomSQL allows some SQL statements to be executed when the DB is first accessed, to create actual SQL views for example
• The entire source code for DomSQL is provided. It only uses public Notes/Domino APIs
Domino JDBC Access (DomSQL)
![Page 55: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/55.jpg)
Download • JDBC Access for IBM Lotus Domino
• http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=JDBC%20Access%20for%20IBM%20Lotus%20Domino
• It currently only works on Windows, 32 and 64 bits; other platforms in future releases depending on “time, tests and use cases”
Prerequisites• OSGI Tasklet Service for IBM Lotus Domino
• http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=OSGI%20Tasklet%20Service%20for%20IBM%20Lotus%20Domino
Domino JDBC Access (DomSQL)
![Page 56: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/56.jpg)
Installation: Read the documentation !!• There are some more things to download if you not already have them
available …
• OSGI Tasklet Service • Install JDBC Access
Domino JDBC Access (DomSQL)
![Page 58: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/58.jpg)
BIRT is an open source Eclipse-based reporting system that integrates with your Java/Java EE application to produce compelling reports
Domino JDBC Access (DomSQL) + BIRT
http://www.eclipse.org/birt/phoenix
![Page 59: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/59.jpg)
Create configuration in your application
Domino JDBC Access (DomSQL) + BIRT
![Page 60: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/60.jpg)
Domino JDBC Access (DomSQL) + BIRT
![Page 61: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/61.jpg)
Domino JDBC Access (DomSQL) + BIRT
![Page 62: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/62.jpg)
Structure of the .foosql XML file
Virtual Tables
![Page 63: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/63.jpg)
![Page 64: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/64.jpg)
Using an XAgent
Export Data to Excel
![Page 65: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/65.jpg)
ZK Spreadsheet for Xpages (http://www.zkoss.org/)
Embed an ExcelSheet in XPages
http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=ZK%20Spreadsheet%20for%20XPages
“In this project, we will integrate ZK fancy components (such as ZK Spreadsheet and ZK Pivottable) into XPages, providing extension libraries that can bridge the XPages to ZK so that you can use powerful ZK components in your XPages applications.” –Dennis Chen
![Page 66: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/66.jpg)
JSF Lifecycle
Richard Hightower: JSF for NonBelievers - The JSF application lifecycle (2005)http://www.ibm.com/developerworks/java/library/j-jsf2/index.html
Paul Withers: The Eureka Moment: The JSF Knowledge You Need to Understand XPages
![Page 67: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/67.jpg)
XPages Request Processing Lifecycle explorer
Study the Domino console output to learn what is happening with your requests
Ulrich Krause: http://openntf.org/XSnippets.nsf/snippet.xsp?id=a-simple-lifecyclelistener-
![Page 68: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/68.jpg)
Language Switcher
The problem: Switching the language resource file does not change the locale variable in <head>. Switching the Browser language does not switch the language resource.
The solution: Use a Phase Listener to enable multi language capability of an application. It does not depend on OS language or Browser language.
![Page 69: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/69.jpg)
Use a Notes Document to edit the content of resource files• Matt White, XPages 101
Edit Resources
![Page 70: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/70.jpg)
Set of XPages controls that lets you integrate workflow capability into your XPages application
Workflow for XPages
http://www.openntf.org/internal/home.nsf/project.xsp?action=openDocument&name=Workflow%20for%20XPages
![Page 71: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/71.jpg)
Wouldn‘t it be nice, if we could work with LotusScript (or any other language ) in XPages?• Sven Hasselbach, Wiesbaden, Germany
– http://hasselba.ch/blog/?p=611
• Jesse Gallagher• Ruby-In-XPages http://frostillic.us/f.nsf/
Running LotusScript in XPages
![Page 72: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/72.jpg)
Xpages Extensibility API http://www-10.lotus.com/ldd/ddwiki.nsf/dx/
Master_Table_of_Contents_for_XPages_Extensibility_APIs_Developer_Guide#What+is+the+XPages+Extensibility+API%3F
Create a control in an NSF http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_a_Java_Control_in_an_NSF
Create a control that can be used globally http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Creating_an_XPages_Library
Extend SSJS @Functions
Create Your Own Control / Extension
![Page 73: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/73.jpg)
![Page 74: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/74.jpg)
Resources
Making Domino Designer work like you want• http://ntf.gbs.com/nathan/escape.nsf/d6plinks/NTFN-8GP6RP
NotesIn9 ( David Leedy )• http://notesin9.com/
Xpages Development Forum• http://www-10.lotus.com/ldd/xpagesforum.nsf
Xpages 101 ( Matt White )• http://xpages101.net
OpenNTF• http://openntf.org
Planet Lotus• http://planetlotus.org
![Page 75: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/75.jpg)
http://openntf.org/XSnippets.nsf/home.xsp• Download „XSnippets“ http://xsnippets.openntf.org/
OpenNTF Code Snippets
![Page 76: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/76.jpg)
Publishing Date 19-May-2012
• Declan Scolia-Lynch• Paul Hannan• Jeremy Hodges• Paul Withers• Tim Tripcony
Books of Interest
http://www.amazon.com/XPages-Extension-Library-Step---Step/dp/0132901811/ref=sr_1_1?ie=UTF8&qid=1329839291&sr=8-1
![Page 77: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/77.jpg)
Publishing Date 03/2012
• Martin Donnelly • Maire Kehoe • Tony McGuckin • Dan O'Connor
XPages Portable Command Guide offers fast access to working code, tested solutions, expert tips, and example-driven best practices
Books of Interest
http://www.amazon.com/XPages-Portable-Command-Guide-Application/dp/0132943050/ref=sr_1_1?s=books&ie=UTF8&qid=1329839422&sr=1-1
![Page 78: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/78.jpg)
June 3th 2012: Deadline for submissions
3. Development Contest
http://xpages.info/XPagesHome.nsf/Contest.xsp
![Page 79: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/79.jpg)
• Blog: http://www.eknori.de• Sametime: bleedyellow.com• Twitter: eknori• Stackoverflow
Q & A
![Page 80: [DanNotes] XPages - Beyound the Basics](https://reader038.vdocuments.mx/reader038/viewer/2022102805/55540a23b4c90544428b5286/html5/thumbnails/80.jpg)