SlideShare a Scribd company logo
1 of 28
Download to read offline
1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Real World ADF Design & Architecture Principles
Advanced ADF Task Flow Concepts
ORACLE
PRODUCT
LOGO
15th Feb 2013 v1.0
3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Learning Objectives
•  At the end of this module you should be able to:
–  Understand the difference between copied and inherited
task flow templates, their limitations and use cases
–  Understand loose coupling and when it is okay to create
dependencies between task flows
–  Know about task flow design considerations in terms of
granularity and size of individual task flows
–  Use bounded task flows as a common language between
developers as well as developers and domain experts
Image: imagerymajestic/ FreeDigitalPhotos.net
4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Task Flow Templates
•  Good Task Flow Design Practices
•  Highly Reusable Task Flows
5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Templates
•  Communication
–  Use templates to discuss business processes with non-technical domain
experts
•  Reuse
–  Use to implement pattern for reoccuring processes
• CRUD
• Lookup
–  Use to enforce development standards and good practices
Reuse and Communication
6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Templates
•  Define common functionality to be inherited by or copied into flows
subsequently created bounded task flows
•  Use cases
–  Property Settings
–  Managed bean definitions
–  Exception handling flows
–  Logging
–  Auditing
–  Transaction behavior
•  Templates are either copied into new bounded task flow or referenced
Overview
7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Templates
•  Template is a "blue print" for a family of related processes
–  Bounded task flows built from a template usually need to modify the flow
–  Later changes to the template should not be visible in bounded task flow
•  Beware!
–  Ensure unique ID in the bounded task flow metadata when copying from
a template to not break MDS functionality
When to Copy from Templates
8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Templates
•  Template contains common functionality
–  Exception handling
–  Managed beans
–  Task flow entry / exit logging
•  Changes to the template should be immediately reflected in
bounded task flows
•  Be aware!
–  Before JDeveloper 12c: Activities in the referenced template don't show in visual
editor when designing bounded task flows
–  Properties inherited from a referenced template cannot be changed for a task flow
When to Reference Templates
9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Example: Jobs Task Flow
10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Tf-fragment-template
11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Templates
•  Avoid name collisions with consuming task flows
•  Collisions will override functionality
•  Standardize on template naming schemes for:
–  Activities
–  Parameter
–  Managed beans
Avoid Pitfalls
12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Task Flow Templates
•  Good Task Flow Design Practices
•  Highly Reusable Task Flows
13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
How granular should our task
flows be?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Design
•  Small task flows:
–  Require a lot of calling and maintenance management overhead
–  Reasonable sizes for distributed team development
–  Provide ultimate flexibility in architecture
•  Large task flows:
–  Require less calls and maintenance management overhead
–  Less flexible as you can't call discrete functionality within the flow
–  Memory footprint likely bigger than small task flows
Task Flow Sizing Considerations
15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Design
•  Meet in the Middle
–  Larger task flows built out of several smaller task flows
–  Only top level task flow exposed for reuse
–  Encapsulates task flow dependencies
• Good for distributing work among developers
• Dependency management "by agreement" in smaller teams
• Smaller memory foot print through load-on-demand and task flow
private memory scopes
Task Flow Sizing Considerations
16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Task Flow Design
•  Think "unit-of-work" and factor task flow functionality into subflows
–  Share Data Control frame with sub-flows
–  Hide sub-flows from showing in ADF library
–  If you cannot fully explain and describe a task flow in 60 seconds it
probably is too big
•  If you save a lot of data in pageFlowScope, keep the task flow small
and exit at earliest opportunity
•  Keep task flows that run in their own transaction as small as
possible and exit them at earliest opportunity
Sizing Guidelines
17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
How much should I care for
loose coupling?
Exercise
Image: imagerymajestic/ FreeDigitalPhotos.net
18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Loose Coupling
Where Would You Care The Most?
Bounded Task Flow
Task Flow
Call Activity
Bounded Task Flow
Task Flow
Call Activity
Bounded Task Flow
Task Flow
Call Activity
Bounded Task Flow
Task Flow
Call Activity
Bounded Task Flow
Task Flow
Call Activity
Bounded Task Flow
Task Flow
Call Activity
ADF Library
Library
internal
Library
internal
Library
internal
Library
internal
19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Program Agenda
•  Task Flow Templates
•  Good Task Flow Design Practices
•  Highly Reusable Task Flows
20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Maximize Reuse
•  Define and configure:
–  A set of input parameters that allows you to configure various use cases
–  A router activity as the default activity to enable conditional flows
–  Dynamic iterator bindings 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
21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Example 1: Dynamic Task Flow Entry
22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Example 2: Dynamic Iterator Binding
•  Solution
–  Dynamically reference view object instance name from iterator binding
property
–  Dynamically generate new View Object instance in ADF Business
Components model
•  Use method call activity to invoke View Object instance creation before rendering view
•  Use View Criteria to shape query result displayed by View Object
•  What does this help with?
–  Allows multiple regions to be added based on the same task flow with
shared data controls configuration
–  Each region shows different row data
Use case: Multiple Instances of Task Flow with Shared DC
23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Multiple Instances of Task Flow with Shared DC
Task Flow
af:region
Parent View
Managed Bean
Page Flow Scope
View
<file>.jsff
<file>PageDef.xml
allEmployeesIterator
allEmployees
View Object
Instance Name
Input Parameter
reads from
has "Binds"
property set to
Input Parameter
Query argument
(e.g. 60 for querying
department 60)
24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Multiple Instances of Task Flow with Shared DC
ADF BC Implementation (AM Impl)
public void createUniqueEmployeesVOInstance(Integer departmentId, String instanceName) {
ViewObject existingVO = findViewObject(instanceName);
if (existingVO == null) {
//create a new view object based on the existing Employees View Object
ViewObject newVO = this.createViewObject(instanceName,
this.getallEmployees().getDefFullName());
ViewCriteria vc = newVO.createViewCriteria();
ViewCriteriaRow vcRow = vc.createViewCriteriaRow();
//ensure View Object instance returns data specified by the
//task flow input parameters
vcRow.setAttribute("DepartmentId", "= "+departmentId);
vc.addElement(vcRow);
newVO.applyViewCriteria(vc);
} else {
//instance will be reused
}
}
25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Conclusion
•  Task Flow templates are blueprints that provide a
visual and common language between IT
professionals and business domain experts
•  Document task flows using diagram annotations
•  Keep task flows "just big enough" but as small as
possible so that task flows that open a separate
transaction or task flows that keep large objects in
memory are exited early.
26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
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
27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Further Reading
•  ADF Insider
–  Task Flow Overview Part 1
•  http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/taskflow-overview-p1/taskflow-overview-p1.html
–  Task Flow Overview Part 2
•  http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/taskflow-overview-p2/taskflow-overview-p2.html
28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationChris Muir
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingChris Muir
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignChris Muir
 
