By Steven Davelaar on Dec 14, 2011
In this old post in the Core ADF11 series, I explained the various options you have in designing the page and taskflow structure. The preferred approach in my opinion that maximizes flexibility and reusability, is to build the application using bounded taskflows with page fragments. You then have various ways to disclose these task flows to the user. You can use a dynamic region or dynamic tabs, or a human workflow task list, or even have the user add the task flow at runtime using Webcenter Composer.
To maximize reuse of individual task flows, there are some simple techniques you can apply:
- Define a set of input parameters that allows you to configure for the various (re)use cases
- Define a router activity as the default activity to enable reuse-case-based conditional flows
- Configure use of dynamic iterator binding to use a task flow both as a master region or detail region
- Configure display properties of UI components based on task flow input parameters so components can be shown/hidden, editable/readOnly, required/optional, etc based on the specific (re)use case
By applying these techniques, you can dramatically reduce the number of task flows you need to build in your project. In this sample application, you can see how you can reuse the same task flow to support the following reuse cases:
- Show in read-only mode
- Enable deeplinking from another page to show one specific row
- Use as read-only context info in popup
- Use as master region as well as detail region
- Enable deeplinking from external source like e-mail.
- Slides ODTUG/OOW/UKOUG presentation "Building Highly Reusable ADF Task Flows".
- Sample application JDeveloper 11.1.2