Table of contents
| Previous Page
| Next Page
This section describes the approach for web enabling an existing Notes client application using XPages. The approach is explained by means of a real-life case study, as it is based on the standard Lotus Document Library template. This example will help you getting started with bringing existing applications to the web. It will give you a realistic view on key issues which arise while doing this, and how to achieve the best results.
- This is the beginning a hands-on tutorial illustrating how to enable an existing Notes client application using XPages
This example will help you getting started with bringing existing applications to the web. It will give you a realistic view of the key issues which arise and how to deal with them during the development. Apart from providing a step-by-step tutorial to building the web version of the Document Library template, this section also explains the background of each step. It clarifies why things are done in a certain way.
Overview of the pages which make up this tutorial
This section is divided into the following wiki pages:
Page 1 - current page
Describes the existing Document Library template and describes the features of the web application that is the subject of our case study. It also discusses some concepts in the approach to web enable the Notes client application.
Page 2 - Getting started
In this page, we will start building the web application and create a basic web form and view, demonstrating the use of XPage controls and the concepts of data binding and navigation.
Page 3 - Website layout
In this page, we will give the web application a nice look and feel, explaning how to use themes and how to set up a layout framework.
Page 4 - Form design
This page takes a deep dive into the design of the library document input form, covering many XPage features and explaining how to use them.
Page 5 - Workflow
In page 5, the existing Notes client workflow will be added to the XPage application.
Page 6 - Response documents
In this page we will add a reply input form to the library document XPage and we will display existing replies within the same XPage. This will reveal new XPage concepts like combining different data sources in one page and using a repeat control.
At the end of this tutorial, you will have web enabled most of the document library application, and you will be armed with a box of XPage tools and concepts.
The document library template Notes client application
As a case study for web enabling an existing Notes client application, we will be using the standard Document Library template that ships with Notes 8.51. This template, entitled "Doc Library - Notes & Web (8)" file name:
doclbw7.ntf actually hasn't been updated yet with R8 and R8.5 capabilities like composite applications and XPages.
Therefore, it acts as a perfect example for our case study. Especially because this template has been developed in earlier versions of Notes and has evolved "organically", it's a good example case for leveraging legacy applications with the new web features XPages offer.
Although the document library already does have a web interface (which is outdated), we will totally ignore this during the course of this case study: we will consider this web interface and all the related design elements as nonexistent, and we will purely use the Notes client interface as a starting point / as a reference. This is because we're focussing on web enabling a Notes client application using XPages.
For enhancing an existing domino web application with XPages. we refer to section 7b
Document library description
The Notes client Library Document form looks like this:
In the application's Help - About This Application document describes it as follows:
What does this database do?
A Document Library application is an electronic filing cabinet that stores reference documents for access by a workgroup. The database might contain anything from environmental impact statements for a group of engineers to financial statements for a group of loan officers.
Who will use this database?
Anyone who wishes to create a record of a document or review available documents may use this database.
- Web or Notes client: Database can be accessed from either a Web browser or a Notes Client.
- Review Cycle:
Used to route a document to a series of recipients.
- Document Archiving:
Used to move expired documents to an archive database.
- Document library authors can create documents that can contain rich text and attachments (rich text Body ).
- Documents can be organized in user-definable categories.
- A review cycle can be started. The author can select one or multiple reviewers and can select review options like Type of review (serial or parallel), Review time limit, and notication options.
- Users can mark their documents as private or public (default).
- Users can create responses on library documents and can create responses to responses
- The list of existing library documents can be viewed in a number of ways: By Author, By Category, By Review Status...
- Users can drag their favourite documents into a Favourites folder
- Archiving is possible via the standard Notes application archiving feature (File - Application Properties infobox). The document library template does not contain any particular archiving functionality
Scope of the case study
The main purpose of this case study is to demonstrate techniques for web enabling an existing Notes client application. This case study will explain how common Notes client features like workflow, response documents, views,.. can be translated into a web application with XPages. Also, we will demonstrate new capabilities of XPages which leverage your client applications with today's web applications' features.
Although this case study does not aim to deliver a completely finished, ready-to-use web application, it should bring you far enough to understand every aspect of web enabling a client application with XPages and to be able to finish the application by yourself.
A glimpse of what we are going to build: the library document input form:
Based on the functionality of the existing Notes client version of the document library template, we will focus on web enabling the following features:
|Notes client application feature||XPages web application feature mapping|
Document library authors can create documents that can contain rich text and attachments (rich text Body ).
|Authors can add a rich text description to a document.|
Authors can upload attachments.
Readers can download existing attachments
|Documents can be organized in user-definable categories.||Authors can add their own tags when creating documents|
|A review cycle can be started. The author can select one or multiple reviewers and can select review options like Type of review (serial or parallel), Review time limit, and notication options.||The same review cycle options will be provided as in the Notes client|
|Users can mark their documents as private or public (default).||This feature will not be included|
|Users can create responses on library documents and can create responses to responses||Users will be able reply to existing library documents.|
Response to response will not be included
|The list of existing library documents can be viewed in a number of ways: By Author, By Category, By Review Status...||Some views will be provided to display the list of library documents|
|Users can drag their favourite documents into a Favourites folder||This feature will not be included|
|Archiving is possible via the standard Notes application archiving feature (File - Application Properties infobox). The document library template does not contain any particular archiving functionality||This feature will not be included|
Apart from just to copying existing Notes client functionality to the web, we will also demonstrate how we can make a "smarter" application than the existing one. For example, validations will be done at data entry instead of at form submit.
Before starting to web enable a Notes client application, we need to think about how we are going to translate the application's functionality into XPages technology.
XPages and Custom Controls
XPages will act as the main entry points for the website: each XPage will correspond with a web page on our website and will have a unique url. The main website navigation will thus point to different XPages.
Custom Controls act as reusable subcomponents of XPages. A Custom Control is in some way comparable to subforms within a traditional Notes application. But a Custom Control offers many more possibilities than subforms: it can contain view controls, editable areas, other custom controls,...
Developers usually decide to put form elements in subforms when they will be reused in several forms.
With Custom Controls, other criteria for grouping elements in one control will need to be considered as well. For example, form elements that are linked to the same data source might be placed in one Custom Control. Multiple Custom Controls with each its own data source can than be placed on a single XPage.
Layout versus content
The user interface of the Notes client is built with framesets, outlines, forms, pages, views....
Content is displayed in forms.
With XPages, the different layout elements are stored in custom controls, and the content is displayed in... custom controls. (or directly in the XPage)
Withing this tutorial, we will build a set of custom controls to create the website layout, and other custom controls will be used to represent the content.