Oracle ADF Architecture TV - Design - Usability and Layout Design
Oracle ADF Architecture TV - Design - Usability and Layout DesignOracle ADF Architecture TV - Design - Usability and Layout Design
Oracle ADF Architecture TV - Design - Usability and Layout DesignChris Muir
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesChris Muir
 
ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)Wilfred van der Deijl
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesChris Muir
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesChris Muir
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesChris Muir
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningChris Muir
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsChris Muir
 
Oracle ADF Architecture TV - Design - Application Customization and MDS
Oracle ADF Architecture TV - Design - Application Customization and MDSOracle ADF Architecture TV - Design - Application Customization and MDS
Oracle ADF Architecture TV - Design - Application Customization and MDSChris Muir
 
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationOracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationChris Muir
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingChris Muir
 
Oracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationOracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationChris Muir
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...Chris Muir
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityChris Muir
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk MobileChris Muir
 
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsOracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsChris Muir
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleChris Muir
 

What's hot (20)

Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile IntegrationOracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
Oracle ADF Architecture TV - Design - Architecting for ADF Mobile Integration
 
Oracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error HandlingOracle ADF Architecture TV - Development - Error Handling
Oracle ADF Architecture TV - Development - Error Handling
 
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module DesignOracle ADF Architecture TV - Design - ADF BC Application Module Design
Oracle ADF Architecture TV - Design - ADF BC Application Module Design
 
Oracle ADF Architecture TV - Design - Usability and Layout Design
Oracle ADF Architecture TV - Design - Usability and Layout DesignOracle ADF Architecture TV - Design - Usability and Layout Design
Oracle ADF Architecture TV - Design - Usability and Layout Design
 
Oracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best PracticesOracle ADF Architecture TV - Development - Programming Best Practices
Oracle ADF Architecture TV - Development - Programming Best Practices
 
ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)ADF Worst Practices (UKOUG Tech2013)
ADF Worst Practices (UKOUG Tech2013)
 
Oracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service ArchitecturesOracle ADF Architecture TV - Design - ADF Service Architectures
Oracle ADF Architecture TV - Design - ADF Service Architectures
 
Oracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System TopologiesOracle ADF Architecture TV - Deployment - System Topologies
Oracle ADF Architecture TV - Deployment - System Topologies
 
Oracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project DependenciesOracle ADF Architecture TV - Design - Project Dependencies
Oracle ADF Architecture TV - Design - Project Dependencies
 
Oracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & TuningOracle ADF Architecture TV - Development - Performance & Tuning
Oracle ADF Architecture TV - Development - Performance & Tuning
 
Oracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build OptionsOracle ADF Architecture TV - Deployment - Build Options
Oracle ADF Architecture TV - Deployment - Build Options
 
Oracle ADF Architecture TV - Design - Application Customization and MDS
Oracle ADF Architecture TV - Design - Application Customization and MDSOracle ADF Architecture TV - Design - Application Customization and MDS
Oracle ADF Architecture TV - Design - Application Customization and MDS
 
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL IntegrationOracle ADF Architecture TV - Design - Architecting for PLSQL Integration
Oracle ADF Architecture TV - Design - Architecting for PLSQL Integration
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - Logging
 
Oracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for InternationalizationOracle ADF Architecture TV - Design - Designing for Internationalization
Oracle ADF Architecture TV - Design - Designing for Internationalization
 
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...Oracle ADF Architecture TV -  Planning & Getting Started - Team, Skills and D...
Oracle ADF Architecture TV - Planning & Getting Started - Team, Skills and D...
 
Oracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for SecurityOracle ADF Architecture TV - Design - Designing for Security
Oracle ADF Architecture TV - Design - Designing for Security
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
 
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure DecisionsOracle ADF Architecture TV - Design - MDS Infrastructure Decisions
Oracle ADF Architecture TV - Design - MDS Infrastructure Decisions
 
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with OracleMobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
Mobile Mumbo Jumbo - Demystifying the World of Enterprise Mobility with Oracle
 

Viewers also liked

Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsChris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewChris Muir
 
Oracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesOracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesChris Muir
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...Chris Muir
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Chris Muir
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsChris Muir
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data ServicesChris Muir
 

Viewers also liked (8)

Oracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction OptionsOracle ADF Architecture TV - Design - Task Flow Transaction Options
Oracle ADF Architecture TV - Design - Task Flow Transaction Options
 
Oracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow OverviewOracle ADF Architecture TV - Design - Task Flow Overview
Oracle ADF Architecture TV - Design - Task Flow Overview
 
Oracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration ArchitecturesOracle ADF Architecture TV - Design - Service Integration Architectures
Oracle ADF Architecture TV - Design - Service Integration Architectures
 
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
CRUX (CRUD meets UX) Case Study: Building a Modern Applications User Experien...
 
Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013Future of Oracle Forms AUSOUG 2013
Future of Oracle Forms AUSOUG 2013
 
Joulex & Junos Space SDK: Customer Success Story
Joulex & Junos Space SDK: Customer Success StoryJoulex & Junos Space SDK: Customer Success Story
Joulex & Junos Space SDK: Customer Success Story
 
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope OptionsOracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
Oracle ADF Architecture TV - Design - Task Flow Data Control Scope Options
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
 

Similar to Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts

Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)Bizagi Inc
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Berry Clemens
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesMert Çalışkan
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerBerry Clemens
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersJithin Kuriakose
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Geir Høydalsvik
 
Oracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewOracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewFred Sim
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxToon Koppelaars
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for ChangeEric Wyles
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Berry Clemens
 
Experiences in building a PaaS Platform - Java One SFO 2012
Experiences in building a PaaS Platform - Java One SFO 2012Experiences in building a PaaS Platform - Java One SFO 2012
Experiences in building a PaaS Platform - Java One SFO 2012Jagadish Prasath
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Bobby Curtis
 
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...Kamalesh Ramasamy
 
Oracel ADF Introduction
Oracel ADF IntroductionOracel ADF Introduction
Oracel ADF IntroductionHojjat Abedie
 

