An Oracle blog about Middlware

  • December 22, 2013

Introduction to ADF Task Flow

Arda Eralp
Principal Consultant

Task Flows at the Heart of Oracle ADF
There is nothing more important than understanding task flow-oriented design and architecture when developing Oracle ADF applications

ADF controller supports task flows. Supporting task flows helps us to break our complex web application into smaller reusable flows. The task flows are simple XML files. Each of the pages in the task flow is added as a view activity and the control flows between the pages. The components in the task flows are called as activities and each of the control flows will have an outcome to define the navigation.

Develop User Interface Services – Not Pages
Steven Davelaar, "Building Highly Reusable Task Flows"

Key Benefits

  • Partitions and modularizes large business applications 
  • Visual task flow diagrams 
    • Provide a shared language between developers and domain experts 
  • Reusable application flows published via ADF Libraries 
  • Can have isolated transactions 
  • Can be used as "remote services with a UI" 
  • Supports traditional web navigation model and rich internet navigation models 
  • Support for nested control flows 
  • On-board security 
    • ADF Security 
    • Bounded task flow browser access protection 
  • Additional memory scopes 
    • Avoid memory attribute name conflicts 
    • Avoid memory bloating 
  • Improved and declarative exception handling 
  • Load on demand 
  • Static and dynamic configuration
There are two types of task flows in ADF

Unbounded Task Flow

Unbounded task flows are designed to handle navigation between pages which do not necessarily follow any specific entry point or exit point. For example, consider the pages linked through the toolbar menu in an application. An end user can select any menu option that he or she likes, or the person can even type the URL directly in the browser for viewing the page and can exit from the page or switch to a new page at any point in time. The navigation model for such pages (unbounded view) is defined using unbounded task flow. Unbounded task flow defines navigation for unbounded views in a Fusion web application.

Bounded Task Flow

The bounded task flow is primarily designed to implement reusable navigation cases with definite entry and exit points. A bounded task flow contains its own set of control flow rules, activities, and managed beans. 

  • Single point of entry: There is no multiple entry for the flow and it uses a default activity which will get executed before any other activity in the task flows.
  • Accept parameters and return values: The task flow accepts parameter values to be processed within the task flow and returns a value to the calling task flow
  • Reusability: Task flows can be reused within the application to perform common tasks.
  • Re-entry supported: Users can re-enter the task flow based on the task flow re-entry setting.
  • Rendered within ADF region in a page: A task flow can be added to a jspx page  as a region.
  • Own memory scopes (page flow scope): The task flow contains the pageFlowScopevariableas a unique variable to store the data that exists within the boundary of the task flow instance.
  • Transaction management: The task flow can manage transactions. It can create or join an existing transaction.
  • Security: Task flows can be secured by providing privileges and granting and restricting access in an application.

Properties that are commonly used in Bounded Task Flows are:

For more & detailed information read my blog post about Bounded Task Flow Properties. (https://blogs.oracle.com/ArdaEralp/entry/bounded_task_flow_properties)



Default Activity

Activity that is invoked first when a bounded task flow is called.

Exception Handler

Activity that is called by the framework in case of an exception


Invokes managed bean method upon task flow initialization before any activity is executed.


Invokes managed bean method upon task flow exit using return activity.

URL Invoke

Bounded task flows using JSPX documents may be called directly from a browser URL. This property defines which task flow is browser accessible and which task flow can only be accessed from within an ADF application.

Managed Beans

Managed bean definitions for use within the bounded task flow.

Input Parameter

Definitions API contract between the bounded task flow and the calling task flow or view.

Return Value Definitions

API contract between bounded task flow calling task flow. Requires task flows called via task flow call activity


Defines whether or not the bounded task flow exposes a train model for navigation


If save point feature is used, critical ensures a save point is taken when the task flow is left for the application to recover to this state


Defines the transaction setting for the bounded task flow and whether the data control is shared or not (isolated). Also defines if an implicit save point is taken when navigating into a bounded task flow that does not run in its own transaction

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.