ADF Task Flow is the most important and essential feature of ADF development which makes ADF unique in the battle of frameworks. This session will help you to understand different components and techniques to build task flows and will discuss some use cases.
2. A little about me……
● 13+ years of Technical Experience in Oracle
Products
● Technical Manager at AST
● Oracle ACE Member
● Oracle ADF Certified Specialist and OCP DBA
● Technical Blog at www.baigzeeshan.com
● YouTube Tutorials www.youtube.com/baigsorcl
● Twitter @baigsorcl
3. ● What are Task Flows?
● Types of Task Flows?
● Other concepts used in Task flows
● Understand different components to build task flows
● Task flows templates
● Reusable task flows
● Use cases
● Q & A
Thanks Google, Flickr.com and Oracle documentation for images used in this presentation. These images are unmodified and used for educational purpose only.
Agenda
5. 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
What are Task Flows?
7. Types of Task Flows - Key Differences
Un-bounded (UTF)
● Public pages / No boundary
● No reuse
● No input parameters
● No return values
● No transaction Control
● No security
● e.g. Pages - Home, Help,
Search, Navigations
Bounded (BTF)
● Well defined boundary
● Reusable
● Can take input parameters
● Can return values
● Allows transaction control
● Security control
● e.g. Register, Checkout, other
application processes
8. ● 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
Bounded Task flows
10. 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
Page vs. Page Fragment
11. Task flow Regions
Static Regions
● Fixed visibility
● Creates Task flow binding on
page
● Tutorial
http://www.baigzeeshan.com/2010/04/crea
ting-pages-with-regions-in-oracle.html
Dynamic Regions
● Visible based on custom logic
● Creates Multi-task flow binding
in page definition
● 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. ● Application..... Remains till application stops
● Session.......... Persists till user session
● PageFlow...... Also known as Task flow scope
● View............... Lifespan till current page
● Request......... Lives for duration of request only
● BackingBean. UI Component based
Task Flow Managed Bean Scopes
15. Task flow Components
● Displays a JSF Page or Fragment
● Extension .jsf, .jspx and .jsff (fragments)
● Bookmark able only in unbounded Task flows
● Can have one or more task flow regions
● Good practice to have page definition file
attached
16. Task flow Components
● 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,
exception handler
● Can have return values in case of method returns
some result
● if method is of 'void' type then outcome would be
simple string
17. Task flow Components
● 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.
18. Task flow Components
● 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
19. Task flow Components
● 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
20. Task flow Components
● 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
21. Task flow Components
● Allow to restore application to previous state
● Supports Save for later functionality
● Only required where Restore needed
22. Task flow Components
● Allows to trigger navigation of Parent view
activity in ADF Region
● Identifies how control will pass from one
activity to another
● Represents global navigation case
23. ● 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
Task flow Templates
26. ● Build BTFs in separate 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 behavior of UI components
based on Input parameters
● Use dynamic regions
Tips to build Reusable Task Flows
27. ● 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
library path
● Complete Tutorial available at http://www.baigzeeshan.com/2010/08/sharing-business-components-and-
task.html
How to Reuse Task flows
28. ● Typical Home page - Calling Task Flows from Task Flows
Building Task flows as Services
29. ● Common Flow - Search, Edit , Commit or Rollback
Building Task flows as Services
30. ● Service Flow - Add new Item while entering data on other screen
Building Task flows as Services
31. ● Service Flow - Upload Photos, Review and Submit
Building Task flows as Services
32. ● Decision Point - Based on UserType Parameter Redirect to
different Page
Building Task flows as Services
33. ● Parameterized Task Flow - Multi-functional, Hide/show
components based on parameters
Building Task flows as Services
34. ● URL call flow - Calling Registration, Profile Flows using URL call,
Independent transaction
Building Task flows as Services