Similar to Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts (20)

Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)Oracle BPM workflow and Open-XDX web services (Part 2)
Oracle BPM workflow and Open-XDX web services (Part 2)
 
Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581Adf-fusion-architecture_manage-modular-approach_4581
Adf-fusion-architecture_manage-modular-approach_4581
 
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFacesJavaOne - 10 Tips for Java EE 7 with PrimeFaces
JavaOne - 10 Tips for Java EE 7 with PrimeFaces
 
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partnerCon8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
Con8493 simplified ui 2013 tailoring dubois_evers_teter_o'broin_uob_partner
 
Developer want change Ops want control - devops
Developer want change Ops want control - devopsDeveloper want change Ops want control - devops
Developer want change Ops want control - devops
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
 
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
Simplifying MySQL, Pre-FOSDEM MySQL Days, Brussels, January 30, 2020.
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
 
Oracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewOracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c Overview
 
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptxODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
ODTUG_NoPlsql_vs_SmartDB_Part1_and_2.pptx
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
 
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...Con11257 schifano con11257-best practices for deploying highly scalable virtu...
Con11257 schifano con11257-best practices for deploying highly scalable virtu...
 
Experiences in building a PaaS Platform - Java One SFO 2012
Experiences in building a PaaS Platform - Java One SFO 2012Experiences in building a PaaS Platform - Java One SFO 2012
Experiences in building a PaaS Platform - Java One SFO 2012
 
resume_abdul_up
resume_abdul_upresume_abdul_up
resume_abdul_up
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)Database As A Service: OEM + ODA (OOW 15 Presentation)
Database As A Service: OEM + ODA (OOW 15 Presentation)
 
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
Oracle zdm Migrate Amazon RDS Oracle to Oracle Autonomous 2021 Kamalesh Ramas...
 
Oracel ADF Introduction
Oracel ADF IntroductionOracel ADF Introduction
Oracel ADF Introduction
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 

