SlideShare a Scribd company logo
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.
Ad

More Related Content

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
Chris 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 Handling
Chris 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 Design
Chris 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 Design
Chris 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 Practices
Chris 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 Architectures
Chris 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 Topologies
Chris 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 Dependencies
Chris 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 & Tuning
Chris 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 Options
Chris 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 MDS
Chris 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 Integration
Chris Muir
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - Logging
Chris 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 Internationalization
Chris 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 Security
Chris Muir
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
Chris 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 Decisions
Chris 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 Oracle
Chris Muir
 
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
Chris 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 Handling
Chris 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 Design
Chris 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 Design
Chris 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 Practices
Chris 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 Architectures
Chris 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 Topologies
Chris 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 Dependencies
Chris 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 & Tuning
Chris 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 Options
Chris 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 MDS
Chris 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 Integration
Chris Muir
 
Oracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - LoggingOracle ADF Architecture TV - Development - Logging
Oracle ADF Architecture TV - Development - Logging
Chris 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 Internationalization
Chris 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 Security
Chris Muir
 
Let's Talk Mobile
Let's Talk MobileLet's Talk Mobile
Let's Talk Mobile
Chris 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 Decisions
Chris 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 Oracle
Chris 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
Chris 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 Overview
Chris 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 Architectures
Chris 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 2013
Chris Muir
 
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
Juniper Developer Resources Cooney
 
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
Chris Muir
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
Chris Muir
 
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
Chris 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 Overview
Chris 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 Architectures
Chris 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 2013
Chris 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 Options
Chris Muir
 
Oracle REST Data Services
Oracle REST Data ServicesOracle REST Data Services
Oracle REST Data Services
Chris Muir
 
Ad

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)
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_4581
Berry 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 PrimeFaces
Mert Ç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_partner
Berry Clemens
 
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
Venkat Janardhanam, MS, MBA
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
Up2 Technology
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
Jithin 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
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
Knoldus Inc.
 
Apache Airflow
Apache AirflowApache Airflow
Apache Airflow
Knoldus Inc.
 
Oracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c OverviewOracle - Enterprise Manager 12c Overview
Oracle - Enterprise Manager 12c Overview
Fred 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.pptx
Toon Koppelaars
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
Eric 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 2012
Jagadish Prasath
 
resume_abdul_up
resume_abdul_upresume_abdul_up
resume_abdul_up
Abdul Kareem Khan
 
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
 
oracle database sql part 1.pdf
oracle database sql part           1.pdforacle database sql part           1.pdf
oracle database sql part 1.pdf
mahmoudnaser14
 
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
 
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_4581
Berry 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 PrimeFaces
Mert Ç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_partner
Berry Clemens
 
Oracle ADF Overview for Beginners
Oracle ADF Overview for BeginnersOracle ADF Overview for Beginners
Oracle ADF Overview for Beginners
Jithin 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 Overview
Fred 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.pptx
Toon Koppelaars
 
Twelve Factor - Designing for Change
Twelve Factor - Designing for ChangeTwelve Factor - Designing for Change
Twelve Factor - Designing for Change
Eric 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 2012
Jagadish 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
 
oracle database sql part 1.pdf
oracle database sql part           1.pdforacle database sql part           1.pdf
oracle database sql part 1.pdf
mahmoudnaser14
 
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
 
Ad

Recently uploaded (20)

What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell: Transforming Business Strategy Through Data-Driven Insights
Andrew Marnell
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...
Impelsys Inc.
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 

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.