Go to main content
1/70
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide
New and Changed Features for Release 12c (12.1.3)
Other Significant Changes in this Document for Release 12c (12.1.3)
Part I Getting Started with Fusion Web Applications
1
Introduction to Building Fusion Web Applications with Oracle ADF
1.1
Introduction to Oracle ADF
1.2
Oracle ADF Architecture
1.3
Overview of Building an Application with Oracle ADF
1.3.1
Creating an Application Workspace
1.3.2
Modeling with Database Object Definitions
1.3.3
Creating Use Cases
1.3.4
Designing Application Control and Navigation Using ADF Task Flows
1.3.5
Identifying Shared Resources
1.3.6
Creating a Data Model to Access Data with ADF Business Components
1.3.6.1
Creating a Layer of Business Domain Objects for Tables
1.3.6.2
Building the Business Services
1.3.6.3
Testing and Debugging Business Services with the Oracle ADF Model Tester
1.3.7
Implementing the User Interface with JSF
1.3.8
Data Binding with ADF Model
1.3.9
Validation and Error Handling
1.3.10
Adding Security
1.3.11
Testing and Debugging the Web Client Application
1.3.12
Refactoring Application Artifacts
1.3.13
Deploying a Fusion Web Application
1.3.14
Integrating a Fusion Web Application
1.4
Working Productively in Teams
1.4.1
Enforcing Standards
1.4.2
Using a Source Control System
1.5
Generation of Complete Web Tier Using Oracle JHeadstart
1.6
Other Resources for Learning Oracle ADF
2
Introduction to the ADF Sample Application
2.1
About the Summit Sample Applications for Oracle ADF
2.2
Setting Up the Summit Sample Applications for Oracle ADF
2.2.1
How to Download the Application Resources
2.2.2
How to Install the Summit ADF Schema
2.2.3
What Happens When You Install the Summit ADF Schema
2.2.4
How to Create the Database Connection for Summit Sample Applications for Oracle ADF
2.3
Running the Core Summit ADF Sample Application in the SummitADF Workspace
2.3.1
How to Run the Core Summit ADF Sample Application
2.3.2
Taking a Look at the Sample Application in the SummitADF Workspace
2.3.2.1
Browsing the Application
2.3.2.2
The Ordering Process
2.4
Running the Standalone Samples from the SummitADF_Examples Workspace
2.4.1
How to Run the Summit ADF Standalone Sample Applications
2.4.1.1
How to Run the Standalone Sample Applications From a Java Test Client
2.4.1.2
How to Run the Standalone Applications Without a Test Client
2.4.2
Overview of the Summit ADF Standalone Sample Applications
2.5
Running the Sample Application in the SummitADF_TaskFlows Workspace
2.5.1
How to Run the Summit Sample Application for ADF Task Flows
2.5.2
Overview of the Summit Sample Application for ADF Task Flows
2.6
Running the Standalone Samples in the SummitADF_DVT Workspace
2.6.1
Overview of the Summit ADF DVT Standalone Samples
2.6.2
How to Run the Summit ADF DVT Sample Application Pages
Part II Building Your Business Services
3
Getting Started with ADF Business Components
3.1
About ADF Business Components
3.1.1
ADF Business Components Use Cases and Examples
3.1.2
Additional Functionality for ADF Business Components
3.2
Creating the ADF Business Components Data Model Project
3.2.1
How to Create a Data Model Project for ADF Business Components
3.2.2
How to Add an ADF Business Components Data Model Project to an Existing Application
3.2.3
How to Initialize the Data Model Project With a Database Connection
3.2.4
How to Change the Data Model Project to Work With Offline Database Objects
3.2.5
What You May Need to Know About Application Server or Database Independence
3.2.6
What You May Need to Know About Basic Data Types
3.2.7
What You May Need to Know About Displaying Numeric Values
3.2.8
How to Customize Model Project Properties for ADF Business Components
3.2.9
How to Customize ADF Business Components Preferences
3.3
Creating and Editing Business Components
3.3.1
How to Create New Components Using Wizards
3.3.2
How to Create New Components Using the Context Menu
3.3.3
What Happens When You Create Business Components
3.3.4
What You May Need to Know About the Model Project Organization
3.3.5
What You May Need to Know About Package Naming Conventions
3.3.6
What You May Need to Know About Renaming Components
3.3.7
How to Edit Components Using the Component Overview Editor
3.4
Testing, Refactoring, and Visualizing Business Components
3.4.1
How to Use the Oracle ADF Model Tester
3.4.2
What You May Need to Know About Obtaining Oracle ADF Source Code
3.4.3
How to Find Business Component Usages in the Data Model Project
3.4.4
How to Explorer Business Component Dependencies in the Data Model Project
3.4.5
How to Refactor Business Components in the Data Model Project
3.4.6
How to Refactor Offline Database Objects and Update Business Components
3.4.7
How to Display Related Business Components Using Diagrams
3.4.8
What You May Need to Know About Using UML Diagrams
3.5
Customizing Business Components
3.5.1
How to Generate Business Component Java Subclasses
3.5.2
How to Expose Business Component Methods to Clients
3.5.3
What Happens When You Generate Custom Classes
3.5.4
What You May Need to Know About Custom Interface Support
3.5.5
What You May Need to Know About Generic Versus Strongly Typed APIs
3.5.6
How to Use Groovy Scripting Language With Business Components
3.5.7
What You May Need to Know About Referencing Business Components in Groovy Expressions
3.5.8
What You May Need to Know About Untrusted Groovy Expressions
3.5.9
What You May Need to Know About Referencing Custom Business Components Methods and Attributes in Groovy Expressions
3.5.9.1
Referencing Members of the Same Business Component
3.5.9.2
Referencing Members of Other Business Components
3.5.10
What You May Need to Know About Manipulating Business Component Attribute Values in Groovy Expressions
4
Creating a Business Domain Layer Using Entity Objects
4.1
About Entity Objects
4.1.1
Entity Object Use Cases and Examples
4.1.2
Additional Functionality for Entity Objects
4.2
Creating Entity Objects and Associations
4.2.1
How to Create Multiple Entity Objects and Associations from Existing Tables
4.2.2
How to Create Single Entity Objects Using the Create Entity Wizard
4.2.3
What Happens When You Create Entity Objects and Associations from Existing Tables
4.2.3.1
Foreign Key Associations Generated When Entity Objects Are Derived from Tables
4.2.3.2
Entity Object Key Generated When a Table Has No Primary Key
4.2.4
What Happens When You Create an Entity Object for a Synonym or View
4.2.5
How to Edit an Existing Entity Object or Association
4.2.6
How to Create Database Tables from Entity Objects
4.2.7
How to Synchronize an Entity with Changes to Its Database Table
4.2.7.1
Removing an Attribute Associated with a Dropped Column
4.2.7.2
Addressing a Data Type Change in the Underlying Table
4.2.8
How to Store Data Pertaining to a Specific Point in Time
4.2.9
What Happens When You Create Effective Dated Entity Objects
4.2.10
What You May Need to Know About Creating Entities from Tables
4.3
Creating and Configuring Associations
4.3.1
How to Create an Association
4.3.2
What Happens When You Create an Association
4.3.3
How to Change Entity Association Accessor Names
4.3.4
How to Rename and Move Associations to a Different Package
4.3.5
What You May Need to Know About Using a Custom View Object in an Association
4.3.6
What You May Need to Know About Composition Associations
4.4
Creating a Diagram of Entity Objects for Your Business Layer
4.4.1
How to Show Entity Objects in a Business Components Diagram
4.4.2
What Happens When You Create an Entity Diagram
4.4.3
What You May Need to Know About the XML Component Descriptors
4.4.4
What You May Need to Know About Changing the Names of Components
4.5
Defining Property Sets
4.5.1
How to Define a Property Set
4.5.2
How to Apply a Property Set
4.6
Defining Attribute Control Hints for Entity Objects
4.6.1
How to Add Attribute Control Hints
4.6.2
What Happens When You Add Attribute Control Hints
4.6.3
How to Define Formatters and Masks
4.7
Working with Resource Bundles
4.7.1
How to Set Message Bundle Options
4.7.2
How to Use Multiple Resource Bundles
4.7.3
How to Internationalize the Date Format
4.8
Defining Business Logic Groups
4.8.1
How to Create a Business Logic Group
4.8.2
How to Create a Business Logic Unit
4.8.3
How to Add Logic to a Business Logic Unit
4.8.4
How to Override Attributes in a Business Logic Unit
4.8.5
What Happens When You Create a Business Logic Group
4.8.6
What Happens at Runtime: How Business Logic Groups Are Invoked
4.9
Configuring Runtime Behavior Declaratively
4.9.1
How to Configure Declarative Runtime Behavior
4.9.2
What Happens When You Configure Declarative Runtime Behavior
4.9.3
How to Use Update Batching
4.10
Setting Attribute Properties
4.10.1
How to Set Database and Java Data Types for an Entity Object Attribute
4.10.2
How to Indicate Data Type Length, Precision, and Scale
4.10.3
How to Control the Updatability of an Attribute
4.10.4
How to Make an Attribute Mandatory
4.10.5
How to Define the Primary Key for the Entity
4.10.6
How to Define a Static Default Value
4.10.7
How to Define a Default Value Using an Expression
4.10.8
What Happens When You Create a Default Value Using a Groovy expression
4.10.9
How to Synchronize with Trigger-Assigned Values
4.10.10
How to Get Trigger-Assigned Primary Key Values from a Database Sequence
4.10.11
How to Protect Against Losing Simultaneously Updated Data
4.10.12
How to Track Created and Modified Dates Using the History Column
4.10.13
How to Configure Composition Behavior
4.10.13.1
Orphan-Row Protection for New Composed Entity Objects
4.10.13.2
Ordering of Changes Saved to the Database
4.10.13.3
Cascade Update of Composed Details from Refresh-On-Insert Primary Keys
4.10.13.4
Cascade Delete Support
4.10.13.5
Cascade Update of Foreign Key Attributes When Primary Key Changes
4.10.13.6
Locking of Composite Parent Entity Objects
4.10.13.7
Using Batch Update with Composition Entity Objects
4.10.13.8
Updating of Composing Parent History Attributes
4.10.14
How to Set the Discriminator Attribute for Entity Object Inheritance Hierarchies
4.10.15
How to Define Alternate Key Values
4.10.16
What Happens When You Define Alternate Key Values
4.10.17
What You May Need to Know About Alternate Key Values
4.11
Adding Transient and Calculated Attributes to an Entity Object
4.11.1
How to Add a Transient Attribute
4.11.2
What Happens When You Add a Transient Attribute
4.11.3
How to Base a Transient Attribute on a Groovy Expression
4.11.4
What Happens When You Base a Transient Attribute on a Groovy Expression
4.11.5
How to Add Java Code in the Entity Class to Perform Calculation
4.12
Creating Business Events
4.12.1
Introducing Event Definitions
4.12.2
Introducing Event Points
4.12.3
What You May Need to Know About Event Points
4.12.4
How to Create a Business Event
4.12.5
What Happens When You Create a Business Event
4.12.6
What You May Need to Know About Payload
4.12.7
How to Define a Publication Point for a Business Event
4.13
Generating Custom Java Classes for an Entity Object
4.13.1
How to Generate Custom Classes
4.13.2
What Happens When You Generate Custom Classes
4.13.3
What Happens When You Generate Entity Attribute Accessors
4.13.4
How to Navigate to Custom Java Files
4.13.5
What You May Need to Know About Custom Java Classes
4.13.5.1
Framework Base Classes for an Entity Object
4.13.5.2
Safely Adding Code to the Custom Component File
4.13.5.3
Configuring Default Java Generation Preferences
4.13.5.4
Attribute Indexes and InvokeAccessor Generated Code
4.13.6
Programmatic Example for Comparison Using Custom Entity Class References
4.14
Working Programmatically with Entity Objects and Associations
4.14.1
How to Find an Entity Object by Primary Key
4.14.2
How to Access an Associated Entity Using the Accessor Attribute
4.14.3
How to Update or Remove an Existing Entity Row
4.14.4
How to Create a New Entity Row
4.14.5
Assigning the Primary Key Value Using an Oracle Sequence
4.14.6
How to Update a Deleted Flag Instead of Deleting Rows
4.14.6.1
Updating a Deleted Flag When a Row Is Removed
4.14.6.2
Forcing an Update DML Operation Instead of a Delete
4.14.7
How to Control Entity Posting Order to Prevent Constraint Violations
4.14.7.1
Default Post Processing Order
4.14.7.2
Compositions and Default Post Processing Order
4.14.7.3
Overriding postChanges() to Control Post Order
4.14.8
Advanced Entity Association Techniques
4.14.8.1
Modifying Association SQL Clause to Implement Complex Associations
4.14.8.2
Exposing View Link Accessor Attributes at the Entity Level
4.14.9
What You May Need to Know About Custom Entity Object Methods
4.15
Creating Custom, Validated Data Types Using Domains
4.15.1
How to Create a Domain
4.15.2
What Happens When You Create a Domain
4.15.3
What You May Need to Know About Domains
4.15.3.1
Domains as Entity and View Object Attributes
4.15.3.2
DataCreationException in Custom validate() Method
4.15.3.3
String Domains and String Value Aggregation
4.15.3.4
Simple Domains and Built-In Types
4.15.3.5
Simple Domains As Immutable Java Classes
4.15.3.6
Creating Domains for Oracle Object Types When Useful
4.15.3.7
Domains Packaged in the Common JAR
4.15.3.8
Custom Domain Properties and Attributes in Entity and View Objects
4.15.3.9
Inherited Restrictive Properties of Domains in Entity and View Objects
4.16
Creating New History Types
4.16.1
How to Create New History Types
4.16.2
How to Remove a History Type
4.17
Basing an Entity Object on a PL/SQL Package API
4.17.1
How to Create an Entity Object Based on a View
4.17.2
What Happens When You Create an Entity Object Based on a View
4.17.3
How to Centralize Details for PL/SQL-Based Entities into a Base Class
4.17.4
How to Implement the Stored Procedure Calls for DML Operations
4.17.5
How to Add Select and Lock Handling
4.17.5.1
Updating PLSQLEntityImpl Base Class to Handle Lock and Select
4.17.5.2
Implementing Lock and Select for the Product Entity
4.17.5.3
Refreshing the Entity Object After RowInconsistentException
4.18
Basing an Entity Object on a Join View or Remote DBLink
4.18.1
How to Disable the Use of the RETURNING Clause
4.18.2
What Happens at Runtime: Refresh Behavior With Disabled RETURNING Clause
4.19
Using Inheritance in Your Business Domain Layer
4.19.1
Understanding When Inheritance Can Be Useful
4.19.2
How to Create Entity Objects in an Inheritance Hierarchy
4.19.2.1
Identifying the Discriminator Column and Distinct Values
4.19.2.2
Identifying the Subset of Attributes Relevant to Each Kind of Entity
4.19.2.3
Creating the Base Entity Object in an Inheritance Hierarchy
4.19.2.4
Creating a Subtype Entity Object in an Inheritance Hierarchy
4.19.3
How to Add Methods to Entity Objects in an Inheritance Hierarchy
4.19.3.1
Adding Methods Common to All Entity Objects in the Hierarchy
4.19.3.2
Overriding Common Methods in a Subtype Entity Object
4.19.3.3
Adding Methods Specific to a Subtype Entity Object
4.19.4
What You May Need to Know About Using Inheritance
4.19.4.1
Introducing a New Base Entity
4.19.4.2
Subtype Entity Objects and the findByPrimaryKey() Method
4.19.4.3
View Objects with Polymorphic Entity Usages
5
Defining SQL Queries Using View Objects
5.1
About View Objects
5.1.1
View Object Use Cases and Examples
5.1.2
Additional Functionality for View Objects
5.2
Populating View Object Rows from a Single Database Table
5.2.1
How to Create an Entity-Based View Object
5.2.1.1
Creating a View Object with All the Attributes of an Entity Object
5.2.1.2
Creating an Entity-Based View Object from a Single Table
5.2.2
What Happens When You Create an Entity-Based View Object
5.2.3
What You May Need to Know About Non-Updatable View Objects
5.2.4
How to Edit a View Object
5.2.4.1
Overriding the Inherited Properties from Underlying Entity Object Attributes
5.2.4.2
Customizing View Object Attribute Display in the Overview Editor
5.2.4.3
Modifying the Order of Attributes in the View Object Source File
5.2.5
How to Show View Objects in a Business Components Diagram
5.3
Working with View Objects in Declarative SQL Mode
5.3.1
How to Create Declarative SQL View Objects
5.3.2
How to Filter Declarative SQL-Based View Objects When Table Joins Apply
5.3.3
How to Filter Master-Detail Related View Objects with Declarative SQL Mode
5.3.4
How to Support Programmatic Execution of Declarative SQL Mode View Objects
5.3.4.1
Forcing Attribute Queries for All Declarative SQL Mode View Objects
5.3.4.2
Forcing Attribute Queries for Specific Declarative SQL Mode View Objects
5.3.5
What Happens When You Create a View Object in Declarative SQL Mode
5.3.6
What Happens at Runtime: Declarative SQL Mode Queries
5.3.7
What You May Need to Know About Working Programmatically with Declarative SQL Mode View Objects
5.4
Creating View Objects Populated With Static Data
5.4.1
How to Create Static Data View Objects with Data You Enter
5.4.2
How to Create Static Data View Objects with Data You Import
5.4.3
What Happens When You Create a Static Data View Object
5.4.4
How to Edit Static Data View Objects
5.4.5
What You May Need to Know About Static Data View Objects
5.5
Adding Calculated and Transient Attributes to a View Object
5.5.1
How to Add a SQL-Calculated Attribute
5.5.2
What Happens When You Add a SQL-Calculated Attribute
5.5.3
What You May Need to Know About SQL-Calculated Attributes
5.5.4
How to Add a Transient Attribute
5.5.5
How to Add a Transient Attribute Defined by an Entity Object
5.5.6
How to Add a Validation Rule to a Transient Attribute
5.5.7
What Happens When You Add a Transient Attribute
5.5.8
What You May Need to Know About Transient Attributes and Calculated Values
5.6
Limiting View Object Rows Using Effective Date Ranges
5.6.1
How to Create a Date-Effective View Object
5.6.2
How to Create New View Rows Using Date-Effective View Objects
5.6.3
How to Update Date-Effective View Rows
5.6.4
How to Delete Date-Effective View Rows
5.6.5
What Happens When You Create a Date-Effective View Object
5.6.6
What You May Need to Know About Date-Effective View Objects and View Links
5.7
Working with Multiple Tables in Join Query Results
5.7.1
How to Create Joins for Entity-Based View Objects
5.7.2
How to Modify a Default Join Clause to Be an Outer Join When Appropriate
5.7.3
How to Select Additional Attributes from Reference Entity Usages
5.7.4
How to Remove Unnecessary Key Attributes from Reference Entity Usages
5.7.5
How to Hide the Primary Key Attributes from Reference Entity Usages
5.7.6
What Happens When You Reference Multiple Entities in a View Object
5.7.7
What You May Need to Know About Outer Joins
5.7.8
What You May Need to Know About Entity Based Joins and Entity Cardinality
5.7.9
What You May Need to Know About Entity Based Joins and Participates in Row Delete
5.7.10
What You May Need to Know About Composition Associations and Joins
5.7.11
How to Create Joins for Read-Only View Objects
5.7.12
How to Test the Join View
5.7.13
How to Use the SQL Statement Dialog with Read-Only View Objects
5.8
Working with View Objects and Custom SQL
5.8.1
How to Create a Custom SQL Mode View Object
5.8.2
What Happens When You Create a Custom SQL View Object
5.8.3
How to Customize SQL Statements in Custom SQL Mode
5.8.4
What Happens When You Enable Custom SQL Mode
5.8.5
What You May Need to Know About Custom SQL Mode
5.8.5.1
Attribute Names for Calculated Expressions in Custom SQL Mode
5.8.5.2
Attribute Mapping Assistance in Custom SQL Mode
5.8.5.3
Custom Edits in Custom SQL Mode
5.8.5.4
Changes to SQL Expressions in Custom SQL Mode
5.8.5.5
SQL Calculations that Change Entity Attributes in Custom SQL Mode
5.8.5.6
Formatting of the SQL Statement in Custom SQL Mode
5.8.5.7
Query Clauses in Custom SQL Mode
5.8.5.8
Inline View Wrapping at Runtime
5.8.5.9
Custom SQL Affect on Dependent Objects
5.8.5.10
Custom SQL Affect on View Object Query Auto Refresh
5.8.5.11
SQL Types of Attributes in Custom SQL Mode
5.9
Working with Named View Criteria
5.9.1
How to Create Named View Criteria Declaratively
5.9.2
What Happens When You Create a Named View Criteria
5.9.3
What You May Need to Know About Bind Variables in View Criteria
5.9.4
What You May Need to Know About Nested View Criteria Expressions
5.9.5
How to Set User Interface Hints on View Criteria to Support Search Forms
5.9.6
How to Test View Criteria Using the Oracle ADF Model Tester
5.9.7
How to Use View Criteria to Filter a View Object for the Current User
5.9.8
How to Create View Criteria Programmatically
5.9.9
What Happens at Runtime: How the View Criteria Is Applied to a View Object
5.9.10
What You May Need to Know About the View Criteria API
5.9.10.1
Referencing Attribute Names in View Criteria
5.9.10.2
Referencing Bind Variables in View Criteria
5.9.10.3
Searching for a Row Whose Attribute Is NULL
5.9.10.4
Searching for Rows Using a Date Comparison
5.9.10.5
Searching for Rows Whose Attribute Value Matches a Value in a List
5.9.10.6
Searching Case-Insensitively
5.9.10.7
Clearing View Criteria in Effect
5.9.10.8
Altering Compound Search Conditions Using Multiple View Criteria
5.9.11
What You May Need to Know About Query-by-Example Criteria
5.10
Working with Bind Variables
5.10.1
How to Add View Criteria Bind Variables to a View Object Definition
5.10.2
How to Add WHERE Clause Bind Variables to a View Object Definition
5.10.3
What Happens When You Add Named Bind Variables
5.10.4
How to Test Named Bind Variables
5.10.5
How to Add a WHERE Clause with Named Bind Variables at Runtime
5.10.6
How to Set Existing WHERE Clause Bind Variable Values at Runtime
5.10.7
What Happens at Runtime: Dynamic Read-Only View Object WHERE Clause
5.10.8
What You May Need to Know About Named Bind Variables
5.10.8.1
Errors Related to the Names of Bind Variables
5.10.8.2
Default Value of NULL for Bind Variables
5.11
Working with Row Finders
5.11.1
How to Add Row Finders to a View Object Definition
5.11.2
What Happens When You Define a Row Finder
5.11.3
What You May Need to Know About View Criteria and Row Finder Usage
5.11.4
Programmatically Invoking the Row Finder
5.12
Working with List of Values (LOV) in View Object Attributes
5.12.1
How to Define a Single LOV-Enabled View Object Attribute
5.12.2
How to Define Cascading Lists for LOV-Enabled View Object Attributes
5.12.2.1
Creating a Data Source View Object to Control the Cascading List
5.12.2.2
Creating a View Accessor to Filter the Cascading List
5.12.3
How to Specify Multiple LOVs for a Single LOV-Enabled View Object Attribute
5.12.4
How to Define an LOV to Display a Reference Attribute
5.12.5
How to Set User Interface Hints on a View Object LOV-Enabled Attribute
5.12.6
How to Handle Date Conversion for List Type UI Components
5.12.7
How to Automatically Refresh the View Object of the View Accessor
5.12.8
How to Test LOV-Enabled Attributes Using the Oracle ADF Model Tester
5.12.9
What Happens When You Define an LOV for a View Object Attribute
5.12.10
What Happens at Runtime: How an LOV Queries the List Data Source
5.12.11
What You May Need to Know About Lists
5.12.11.1
Inheritance of AttributeDef Properties from Parent View Object Attributes
5.12.11.2
Using Validators to Validate Attribute Values
5.13
Defining UI Hints for View Objects
5.13.1
How to Add Attribute-Specific UI Hints
5.13.2
How to Add View Object UI Hints
5.13.3
How to Access UI Hints Using EL Expressions
5.13.4
What Happens When You Add UI Hints
5.13.5
How to Define UI Category Hints
5.13.6
What Happens When You Assign Attributes to UI Categories
5.13.7
What You May Need to Know About Resource Bundles
6
Defining Master-Detail Related View Objects
6.1
About Master-Detail View Objects
6.1.1
Master-Detail View Object Use Cases and Examples
6.1.2
Additional Functionality for View Objects
6.2
Working with Multiple Tables in a Master-Detail Hierarchy
6.2.1
How to Create a Master-Detail Hierarchy Based on Entity Associations
6.2.2
How to Create a Master-Detail Hierarchy Based on View Objects Alone
6.2.3
What Happens When You Create Master-Detail Hierarchies Using View Links
6.2.4
How to Enable Active Master-Detail Coordination in the Data Model
6.2.5
How to Test Master-Detail Coordination
6.2.6
How to Access the Detail Collection Using the View Link Accessor
6.2.6.1
Accessing Attributes of Row by Name
6.2.6.2
Programmatically Accessing a Detail Collection Using the View Link Accessor
6.2.6.3
Optimizing View Link Accessor Access to Display Master-Detail Data
6.2.7
How to Create a Master-Detail Hierarchy for Entity Objects Consisting of Transient-Only Attributes
6.2.8
How to Find Rows of a Master View Object Using Row Finders
6.2.8.1
Defining a Row Finder on the Master View Object
6.2.8.2
What Happens When You Create a Row Finder for a Master View Object
6.3
Working with a Single Table in a Recursive Master-Detail Hierarchy
6.3.1
How to Create a Recursive Master-Detail Hierarchy for an Entity-Based View Object
6.3.1.1
Creating an Association-Based, Self-Referential View Link
6.3.1.2
Exposing the View Instance and Filter with a View Criteria
6.3.2
What Happens When You Create a Recursive Master-Detail Hierarchy
6.4
Working with Master-Detail Related View Objects in View Criteria
7
Defining Polymorphic View Objects
7.1
About Polymorphic View Objects
7.1.1
Polymorphic Entity Usages and Polymorphic View Rows Usages
7.2
Working with Polymorphic Entity Usages
7.2.1
How to Create a Subtype View Object with a Polymorphic Entity Usage
7.2.2
What Happens When You Create a Subtype View Object with a Polymorphic Entity Usage
7.2.3
What You May Need to Know About Polymorphic Entity Usages
7.2.3.1
Your Query Must Limit Rows to Expected Entity Subtypes
7.2.3.2
Exposing Selected Entity Methods in View Rows Using Delegation
7.2.3.3
Creating New Rows With the Desired Entity Subtype
7.3
Working with Polymorphic View Rows
7.3.1
How to Create a View Object with Polymorphic View Rows
7.3.2
What Happens When You Create a View Object with a Polymorphic View Rows
7.3.3
What You May Need to Know About Polymorphic View Rows
7.3.3.1
Selecting Subtype-Specific Attributes in Extended View Objects
7.3.3.2
Delegating to Subtype-Specific Methods After Overriding the Entity Usage
7.3.3.3
Working with Different View Row Interface Types in Client Code
7.4
What You May Need to Know About the Discriminator Attribute
7.5
Updating the Application Module to Expose Subtype Usages
7.5.1
How to Expose Subtype Usages on the Data Model
7.5.2
What Happens When You Add Subtype View Objects to the Application Module
8
Testing View Instance Queries
8.1
About View Instance Queries
8.1.1
View Instance Use Cases and Examples
8.1.2
Additional Functionality for Testing View Instances
8.2
Creating an Application Module to Test View Instances
8.2.1
How to Create the Application Module with Individual View Object Instances
8.2.2
How to Create the Application Module with Master-Detail View Object Instances
8.3
Testing View Object Instances Using the Oracle ADF Model Tester
8.3.1
How to Run the Oracle ADF Model Tester
8.3.2
How to Run the Oracle ADF Model Tester Using Configurations
8.3.3
How to Test Language Message Bundles and UI Hints
8.3.4
How to Test Entity-Based View Objects Interactively
8.3.5
How to Update the Oracle ADF Model Tester to Display Project Changes
8.3.6
What Happens When You Use the Oracle ADF Model Tester
8.3.7
How to Simulate End-User Interaction in the Oracle ADF Model Tester
8.3.7.1
Testing Master-Detail Coordination
8.3.7.2
Testing UI Hints
8.3.7.3
Testing Business Domain Layer Validation
8.3.7.4
Testing View Objects That Reference Entity Usages
8.3.7.5
Testing Row Creation and Default Value Generation
8.3.7.6
Testing That New Detail Rows Have Correct Foreign Keys
8.3.8
How to Test Multiuser Scenarios in the Oracle ADF Model Tester
8.3.9
How to Customize Configuration Options Before Running the Tester
8.3.10
How to Enable ADF Business Components Debug Diagnostics
8.3.11
What Happens at Runtime: How View Objects and Entity Objects Cooperate
8.3.11.1
What Happens at Runtime: After a View Object Executes Its Query
8.3.11.2
What Happens at Runtime: After a View Row Attribute Is Modified
8.3.11.3
What Happens at Runtime: After a Foreign Key Attribute is Changed
8.3.11.4
What Happens at Runtime: After a Transaction is Committed
8.3.11.5
What Happens at Runtime: After a View Object Requeries Data
8.3.12
What You May Need to Know About Optimizing View Object Runtime Performance
8.4
Testing View Object Instances Programmatically
8.4.1
ViewObject Interface Methods for Working with the View Object's Default RowSet
8.4.1.1
The Role of the Key Object in a View Row or Entity Row
8.4.1.2
The Role of the Entity Cache in the Transaction
8.4.2
How to Create a Command-Line Java Test Client
8.4.2.1
Generating a Test Client with Skeleton Code
8.4.2.2
Modifying the Skeleton Code to Create the Test Client
8.4.3
What Happens When You Run a Test Client Program
8.4.4
What You May Need to Know About Running a Test Client
8.4.5
How to Count the Number of Rows in a Row Set
8.4.6
How to Access a Detail Collection Using the View Link Accessor
8.4.7
How to Iterate Over a Master-Detail-Detail Hierarchy
8.4.8
How to Find a Row and Update a Foreign Key Value
8.4.9
How to Create a New Row for a View Object Instance
8.4.10
How to Retrieve the Row Key Identifying a Row
8.4.11
How to Authenticate Test Users in the Test Client
9
Tuning View Object Performance
9.1
About View Object Tuning
9.1.1
Limiting the Maximum Number of Records Fetched for a View Object
9.1.2
Maintaining New Row Consistency in View Objects Based on the Same Entity
9.1.2.1
What Happens at Runtime When View Link Consistency is Enabled
9.1.2.2
How to Change the Default View Link Consistency Setting
9.1.2.3
How to Use a RowMatch to Qualify Which New, Unposted Rows Get Added to a Row Set
9.1.2.4
What You May Need to Know About the Dynamic WHERE Clause and View Link Consistency
9.1.3
Understanding View Link Accessors Versus Data Model View Link Instances
9.1.3.1
Enabling a Dynamic Detail Row Set with Active Master-Detail Coordination
9.1.3.2
Accessing a Stable Detail Row Set Using View Link Accessor Attributes
9.1.3.3
Accessor Attributes Create Distinct Row Sets Based on an Internal View Object
9.1.4
Presenting and Scrolling Data a Page at a Time Using the Range
9.1.5
Efficiently Scrolling Through Large Result Sets Using Range Paging
9.1.5.1
Understanding How to Oracle Supports "TOP-N" Queries
9.1.5.2
How to Enable Range Paging for a View Object
9.1.5.3
What Happens When You Enable Range Paging
9.1.5.4
What Happens When View Rows are Cached When Using Range Paging
9.1.5.5
How to Scroll to a Given Page Number Using Range Paging
9.1.5.6
Estimating the Number of Pages in the Row Set Using Range Paging
9.1.5.7
Understanding the Tradeoffs of Using a Range Paging Mode
9.1.6
Setting Up a Data Model with Multiple Masters
9.1.7
Understanding When You Can Use Partial Keys with findByKey()
9.1.8
Handling View Object Queries with Primary Keys Defined by Transient Attributes
9.1.9
Creating Dynamic Attributes to Store UI State
9.1.10
Working with Multiple Row Sets and Row Set Iterators
9.1.11
Optimizing View Link Accessor Access By Retaining the Row Set
9.2
Tuning Your View Objects for Best Performance
9.2.1
Use Bind Variables for Parameterized Queries
9.2.1.1
Use Bind Variables to Avoid Reparsing of Queries
9.2.1.2
Use Bind Variables to Prevent SQL-Injection Attacks
9.2.1.3
Logging Bind Parameter Values
9.2.2
Consider Using Entity-Based View Objects for Read-Only Data
9.2.3
Use SQL Tracing to Identify Ill-Performing Queries
9.2.4
Consider the Appropriate Tuning Settings for Every View Object
9.2.4.1
Set the Retrieve from Database Options Options Appropriately
9.2.4.2
Consider Whether Fetching One Row at a Time is Appropriate
9.2.4.3
Specify a Query Optimizer Hint if Necessary
9.2.5
Use Forward Only Mode to Avoid Caching View Rows
10
Working Programmatically with View Objects
10.1
Generating Custom Java Classes for a View Object
10.1.1
How To Generate Custom Classes
10.1.1.1
Generating Bind Variable Accessors
10.1.1.2
Generating View Row Attribute Accessors
10.1.1.3
Exposing View Row Accessors to Clients
10.1.1.4
Configuring Default Java Generation Preferences
10.1.2
What Happens When You Generate Custom Classes
10.1.2.1
Seeing and Navigating to Custom Java Files
10.1.3
What You May Need to Know About Custom Classes
10.1.3.1
About the Framework Base Classes for a View Object
10.1.3.2
You Can Safely Add Code to the Custom Component File
10.1.3.3
Attribute Indexes and InvokeAccessor Generated Code
10.1.3.4
Avoid Creating Dependencies on Parent Application Module Types
10.2
Working Programmatically with Multiple Named View Criteria
10.2.1
Applying One or More Named View Criteria
10.2.2
Removing All Applied Named View Criteria
10.2.3
Using the Named Criteria at Runtime
10.3
Performing In-Memory Sorting and Filtering of Row Sets
10.3.1
Understanding the View Object's SQL Mode
10.3.2
Sorting View Object Rows In Memory
10.3.2.1
Combining setSortBy and setQueryMode for In-Memory Sorting
10.3.2.2
Simplified In-Memory Sorting
10.3.2.3
Extensibility Points for In-Memory Sorting
10.3.3
Performing In-Memory Filtering with View Criteria
10.3.4
Performing In-Memory Filtering with RowMatch
10.3.4.1
Applying a RowMatch to a View Object
10.3.4.2
Using RowMatch to Test an Individual Row
10.3.4.3
How a RowMatch Affects Rows Fetched from the Database
10.4
Reading and Writing XML
10.4.1
How to Produce XML for Queried Data
10.4.2
What Happens When You Produce XML
10.4.3
What You May Need to Know About Reading and Writing XML
10.4.3.1
Controlling XML Element Names
10.4.3.2
Controlling Element Suppression for Null-Valued Attributes
10.4.3.3
Printing or Searching the Generated XML Using XPath
10.4.3.4
Using the Attribute Map For Fine Control Over Generated XML
10.4.3.5
Use the Attribute Map Approach with Bi-Directional View Links
10.4.3.6
Transforming Generated XML Using an XSLT Stylesheet
10.4.3.7
Generating XML for a Single Row
10.4.4
How to Consume XML Documents to Apply Changes
10.4.5
What Happens When You Consume XML Documents
10.4.5.1
How ViewObject.readXML() Processes an XML Document
10.4.5.2
Using readXML() to Processes XML for a Single Row
10.5
Using Programmatic View Objects for Alternative Data Sources
10.5.1
How to Create a Read-Only Programmatic View Object
10.5.2
How to Create an Entity-Based Programmatic View Object
10.5.3
Key Framework Methods to Override for Programmatic View Objects
10.5.4
How to Create a View Object on a REF CURSOR
10.5.4.1
The Overridden create() Method
10.5.4.2
The Overridden executeQueryForCollection() Method
10.5.4.3
The Overridden createRowFromResultSet() Method
10.5.4.4
The Overridden hasNextForCollectionMethod()
10.5.4.5
The Overridden releaseUserDataForCollection() Method
10.5.4.6
The Overridden getQueryHitCount() Method
10.6
Creating a View Object with Multiple Updatable Entities
10.6.1
How to Programmatically Create New Rows With Multiple Updatable Entity Usages
10.6.2
What Happens at Runtime: View Row Creation
10.7
Programmatically Creating View Definitions and View Objects
10.7.1
What You May Need to Know About MDS Repository Configuration
10.7.2
What You May Need to Know About Creating View Objects at Runtime
10.8
Declaratively Preventing Insert, Update, and Delete
11
Defining Validation and Business Rules Declaratively
11.1
About Declarative Validation
11.1.1
Declarative Validation Use Cases and Examples
11.1.2
Additional Functionality for Declarative Validation
11.2
Determining Where to Implement Validation
11.3
Understanding the Validation Cycle
11.3.1
Types of Entity Object Validation Rules
11.3.1.1
Attribute-Level Validation Rules
11.3.1.2
Entity-Level Validation Rules
11.3.2
Understanding Commit Processing and Validation
11.3.3
Understanding the Impact of Composition on Validation Order
11.3.4
Avoiding Infinite Validation Cycles
11.3.5
What Happens When Validations Fail
11.3.6
Understanding Entity Objects Row States
11.3.7
Understanding Bundled Exception Mode
11.4
Adding Validation Rules to Entity Objects and Attributes
11.4.1
How to Add a Validation Rule to an Entity or Attribute
11.4.2
How to View and Edit a Validation Rule on an Entity Object or Attribute
11.4.3
What Happens When You Add a Validation Rule
11.4.4
What You May Need to Know About Entity and Attribute Validation Rules
11.4.5
What You May Need to Know About List of Values and Attribute Validation Rules
11.5
Using the Built-in Declarative Validation Rules
11.5.1
How to Ensure That Key Values Are Unique
11.5.2
What Happens When You Use a Unique Key Validator
11.5.3
How to Validate Based on a Comparison
11.5.4
What Happens When You Validate Based on a Comparison
11.5.5
How to Validate Using a List of Values
11.5.6
What Happens When You Validate Using a List of Values
11.5.7
What You May Need to Know About the List Validator
11.5.8
How to Make Sure a Value Falls Within a Certain Range
11.5.9
What Happens When You Use a Range Validator
11.5.10
How to Validate Against a Number of Bytes or Characters
11.5.11
What Happens When You Validate Against a Number of Bytes or Characters
11.5.12
How to Validate Using a Regular Expression
11.5.13
What Happens When You Validate Using a Regular Expression
11.5.14
How to Use the Average, Count, or Sum to Validate a Collection
11.5.15
What Happens When You Use Collection Validation
11.5.16
How to Determine Whether a Key Exists
11.5.17
What Happens When You Use a Key Exists Validator
11.5.18
What You May Need to Know About Declarative Validators and View Accessors
11.6
Using Groovy Expressions For Business Rules and Triggers
11.6.1
How to Reference Entity Object Methods in Groovy Expressions
11.6.2
How to Validate Using a True/False Expression
11.6.3
What Happens When You Add a Groovy Expression
11.7
Triggering Validation Execution
11.7.1
How to Specify Which Attributes Fire Validation
11.7.2
What Happens When You Constrain Validation Execution with Triggering Attributes
11.7.3
How to Set Preconditions for Validation
11.7.4
How to Set Transaction-Level Validation
11.7.5
What You May Need to Know About the Order of Validation Execution
11.8
Creating Validation Error Messages
11.8.1
How to Create Validation Error Messages
11.8.2
How to Localize Validation Messages
11.8.3
How to Conditionally Raise Error Messages Using Groovy
11.8.4
How to Embed a Groovy Expression in an Error Message
11.9
Setting the Severity Level for Validation Exceptions
11.10
Bulk Validation in SQL
12
Implementing Validation and Business Rules Programmatically
12.1
About Programmatic Business Rules
12.1.1
Programmatic Business Rules Use Cases and Examples
12.1.2
Additional Functionality for Programmatic Business Rules
12.2
Using Method Validators
12.2.1
How to Create an Attribute-Level Method Validator
12.2.2
What Happens When You Create an Attribute-Level Method Validator
12.2.3
How to Create an Entity-Level Method Validator
12.2.4
What Happens When You Create an Entity-Level Method Validator
12.2.5
What You May Need to Know About Translating Validation Rule Error Messages
12.3
Assigning Programmatically Derived Attribute Values
12.3.1
How to Provide Default Values for New Rows at Create Time
12.3.1.1
Choosing Between create() and initDefaultExpressionAttributes() Methods
12.3.1.2
Eagerly Defaulting an Attribute Value from a Database Sequence
12.3.2
How to Assign Derived Values Before Saving
12.3.3
How to Assign Derived Values When an Attribute Value Is Set
12.4
Undoing Pending Changes to an Entity Using the Refresh Method
12.4.1
How to Control What Happens to New Rows During a Refresh
12.4.2
How to Cascade Refresh to Composed Children Entity Rows
12.5
Using View Objects for Validation
12.5.1
How to Use View Accessors for Validation Against View Objects
12.5.2
How to Validate Conditions Related to All Entities of a Given Type
12.5.3
What You May Need to Know About Row Set Access with View Accessors
12.6
Accessing Related Entity Rows Using Association Accessors
12.6.1
How to Access Related Entity Rows
12.6.2
How to Access Related Entity Row Sets
12.7
Referencing Information About the Authenticated User
12.8
Accessing Original Attribute Values
12.9
Storing Information About the Current User Session
12.9.1
How to Store Information About the Current User Session
12.9.2
How to Use Groovy to Access Information About the Current User Session
12.10
Accessing the Current Date and Time
12.11
Sending Notifications Upon a Successful Commit
12.12
Conditionally Preventing an Entity Row from Being Removed
12.13
Determining Conditional Updatability for Attributes
12.14
Implementing Custom Validation Rules
12.14.1
How to Create a Custom Validation Rule
12.14.2
Adding a Design Time Bean Customizer for Your Rule
12.14.3
How to Register and Using a Custom Rule in JDeveloper
12.14.3.1
Registering a Custom Validator at the Project Level
12.14.3.2
Registering a Custom Validator at the IDE Level
13
Implementing Business Services with Application Modules
13.1
About Application Modules
13.1.1
Application Module Use Cases and Examples
13.1.2
Additional Functionality for Application Modules
13.2
Creating and Modifying an Application Module
13.2.1
How to Create an Application Module
13.2.2
What Happens When You Create an Application Module
13.2.3
How to Add a View Object Instance to an Application Module
13.2.3.1
Adding a View Object Instance to an Existing Application Module
13.2.3.2
Adding Master-Detail View Object Instances to an Application Module
13.2.3.3
Customizing a View Object Instance that You Add to an Application Module
13.2.4
What Happens When You Add a View Object Instance to an Application Module
13.2.5
How to Edit an Existing Application Module
13.2.6
How to Change the Data Control Name Before You Begin Building Pages
13.2.7
What You May Need to Know About Application Module Granularity
13.2.8
What You May Need to Know About View Object Components and View Object Instances
13.3
Configuring Your Application Module Database Connection
13.3.1
How to Use a JDBC Data Source Connection Type
13.3.2
What Happens When You Create an Application Module Database Connection
13.3.3
How to Change Your Application Module's Runtime Configuration
13.3.4
How to Change the Database Connection for Your Project
13.4
Defining Nested Application Modules
13.4.1
How to Define a Nested Application Module
13.4.2
What You May Need to Know About Root Application Modules Versus Nested Application Module Usages
13.5
Creating an Application Module Diagram for Your Business Service
13.5.1
How to Create an Application Module Diagram
13.5.2
What Happens When You Create an Application Module Diagram
13.5.3
How to Use the Diagram to Edit the Application Module
13.5.4
How to Control Diagram Display Options
13.5.5
How to Filter Method Names Displayed in the Diagram
13.5.6
How to Show Related Objects and Implementation Files in the Diagram
13.5.7
How to Publish the Application Module Diagram
13.5.8
How to Test the Application Module from the Diagram
13.6
Supporting Multipage Units of Work
13.6.1
How to Simulate State Management in the Oracle ADF Model Tester
13.6.2
What Happens at Runtime: How the Application Uses Application Module Pooling and State Management
13.7
Customizing an Application Module with Service Methods
13.7.1
How to Generate a Custom Class for an Application Module
13.7.2
What Happens When You Generate a Custom Class for an Application Module
13.7.3
What You May Need to Know About Default Code Generation
13.7.4
How to Add a Custom Service Method to an Application Module
13.7.5
How to Test the Custom Application Module Using a Static Main Method
13.7.6
What You May Need to Know About Programmatic Row Set Iteration
13.8
Customizing Application Module Message Strings
13.8.1
What Happens When You Add a Resource Bundle to an Application Module
13.9
Publishing Custom Service Methods to UI Clients
13.9.1
How to Publish a Custom Method on the Application Module's Client Interface
13.9.2
What Happens When You Publish Custom Service Methods
13.9.3
How to Generate Client Interfaces for View Objects and View Rows
13.9.4
How to Test Custom Service Methods Using the Oracle ADF Model Tester
13.9.5
What You May Need to Know About Method Signatures on the Client Interface
13.9.6
What You May Need to Know About Passing Information from the Data Model
13.10
Working Programmatically with an Application Module's Client Interface
13.10.1
How to Work Programmatically with an Application Module's Client Interface
13.10.2
What Happens at Runtime: How the Application Module's Client Interface is Accessed
13.10.3
How to Access an Application Module Client Interface in a Fusion Web Application
13.11
Overriding Built-in Framework Methods
13.11.1
How to Override a Built-in Framework Method
13.11.2
What Happens When You Override a Built-in Framework Method
13.11.3
How to Override prepareSession() to Set Up an Application Module for a New User Session
13.12
Calling a Web Service from an Application Module
13.12.1
How to Call an External Service Programmatically
13.12.1.1
Creating a Web Service Proxy Class to Programmatically Access the Service
13.12.1.2
Calling the Web Service Proxy Template to Invoke the Service
13.12.1.3
Calling a Web Service Method Using the Proxy Class in an Application Module
13.12.2
What Happens When You Create the Web Service Proxy
13.12.3
How to Create a New Web Service Connection
13.12.4
What Happens at Runtime: How the Web Service Proxy Handles a Web Service Invocation
13.12.5
What You May Need to Know About Web Service Proxies
13.12.5.1
Using a Try-Catch Block to Handle Web Service Exceptions
13.12.5.2
Separating Application Module and Web Services Transactions
13.12.5.3
Setting Browser Proxy Information
13.12.5.4
Invoking Application Modules with a Web Service Proxy Class
14
Sharing Application Module View Instances
14.1
About Shared Application Modules
14.1.1
Shared Application Module Use Cases and Examples
14.1.2
Additional Functionality for Shared Application Modules
14.2
Sharing an Application Module Instance
14.2.1
How to Create a Shared Application Module Instance
14.2.2
What Happens When You Define a Shared Application Module
14.2.3
What You May Need to Know About Design Time Scope of the Shared Application Module
14.2.4
What You May Need to Know About the Design Time Scope of View Instances of the Shared Application Module
14.2.5
What You May Need to Know About Managing the Number of Shared Query Collections
14.2.6
What You May Need to Know About Shared Application Modules and Connection Pooling
14.3
Defining a Base View Object for Use with Lookup Tables
14.3.1
How to Create a Base View Object Definition for a Lookup Table
14.3.2
What Happens When You Create a Base View Object
14.3.3
How to Define the WHERE Clause of the Lookup View Object Using View Criteria
14.3.4
What Happens When You Create a View Criteria with the Editor
14.3.5
What Happens at Runtime: How a View Instance Accesses Lookup Data
14.4
Accessing View Instances of the Shared Service
14.4.1
How to Create a View Accessor for an Entity Object or View Object
14.4.2
How to Validate Against the Attribute Values Specified by a View Accessor
14.4.3
What Happens When You Define a View Accessor Validator
14.4.4
What You May Need to Know About Dynamic Filtering with View Accessors
14.4.5
How to Create an LOV Based on a Lookup Table
14.4.6
What Happens When You Define an LOV for a View Object Attribute
14.4.7
What Happens at Runtime: How the Attribute Displays the List of Values
14.4.8
What You May Need to Know About Displaying List of Values From a Lookup Table
14.4.9
What You May Need to Know About Programmatically Invoking Database Change Notifications
14.4.10
What You May Need to Know About Inheritance of AttributeDef Properties
14.4.11
What You May Need to Know About Using Validators
14.5
Testing View Object Instances in a Shared Application Module
14.5.1
How to Test the Base View Object Using the Oracle ADF Model Tester
14.5.2
How to Test LOV-Enabled Attributes Using the Oracle ADF Model Tester
14.5.3
What Happens When You Use the Oracle ADF Model Tester
14.5.4
What Happens at Runtime: How Another Service Accesses the Shared Application Module Cache
15
Creating SOAP Web Services with Application Modules
15.1
About Service-Enabled Application Modules
15.1.1
Service-Enabled Application Module Use Cases and Examples
15.1.2
Additional Functionality for Service-Enabled Application Modules
15.2
Publishing Service-Enabled Application Modules
15.2.1
How to Enable the Application Module Service Interface
15.2.2
What Happens When You Create an Application Module Service Interface
15.2.2.1
Annotations Generated in the Web Service Interface
15.2.2.2
Web Service Schema Generated in the Web Service Schema File
15.2.2.3
WSDL Generated in the Web Service Definition File
15.2.2.4
Stateless Session Bean Specified by the Service Implementation Class
15.2.2.5
Lookup Defined in the connections.xml File
15.2.3
What Happens When You Create an Application Module Service Interface With Polymorphic View Objects
15.2.4
What You May Need to Know About Method Signatures on the ADF Web Service Interface
15.2.5
What You May Need to Know About Row Finders and the ADF Web Service Operations
15.2.6
How to Service-Enable Individual View Objects
15.2.7
How to Customize the SDO Properties of Service-Enabled View Objects
15.2.7.1
Excluding Individual SDO Properties in a Generated SDO Component
15.2.7.2
Associating Related SDO Properties Using Complex Data Types
15.2.8
How to Support Nested Processing in Service-Enabled Master-Detail View Objects
15.2.9
What Happens When You Create SDO Classes
15.2.9.1
Property Accessors Generated in the SDO Interface
15.2.9.2
View Object Interface Implemented by SDO Class
15.2.9.3
View Object Schema Generated in the SDO Schema File
15.2.9.4
Container Object Implemented by SDO Result Class and Interface
15.2.10
How to Expose a Declarative Find Operation Filtered By a Required Bind Variable
15.2.11
How to Expose a Custom Find Method Filtered By a Required Bind Variable
15.2.12
How to Generate Asynchronous ADF Web Service Methods
15.2.13
What Happens When You Generate Asynchronous ADF Web Service Methods
15.2.14
What Happens at Runtime: How the Asynchronous Call Is Made
15.2.15
How to Set Preferences for Generating the ADF Web Service Interface
15.2.16
How to Set Display Names for Service View Instances and Attributes
15.2.17
How to Secure the ADF Web Service for Access By SOAP Clients
15.2.18
How to Secure the ADF Web Service for Access By RMI Clients
15.2.18.1
Enabling Authentication for RMI Clients
15.2.18.2
Configuring Authorization for RMI Clients
15.2.19
How to Grant Test Users Access to the Service
15.2.20
How to Enable Support for Binary Attachments for SOAP Clients
15.2.21
How to Specify Character Encoding for ClobDomain Type Attributes
15.2.22
How to Test the Web Service Using Integrated WebLogic Server
15.2.23
How to Prevent Custom Service Methods from Timing Out
15.2.24
How to Deploy Web Services to Oracle WebLogic Server
15.3
Accessing Remote Data Over the Service-Enabled Application Module
15.3.1
How to Use Service-Enabled Entity Objects and View Objects
15.3.1.1
Creating Entity Objects Backed by SDO Services
15.3.1.2
Using Complex Data Types with Service-Backed Entity Object Attributes
15.3.1.3
Creating View Objects Backed by SDO Services
15.3.2
What Happens When You Create Service-Backed Business Components
15.3.3
How to Update the Data Model for Service-Backed Business Components
15.3.4
How to Configure the Service-Backed Business Components Runtime
15.3.4.1
Adding the SDO Client Library to the Classpath
15.3.4.2
Registering the ADF Business Components Service in the Consuming Application's connections.xml for the EJB RMI Protocol
15.3.4.3
Registering the ADF Business Components Service in the Consuming Application's connections.xml for the SOAP Protocol
15.3.4.4
Registering the ADF Business Components Service in the Consuming Application's connections.xml for Fabric SDO Binding
15.3.5
How to Test the Service-Backed Components in the Oracle ADF Model Tester
15.3.6
How to Invoke Operations of the Service-Backed Components in the Consuming Application
15.3.7
What You May Need to Know About Creating Service Data Objects in the Consuming Application
15.3.8
What You May Need to Know About Invoking Built-In Service Methods in the Consuming Application
15.3.9
What Happens at Runtime: How the Application Accesses the Published Application Module
15.3.10
What You May Need to Know About Service-Backed Entity Objects and View Objects
15.4
Accessing Polymorphic Collections in the Consuming Application
15.4.1
How to Generate Web Service Client Proxy Classes From the Service-Enabled Application Module
15.4.2
How to Invoke Operations of Polymorphic View Object Using Generated Proxy Classes
15.4.3
What Happens When You Generate Java Proxy Classes With the SDO Schema
15.4.4
What You May Need to Know About Invoking Service Methods in the Client Application
16
Extending Business Components Functionality
16.1
About Extending Business Components Functionality
16.1.1
Additional Functionality for Extending Business Components
16.2
Creating ADF Business Components Extension Classes
16.2.1
How To Create a Framework Extension Class
16.2.2
What Happens When You Create a Framework Extension Class
16.2.3
What You May Need to Know About Customizing Framework Extension Bases Classes
16.2.4
How to Base a Business Component on a Framework Extension Class
16.2.5
How to Define Framework Extension Classes for All New Components
16.2.6
How to Define Framework Extension Classes for All New Projects
16.2.7
What Happens When You Base a Component on a Framework Extension Class
16.2.7.1
XML-Only Components
16.2.7.2
Components with Custom Java Classes
16.2.8
What You May Need to Know About Updating the Extends Clause in Custom Component Java Files
16.2.9
How to Package Your Framework Extension Layer in a JAR File
16.2.10
How to Create a Library Definition for Your Framework Extension JAR File
16.3
Customizing Framework Behavior with Extension Classes
16.3.1
How to Access Runtime Metadata For View Objects and Entity Objects
16.3.2
How to Implement Generic Functionality Using Runtime Metadata
16.3.3
How to Implement Generic Functionality Driven by Custom Properties
16.3.4
What You May Need to Know About the Kinds of Attributes
16.3.5
What You May Need to Know About Custom Properties
16.4
Creating Generic Extension Interfaces
16.5
Invoking Stored Procedures and Functions
16.5.1
How to Invoke Stored Procedures with No Arguments
16.5.2
How to Invoke Stored Procedure with Only IN Arguments
16.5.3
How to Invoke Stored Function with Only IN Arguments
16.5.4
How to Call Other Types of Stored Procedures
16.6
Accessing the Current Database Transaction
16.7
Customizing Business Components Error Messages
16.7.1
How to Customize Base ADF Business Components Error Messages
16.7.2
What Happens When You Customize Base ADF Business Components Error Messages
16.7.3
How to Display Customize Error Messages as Nested Exceptions
16.7.4
How to Customize Error Messages for Database Constraint Violations
16.7.5
How to Implement a Custom Constraint Error Handling Routine
16.7.5.1
Creating a Custom Database Transaction Framework Extension Class
16.7.5.2
Configuring an Application Module to Use a Custom Database Transaction Class
16.8
Creating Extended Components Using Inheritance
16.8.1
How To Create a Component That Extends Another
16.8.2
How To Extend a Component After Creation
16.8.3
What Happens When You Create a Component That Extends Another
16.8.3.1
Attributes in an Extended Component Inherited from the Parent Component
16.8.3.2
Attributes Added to the Extended Component's XML Descriptor
16.8.3.3
Java Classes Generated for an Extended Component
16.8.4
What You May Need to Know About Extending Components
16.8.4.1
Parent Classes and Interfaces for Extended Components
16.8.4.2
Generated Classes for Extended Components
16.8.4.3
Business Component Types
16.8.4.4
New Attributes in an Extended Component
16.9
Substituting Extended Components in a Delivered Application
16.9.1
How To Substitute an Extended Component
16.9.2
What Happens When You Substitute
16.9.3
How to Enable the Substituted Components in the Base Application
Part III Using the ADF Model Layer
17
Using ADF Model in a Fusion Web Application
17.1
About Using ADF Model in a Fusion Web Application
17.1.1
About ADF Data Controls
17.1.2
About JSF Data Binding
17.1.3
About ADF Data Binding
17.2
Additional Functionality
17.3
Exposing Application Modules with ADF Data Controls
17.3.1
How an Application Module Data Control Appears in the Data Controls Panel
17.3.1.1
How the Data Model and Service Methods Appear in the Data Controls Panel
17.3.1.2
How Transaction Control Operations Appear in the Data Controls Panel
17.3.1.3
How View Objects Appear in the Data Controls Panel
17.3.1.4
How Nested Application Modules Appear in the Data Controls Panel
17.3.2
How to Open the Data Controls Panel
17.3.3
How to Refresh the Data Controls Panel
17.3.4
Packaging a Data Control for Use in Another Project
17.4
Using the Data Controls Panel
17.4.1
How to Use the Data Controls Panel
17.4.2
What Happens When You Use the Data Controls Panel
17.4.3
What Happens at Runtime: How the Binding Context Works
17.5
Working with the DataBindings.cpx File
17.5.1
How JDeveloper Creates a DataBindings.cpx File
17.5.2
What Happens When JDeveloper Creates a DataBindings.cpx File
17.6
Configuring the ADF Binding Filter
17.6.1
How JDeveloper Configures the ADF Binding Filter
17.6.2
What Happens When JDeveloper Configures an ADF Binding Filter
17.6.3
What Happens at Runtime: How the ADF Binding Filter Works
17.7
Working with Page Definition Files
17.7.1
How JDeveloper Creates a Page Definition File
17.7.2
What Happens When JDeveloper Creates a Page Definition File
17.7.2.1
Control Binding Objects Defined in the Page Definition File
17.7.2.2
Executable Binding Objects Defined in the Page Definition File
17.8
Creating ADF Data Binding EL Expressions
17.8.1
How to Create an ADF Data Binding EL Expression
17.8.1.1
Opening the Expression Builder from the Properties Window
17.8.1.2
Using the Expression Builder
17.8.2
What You May Need to Know About ADF Binding Properties
17.9
Using Simple UI First Development
17.9.1
How to Apply ADF Model Data Binding to Existing UI Components
17.9.2
What Happens When You Apply ADF Model Data Binding to UI Components
18
Using Validation in the ADF Model Layer
18.1
About ADF Model Layer Validation
18.1.1
ADF Model Layer Validation Use Cases and Examples
18.1.2
Additional Functionality for ADF Model Layer Validation
18.2
Defining Validation Rules in the ADF Model Layer
18.2.1
How to Add Validation
18.2.2
What Happens at Runtime: Model Validation Rules
18.2.3
What You May Need to Know About Default Error Handling
18.3
Customizing Error Handling
18.3.1
How to Customize the Detail Portion of a Message
18.3.2
How to Display an Informational Message from a Custom Error Handler
18.3.3
How to Write an Error Handler to Deal with Multiple Threads
19
Designing a Page Using Placeholder Data Controls
19.1
About Placeholder Data Controls
19.1.1
Placeholder Data Controls Use Cases and Examples
19.1.2
Additional Functionality for Placeholder Data Controls
19.2
Creating Placeholder Data Controls
19.2.1
How to Create a Placeholder Data Control
19.2.2
What Happens When You Create a Placeholder Data Control
19.3
Creating Placeholder Data Types
19.3.1
How to Create a Placeholder Data Type
19.3.2
How to Add Attributes and Sample Data to a Placeholder Data Type
19.3.2.1
Manually Adding Attributes to a Placeholder Data Type
19.3.2.2
Adding Sample Data Manually
19.3.2.3
How to Import Attributes and Sample Data to a Placeholder Data Type
19.3.2.4
What Happens When You Add Sample Data
19.3.3
What Happens When You Create a Placeholder Data Type
19.3.4
How to Configure a Placeholder Data Type Attribute to Be a List of Values
19.3.4.1
Configuring an Attribute to Be a Fixed LOV
19.3.4.2
Configuring an Attribute to Be a Dynamic LOV
19.3.5
How to Create Master-Detail Data Types
19.3.6
What Happens When You Create a Master-Detail Data Type
19.4
Using Placeholder Data Controls
19.4.1
Limitations of Placeholder Data Controls
19.4.2
Creating Layout
19.4.3
Creating a Search Form
19.4.4
Binding Components
19.4.5
Rebinding Components
19.4.6
Packaging Placeholder Data Controls to ADF Library JARs
Part IV Creating ADF Task Flows
20
Getting Started with ADF Task Flows
20.1
About ADF Task Flows
20.1.1
About Unbounded Task Flows
20.1.2
About Bounded Task Flows
20.1.3
About Control Flows
20.1.4
ADF Task Flow Use Cases and Examples
20.1.5
Additional Functionality for ADF Task Flows
20.2
Creating a Task Flow
20.2.1
How to Create a Task Flow
20.2.2
What Happens When You Create a Task Flow
20.2.3
What You May Need to Know About the Default Activity in a Bounded Task Flow
20.2.4
What You May Need to Know About Memory Scope for Task Flows
20.2.5
What You May Need to Know About the Source Files for Task Flows
20.3
Adding Activities to a Task Flow
20.3.1
How to Add an Activity to a Task Flow
20.3.2
What Happens When You Add an Activity to a Task Flow
20.4
Adding Control Flow Rules to Task Flows
20.4.1
How to Add a Control Flow Rule to a Task Flow
20.4.2
How to Add a Wildcard Control Flow Rule
20.4.3
What Happens When You Create a Control Flow Rule
20.4.4
What Happens at Runtime: How Task Flows Evaluate Control Flow Rules
20.5
Testing Task Flows
20.5.1
How to Run a Bounded Task Flow That Contains Pages
20.5.2
How to Run a Bounded Task Flow That Uses Page Fragments
20.5.3
How to Run a Bounded Task Flow That Has Parameters
20.5.4
How to Run a JSF Page When Testing a Task Flow
20.5.5
How to Run an Unbounded Task Flow
20.5.6
How to Set a Run Configuration for a Project
20.5.7
What Happens at Runtime: Testing Task Flows
20.6
Refactoring to Create New Task Flows and Task Flow Templates
20.6.1
How to Extract a Bounded Task Flow from an Existing Task Flow
20.6.2
What Happens When You Extract a Bounded Task from an Existing Task Flow
20.6.3
How to Create a Task Flow from JSF Pages
20.6.4
How to Convert Bounded Task Flows
21
Working with Task Flow Activities
21.1
About Task Flow Activities
21.1.1
Task Flow Activities Use Cases and Examples
21.1.2
Additional Functionality for Task Flow Activities
21.2
Using View Activities
21.2.1
Passing Control Between View Activities
21.2.1.1
How to Pass Control Between View Activities
21.2.1.2
What Happens When You Pass Control Between View Activities
21.2.2
Bookmarking View Activities
21.2.2.1
How to Create a Bookmarkable View Activity
21.2.2.2
What Happens When You Designate a View as Bookmarkable
21.2.3
Specifying HTTP Redirect for a View Activity
21.2.3.1
How to Specify HTTP Redirect for a View Activity
21.2.3.2
What Happens When You Specify HTTP Redirect for a View Activity
21.3
Using URL View Activities
21.3.1
How to Add a URL View Activity to a Task Flow
21.3.2
What Happens When You Add a URL View Activity to a Task Flow
21.3.3
What You May Need to Know About URL View Activities
21.4
Using Router Activities
21.4.1
How to Configure Control Flow Using a Router Activity
21.4.2
What Happens When You Configure Control Flow Using a Router Activity
21.5
Using Method Call Activities
21.5.1
How to Add a Method Call Activity
21.5.2
How to Specify Method Parameters and Return Values
21.5.3
What Happens When You Add a Method Call Activity
21.6
Using Task Flow Call Activities
21.6.1
How to Call a Bounded Task Flow Using a Task Flow Call Activity
21.6.2
What Happens When You Call a Bounded Task Flow Using a Task Flow Call Activity
21.6.3
How to Specify Input Parameters on a Task Flow Call Activity
21.6.4
How to Call a Bounded Task Flow Using a URL
21.6.5
What Happens When You Configure a Bounded Task Flow to be Invoked by a URL
21.6.6
What You May Need to Know About Calling a Bounded Task Flow Using a URL
21.6.7
How to Specify Before and After Listeners on a Task Flow Call Activity
21.6.8
What Happens When You Add a Task Flow Call Activity
21.6.9
What Happens at Runtime: How a Task Flow Call Activity Invokes a Task Flow
21.7
Using Task Flow Return Activities
21.7.1
How to Add a Task Flow Return Activity to a Bounded Task Flow
21.7.2
What Happens When You Add a Task Flow Return Activity to a Bounded Task Flow
21.8
Using Task Flow Activities with Page Definition Files
21.8.1
How to Associate a Page Definition File with a Task Flow Activity
21.8.2
What Happens When You Associate a Page Definition File with a Task Flow Activity
22
Using Parameters in Task Flows
22.1
About Using Parameters in Task Flows
22.1.1
Task Flow Parameters Use Cases and Examples
22.1.2
Additional Functionality for Task Flows Using Parameters
22.2
Passing Parameters to a View Activity
22.2.1
How to Pass Parameters to a View Activity
22.2.2
What Happens When You Pass Parameters to a View Activity
22.2.3
What You May Need to Know About Specifying Parameter Values
22.3
Passing Parameters to a Bounded Task Flow
22.3.1
How to Pass an Input Parameter to a Bounded Task Flow
22.3.2
What Happens When You Pass an Input Parameter to a Bounded Task Flow
22.4
Configuring a Return Value from a Bounded Task Flow
22.4.1
How to Configure a Return Value from a Bounded Task Flow
22.4.2
What Happens When You Configure a Return Value from a Bounded Task Flow
23
Using Task Flows as Regions
23.1
About Using Task Flows in ADF Regions
23.1.1
About Page Fragments and ADF Regions
23.1.2
About View Ports and ADF Regions
23.1.3
Task Flows and ADF Region Use Cases and Examples
23.1.4
Additional Functionality for Task Flows that Render in ADF Regions
23.2
Creating an ADF Region
23.2.1
How to Create an ADF Region
23.2.2
What Happens When You Create an ADF Region
23.3
Specifying Parameters for an ADF Region
23.3.1
How to Specify Parameters for an ADF Region
23.3.2
What Happens When You Specify Parameters for an ADF Region
23.4
Specifying Parameters for ADF Regions Using Parameter Maps
23.4.1
How to Create a Parameter Map to Specify Input Parameters for an ADF Region
23.4.2
What Happens When You Create a Parameter Map to Specify Input Parameters
23.5
Configuring an ADF Region to Refresh
23.5.1
How to Configure the Refresh of an ADF Region
23.5.2
What You May Need to Know About Configuring an ADF Region to Refresh
23.6
Configuring Activation of an ADF Region
23.6.1
How to Configure Activation of an ADF Region
23.6.2
What Happens When You Configure Activation of an ADF Region
23.7
Navigating Outside an ADF Region's Task Flow
23.7.1
How to Trigger Navigation Outside of an ADF Region's Task Flow
23.7.2
What Happens When You Configure Navigation Outside a Task Flow
23.7.3
What You May Need to Know About How a Page Determines the Capabilities of an ADF Region
23.8
Configuring Transaction Management in an ADF Region
23.9
Creating ADF Dynamic Regions
23.9.1
How to Create an ADF Dynamic Region
23.9.2
What Happens When You Create an ADF Dynamic Region
23.10
Adding Additional Task Flows to an ADF Dynamic Region
23.10.1
How to Create an ADF Dynamic Region Link
23.10.2
What Happens When You Create an ADF Dynamic Region
23.11
Configuring a Page To Render an Unknown Number of Regions
23.11.1
How to Configure a Page to Render an Unknown Number of Regions
23.11.2
What Happens When You Configure a Page to Render an Unknown Number of Regions
23.11.3
What You May Need to Know About Configuring a Page to Render an Unknown Number of Regions
23.12
Handling Access to Secured Task Flows by Unauthorized Users
23.12.1
How to Handle Access to Secured Task Flows by Unauthorized Users
23.12.2
What Happens When You Handle Access to Secured Task Flows by Unauthorized Users
24
Creating Complex Task Flows
24.1
About Creating Complex Task Flows
24.1.1
Complex Task Flows Use Cases and Examples
24.1.2
Additional Functionality for Complex Task Flows
24.2
Sharing Data Controls Between Task Flows
24.2.1
How to Share a Data Control Between Task Flows
24.2.2
What Happens When You Share a Data Control Between Task Flows
24.2.3
What Happens at Runtime: How Task Flows Share Data Controls
24.3
Managing Transactions in Task Flows
24.3.1
How to Enable Transactions in a Bounded Task Flow
24.3.2
What Happens When You Specify Transaction Options
24.3.3
What You May Need to Know About Sharing Data Controls and Managing Transactions
24.3.3.1
Creating Completely Separate Transactions
24.3.3.2
Guaranteeing a Called Bounded Task Joins an Existing Transaction
24.3.3.3
Using an Existing Transaction if Possible
24.3.4
What You May Need to Know About ADF Business Component Database Connections and Task Flow Transaction Options
24.4
Reentering Bounded Task Flows
24.4.1
How to Set Reentry Behavior
24.4.2
How to Set Outcome-Dependent Options
24.4.3
What Happens When You Configure a Bounded Task Flow for Reentry
24.5
Handling Exceptions in Task Flows
24.5.1
How to Designate an Activity as an Exception Handler
24.5.2
What Happens When You Designate an Activity as an Exception Handler
24.5.3
How to Designate Custom Code as an Exception Handler
24.5.4
What Happens When You Designate Custom Code as an Exception Handler
24.5.5
What You May Need to Know About Handling Exceptions During Transactions
24.5.6
What You May Need to Know About Handling Validation Errors
24.6
Configuring Your Application to Use Save Points
24.6.1
How to Configure Your Fusion Web Application to Use Save Points
24.6.2
What Happens When You Configure a Fusion Web Application to Use Save Points
24.6.3
What You May Need to Know About the Database Table for Save Points
24.7
Using Save Points in Task Flows
24.7.1
How to Add a Save Point to a Task Flow
24.7.2
What Happens When You Add Save Points to a Task Flow
24.7.3
How to Restore a Save Point
24.7.4
What Happens When You Restore a Save Point
24.7.5
How to Use the Save Point Restore Finalizer
24.7.6
What Happens When a Task Flow Invokes a Save Point Restore Finalizer
24.7.7
How to Enable Implicit Save Points
24.7.8
What You May Need to Know About Enabling Implicit Save Points
24.7.9
What You May Need to Know About the Time-to-Live Period for a Save Point
24.8
Minimizing the Number of Active Root View Ports in an Application
24.8.1
How to Minimize the Number of Active Root View Ports
24.8.2
What Happens When You Minimize the Number of Active Root View Ports
24.9
Using Train Components in Bounded Task Flows
24.9.1
Creating a Task Flow as a Train
24.9.1.1
How to Create a Train in a Bounded Task Flow
24.9.1.2
What Happens When You Create a Task Flow as a Train
24.9.2
Invoking a Child Bounded Task Flow from a Train Stop
24.9.2.1
How to Invoke a Child Bounded Task Flow From a Train Stop
24.9.3
Grouping Task Flow Activities to Execute Between Train Stops
24.9.4
Disabling the Sequential Behavior of Train Stops in a Train
24.9.4.1
How to Disable the Sequential Behavior of a Train
24.9.4.2
What Happens When You Disable the Sequential Behavior of a Train Stop
24.9.5
Changing the Label of a Train Stop
24.9.5.1
How to Change the Label of a Train Stop
24.9.5.2
What Happens When You Change the Label of a Train Stop
24.9.6
Configuring a Train to Skip a Train Stop
24.9.6.1
How to Configure a Train to Skip a Train Stop
24.9.6.2
What Happens When You Configure a Train to Skip a Train Stop
24.10
Creating Task Flow Templates
24.10.1
How to Create a Task Flow Template
24.10.2
What Happens When You Create a Task Flow Template
24.10.3
What You May Need to Know About Task Flow Templates
24.11
Creating a Page Hierarchy Using Task Flows
24.11.1
How to Create a Page Hierarchy
24.11.1.1
How to Create an XMLMenuModel Metadata File
24.11.1.2
How to Create a Submenu with a Hierarchy of Group and Child Nodes
24.11.1.3
How to Attach a Menu Hierarchy to Another Menu Hierarchy
24.11.2
What Happens When You Create a Page Hierarchy
24.12
Reporting Incidents to the Oracle Fusion Middleware Diagnostic Framework
24.12.1
How to Configure the Number of Events to Report to the Diagnostic Framework
24.12.2
What Happens When You Configure the Number of Events to Report to the Diagnostic Framework
25
Using Dialogs in Your Application
25.1
About Using Dialogs in Your Application
25.1.1
Using Dialogs in Your Application Use Cases and Examples
25.1.2
Additional Functionality for Using Dialogs in Your Application
25.2
Running a Bounded Task Flow in a Modal Dialog
25.2.1
How to Run a Bounded Task Flow in a Modal Dialog
25.2.2
How to Return a Value From a Modal Dialog
25.2.3
How to Refresh a Page After a Modal Dialog Returns
25.2.4
What You May Need to Know About Dialogs in an Application that Uses Task Flows
25.3
Using the ADF Faces Dialog Framework Instead of Bounded Task Flows
25.3.1
How to Define a JSF Navigation Rule for Opening a Dialog
25.3.2
How to Create the JSF Page That Opens a Dialog
25.3.3
How to Create the Dialog Page and Return a Dialog Value
25.3.4
What Happens at Runtime: How to Raise the Return Event from the Dialog
25.3.5
How to Pass a Value into a Dialog
25.3.6
What Happens at Runtime: How the LaunchEvent is Handled
25.3.7
How to Handle the Return Value
25.3.8
What Happens at Runtime: How the Launching Component Handles the ReturnEvent
Part V Creating a Databound Web User Interface
26
Getting Started with Your Web Interface
26.1
About Developing a Web Application with ADF Faces
26.1.1
Page Template and Managed Beans Use Cases and Examples
26.1.2
Additional Functionality for Page Templates and Managed Beans
26.2
Using Page Templates
26.2.1
How to Use ADF Data Binding in ADF Page Templates
26.2.2
What Happens When You Use ADF Model Layer Bindings on a Page Template
26.2.3
How to Add a Databound Page Template to a Page Dynamically
26.2.4
What Happens at Runtime: How Pages Use Templates
26.3
Creating a Web Page
26.3.1
How to Create a Web Page
26.3.2
What You May Need to Know About Creating Blank Web Pages
26.3.3
What You May Need to Know About Securing a Web Page
26.4
Using a Managed Bean in a Fusion Web Application
26.4.1
How to Use a Managed Bean to Store Information
26.4.2
What Happens When You Create a Managed Bean
26.4.3
How to Set Managed Bean Memory Scopes in a Server-Cluster Environment
27
Understanding the Fusion Page Lifecycle
27.1
About the Fusion Page Lifecycle
27.2
About the JSF and ADF Page Lifecycles
27.2.1
What You May Need to Know About Partial Page Rendering and Iterator Bindings
27.2.2
What You May Need to Know About Task Flows and the Lifecycle
27.3
About Object Scope Lifecycles
27.3.1
What You May Need to Know About Object Scopes and Task Flows
27.4
Customizing the ADF Page Lifecycle
27.4.1
How to Create a Custom Phase Listener
27.4.2
How to Register a Listener Globally
27.4.3
What You May Need to Know About Listener Order
27.4.4
How to Register a Lifecycle Listener for a Single Page
28
Creating a Basic Databound Page
28.1
About Creating a Basic Databound Page
28.1.1
ADF Databound Form Use Cases and Examples
28.1.2
Additional Functionality for Databound Pages
28.2
Creating Text Fields Using Data Control Attributes
28.2.1
How to Create a Text Field
28.2.2
What Happens When You Create a Text Field
28.2.2.1
Iterator Bindings Created in the Page Definition File
28.2.2.2
Value Bindings Created in the Page Definition File
28.2.2.3
Component Tags Created in JSF Page
28.3
Creating Basic Forms Using Data Control Collections
28.3.1
How to Create a Form Using a Data Control Collection
28.3.2
What Happens When You Create a Form Using a Data Control Collection
28.4
Creating Command Components Using Data Control Operations
28.4.1
How to Create Command Components From Operations
28.4.2
What Happens When You Create Command Components Using Operations
28.4.2.1
Action Bindings Created for Operations
28.4.2.2
Iterator RangeSize Attribute Defined
28.4.2.3
EL Expressions Created to Bind to Operations
28.4.3
What Happens at Runtime: How Action Events and Action Listeners Work
28.4.4
What You May Need to Know About Overriding Declarative Methods
28.5
Incorporating Range Navigation into Forms
28.5.1
How to Manually Insert Navigation Controls into a Form
28.5.2
What Happens When You Manually Add Navigation Buttons
28.5.3
What Happens at Runtime: Navigation Controls
28.5.4
What You May Need to Know About the Browser Back Button and Navigating Through Records
28.5.5
What You May Need to Know About the CacheResults Property
28.6
Creating a Form to Edit an Existing Record
28.6.1
How to Create an Edit Form
28.6.2
What Happens When You Create Edit Forms
28.6.3
What You May Need to Know About Working With Data Controls for Stateless Business Services
28.7
Using Parameters to Create a Form
28.7.1
How to Create a Form Using Parameters
28.7.2
What Happens When You Create a Parameter Form
28.7.3
What Happens at Runtime: How Parameters are Populated
28.8
Creating an Input Form
28.8.1
How to Create an Input Form
28.8.1.1
Creating an Input Form Using a Bounded Task Flow
28.8.1.2
Using a Commit Button Instead of a Return Activity Within a Task Flow
28.8.1.3
Creating an Input Form That Allows Multiple Entries in a Single Transaction
28.8.2
What Happens When You Create an Input Form
28.8.3
What Happens at Runtime: CreateInsert Action from the Method Activity
28.8.4
What You May Need to Know About Displaying Sequence Numbers
28.8.5
What You May Need to Know About Input Forms Backed By Stateless Services
28.9
Creating a Form with Dynamic Components
28.9.1
About Dynamic Components
28.9.2
How to Create a Dynamic Form
28.9.3
What Happens When You Create Dynamic Forms
28.9.3.1
Bindings Created for the Dynamic Form
28.9.3.2
Tags Created for a Dynamic Form without Grouping
28.9.3.3
Tags Created for a Dynamic Form with Grouping
28.9.4
What Happens at Runtime: How Attribute Values Are Dynamically Determined
28.9.5
How to Apply Validators and Converters to a Dynamic Component
28.9.6
What You May Need to Know About Mixing Dynamic Components with Static Components
28.9.7
How to Programmatically Set Dynamic Component Behavior
28.9.8
How to Access a Dynamic Component Programmatically
28.9.9
How to Access a Dynamic Component's Binding Instance Programmatically
28.10
Modifying the UI Components and Bindings on a Form
28.10.1
How to Modify the UI Components and Bindings
28.10.2
What Happens When You Modify Attributes and Bindings
29
Creating ADF Databound Tables
29.1
About Creating ADF Databound Tables
29.1.1
ADF Databound Tables Use Cases and Examples
29.1.2
Additional Functionality for Databound Tables
29.2
Creating a Basic Table
29.2.1
How to Create a Basic Table
29.2.2
What Happens When You Create a Table
29.2.2.1
Iterator and Value Bindings for Tables
29.2.2.2
Code on the JSF Page for an ADF Faces Table
29.2.3
What You May Need to Know About Setting the Current Row in a Table
29.2.4
What You May Need to Know About Getting Row Data Programmatically
29.3
Creating an Editable Table
29.3.1
How to Create an Editable Table
29.3.2
What Happens When You Create an Editable Table
29.4
Creating an Input Table
29.4.1
How to Create an Input Table
29.4.2
What Happens When You Create an Input Table
29.4.3
What Happens at Runtime: How CreateInsert and Partial Page Refresh Work
29.4.4
What You May Need to Know About Creating a Row and Sorting Columns
29.4.5
What You May Need to Know About Create and CreateInsert
29.4.6
What You May Need to Know About Saving Multiple Rows in a JPA-Based Data Control
29.5
Creating a List View of a Collection
29.5.1
How to Create a Databound List View
29.5.2
What Happens When You Create a Databound List View
29.6
Creating a Table with Dynamic Components
29.6.1
How to Create a Dynamic Table
29.6.2
What Happens When You Use Dynamic Components
29.6.2.1
Tags Created for a Dynamic Table without Grouping
29.6.2.2
Tags Created for a Dynamic Table with Grouping
29.6.3
What Happens at Runtime: How Attribute Values Are Dynamically Determined
29.6.4
How to Create a Dynamic Table with a detailStamp Facet
29.7
Modifying the Attributes Displayed in the Table
29.7.1
How to Modify the Displayed Attributes
29.7.2
How to Change the Binding for a Table
29.7.3
What Happens When You Modify Bindings or Displayed Attributes
30
Using Command Components to Invoke Functionality in the View Layer
30.1
About Command Components
30.1.1
Command Component Use Cases and Examples
30.1.2
Additional Functionality for Command Components
30.2
Creating Command Components to Execute Methods
30.2.1
How to Create a Command Component Bound to a Custom Method
30.2.2
What Happens When You Create Command Components Using a Method
30.2.2.1
Action Bindings
30.2.2.2
Method Parameters
30.2.2.3
ADF Faces Component Code
30.2.2.4
EL Expressions Used to Bind to Methods
30.2.2.5
Using the Return Value from a Method Call
30.2.3
What Happens at Runtime: Command Button Method Bindings
30.3
Setting Parameter Values Using a Command Component
30.3.1
How to Set Parameters Using setPropertyListener Within a Command Component
30.3.2
What Happens When You Set Parameters Using a setPropertyListener
30.3.3
What Happens at Runtime: setPropertyListener for a Command Component
30.4
Overriding Declarative Methods
30.4.1
How to Override a Declarative Method
30.4.2
What Happens When You Override a Declarative Method
31
Displaying Master-Detail Data
31.1
About Displaying Master-Detail Data
31.1.1
Master-Detail Tables, Forms, and Trees Use Cases and Examples
31.1.2
Additional Functionality for Master-Detail Tables, Forms, and Trees
31.2
Prerequisites for Master-Detail Tables, Forms, and Trees
31.2.1
How to Identify Master-Detail Objects on the Data Controls Panel
31.3
Using Tables and Forms to Display Master-Detail Objects
31.3.1
How to Display Master-Detail Objects in Tables and Forms Using Master-Detail Widgets
31.3.2
How to Create Master-Detail Forms from Separate Components
31.3.3
What Happens When You Create Master-Detail Tables and Forms
31.3.3.1
Code Generated in a Master-Detail JSF Page
31.3.3.2
Binding Objects Defined in a Master-Detail Page Definition File
31.3.4
What Happens at Runtime: ADF Iterator for Master-Detail Tables and Forms
31.3.5
How to Display Master-Detail Components on Separate Pages
31.4
Using Trees to Display Master-Detail Objects
31.4.1
How to Display Master-Detail Objects in Trees
31.4.2
What Happens When You Create an ADF Databound Tree
31.4.2.1
Code Generated in the JSF Page
31.4.2.2
Binding Objects Defined in the Page Definition File
31.4.3
What Happens at Runtime: How an ADF Databound Tree Is Displayed
31.4.4
How to Synchronize Other Parts of a Page With a Tree Selection
31.5
Using Tree Tables to Display Master-Detail Objects
31.5.1
How to Display Master-Detail Objects in Tree Tables
31.5.2
What Happens When You Create a Databound Tree Table
31.5.2.1
Code Generated in the JSF Page
31.5.2.2
Binding Objects Defined in the Page Definition File
31.5.3
What Happens at Runtime: Events for Tree Tables
31.6
Using List Views to Display Master-Detail Objects
31.6.1
How to Display Master-Detail Objects in List Views
31.6.2
What Happens When You Create a Master-Detail List View
31.7
About Selection Events in Trees and Tree Tables
32
Creating Databound Selection Lists and Shuttles
32.1
About Selection Lists and Shuttles
32.1.1
Selection Lists and Shuttles Use Cases and Examples
32.1.2
Additional Functionality for Selection Lists and Shuttles
32.2
Creating List of Values (LOV) Components
32.2.1
How to Create an LOV
32.2.2
What Happens When You Create an LOV
32.2.3
What You May Need to Know About List Validators and LOV
32.3
Creating a Selection List
32.3.1
How to Create a Model-Driven List
32.3.2
What Happens When You Create a Model-Driven Selection List
32.3.3
How to Create a Selection List Containing Fixed Values
32.3.4
What Happens When You Create a Fixed Selection List
32.3.5
How to Create a Selection List Containing Dynamically Generated Values
32.3.6
What Happens When You Create a Dynamic Selection List
32.3.7
What You May Need to Know About Values in a Selection List
32.4
Creating a List with Navigation List Binding
32.4.1
How to Create a List with Navigation List Binding
32.4.2
What Happens When You Create a Navigational List Binding
32.5
Creating a Databound Shuttle
32.5.1
How to Create a Databound Shuttle
32.5.2
What Happens When You Create a Databound Shuttle
33
Creating ADF Databound Search Forms
33.1
About Creating Search Forms
33.1.1
Implicit and Named View Criteria
33.1.2
List of Values (LOV) Input Fields
33.1.3
Search Form Use Cases and Examples
33.1.4
Additional Functionality for Search Forms
33.2
Creating Query Search Forms
33.2.1
How to Create a Query Search Form with a Results Table or Tree Table
33.2.2
How to Create a Query Search Form and Add a Results Component Later
33.2.3
How to Persist Saved Searches into MDS
33.2.4
What You May Need to Know About Named Bind Variables in Search Forms
33.2.5
What You May Need to Know about Default Search Binding Behavior
33.2.6
What You May Need to Know About Dependent Criterion
33.2.7
What Happens When You Create a Query Form
33.2.8
What Happens at Runtime: Search Forms
33.3
Setting Up Search Form Properties
33.3.1
How to Set Search Form Properties on the View Criteria
33.3.2
How to Set Search Form Properties on the Query Component
33.3.3
How to Set Timezone Control Hint for Timestamp Attribute
33.3.4
How to Create Custom Operators
33.3.5
How to Remove Standard Operators
33.3.6
How to Set Uniform Operator Field Width
33.4
Creating Quick Query Search Forms
33.4.1
How to Create a Quick Query Search Form with a Results Table or Tree Table
33.4.2
How to Create a Quick Query Search Form and Add a Results Component Later
33.4.3
How to Set the Quick Query Layout Format
33.4.4
What Happens When You Create a Quick Query Search Form
33.4.5
What Happens at Runtime: Quick Query
33.5
Creating Standalone Filtered Search Tables from Named View Criteria
33.5.1
How to Create Filtered Table and Query-by-Example Searches
34
Creating Databound Calendar and Carousel Components
34.1
About Databound ADF Faces Calendar and Carousel Components
34.1.1
Databound ADF Faces Calendar and Carousel Components Use Cases and Examples
34.1.2
Additional Functionality of Databound ADF Faces Calendar and Carousel Components
34.2
Using the ADF Faces Calendar Component
34.2.1
How to Use the ADF Faces Calendar
34.2.2
What Happens When You Create a Calendar
34.2.3
What Happens at Runtime: How the Calendar Binding Works
34.3
Using the ADF Faces Carousel Component
34.3.1
How to Create a Databound Carousel Component
34.3.2
What Happens When You Create a Carousel
35
Creating Databound Chart and Gauge Components
35.1
About ADF Data Visualization Chart and Gauge Components
35.1.1
Data Visualization Components Use Cases and Examples
35.1.2
End User and Presentation Features
35.1.3
Additional Functionality for Data Visualization Components
35.2
Creating Databound Charts
35.2.1
How to Create an Area, Bar, Combination, Horizontal Bar, or Line Chart Using Data Controls
35.2.2
What Happens When You Use the Data Controls Panel to Create a Chart
35.2.3
How to Create Databound Pie Charts
35.2.4
Creating a Databound Spark Chart Using Data Controls
35.2.5
How to Create Databound Bubble and Scatter Charts
35.2.6
What You May Need to Know About Using Attribute Labels
35.3
Creating Databound Graphs
35.3.1
How to Create a Stock Graph Using Name-Value Pairs
35.3.2
What You May Need to Know About Using a Graph's Row Selection Listener for Master-Detail Processing
35.3.3
What You May Need to Know About Using Name-Value Pairs
35.4
Creating Databound Gauges
35.4.1
How to Create a Databound Dial Gauge
35.4.2
What Happens When You Create a Dial Gauge from a Data Control
35.4.3
How to Create a Databound Rating Gauge
35.4.4
Including Gauges in Databound ADF Tables
35.4.4.1
How to Include a Gauge in a Databound ADF Table
35.4.4.2
What Happens When You Include a Gauge in an ADF Table
36
Creating Databound Pivot Table and Pivot Filter Bar Components
36.1
About ADF Data Visualization Pivot Table and Pivot Filter Bar Components
36.1.1
Data Visualization Components Use Cases and Examples
36.1.2
End User and Presentation Features
36.1.3
Additional Functionality for Data Visualization Components
36.2
Creating Databound Pivot Tables
36.2.1
How to Create a Pivot Table Using ADF Data Controls
36.2.2
What Happens When You Use the Data Controls Panel to Create a Pivot Table
36.2.3
What You May Need to Know About Aggregating Attributes in the Pivot Table
36.2.3.1
Default Aggregation of Duplicate Data Rows
36.2.3.2
Custom Aggregation of Duplicate Rows
36.2.4
What You May Need to Know About Specifying an Initial Sort for a Pivot Table
36.2.5
What You May Need to Know About Configuring Editable Data Cells
37
Creating Databound Geographic and Thematic Map Components
37.1
About ADF Data Visualization Map Components
37.1.1
Use Cases and Examples
37.1.2
End User and Presentation Features
37.1.3
Additional Functionality for Data Visualization Components
37.2
Creating Databound Geographic Maps
37.2.1
How to Configure a Geographic Base Map
37.2.2
How to Create a Geographic Map with a Point Theme
37.2.3
How to Create Point Style Items for a Point Theme
37.2.4
What Happens When You Create a Geographic Map with a Point Theme
37.2.5
What You May Need to Know About Adding Custom Point Style Items to a Map Point Theme
37.2.6
How to Create a Geographic Map with a Color Theme
37.2.7
What Happens When You Add a Color Theme to a Geographic Map
37.2.8
What You May Need to Know About Customizing Colors in a Map Color Theme
37.2.9
How to Create a Geographic Map with a Pie or Bar Graph Theme
37.2.10
What Happens When You Add a Pie or Bar Graph Theme to a Geographic Map
37.3
Creating Databound Thematic Maps
37.3.1
How to Create a Thematic Map Using ADF Data Controls
37.3.2
What Happens When You Use Data Controls to Create a Thematic Map
37.3.3
How to Add Data Layers to Thematic Maps
37.3.4
Styling Areas, Markers, and Images to Display Data
37.3.4.1
How to Style Areas to Display Data
37.3.4.2
How to Style Markers to Display Data
37.3.4.3
What You May Need to Know About Styling Markers
37.3.4.4
What You May Need to Know About Default Style Values for Attribute Groups
37.3.4.5
How to Use Images to Display Data
37.3.5
What You May Need to Know About Base Map Location Ids
37.3.6
What You May Need to Know About Configuring Master-Detail Relationships
37.3.7
How to Define a Custom Map Layer
37.3.8
How to Configure Drilling in Thematic Maps
37.3.9
Creating Databound Legends
38
Creating Databound Gantt Chart and Timeline Components
38.1
About ADF Data Visualization Components
38.1.1
Data Visualization Components Use Cases and Examples
38.1.2
End User and Presentation Features
38.1.3
Additional Functionality for Data Visualization Components
38.2
Creating Databound Gantt Charts
38.2.1
How to Create a Databound Project Gantt Chart
38.2.2
What Happens When You Create a Project Gantt Chart from a Data Control
38.2.3
How to Create a Databound Resource Utilization Gantt Chart
38.2.4
What Happens When You Create a Resource Utilization Gantt Chart
38.2.5
How to Create a Databound Scheduling Gantt Chart
38.2.6
What Happens When You Create a Scheduling Gantt Chart
38.2.7
What You May Need to Know About Data Change Event Handling
38.3
Creating Databound Timelines
38.3.1
How to Create a Timeline Using ADF Data Controls
38.3.2
What Happens When You Use Data Controls to Create a Timeline
38.3.3
What You May Need to Know About Using Data Controls to Create a Dual Timeline
39
Creating Databound Hierarchy Viewer, Treemap, and Sunburst Components
39.1
About ADF Data Visualization Components
39.1.1
End User and Presentation Features
39.1.2
Data Visualization Components Use Cases and Examples
39.1.3
Additional Functionality for Data Visualization Components
39.2
Creating Databound Hierarchy Viewers
39.2.1
How to Create a Hierarchy Viewer Using ADF Data Controls
39.2.2
What Happens When You Create a Databound Hierarchy Viewer
39.2.3
How to Configure an Alternate View Object for a Databound Panel Card
39.2.3.1
What Happens When You Use an Alternate View Object for a Hierarchy Viewer Panel Card
39.2.4
How to Create a Databound Search in a Hierarchy Viewer
39.3
Creating Databound Treemaps and Sunbursts
39.3.1
How to Create Treemaps and Sunbursts Using ADF Data Controls
39.3.2
What Happens When You Create a Databound Treemap or Sunburst
39.3.3
What Happens at Runtime: How Databound Sunbursts or Treemaps Are Initially Displayed
40
Using Contextual Events
40.1
About Creating Contextual Events
40.1.1
Contextual Events Use Cases and Examples
40.1.2
Additional Functionality for Contextual Events
40.2
Creating Contextual Events Declaratively
40.2.1
How to Publish Contextual Events
40.2.2
How to Subscribe to and Consume Contextual Events
40.2.3
What Happens When You Create Contextual Events
40.2.4
How to Control Contextual Events Dispatch
40.2.5
What Happens at Runtime: Contextual Events
40.3
Creating Contextual Events Manually
40.3.1
How to Create Contextual Events Manually
40.4
Creating Contextual Events Using Managed Beans
40.4.1
How to Create Contextual Events Using Managed Beans
40.4.2
What Happens When You Create Contextual Events Using Managed Beans
40.5
Creating Contextual Events Using Plain Java Objects (POJOs)
40.5.1
How to Configure a Generic Callback Message Handler for a Task Flow
40.6
Creating Contextual Events Using JavaScript
40.7
Creating the Event Map Manually
40.7.1
How to Create the Event Map Manually
40.8
Registering a Custom Dispatcher
40.8.1
How to Register a Custom Dispatcher
Part VI Completing Your Application
41
Enabling ADF Security in a Fusion Web Application
41.1
About ADF Security
41.1.1
Integration of ADF Security and Java Security
41.1.2
ADF Security Use Cases and Examples
41.1.3
Additional Functionality for ADF Security
41.2
ADF Security Process Overview
41.3
Enabling ADF Security
41.3.1
How to Enable ADF Security
41.3.2
What Happens When You Enable ADF Security
41.3.3
What Happens When You Generate a Default Form-Based Login Page
41.3.4
What You May Need to Know About the Configure ADF Security Wizard
41.3.5
What You May Need to Know About ADF Authentication
41.3.6
What You May Need to Know About the Built-In test-all Role
41.3.7
What You May Need to Know About the valid-users Role
41.4
Creating Application Roles
41.4.1
How to Create Application Roles
41.4.2
What Happens When You Create Application Roles
41.4.3
What You May Need to Know About Enterprise Roles and Application Roles
41.5
Defining ADF Security Policies
41.5.1
How to Make an ADF Resource Public
41.5.2
What Happens When You Make an ADF Resource Public
41.5.3
What Happens at Runtime: How the Built-in Roles Are Used
41.5.4
How to Define Policies for ADF Bounded Task Flows
41.5.5
How to Define Policies for Web Pages That Reference a Page Definition
41.5.6
How to Define Policies to Control User Access to ADF Methods
41.5.6.1
Creating a Resource Grant to Control Access to ADF Methods
41.5.6.2
Enforcing the Resource Grant in the User Interface
41.5.7
What Happens When You Define the Security Policy
41.5.8
What Happens at Runtime: How ADF Security Policies Are Enforced
41.5.9
What You May Need to Know About Defining Policies for Pages with No ADF Bindings
41.5.10
How to Use Regular Expressions to Define Policies on Groups of Resources
41.5.11
How to Define Policies for Data
41.5.11.1
Defining Permission Maps on ADF Entity Objects
41.5.11.2
Defining Permission Maps on ADF Entity Object Attributes
41.5.11.3
Granting Permissions on ADF Entity Objects and Entity Attributes
41.5.12
How to Aggregate Resource Grants as Entitlement Grants
41.5.13
What Happens After You Create an Entitlement Grant
41.6
Creating Test Users
41.6.1
How to Create Test Users in JDeveloper
41.6.2
What Happens When You Create Test Users
41.6.3
How to Associate Test Users with Application Roles
41.6.4
What Happens When You Configure Application Roles
41.7
Creating a Login Page
41.7.1
How to Create a Login Link Component and Add it to a Public Web Page for Explicit Authentication
41.7.2
How to Create a Login Page Specifically for Explicit Authentication
41.7.2.1
Creating Login Code for the Backing Bean
41.7.2.2
Creating an ADF Faces-Based Login Page Specifically for Explicit Authentication
41.7.2.3
Ensuring That the Login Page Is Public
41.7.3
How to Ensure That the Custom Login Page's Resources Are Accessible for Explicit Authentication
41.7.4
How to Create a Public Welcome Page
41.7.4.1
Ensuring That the Welcome Page Is Public
41.7.4.2
Adding Login and Logout Links
41.7.4.3
Hiding Links to Secured Pages
41.7.5
How to Redirect a User After Authentication
41.7.6
How to Trigger a Custom Login Page Specifically for Implicit Authentication
41.7.7
What You May Need to Know About Redirecting to a Different Host Server
41.7.8
What You May Need to Know About Fusion Web Application Logout and Browser Caching
41.7.9
What You May Need to Know About Displaying Error Pages in Internet Explorer
41.8
Testing Security in JDeveloper
41.8.1
How to Configure, Deploy, and Run a Secure Application in JDeveloper
41.8.2
What Happens When You Configure Security Deployment Options
41.8.3
How to Use the Built-In test-all Application Role
41.8.4
What Happens at Runtime: How ADF Security Handles Authentication
41.8.5
What Happens at Runtime: How ADF Security Handles Authorization
41.9
Preparing the Secure Application for Deployment
41.9.1
How to Remove the test-all Role from the Application Policy Store
41.9.2
How to Remove Test Users from the Application Identity Store
41.9.3
How to Secure Resource Files Using a URL Constraint
41.10
Disabling ADF Security
41.10.1
How to Disable ADF Security
41.10.2
What Happens When You Disable ADF Security
41.11
Advanced Topics and Best Practices
41.11.1
Using Expression Language (EL) with ADF Security
41.11.1.1
How to Evaluate Policies Using EL
41.11.1.2
What Happens When You Use the Expression Builder Dialog
41.11.1.3
What You May Need to Know About Delayed Evaluation of EL
41.11.2
How to Protect UI Components Using OPSS Resource Permissions and EL
41.11.2.1
Creating the Custom Resource Type
41.11.2.2
Creating a Resource Grant for a Custom Resource Type
41.11.2.3
Associating the Rendering of a UI Component with a Resource Grant
41.11.3
How to Perform Authorization Checks for Entity Object Operations
41.11.4
Getting Information from the ADF Context
41.11.4.1
How to Determine Whether Security Is Enabled
41.11.4.2
How to Determine Whether the User Is Authenticated
41.11.4.3
How to Determine the Current User Name
41.11.4.4
How to Determine Membership of a Java EE Security Role
41.11.4.5
How to Determine Permission Using Java
41.11.5
Best Practices for Working with ADF Security
42
Testing and Debugging ADF Components
42.1
About ADF Debugging
42.2
Correcting Simple Oracle ADF Compilation Errors
42.3
Correcting Simple Oracle ADF Runtime Errors
42.4
Reloading Oracle ADF Metadata in Integrated WebLogic Server
42.5
Validating ADF Controller Metadata
42.6
Using the ADF Logger
42.6.1
How to Set ADF Logging Levels
42.6.2
How to Create an Oracle ADF Debugging Configuration
42.6.3
How to Turn On Diagnostic Logging for Non-Oracle ADF Loggers
42.6.4
How to Use the Log Analyzer to View Log Messages
42.6.4.1
Viewing Diagnostic Messages in the Log Analyzer
42.6.4.2
Using the Log Analyzer to Analyze the ADF Request
42.6.4.3
Sorting Diagnostic Messages By ADF Events
42.6.5
What You May Need to Know About the Logging.xml File
42.6.6
What You May Need to Know About ADF Logging and Oracle WebLogic Server
42.7
Using the Oracle ADF Model Tester for Testing and Debugging
42.7.1
How to Run in Debug Mode and Test with the Oracle ADF Model Tester
42.7.2
How to Run the Oracle ADF Model Tester and Test with a Specific Application Module Configuration
42.7.3
What Happens When You Run the Oracle ADF Model Tester in Debug Mode
42.7.4
How to Verify Runtime Artifacts in the Oracle ADF Model Tester
42.7.5
How to Refresh the Oracle ADF Model Tester with Application Changes
42.8
Using the ADF Declarative Debugger
42.8.1
Using ADF Source Code with the Debugger
42.8.2
How to Set Up the ADF Source User Library
42.8.3
How to Add the ADF Source Library to a Project
42.8.4
How to Use the EL Expression Evaluator
42.8.5
How to View and Export Stack Trace Information
42.9
Setting ADF Declarative Breakpoints
42.9.1
How to Set and Use Task Flow Activity Breakpoints
42.9.2
How to Set and Use Page Definition Executable Breakpoints
42.9.3
How to Set and Use Page Definition Action Binding Breakpoints
42.9.4
How to Set and Use Page Definition Value Binding Breakpoints
42.9.5
How to Set and Use Page Definition Contextual Event Breakpoints
42.9.6
How to Set and Use ADF Lifecycle Phase Breakpoints
42.9.7
How to Use the ADF Structure Window
42.9.8
How to Use the ADF Data Window
42.9.9
What Happens When You Set an ADF Declarative Breakpoint
42.10
Setting Breakpoints in Java Code and Groovy Script
42.10.1
How to Set Breakpoints in Groovy Script
42.10.2
How to Set Java Breakpoints on Classes and Methods
42.10.3
How to Optimize Use of the Source Editor
42.10.4
How to Set Breakpoints and Debug Using ADF Source Code
42.10.5
How to Use Debug Libraries for Symbolic Debugging
42.10.6
How to Use Different Kinds of Java Code Breakpoints
42.10.7
How to Edit Breakpoints for Improved Control
42.10.8
How to Filter Your View of Class Members
42.10.9
How to Use Common Oracle ADF Breakpoints
42.11
Regression Testing with JUnit
42.11.1
How to Obtain the JUnit Extension
42.11.2
How to Create a JUnit Test Case
42.11.3
How to Create a JUnit Test Fixture
42.11.4
How to Create a JUnit Test Suite
42.11.5
How to Create a Business Components Test Suite
42.11.6
How to a Create Business Components Test Fixture
42.11.7
How to Run a JUnit Test Suite as Part of an Ant Build Script
43
Refactoring a Fusion Web Application
43.1
About Refactoring a Fusion Web Application
43.1.1
Refactoring Use Cases and Examples
43.1.2
Additional Functionality for Refactoring
43.2
Renaming Files
43.3
Moving JSF Pages
43.4
Refactoring pagedef.xml Bindings Objects
43.5
Refactoring ADF Business Components
43.6
Refactoring ADF Business Component Object Attributes
43.7
Refactoring Named Elements
43.8
Refactoring ADF Task Flows
43.9
Refactoring the DataBindings.cpx File
43.10
Refactoring Limitations
43.11
Moving the ADF Business Components Project Configuration File (.jpx)
44
Reusing Application Components
44.1
About Reusable Components
44.1.1
Creating Reusable Components
44.1.1.1
Naming Conventions
44.1.1.2
The Naming Process for the ADF Library JAR Deployment Profile
44.1.1.3
Keeping the Relevant Project
44.1.1.4
Selecting the Relevant Feature
44.1.1.5
Selecting Paths and Folders
44.1.1.6
Including Connections Within Reusable Components
44.1.2
Reusable ADF Components Use Cases and Examples
44.1.3
Additional Functionality for Reusable ADF Components
44.1.4
Common Functionality of Reusable ADF Components
44.1.4.1
Using Extension Libraries
44.1.4.2
Using the Resources Window
44.2
Packaging a Reusable ADF Component into an ADF Library
44.2.1
How to Package a Component into an ADF Library JAR
44.2.2
What Happens When You Package a Project to an ADF Library JAR
44.2.2.1
Application Modules Files Packaged into a JAR
44.2.2.2
Data Controls Files Packaged into a JAR
44.2.2.3
Task Flows Files Packaged into a JAR
44.2.2.4
Page Templates Files Packaged into a JAR
44.2.2.5
Declarative Components Files Packaged into a JAR
44.2.3
How to Place and Access JDeveloper JAR Files
44.3
Adding ADF Library Components into Projects
44.3.1
How to Add an ADF Library JAR into a Project using the Resources Window
44.3.2
How to Add an ADF Library JAR into a Project Manually
44.3.3
What Happens When You Add an ADF Library JAR to a Project
44.3.4
What You May Need to Know About Using ADF Library Components
44.3.4.1
Using Data Controls
44.3.4.2
Using Application Modules
44.3.4.3
Using Business Components
44.3.4.4
Using Task Flows
44.3.4.5
Using Page Templates
44.3.4.6
Using Declarative Components
44.3.5
What You May Need to Know About Differentiating ADF Library Components
44.3.6
What Happens at Runtime: How ADF Libraries are Added to a Project
44.4
Removing an ADF Library JAR from a Project
44.4.1
How to Remove an ADF Library JAR from a Project Using the Resources Window
44.4.2
How to Remove an ADF Library JAR from a Project Manually
45
Customizing Applications with MDS
45.1
About Customization and MDS
45.1.1
Customization and Layers: Use Cases and Examples
45.1.2
Static and Dynamic Customization Content
45.1.3
Additional Functionality for Customization
45.2
Developing a Customizable Application
45.2.1
How to Create Customization Classes
45.2.1.1
Customization Classes
45.2.1.2
Implementing the getValue() Method in Your Customization Class
45.2.1.3
Creating a Customization Class
45.2.2
What You May Need to Know About Customization Classes
45.2.3
How to Consume Customization Classes
45.2.3.1
Making Customization Classes Available to JDeveloper at Design Time
45.2.3.2
Making Customization Classes Available to the Application at Runtime
45.2.4
How to Enable Seeded Customizations for User Interface Projects
45.2.5
How to Enable Seeded Customizations in Existing Pages
45.2.6
How to Enable Customizations in Resource Bundles
45.2.7
How to Configure the adf-config.xml File
45.2.8
What Happens When You Create a Customizable Application
45.2.9
What You May Need to Know About Customizable Objects and Applications
45.3
Customizing an Application
45.3.1
Introducing the Customization Developer Role
45.3.2
How to Switch to the Customization Developer Role in JDeveloper
45.3.3
Introducing the Tip Layer
45.3.4
How to Configure Customization Layers
45.3.4.1
Configuring Layer Values Globally
45.3.4.2
Configuring Workspace-Level Layer Values from the Studio Developer Role
45.3.4.3
Configuring Workspace-Level Layer Values from the Customization Developer Role
45.3.5
How to Customize Metadata in JDeveloper
45.3.6
What Happens When You Customize an Application
45.3.7
How to Customize ADF Library Artifacts in JDeveloper
45.3.7.1
Customizing an ADF Library Artifact
45.3.7.2
Specifying a Location for ADF Library Customizations
45.3.8
How to View ADF Library Runtime Customizations from Exported JARs
45.3.9
What Happens When You Customize ADF Library Artifacts
45.3.10
What Happens at Runtime: How Customizations are Applied
45.3.11
What You May Need to Know About Customized Applications
45.3.11.1
Customization and Integrated Source Control
45.3.11.2
Editing Resource Bundles in Customized Applications
45.4
How to Package and Deploy Customized Applications
45.4.1
Implicitly Creating a MAR Profile
45.4.2
Explicitly Creating a MAR Profile
45.5
Extended Metadata Properties
45.5.1
How to Edit Extended Metadata Properties
45.5.2
How to Enable Customization for Design Time at Runtime
45.5.2.1
Editing Customization Properties in the Properties window
45.5.2.2
Using a Standalone Annotations File to Specify Type-Level Customization Properties
45.6
Enabling Runtime Modification of Customization Configuration
46
Allowing User Customizations at Runtime
46.1
About User Customizations
46.1.1
Runtime User Customization Use Cases and Examples
46.1.2
Additional Functionality for Runtime User Customization
46.2
Enabling Runtime User Customizations for a Fusion Web Application
46.2.1
How to Enable User Customizations
46.2.2
What Happens When You Enable User Customizations
46.3
Configuring User Customizations
46.3.1
How to Configure Change Persistence
46.3.2
What Happens When You Configure Change Persistence
46.4
Controlling User Customizations in Individual JSF Pages
46.4.1
How to Control User Customizations on a JSF Page
46.4.2
What Happens at Runtime: How Changes are Persisted
46.4.3
What You May Need to Know About Using Change Persistence on Templates and Regions
46.5
Implementing Custom User Customizations
46.5.1
What You May Need to Know About the Change Persistence Framework API
46.5.2
How to Create Code for Custom User Customizations
46.6
Creating Implicit Change Persistence in Custom Components
46.6.1
How to Set Implicit Change Persistence For Attribute Values that Use Events
46.6.2
How to Set Implicit Change Persistence For Other Attribute Values
47
Using the Active Data Service
47.1
About the Active Data Service
47.1.1
Active Data Service Use Cases and Examples
47.1.2
Limitations of the Active Data Service Framework
47.1.3
Active Data Service Framework
47.1.4
Data Transport Modes
47.2
Configuring the Active Data Service
47.2.1
How to Configure the Active Data Service
47.2.2
What You May Need to Know About Configuring an ADS Transport Mode
47.2.3
How to Configure Session Timeout for Active Data Service
47.3
Configuring Components to Use the Active Data Service
47.3.1
How to Configure Components to Use the Active Data Service Without the Active Data Proxy
47.3.2
How to Configure Components to Use the Active Data Service with the Active Data Proxy
47.3.3
What You May Need to Know About Displaying Active Data in ADF Trees
47.3.4
What Happens at Runtime: How Components Render When Bound to Active Data
47.3.5
What You May Need to Know About Running ADS in a Google Chrome Browser
47.4
Using the Active Data Proxy
47.4.1
How to Use the Active Data Proxy
47.5
What You May Need to Know About Maintaining Read Consistency
47.6
Using the Active Data with a Scalar Model
47.6.1
How to Use the Active Data with a Scalar Model
48
Configuring High Availability for Fusion Web Applications
48.1
About Oracle ADF High Availability
48.1.1
Oracle ADF Scope and Session State Considerations
48.1.2
Oracle ADF Failover and Expected Behavior Considerations
48.1.3
ADF Application Module for Oracle RAC Considerations
48.2
Configuring Oracle ADF for High Availability
48.2.1
How to Configure Application Modules for High Availability
48.2.2
How to Enable Support for Replicating HTTP Session State
48.2.3
How to Ensure Oracle ADF Receives Notifications From Managed Bean Changes
48.2.4
What You May Need to Know About Using Application Scoped Managed Beans in a Clustered Environment
48.2.5
How to Disable Design Time Optimizations
48.3
Troubleshooting Fusion Web Applications for High Availability
48.3.1
How to Test the Fusion Web Application With Failover Mode Enabled
48.3.2
How to Troubleshoot High Availability Issues at Design Time
48.3.3
How to Troubleshoot High Availability Issues After Deployment
48.3.3.1
Verifying the JRF Runtime Installation
48.3.3.2
Verifying the Success of All Application Deployments
48.3.4
How to Troubleshoot Oracle ADF Replication and Failover Issues
49
Deploying Fusion Web Applications
49.1
About Deploying Fusion Web Applications
49.1.1
Developing Applications with Integrated WebLogic Server
49.1.2
Developing Applications to Deploy to Standalone Application Server
49.2
Running a Fusion Web Application in Integrated WebLogic Server
49.2.1
How to Run an Application in Integrated WebLogic Server
49.2.2
How to Run an Application with Metadata in Integrated WebLogic Server
49.3
Preparing the Application
49.3.1
How to Create a Connection to the Target Application Server
49.3.2
How to Create Deployment Profiles
49.3.2.1
Creating a WAR Deployment Profile
49.3.2.2
Creating a MAR Deployment Profile
49.3.2.3
Creating an Application Level EAR Deployment Profile
49.3.2.4
Adding Customization Classes into a JAR
49.3.2.5
Delivering Customization Classes as a Shared Library
49.3.2.6
Viewing and Changing Deployment Profile Properties
49.3.3
How to Create and Edit Deployment Descriptors
49.3.3.1
Creating Deployment Descriptors
49.3.3.2
Viewing or Modifying Deployment Descriptor Properties
49.3.3.3
Configuring the application.xml File for Application Server Compatibility
49.3.3.4
Configuring the web.xml File for Application Server Compatibility
49.3.3.5
Enabling the Application for RUEI and Click History
49.3.4
How to Deploy Applications with ADF Security Enabled
49.3.4.1
Applications That Will Run Using Oracle Single Sign-On (SSO)
49.3.4.2
Configuring Security for Weblogic Server
49.3.5
How to Replicate Memory Scopes in a Clustered Environment
49.3.6
How to Enable the Application for ADF MBeans
49.3.7
What You May Need to Know About JDBC Data Source for Oracle WebLogic Server
49.4
Deploying the Application
49.4.1
How to Deploy to the Application Server from JDeveloper
49.4.2
How to Create an EAR File for Deployment
49.4.3
How to Deploy New Customizations Applied to ADF Library
49.4.3.1
Exporting Customization to a Deployed Application
49.4.3.2
Deploying Customizations to a JAR
49.4.4
What You May Need to Know About ADF Libraries
49.4.5
What You May Need to Know About EAR Files and Packaging
49.4.6
How to Deploy the Application Using Scripts and Ant
49.4.7
How to Deploy ADF Faces Library JARs with the Application
49.4.8
What You May Need to Know About JDeveloper Runtime Libraries
49.5
Postdeployment Configuration
49.5.1
How to Migrate an Application
49.5.2
How to Configure the Application Using ADF MBeans
49.6
Testing the Application and Verifying Deployment
50
Using State Management in a Fusion Web Application
50.1
About Fusion Web Application State Management
50.1.1
What You May Need to Know About Multi-Step Tasks
50.1.2
What You May Need to Know About the Stateless HTTP Protocol
50.1.3
What You May Need to Know About Session Cookies
50.1.4
What You May Need to Know About Using HttpSession
50.2
Managing When Passivation and Activation Occurs
50.2.1
How to Confirm That Fusion Web Applications Use Optimistic Locking
50.2.2
What You May Need to Know About Pending Changes Across HTTP Requests
50.2.3
What You May Need to Know About the postChanges() Method
50.3
Testing to Ensure Your Application Module is Activation-Safe
50.3.1
How To Disable Application Module Pooling to Test Activation
50.3.2
What You May Need to Know About the jbo.ampool.doampooling Configuration Parameter
50.3.3
What You May Need to Know About State Management and Data Consistency
50.3.4
What You May Need to Know About State Management and Subclassed Entity Objects
50.4
Controlling Where Model State Is Saved
50.4.1
How to Control the Schema Where the State Management Table Resides
50.4.2
How to Configure the Passivation Store
50.4.3
What Happens at Runtime: What Model State Is Saved and When It Is Cleaned Up
50.5
Cleaning Up the Model State
50.5.1
How to Clean Up Temporary Storage Tables Resulting from Passivation
50.5.2
What Happens at Runtime: When a Passivation Record Is Updated
50.5.3
What Happens at Runtime: When a Passivation Snapshot is Removed on Unmanaged Release
50.5.4
What Happens at Runtime: Passivation Snapshot Retained in Failover Mode
50.6
Managing the HttpSession in Fusion Web Applications
50.6.1
How to Configure the Implicit Timeout Due to User Inactivity
50.6.2
How to Code an Explicit HttpSession Timeout
50.6.3
What Happens at Runtime: How Application Modules are Handled When the HTTP Times Out
50.7
Managing Custom User-Specific Information During Passivation
50.7.1
How to Passivate Custom User-Specific Information
50.7.2
What Happens When You Passivate Custom Information
50.7.3
What You May Need to Know About Activating Custom Information
50.8
Managing the State of View Objects During Passivation
50.8.1
How to Manage the State of View Objects
50.8.2
What You May Need to Know About Passivating View Objects
50.8.3
How to Manage the State of Transient View Objects and Attributes
50.8.4
What You May Need to Know About Passivating Transient View Objects
50.8.5
How to Use Transient View Objects to Store Session-level Global Variables
51
Tuning Application Module Pools
51.1
About Application Module Pooling
51.1.1
Application Module Pools at Runtime
51.1.2
Deployment Environment Scenarios and Pooling
51.1.2.1
Single Oracle WebLogic Server Domain, Single Oracle WebLogic Server Instance, Single JVM
51.1.2.2
Multiple Oracle WebLogic Server Domains, Multiple Oracle WebLogic Server Instance, Multiple JVMs
51.2
Setting Pool Configuration Parameters
51.2.1
How to Set Configuration Properties Declaratively
51.2.2
What Happens When You Set Configuration Properties Declaratively
51.2.3
How to Programmatically Set Configuration Properties
51.2.4
What You May Need to Know About Configuration Property Scopes
51.2.5
What You May Need to Know About Application Module Pool Configuration Parameters
51.2.5.1
Pool Behavior Parameters
51.2.5.2
Pool Sizing Parameters
51.2.5.3
Pool Cleanup Parameters
51.2.6
What You May Need to Know About Optimizing Application Module Pooling
51.3
Initializing Database State and Pooling Considerations
51.3.1
How to Set Database State Per User
Part VII Appendices
A
Oracle ADF XML Files
A.1
About ADF Metadata Files
A.2
ADF File Overview Diagram
A.2.1
Oracle ADF Data Control Files
A.2.2
Oracle ADF Data Binding Files
A.2.3
Web Configuration Files
A.3
ADF File Syntax Diagram
A.4
adfm.xml
A.5
modelProjectName
.jpx
A.6
bc4j.xcfg
A.7
DataBindings.cpx
A.7.1
DataBindings.cpx Syntax
A.7.2
DataBindings.cpx Sample
A.8
pageName
PageDef.xml
A.8.1
PageDef.xml Syntax
A.9
adfc-config.xml
A.10
task-flow-definition.xml
A.11
adf-config.xml
A.12
adf-settings.xml
A.13
web.xml
A.14
logging.xml
B
Oracle ADF Binding Properties
C
ADF Security Permission Grants
D
Most Commonly Used ADF Business Components Methods
D.1
Methods for Creating Your Own Layer of Framework Base Classes
D.2
Methods Used in the Client Tier
D.2.1
ApplicationModule Interface
D.2.2
Transaction Interface
D.2.3
ViewObject Interface
D.2.4
RowSet Interface
D.2.5
RowSetIterator Interface
D.2.6
Row Interface
D.2.7
StructureDef Interface
D.2.8
AttributeDef Interface
D.2.9
AttributeHints Interface
D.3
Methods Used in the Business Service Tier
D.3.1
Controlling Custom Java Files for Your Components
D.3.2
ApplicationModuleImpl Class
D.3.2.1
Methods You Typically Call on ApplicationModuleImpl
D.3.2.2
Methods You Typically Write in Your Custom ApplicationModuleImpl Subclass
D.3.2.3
Methods You Typically Override in Your Custom ApplicationModuleImpl Subclass
D.3.3
DBTransactionImpl2 Class
D.3.3.1
Methods You Typically Call on DBTransaction
D.3.3.2
Methods You Typically Override in Your Custom DBTransactionImpl2 Subclass
D.3.4
EntityImpl Class
D.3.4.1
Methods You Typically Call on EntityImpl
D.3.4.2
Methods You Typically Write in Your Custom EntityImpl Subclass
D.3.4.3
Methods You Typically Override in Your Custom EntityImpl Subclass
D.3.5
EntityDefImpl Class
D.3.5.1
Methods You Typically Call on EntityDefImpl
D.3.5.2
Methods You Typically Write in Your Custom EntityDefImpl Class
D.3.5.3
Methods You Typically Override in Your Custom EntityDefImpl
D.3.6
ViewObjectImpl Class
D.3.6.1
Methods You Typically Call on ViewObjectImpl
D.3.6.2
Methods You Typically Write in Your Custom ViewObjectImpl Subclass
D.3.6.3
Methods You Typically Override in Your Custom ViewObjectImpl Subclass
D.3.7
ViewRowImpl Class
D.3.7.1
Methods You Typically Call on ViewRowImpl
D.3.7.2
Methods You Typically Write in Your Custom ViewRowImpl Class
D.3.7.3
Methods You Typically Override in Your Custom ViewRowImpl Subclass
E
ADF Business Components Java EE Design Pattern Catalog
F
ADF Equivalents of Common Oracle Forms Triggers
F.1
Validation and Defaulting (Business Logic)
F.2
Query Processing
F.3
Database Connection
F.4
Transaction "Post" Processing (Record Cache)
F.5
Error Handling
G
Performing Common Oracle Forms Tasks in Oracle ADF
G.1
Concepts Familiar to Oracle Forms Developers
G.2
Performing Tasks Related to Data
G.2.1
How to Retrieve Lookup Display Values for Foreign Keys
G.2.2
How to Get the Sysdate from the Database
G.2.3
How to Implement an Isolation Mode That Is Not Read Consistent
G.2.4
How to Implement Calculated Fields
G.2.5
How to Implement Mirrored Items
G.2.6
How to Use Database Columns of Type CLOB or BLOB
G.3
Performing Tasks Related to the User Interface
G.3.1
How to Lay Out a Page
G.3.2
How to Stack Canvases
G.3.3
How to Implement a Master-Detail Screen
G.3.4
How to Implement an Enter Query Screen
G.3.5
How to Implement an Updatable Multi-Record Table
G.3.6
How to Create a Popup List of Values
G.3.7
How to Implement a Dropdown List as a List of Values
G.3.8
How to Implement a Dropdown List with Values from Another Table
G.3.9
How to Implement Immediate Locking
G.3.10
How to Throw an Error When a Record Is Locked
H
Deploying ADF Applications to GlassFish
H.1
About Deploying ADF Applications to GlassFish Server
H.1.1
Developing Applications with Integrated WebLogic Server
H.1.2
Developing Applications to Deploy to Standalone GlassFish Server
H.2
Running an ADF Application in Integrated WebLogic Server
H.2.1
How to Run an Application in Integrated WebLogic Server
H.3
Preparing the Application
H.3.1
How to Create a Connection to the Target Application Server
H.3.2
How to Create Deployment Profiles
H.3.2.1
Creating a WAR Deployment Profile
H.3.2.2
Creating an Application-Level EAR Deployment Profile
H.3.2.3
Viewing and Changing Deployment Profile Properties
H.3.3
How to Create and Edit Deployment Descriptors
H.3.3.1
Creating Deployment Descriptors
H.3.3.2
Viewing or Modifying Deployment Descriptor Properties
H.3.3.3
Configuring the application.xml File for Application Server Compatibility
H.3.3.4
Configuring the web.xml File for GlassFish Server Compatibility
H.3.4
How to Enable JDBC Data Source for GlassFish
H.3.5
How to Change Initial Context Factory
H.4
Deploying the Application
H.4.1
How to Deploy to the Application Server from JDeveloper
H.4.2
What You May Need to Know About Deploying from JDeveloper
H.4.3
How to Create an EAR File for Deployment
H.4.4
What You May Need to Know About ADF Libraries
H.4.5
What You May Need to Know About EAR Files and Packaging
H.4.6
How to Deploy to the Application Server using asadmin Commands
H.4.7
How to Deploy the Application Using Scripts and Ant
H.5
Testing the Application and Verifying Deployment
Scripting on this page enhances content navigation, but does not change the content in any way.