0% found this document useful (0 votes)
14 views45 pages

King Oracle ADF TaskFlowBeyond10MinuteDemo3

The document presents an overview of Oracle ADF Task Flow, detailing its use in creating ADF-based applications and controlling application execution through JDeveloper. It explains the MVC architecture implemented in ADF, the differences between unbounded and bounded task flows, and how to utilize ADF Faces components for UI development. Additionally, it covers the declarative nature of task flows and their configuration, highlighting the benefits of reusability and parameter handling in bounded task flows.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views45 pages

King Oracle ADF TaskFlowBeyond10MinuteDemo3

The document presents an overview of Oracle ADF Task Flow, detailing its use in creating ADF-based applications and controlling application execution through JDeveloper. It explains the MVC architecture implemented in ADF, the differences between unbounded and bounded task flows, and how to utilize ADF Faces components for UI development. Additionally, it covers the declarative nature of task flows and their configuration, highlighting the benefits of reusability and parameter handling in bounded task flows.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 45

Oracle ADF Task Flow

Beyond the 10-Minute Demo

Presented by: John Jay King


Download this paper from: http://www.kingtraining.com

Copyright @ 2013, John Jay King


1 http://www.kingtraining.com
Session Objectives

• Learn how JDeveloper may be used to


create ADF-based applications
• Use ADF Task Flow to control application
execution
• Take advantage of ADF’s built-in
application control (MVC)

Copyright @ 2013, John Jay King


2 http://www.kingtraining.com
Who Am I?
• John King – Partner, King Training Resources
• Oracle Ace & member Oak Table Network
• Providing training to Oracle and IT community for
over 20 years – http://www.kingtraining.com
• “Techie” who knows Oracle, SQL, Java, and
PL/SQL pretty well (along with many other topics)
• Leader in Service Oriented Architecture (SOA)
• Member of ODTUG (Oracle Development Tools
User Group) Board of Directors
• Member of RMOUG (but I live in Arizona!)

Copyright @ 2013, John Jay King


3 http://www.kingtraining.com
Who Are You?
• Oracle ADF JDeveloper
– New (< 1 yr)
– 1-2 years
– Over 2 years
• Oracle ADF Eclipse
• Oracle Forms Developer
• 4GL Developer (.NET, etc…)
• Java Developer
• All of the above
• None of the above
Copyright @ 2013, John Jay King
4 http://www.kingtraining.com
ADF Comes of Age
• Oracle Application Development Framework
(ADF) is a Java-based development tool (much
like Forms is a PL/SQL-based tool) designed to
take full advantage of Java EE
• Java EE is one of the most widespread
application environments today
• ADF’s 4GL features make application
development easier than normal Java “coding”
• Oracle is rewriting their ERP stack as “Fusion
Applications” using ADF; the already rich
toolset gets richer every day
Copyright @ 2013, John Jay King
5 http://www.kingtraining.com
Oracle JDeveloper
• JDeveloper is a world-class, easy to use IDE
• JDeveloper goes beyond Java to include:
– Oracle creation of mobile applications via checkbox
– Oracle ADF modeling, business svcs, and GUI design
– XML edit including Syntax Checking & Validation
– SQL development with debugging of stored PL/SQL
– UML Modeling and MDA (Model Driven Architecture)
– Web Services development
– ESB design
– BPEL design
– Portlets

Copyright @ 2013, John Jay King


6 http://www.kingtraining.com
Java Server Faces (JSF)
• Java Server Faces (JSF) is a Web-tier
framework of JSP technology and JSP Tag
libraries to create and use User Interface
components
• JSF is extended by components of Oracle ADF
Faces
• JSF includes:
– Runtime architecture
– Library of JSF components
– JSF “Life Cycle”
– Many JSF-Oriented Files
Copyright @ 2013, John Jay King
7 http://www.kingtraining.com
JSF Life Cycle
• JSF (and ADF Faces) perform a predictable cycle:
1. Restore Components
2. Apply Request Values
3. Process Validations
4. Update Model Values
5. Invoke Application
6. Render Response
• This Life Cycle is normally transparent; however,
when choosing where to store session variables
and debugging it is useful to understand