Oracle ADF Architecture TV - Design - Advanced ADF Task Flow Concepts

  • 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Real World ADF Design & Architecture Principles Advanced ADF Task Flow Concepts ORACLE PRODUCT LOGO 15th Feb 2013 v1.0
  • 3. 3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Learning Objectives •  At the end of this module you should be able to: –  Understand the difference between copied and inherited task flow templates, their limitations and use cases –  Understand loose coupling and when it is okay to create dependencies between task flows –  Know about task flow design considerations in terms of granularity and size of individual task flows –  Use bounded task flows as a common language between developers as well as developers and domain experts Image: imagerymajestic/ FreeDigitalPhotos.net
  • 4. 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Task Flow Templates •  Good Task Flow Design Practices •  Highly Reusable Task Flows
  • 5. 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Templates •  Communication –  Use templates to discuss business processes with non-technical domain experts •  Reuse –  Use to implement pattern for reoccuring processes • CRUD • Lookup –  Use to enforce development standards and good practices Reuse and Communication
  • 6. 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Templates •  Define common functionality to be inherited by or copied into flows subsequently created bounded task flows •  Use cases –  Property Settings –  Managed bean definitions –  Exception handling flows –  Logging –  Auditing –  Transaction behavior •  Templates are either copied into new bounded task flow or referenced Overview
  • 7. 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Templates •  Template is a "blue print" for a family of related processes –  Bounded task flows built from a template usually need to modify the flow –  Later changes to the template should not be visible in bounded task flow •  Beware! –  Ensure unique ID in the bounded task flow metadata when copying from a template to not break MDS functionality When to Copy from Templates
  • 8. 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Templates •  Template contains common functionality –  Exception handling –  Managed beans –  Task flow entry / exit logging •  Changes to the template should be immediately reflected in bounded task flows •  Be aware! –  Before JDeveloper 12c: Activities in the referenced template don't show in visual editor when designing bounded task flows –  Properties inherited from a referenced template cannot be changed for a task flow When to Reference Templates
  • 9. 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Example: Jobs Task Flow
  • 10. 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Tf-fragment-template
  • 11. 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Templates •  Avoid name collisions with consuming task flows •  Collisions will override functionality •  Standardize on template naming schemes for: –  Activities –  Parameter –  Managed beans Avoid Pitfalls
  • 12. 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Task Flow Templates •  Good Task Flow Design Practices •  Highly Reusable Task Flows
  • 13. 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. How granular should our task flows be? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 14. 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Design •  Small task flows: –  Require a lot of calling and maintenance management overhead –  Reasonable sizes for distributed team development –  Provide ultimate flexibility in architecture •  Large task flows: –  Require less calls and maintenance management overhead –  Less flexible as you can't call discrete functionality within the flow –  Memory footprint likely bigger than small task flows Task Flow Sizing Considerations
  • 15. 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Design •  Meet in the Middle –  Larger task flows built out of several smaller task flows –  Only top level task flow exposed for reuse –  Encapsulates task flow dependencies • Good for distributing work among developers • Dependency management "by agreement" in smaller teams • Smaller memory foot print through load-on-demand and task flow private memory scopes Task Flow Sizing Considerations
  • 16. 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Task Flow Design •  Think "unit-of-work" and factor task flow functionality into subflows –  Share Data Control frame with sub-flows –  Hide sub-flows from showing in ADF library –  If you cannot fully explain and describe a task flow in 60 seconds it probably is too big •  If you save a lot of data in pageFlowScope, keep the task flow small and exit at earliest opportunity •  Keep task flows that run in their own transaction as small as possible and exit them at earliest opportunity Sizing Guidelines
  • 17. 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. How much should I care for loose coupling? Exercise Image: imagerymajestic/ FreeDigitalPhotos.net
  • 18. 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Loose Coupling Where Would You Care The Most? Bounded Task Flow Task Flow Call Activity Bounded Task Flow Task Flow Call Activity Bounded Task Flow Task Flow Call Activity Bounded Task Flow Task Flow Call Activity Bounded Task Flow Task Flow Call Activity Bounded Task Flow Task Flow Call Activity ADF Library Library internal Library internal Library internal Library internal
  • 19. 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Task Flow Templates •  Good Task Flow Design Practices •  Highly Reusable Task Flows
  • 20. 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Maximize Reuse •  Define and configure: –  A set of input parameters that allows you to configure various use cases –  A router activity as the default activity to enable conditional flows –  Dynamic iterator bindings 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
  • 21. 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Example 1: Dynamic Task Flow Entry
  • 22. 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Example 2: Dynamic Iterator Binding •  Solution –  Dynamically reference view object instance name from iterator binding property –  Dynamically generate new View Object instance in ADF Business Components model •  Use method call activity to invoke View Object instance creation before rendering view •  Use View Criteria to shape query result displayed by View Object •  What does this help with? –  Allows multiple regions to be added based on the same task flow with shared data controls configuration –  Each region shows different row data Use case: Multiple Instances of Task Flow with Shared DC
  • 23. 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Multiple Instances of Task Flow with Shared DC Task Flow af:region Parent View Managed Bean Page Flow Scope View <file>.jsff <file>PageDef.xml allEmployeesIterator allEmployees View Object Instance Name Input Parameter reads from has "Binds" property set to Input Parameter Query argument (e.g. 60 for querying department 60)
  • 24. 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Multiple Instances of Task Flow with Shared DC ADF BC Implementation (AM Impl) public void createUniqueEmployeesVOInstance(Integer departmentId, String instanceName) { ViewObject existingVO = findViewObject(instanceName); if (existingVO == null) { //create a new view object based on the existing Employees View Object ViewObject newVO = this.createViewObject(instanceName, this.getallEmployees().getDefFullName()); ViewCriteria vc = newVO.createViewCriteria(); ViewCriteriaRow vcRow = vc.createViewCriteriaRow(); //ensure View Object instance returns data specified by the //task flow input parameters vcRow.setAttribute("DepartmentId", "= "+departmentId); vc.addElement(vcRow); newVO.applyViewCriteria(vc); } else { //instance will be reused } }
  • 25. 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Conclusion •  Task Flow templates are blueprints that provide a visual and common language between IT professionals and business domain experts •  Document task flows using diagram annotations •  Keep task flows "just big enough" but as small as possible so that task flows that open a separate transaction or task flows that keep large objects in memory are exited early.
  • 26. 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. 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
  • 27. 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Further Reading •  ADF Insider –  Task Flow Overview Part 1 •  http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/taskflow-overview-p1/taskflow-overview-p1.html –  Task Flow Overview Part 2 •  http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/taskflow-overview-p2/taskflow-overview-p2.html
  • 28. 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.