This document provides an overview of ADF task flows for beginners. It defines task flows as the visual representation of an application's process flow. It describes the two main types of task flows - unbounded and bounded - and their key differences. It also outlines some of the main components used to build task flows, such as view activities, method call activities, router activities, and task flow call activities. The document provides examples of how to create reusable task flows and deploy them in different applications using ADF libraries. It concludes with contact information for the author and a note congratulating readers on becoming task flows experts.
1. ADF Task Flows
For Beginners
By Zeeshan Baig, Oracle ACE
www.baigzeeshan.com
2. A little about me.....
I am currently working as Senior Developer at NMH
in Chicago.
● 10+ years of experience in Oracle Development
tools (Database, Forms, APEX, ADF, Fusion)
● Oracle ACE, OCP DBA certified in 8, 8i and 10g
● Technical blog on ADF and other fusion
technologies at www.baigzeeshan.com
● YouTube channel http://youtube.com/baigsorcl
Disclaimer: The views expressed are my own and does not affiliates with my employer
3. Agenda
● What are Task Flows?
● Types of Task Flows?
● Other concepts used in Task flows
● Understand different components to build
task flows
● Introduction of Task flows templates
● Some tips on building reusable task flows
● Demo
● Questions
Thanks Google, Flickr.com and Oracle documentation for images used in this presentation. These images are
unmodified and used for educational purpose only.
5. What are Task Flows?
In simple words
● Visual representation of app process flow
● Each TF contains portion of app navigation
● They are similar to traditional flow charts
● Primary purpose is reuse
6. Types of Task flows
Un Bounded
Entry Points
Bounded
Entry Points
Exit Points Exit Points
7. Types of Task Flows
Key Differences
Un-bounded (UTF)
● Public pages / No boundry
● No reuse
● No input parameters
● No return values
● No transaction Control
● No security
● e.g. Pages - Home, Help,
Search, Navigations
Bounded (BTF)
● Well defined boundry
● Reusable
● Can take input parameters
● Can return values
● Allows transaction control
● Security control
● e.g. Register, Checkout,
other application processes
8. Bounded Task flows
● A typical application contains one
unbounded task flow and many bounded
task flows
● Build bounded task flows in its own
application / workspace
BTFs can
● Create with Pages or Page fragments
● Create as Train flows
● Call in a Dialog
9. Bounded Task flows
Train Flows
Video tutorial at
http://www.baigzeeshan.com/2010/10/creating-train-flows-in-oracle-adf.
html
10. Page vs Page Fragment
Page Fragment
● Renders as content in another JSF page
● Must not contains the af:document, af:form, f:view,
head, body and html because JSF page already has it
● has .jsff extension
Page
● can contains many fragments
● extension .jsf or .jspx
11. Task flow Regions
Static Regions
● Fixed visiblity
● Creates Task flow
binding on page
● Tutorial http://www.
baigzeeshan.
com/2010/04/creating-
pages-with-regions-in-
oracle.html
Dynamic Regions
● Visible based on custom logic
● Creates Multi-taskflow
binding
● Tutorial
http://www.baigzeeshan.
com/2010/06/working-with-dynamic-regions-
in-oracle.html
Regions are created when you drag and drop a bounded
task flow on a page
12. Task Flow Managed Bean
Scopes
1. Application.....
2. Session..........
3. PageFlow......
4. View...............
5. Request.........
6. BackingBean.
7. Flash Scope..
Remains till application stops
Persists till user session
Also known as Task flow scope
Lifespan till current page
Lives for duration of request
only
UI Component based
Remains Till Next encountered
view (new in JSF 2.0)
16. Task flow Components
View Activity ● Displays a JSF Page or Fragment
● Extension .jsf, .jspx and .jsff
(fragments)
● Bookmarkable only in unbounded
Task flows
● Can have one or more task flow
regions
● Good practice to have page
definition file attached
17. Task flow Components
Method Call
Activity
● Allows to call application logic in
task flow
● Drag and drop methods from
Data Control
● OR DnD from component palette
then configure parameters to call
managed bean methods
● Common usages are initialization,
Clean-up, expcetion handler
● Can have return values in case of
method returns some result
● if method is of 'void' type then
outcome would be simple string
18. Task flow Components
Router Activity
● Route to any activity based on EL
expression
● Have default condition
● No Limits on conditions
● No limits on destinations
● Good practice is to start your task
flows with Router for any future
customizations.
19. Task flow Components
Task flow call
activity ● Calls another task flow from
unbounded and bounded task
flow
● Can take input parameters
● Can return output parameters
● Drag and Drop task flow from
Application navigator to task flow
● Drag and Drop task flow to the
page as link or button
20. Task flow Components
Task Flow
Return ● Used to ends or send controls
back to caller in Bounded Task
flows
● Does either Commit or Rollback (If
Task flow is transactional)
● Set outcome to required control
flow navigation-case.
● BTF can have many TF return
activities
21. Task flow Components
URL View
Activity
● Used to Redirect application to
addressable URL
● Can call BTFs
● Can call View activities on UTF
● Can call external sites e.g. http:
//www.google.com
● No Control returned to caller
22. Task flow Components
Save point
Restore
● Allow to restore application to
previous state
● Supports Save for later
functionality
● Only required where Restore
needed
23. Task flow Components
Parent
Action
Control
flow case
Wild-card
● Allows to trigger
navigation of Parent
view activity in ADF
Region
● Identifies how control will
paas from one activity to
another
● Represents global
navigation case
26. Task flow Templates
● You can create task flow
templates for common
activities in bounded
task flows
● Common use case is
error handler
● Best practice is to use
template for all bounded
task flows
27. How to Reuse Task flows in
Different Application
● Create Deployment Profile ADF
Library Jar
● Deploy as ADF library Jar
● Create Connection as File system in
Resource Palette
● Drag and Drop from Resource
Palette to your page and ADD libary
path
● Complete Tutorial available at http:
//www.baigzeeshan.
com/2010/08/sharing-business-
components-and-task.html
28. Tips to build Reusable
Task Flows
● Build BTFs in seperate application then
merge them into master app using ADF Lib
Jar
● Use task flow with page fragments
● Use Input parameters
● Use Router activity as default
● Set conditional behaviour of UI components
based on Input parameters e.g. read-only,
show/hide
● Use dynamic regions
29. Demo Example
● Search Employees - Provides Search facility
Secured, called as normal on Home page and as List of values on
upload photo task flow
● View / Edit Employees
Secured, Allows 'Managers' to edit and 'endusers' to view
employee detail. Displayed as ADF region and deployed as ADF
library jar
● Upload Photo - Task flow to upload employee photo
Secured, Called as Dialog and later calling search flow in a model
dialog
● Public
Runs a flash movie on home page for all unauthenticated users for
authenticated users displays graphs based on user type