Copyright @ 2013, John Jay King


8 http://www.kingtraining.com
ADF Faces
• Even though JSF sought to simplify the API; it
is often felt to be too complex
• Oracle has extended JSF as “ADF Faces”
providing a set of libraries and tags that include
enhanced UI components and easier use
• Oracle has presented ADF Faces to the Open
Source community where it is part of the
Apache Foundation Trinidad MyFaces project

http://myfaces.apache.org/trinidad/index.html

Copyright @ 2013, John Jay King


9 http://www.kingtraining.com
Using ADF
• Using ADF Faces is simple using JDeveloper:
– Add ADF Faces components to layout containers
– Add Application layout containers to describe user
interface
– Describe Task Flows
– All UI is done with ADF Faces; no HTML coding
• Features added by ADF Faces:
– Pop-ups and Dialog boxes
– Data Visualization Tools: Charts, graphics, etc...
– Declarative AJAX support
– More…

Copyright @ 2013, John Jay King


10 http://www.kingtraining.com
ADF Controller
• The ADF Controller extends the JSF controller
and controls ADF’s MVC
• ADF Controller features include:
– Sequence of page displays (may be conditional)
– Allows partial-page processing in the same way as
full page processing; only the necessary part of a
page is rendered, the rest is unchanged
– Allows reuse of page parts
– Provides conditional control of page flow

Copyright @ 2013, John Jay King


11 http://www.kingtraining.com
What is MVC ?
• The Model-View-Controller (MVC) pattern was
first described by Glenn E. Krasner and Stephen
T. Pope in the paper titled
“A Description of the Model-View-Controller User
Interface Paradigm in the Smalltalk-80
System” (1988)

Copyright @ 2013, John Jay King


12 http://www.kingtraining.com
MVC Pattern
• The MVC pattern separates functionality:
– Model Provides data services; changes
to data management or business
rules do not impact the view
– View Provides interface shown
and/or delivered to the client;
output changes don’t impact data
– Controller Provides decision making and
navigational control

Copyright @ 2013, John Jay King


13 http://www.kingtraining.com
ADF and MVC
• In ADF MVC is implemented via:
– Model ADF BC components
– View ADF Faces components
– Controller ADF/JSF Controller and
Task Flows

Copyright @ 2013, John Jay King


14 http://www.kingtraining.com
JSF Task Flow
• JSF navigates declaratively
(default file named “faces-config.xml”)
– Navigation may be configured manually using
XML
– JSF Navigation may be configured graphically
using JDeveloper's JSF Navigation
diagrammer

Copyright @ 2013, John Jay King


