ShowTable of Contents
This Application Pattern overview article suggests ways to build Multi-Page Input Forms with Web Experience Factory.
The use cases for such a pattern include the need for a form with inputs that are too large to fit on one page, and a more wizard like use case where each page is a distinct set of data used for different purposes.
|Imported Page|| Import a separate HTML page with named elements for the input fields to be placed on that page|
|Data Page|| Generate a user interface from a schema defined variable|
|Model Container|| Add a separate contained model to each page of a multi-page wizard|
|Shared Variable|| One means of sharing and communicating data between multiple contained models|
Single Data Structure, Multiple Pages
One option to making a multi-page form is to have one variable that will contain all the data, then have several different pages, each with its own Data Page builder, all pointing at the same variable. Then, add a Data Field Modifier to each page, hiding all the fields that you don't want on that page. When Page Automation makes its SaveData method, it knows only to affect the fields that are actually on that page, and it leaves anything else alone. So the successive SaveData methods, one for each page, will each leave the data set by the other pages alone. All you need to do it make sure that each field appears on exactly one page. Then add navigation between the pages, and only do the actual work in the submit action of the very last page.
Multiple Data Structures, Wizard-like Flow
For the use case that resembles a multi-page wizard, where each page of data is unrelated to the other pages, you may build the individual input pages in separate models and then use a model container for each, to add those sub-pages to the wizard pages in the main model.
- Use a single schema defined variable structure with multiple pages each holding a subset of inputs, if the multi-page form data is all related to a single operation input
- Use Model Container and separate models if each page of input data is self contained and unrelated to other input form pages.
- When using multiple contained models, you may use the Shared Variable builder to share and communicate the individual forms' data with the outer container model, for use in the final multii-page wizard operation.
- You may use the Transform builders to transform and/or combine and merge data where necessary.
Samples and Resources
The "convention" model in the "Rich Web User Interface"
samples article uses the multiple imported page and multiple data page option to building a multi-page form where the data is all related to a single convention registration which is too large to fit on a single input page.
The following article on developerWorks describes how to build a multi page form wizard with WebSphere Portlet Factory in more detail:
WEF Enablement Videos