15 http://www.kingtraining.com
ADF Task Flow
• ADF Task Flow (pageflow) navigation and
transition is specified declaratively
(default file named “adfc-config.xml")
– Navigation may be configured manually using
XML
– ADF Task Flow may be configured graphically
using the JDeveloper ADF Task Flow
diagrammer

Copyright @ 2013, John Jay King


16 http://www.kingtraining.com
Task Flow Diagrams
• Task Flow diagrams illustrate all or part of
an application’s navigation

Copyright @ 2013, John Jay King


17 http://www.kingtraining.com
UnBounded vs Bounded
• ADF supports two types of Task Flows;
Unbounded and Bounded
• Unbounded Task Flows
– Multiple entry points and multiple exit points
– No input parameters or return values
– Page-oriented (initial page, help, menus, etc…)
– Typically one per application; not reusable
• Bounded Task Flows
– Single entry point and multiple exit points
– Allows input parameters and return values
– Process-oriented (checkout, calculate taxes, etc…)
– Frequently many in an application; reusable objects
Copyright @ 2013, John Jay King
18 http://www.kingtraining.com
Using Task Flows
• Unbounded Task Flows
– Top-level (bootstrap) flow
– Navigation may begin anywhere in the flow using URL
• Bounded Task Flows
– Process flow with defined boundary
– Navigation must begin at defined point
– Started via URL, other task flows, or Task Flow binding
– When called from other task flows may use input
parameters to pass data
– When exiting may return values
– Generally execute in an area of the parent page called
a “Region”
Copyright @ 2013, John Jay King
19 http://www.kingtraining.com
ADF Region
• ADF Regions contain bounded task flows
representing
page fragments
within a Page

Copyright @ 2013, John Jay King


20 http://www.kingtraining.com
Pages and Page Fragments
• Pages
– Use .jsf or .jspx file suffix
– May include many Page Fragments
• Page Fragments
– Use .jsff suffix
– Provide content for Pages (above)

Copyright @ 2013, John Jay King


21 http://www.kingtraining.com
ADF Task Flow Diagram
• Most applications use multiple web pages, the
JDeveloper ADF Task Flow diagram is used to
diagram movement through an application
(sort of an electronic story-board)
• To diagram a “Page Flow”
– Open the “adf-config” or “adfc-config” in an
application's ViewController project
(look under “Page Flows”)
– Use “New ADF Task Flow”

Copyright @ 2013, John Jay King


22 http://www.kingtraining.com
Blank Task Flow
• Use the component palette to build flows
by dragging existing pages or new
components to diagram

Copyright @ 2013, John Jay King


23 http://www.kingtraining.com
Component Palette
• The ADF Task Flow component palette
contains tools used to create a task flow

Copyright @ 2013, John Jay King


24 http://www.kingtraining.com
Main Task Flow Components
• View Activity Task Flow page
• Control Flow Case Navigation between
two points in Task Flow
• Method Call Activity Call to method
• Wildcard Control Flow Rule Define activity
access via known paths
• Router Activity Expression-based
branching
• Task Flow Return Activity Pass control back to
calling Task Flow
• URL View Activity Navigate to any page
Copyright @ 2013, John Jay King
25 http://www.kingtraining.com
Creating Task Flow
• Drag “View” components to represent pages
• Drag “Control Flow Rules” from the View where
control begins to the View where control is to end

Copyright @ 2013, John Jay King


26 http://www.kingtraining.com
Component Review

Copyright @ 2013, John Jay King


27 http://www.kingtraining.com
View
• Displays one page (.jsf, .jspx, .jsff)
– May have one or more Task Flow regions
– Default view of Bounded Task Flow shaded

Copyright @ 2013, John Jay King


28 http://www.kingtraining.com
Control Flow
• Control flow describes flow between parts of a
task flow
– Control Flow properties describe actions to be taken

Copyright @ 2013, John Jay King


29 http://www.kingtraining.com
Passing Data
• Parameters and Return Values are generally
passed using Expression Language (EL)
#{controllerContext.currentViewPort.ta
skFlowContext.trainModel}
• ADF’s EL is similar to the JSP EL commonly used
in Java
– ADF’s EL usually uses the hash-mark/pound-sign (#)
indicating a deferred reference
– Deferred EL works within the JSF-cycle of ADF;
immediate EL ($) may be evaluated prematurely

Copyright @ 2013, John Jay King


30 http://www.kingtraining.com
Input Parameter Example
• Here is an input parameter from a control flow
• Note the “pageFlowScope” in user for “username”

Copyright @ 2013, John Jay King


31 http://www.kingtraining.com
Servlet/JSF Memory Scopes
• Application Scope Attributes/beans available
globally to all users for life
of application
• Session Scope Attributes/beans available
for life of browser session
• Request Scope Attributes/beans available
until application returns
control to user (one page)

Copyright @ 2013, John Jay King


32 http://www.kingtraining.com
ADF Memory Scope
• Some memory scopes are ADF-specific
• View Scope Attributes/beans for single
page for duration user
works with page
• PageFlow Scope Attributes/beans live for
duration of Task Flow
(“pushed” if new Bounded
Task Flow called; “popped”
upon return)
• Backing Bean Scope Attributes/beans specific
to specific component

Copyright @ 2013, John Jay King


33 http://www.kingtraining.com
ADF Variable Scope EL
#{applicationScope.varname}
#{sessionScope.varname}
#{requestScope.varname}
#{varname}
#{pageFlowScope.varname}
#{viewScope.varname}
#{backingBeanScope.varname}

Copyright @ 2013, John Jay King


34 http://www.kingtraining.com
Use Scope Wisely
• Use Application Scope for things that should live
for the life of the server and that should be global
• Use Session Scope only when values should
survive for the entire browser session duration
• Use Request Scope for data that is passed while
processing a single page
• Use PageFlow Scope for data to be passed
from screen-to-screen during a Task Flow
• Use View scope for value local to a given page
• Use Backing Bean scope for specific field data
passed within a single page (like Request Scope)
Copyright @ 2013, John Jay King
35 http://www.kingtraining.com
Common Task Flow Practice
• Build Bounded Task Flows in separate
applications to increase portability
• Use Task Flow within page fragments
• Use input parameters to pass data and provide
conditional behavior

Copyright @ 2013, John Jay King


36 http://www.kingtraining.com
Task Flow Summary
• Unbounded Task Flows
– Entry to application or where user might enter flow at
any point
– Menu pages
• Bounded Task Flows
– Has single entry point
– Part of a page within a Region
– Used/Reused by other applications
– Usually performs commit/rollback on exit

Copyright @ 2013, John Jay King


37 http://www.kingtraining.com
ADF EMG Task Flow Tester
• The ADF EMG (Enterprise Methodology Group)
has created a tool for testing ADF Task Flows
http://java.net/projects/adf-task-flow-tester

Copyright @ 2013, John Jay King


38 http://www.kingtraining.com
Wrapping it all Up
• Oracle ADF provides a mostly-declarative capability to
create applications easily using industry-standard
technology “under the covers”
• Oracle ADF Task Flows improve on JSF Task Flows
and allow declarative management of MVC application
flow via GUI interface and XML files
• Bounded ADF Task Flows may be reused; processes
that appear in several applications (e.g. “checkout”) are
not repeated needlessly
• Bounded ADF Task Flows may use input parameters
and produce result values; EL is most often used to
simplify and increase reusability

Copyright @ 2013, John Jay King


39 http://www.kingtraining.com
Support on the Web
• OTN provides a great deal of support for ADF
http://www.oracle.com/technetwork/developer-tools/adf/
overview/index.html
– See the Oracle ADF Architecture Square on Learn More tab -
Architecture Square has links to suggested coding, project layout,
and naming guidelines
– Community tab has links to blogs and other community support

• ODTUG is the non-Oracle home for ADF developers


http://www.odtug.com
http://www.kscope13.com

Copyright @ 2013, John Jay King


40 http://www.kingtraining.com
Available Books
• Quick Start Guide to Oracle Fusion Development
– Grant Ronald
– Oracle Press
• Oracle JDeveloper 11g Handbook
– Duncan Mills, Peter Koletzke, Dr. Avrom Roy-Federman
– Oracle Press
• Oracle Fusion Developer's Guide
– Frank Nimphius, Lynn Munsinger
– Oracle Press
• Oracle JDeveloper 11gR2 Cookbook
– Nick Haralabidis
– Packt Publishing
Copyright @ 2013, John Jay King
41 http://www.kingtraining.com
Training Days 2014
2 Days of inexpensive Oracle-related training in Denver !!

February 6-7
February 5: University day: More low-cost training!
Check the website for details
Copyright @ 2013, John Jay King www.rmoug.org
42 http://www.kingtraining.com
April 2013 – Get Ready to Go!
Copyright @ 2013, John Jay King
43 http://www.kingtraining.com
Copyright @ 2013, John Jay King
44 http://www.kingtraining.com
Please Fill Out Session Evaluations
Oracle ADF Task Flow
Beyond the 10-Minute Demo

To contact the author:


John King
King Training Resources
P. O. Box 1780
Scottsdale, AZ 85252 USA
Thanks for your attention!
1.800.252.0652 - 1.303.798.5727
Email: [email protected]

Today’s slides and examples are on the web:


http://www.kingtraining.com
Copyright @ 2013, John Jay King
45 http://www.kingtraining.com

You might also like