Skip Headers
Oracle® Fusion Applications Developer's Guide
11
g
Release 1 (11.1.2)
Part Number E15524-02
Home
Book List
Contact Us
Next
PDF
·
Mobi
·
ePub
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide for Release 11.1.2
Documentation Changes for Release 11.1.2
Part I Getting Started Building Your Oracle Fusion Applications
1
Getting Started with Oracle Fusion Applications
1.1
Overview of Fusion Technologies
1.2
Using Oracle ADF Functional Patterns and Best Practices
2
Setting Up Your Development Environment
2.1
Introduction to the Development Environment
2.1.1
Shared Environment
2.1.1.1
Creating the OWSM_MDS Schema
2.1.2
Personal Environment
2.2
Setting Up the JDeveloper-based Personal Environment
2.2.1
Before You Begin
2.2.1.1
Removing the SCIM Process
2.2.1.2
Increasing Open File Limit on Local Linux Servers
2.2.1.3
Installing JDeveloper
2.2.1.4
Adding Customization Extension Bundles to the jdev.conf File
2.2.1.5
Setting Up the JDeveloper-based Development Environment
2.2.1.6
Using the OWSM_MDS Schema
2.2.1.7
Distributing the fusion_apps_wls.properties and cwallet.sso Files
2.2.2
How to Use the Oracle Fusion Domain Wizard
2.2.2.1
Creating the Properties File for Default Integrated Server
2.2.2.2
Completing the Oracle Fusion Domain Wizard for Standalone Server
2.2.3
How to Start Integrated WebLogic Server
2.2.3.1
Managing Integrated WebLogic Server
2.3
Setting Up the Personal Environment for Standalone WebLogic Server
2.3.1
How to Create a Domain for Standalone WebLogic Server
2.3.1.1
Creating a Special SOAINFRA Schema
2.3.1.2
Setting Up the Environment for Standalone WebLogic Server
2.3.1.3
Managing the Standalone WebLogic Server Lifecycle
2.4
Configuring Oracle SOA Suite and Oracle Enterprise Manager Fusion Middleware Control
2.4.1
How to Use the Application Logging Service
2.4.2
How to Use Alternate Database Schemas
2.5
Using Deployment Profiles Settings
2.5.1
How to Use Service Deployments
2.5.2
How to Update the Standard
2.6
Configuring the Oracle Enterprise Scheduler (ESS)
2.6.1
How to Provision the Runtime Environment
2.6.2
How to Create Supporting Database Schema
2.6.3
Post-Installation Checks
2.6.3.1
Verifying the Temp Directory Location and Write Permissions
2.6.3.2
Verifying ESS Artifacts Deployment Targets
2.6.3.3
Checking ESS Health
2.7
Testing Your Installation
2.8
Using Best Practices for Setting Up the Development Environment
2.8.1
How to Implement Best Practices for JDeveloper
2.8.2
How to Refresh the ADF Library Dependencies Library
2.8.3
How to Create the Integrated WebLogic Server Domain
2.8.4
How to Manage OutOfMemory Exceptions (PermGen)
2.8.5
How to Work with ADF Libraries at Design Time
2.9
Configuring Hierarchy Providers for Approval Management (AMX)
3
Setting Up Your JDeveloper Workspace and Projects
3.1
Using Technology Scopes
3.2
Provisioning the Workspace
3.3
Adding the Applications Core Library to Your Data Model Project
3.4
Adding the Applications Core Tag Library to Your User Interface Project
3.5
Integrating Oracle Fusion Middleware Extensions for Applications (Applications Core) Setup UIs
3.5.1
What You May Need to Know About Setup UIs in Oracle Fusion Functional Setup Manager
3.5.2
How to Integrate Setup UIs into Functional Setup Manager
3.6
Creating a Database Connection
3.7
Adding the Search Navigation Tab to the Overview Editor for Oracle Enterprise Crawl and Search Framework (ECSF)
3.7.1
How to Add the Search Navigation Tab to the Overview Editor
3.7.2
What Happens When You Add the Search Navigation Tab to the Overview Editor
3.8
Deploying Oracle SOA Suite
3.9
Implementing Oracle Enterprise Scheduler Service Workspace and Deployment
3.9.1
How to Create the SuperEss Project
3.9.2
How to Build the EAR/MAR Profiles
3.9.2.1
Deploying a Project-level Metadata Archive (MAR)
3.9.2.2
Building the EAR Profile
3.9.2.3
Deploying an Oracle Enterprise Scheduler Service Hosting Application
3.10
Implementing Oracle Application Development Framework UI Workspace and Projects
3.10.1
How to Set Up Your Web Project
3.10.1.1
Configuring Your User Interface Project
3.10.2
How to Create the SuperEss Project in the ADF UI Workspace
3.10.3
How to Deploy Your Web Project
Part II Defining Business Services
4
Getting Started with Business Services
4.1
Introduction to Implementing Business Logic
4.1.1
About Entity Objects
4.1.1.1
Standard Business and Validation Logic
4.1.1.2
Specialized Business Functions
4.1.2
About View Objects
4.1.3
About Application Modules
4.2
Understanding Validators
4.3
Understanding List of Values (LOV)
4.4
Understanding Batch Processing
4.5
Understanding Extensibility and Reusability
4.6
Understanding Services
4.7
Using the Declarative Approach
4.7.1
How to Define View Objects Using the Declarative Approach
4.7.1.1
Using Entity Object Based View Objects
4.7.1.2
Utilizing View Criteria
5
Developing Services
5.1
Introduction to Services
5.2
Designing the Service Interface
5.2.1
How to Identify Business Objects
5.2.2
How to Identify Service Operations on the Business Objects
5.2.2.1
Types of Operations
5.2.2.2
Identifying Operations
5.2.2.3
Defining Service Operations - General Guidelines
5.2.3
How to Identify Services
5.2.4
How to Define Service Exceptions and Information
5.2.4.1
Defining Service Exceptions
5.2.4.2
Defining Partial Failure and Bulk Processing
5.2.4.3
Defining Informational Messages
5.3
Developing Services
5.3.1
How to Create Service Data Objects
5.3.2
How to Create Services
5.3.2.1
What You May Need to Know About Design Time
5.3.3
How to Generate Synchronous and Asynchronous Service Methods
5.4
Invoking Services
5.4.1
How to Invoke a Synchronous Service
5.4.2
How to Invoke an Asynchronous Service
6
Defining Defaulting and Derivation Logic
6.1
Understanding Entity Object Defaulting and Derivation Logic
6.2
Using Groovy Scripting Language
6.2.1
Keywords and Available Names
6.2.2
Scripting Logic
6.2.3
Groovy Expression Examples
6.2.3.1
Querying Based on the Current Locale
6.2.3.2
Error Message Tokens
6.2.3.3
Expression Validators
6.2.3.4
Attribute Defaulting and Calculation
6.2.4
Defining Expressions at Design Time
6.3
Using Oracle ADF Validators and Convertor Hints
7
Defining and Using Message Dictionary Messages
7.1
Introduction to Message Dictionary Messages
7.2
Understanding Message Types
7.3
Understanding Message Content
7.3.1
About Message Names
7.3.2
About Message Numbers
7.3.3
About Translation Notes
7.3.4
About Message Components
7.3.5
About Tokens
7.4
About Grouping Messages by Category and Severity
7.5
Understanding Incidents and Diagnostic Logs with Message Dictionary
7.6
Using Message Dictionary Messages in Oracle ADF Java Code
7.6.1
How to Raise Exceptions Using Oracle Fusion Middleware Extensions for Applications Exception Classes
7.6.2
How to Retrieve Message Text Programmatically
7.7
Associating Message Dictionary Messages with Oracle ADF Validation Rules
7.7.1
How to Associate Error Messages with Oracle ADF Entity Object Validation Rules
7.8
Raising Error Messages Programmatically in PL/SQL
7.8.1
How to Raise Exceptions Programmatically in PL/SQL
7.8.2
How to Raise Errors in PL/SQL
7.8.3
How to Retrieve Errors when PL/SQL is Called from Java
7.9
Diagnosing Generic System Error Messages
7.10
Formatting Message Dictionary Messages for Display in Oracle ADF Applications
7.10.1
How to Programmatically Convert XML Messages
7.10.2
How to Convert XML Messages by Configuring the Error Format Handler
7.11
Integrating Messages Task Flows into Oracle Fusion Functional Setup Manager
8
Managing Reference Data with SetIDs
8.1
Introduction to SetIDs
8.1.1
Partitioning by SetID
8.1.2
SetID Determinant Types
8.1.3
Understanding SetID Machinery
8.1.3.1
Partitioning Patterns
8.1.3.2
Reference Groups
8.1.3.3
Set Configuration Tables
8.1.3.4
SetID PL/SQL Utilities
8.2
Implementing SetID on Entity Objects
8.2.1
How to Annotate Reference Entity Objects for Sharing
8.2.2
How to Build Entity Associations for All Foreign References
8.2.3
How to Annotate Transactional Entity Objects for SetID
8.2.4
How to Define View Accessors for Shared Reference Entities
8.2.5
How to Define a Key Exists Validator for Shared Reference Entities
8.2.6
How to Create LOVs for Shared Reference Entities
8.3
Integrating SetID Task Flows into Oracle Fusion Functional Setup Manager
9
Using Fusion Middleware Extensions for Oracle Applications Base Classes
9.1
Introduction to Fusion Middleware Extensions for Oracle Applications Base Classes
9.2
Using Multi-Language Support Features
9.2.1
Using Utility APIs
9.2.2
How to Create a Multi-Language ADF Business Components Entity Object
9.2.2.1
What You Need to Know About Overrides
9.3
Using WHO Column Features
9.3.1
How to Use the Extension
9.3.2
What Happens with WHO Column at Design Time and Runtime
9.4
Using PL/SQL-Based Entities
9.4.1
How to Use APIs to Facilitate DML Operations
9.4.2
How to Use the Extensions
9.4.3
What Happens with PL/SQL Entities at Design Time and Runtime
9.5
Accessing FND Services
9.5.1
How to Use the Extension
9.6
Using Unique ID
9.6.1
How to Use the Extension
9.6.2
What Happens with Unique ID at Design Time
9.6.3
What Happens with Unique ID at Runtime
9.7
Using Data Security
9.7.1
How to Use the Extension
9.8
Using Document Sequencing
10
Implementing Lookups
10.1
Introduction to Lookups
10.1.1
Overview of Lookups
10.1.2
Standard, Set-Enabled, and Common Lookup Views
10.1.3
Lookup Customization Levels
10.1.3.1
What Happens to Customization Levels at Runtime
10.2
Preparing Entities and Views for Lookups
10.2.1
How to Prepare Custom Lookup Views
10.3
Referencing Lookups
10.3.1
How to Reference Lookups
10.4
Defining Validators for Lookups
10.4.1
How to Define a List Validator
10.4.2
How to Define a Key Exists Validator
10.5
Annotating Lookup Code Reference Attributes for Set-Enabled Lookups
10.6
Integrating Lookups Task Flows into Oracle Fusion Functional Setup Manager
11
Setting Up Document Sequences
11.1
Introduction to Document Sequences
11.2
Defining Document Sequence Categories
11.3
Assigning a Document Sequence
11.4
Defining a Document Sequence Audit Table
11.5
Enabling Document Sequences in ADF Business Components
11.5.1
Using the Document-Sequence Extension
11.5.1.1
What Happens with Document Sequences at Design Time
11.5.1.2
What Happens with Document Sequences at Runtime
11.6
Managing PL/SQL APIs
11.7
Integrating Document Sequence Task Flows into Oracle Fusion Functional Setup Manager
12
Implementing Audit Trail Reporting
12.1
Introduction to Audit Trail Reporting
12.2
Implementing Audit Trail Reporting
12.2.1
How to Set Metadata
12.2.2
How to Use Audit Taskflows
Part III Defining User Interfaces
13
Getting Started with Your Web Interface
13.1
Introduction to Developing a Web Application
13.2
Oracle Fusion Guidelines, Patterns, and Standards
13.3
Basic Building Blocks
13.4
Introduction to the UI Shell
13.5
Applications UI Patterns and Features
14
Implementing the UI Shell
14.1
Introduction to Implementing the UI Shell
14.1.1
Standard Related to UI Shells
14.1.2
UI Shell Description
14.1.2.1
Global Area Standard Links
14.2
Populating a UI Shell
14.2.1
How to Create a JSF Page
14.2.1.1
Working with the Applications Menu Model
14.2.2
How to Add Default Main Area Task Flows to a Page
14.2.3
How to Add Dynamic Main Area and Regional Area Task Flows to a Page
14.2.3.1
Adding the Tasks List Menu to the Page
14.2.3.2
Grouping Tasks in the Tasks Pane into a Category
14.2.3.3
Linking to a Task Flow in a Different Page
14.2.3.4
Supporting No-Tab Workareas
14.2.3.5
Implementing the Task Popup
14.2.4
How to Pass Parameters into Task Flows from Tasks List
14.2.5
How to Launch Data Files from a Tasks List Link
14.3
Implementing Application Menu Security
14.4
Controlling the State of Main and Regional Area Task Flows
14.4.1
How to Control Main Area Task Flows
14.4.1.1
closeMainTask History
14.4.2
How to Control Regional Area Task Flows
14.4.3
How to Control the State of the Contextual Area Splitter
14.4.3.1
Implementing the Contextual Area Splitter
14.4.4
Sizing Regional Area Panels
14.5
Working with the Global Menu Model
14.5.1
How to Implement a Global Menu
14.5.1.1
Menu Attributes Added by Oracle Fusion Middleware Extensions for Applications (Applications Core)
14.5.1.2
Displaying the Navigator Menu
14.5.1.3
Implementing a Global Menu
14.5.2
How to Set Up Global Menu Security
14.5.2.1
Enforcing User Privileges and Restrictions
14.5.3
How to Create the Navigator Menu
14.5.3.1
Rendering the Navigator Menu as Pull-down Buttons
14.6
Using the Personalization Menu
14.7
Implementing End User Preferences
14.7.1
How to Use Preferences Link Navigation
14.7.2
How to Use the Preferences Workarea Page
14.7.3
How to Deploy Application Preferences Pages
14.7.4
How to Design General Preferences Content
14.7.5
How to Configure End-User Preferences
14.7.5.1
Implementing User General Preferences Flow
14.7.5.2
Using the Preferences Menu Model
14.7.5.3
Configuring User Session and ADF Security
14.7.5.4
Retrieving Preference Values
14.7.5.5
Implementing the Password Management Page
14.8
Using the Administration Menu
14.8.1
How to Secure the Administration Menu
14.9
Using the Help Menu
14.10
Implementing Tagging Integration
14.10.1
How to Use the Delivered Oracle WebCenter Tagging Components
14.10.1.1
Tagging a Resource (Business Object)
14.10.1.2
Enabling Multiple Navigation Targets
14.10.1.3
Tagging a Resource at the Row Level of a Table
14.10.1.4
Searching for a Tag
14.10.1.5
Resource Viewer for Tagged Items
14.10.2
Implementing Tagging Security
14.10.3
How to Use Tagging in a UI Shell Application
14.11
Implementing Recent Items
14.11.1
How to Choose Labels for Task Flows
14.11.2
How to Call Sub-Flows
14.11.2.1
Sub-Flow Registration APIs
14.11.2.2
openSubTask API Labels
14.11.2.3
Launching from Recent Items
14.11.3
How to Enable a Sub-flow to Be Bookmarked in Recent Items
14.11.3.1
Implementing the Sub-flow Design Pattern
14.11.4
How to Use Additional Capabilities of Recent Items
14.11.5
Known Issues
14.12
Implementing the Watchlist
14.12.1
Watchlist Data Model Effects
14.12.2
Watchlist Physical Data Model Entities
14.12.3
Supported Watchlist Items
14.12.3.1
Asynchronous Items Overview: Expense Reports Saved Search
14.12.3.2
Summary of Implementation Tasks
14.12.4
How to Use the Watchlist
14.12.4.1
Making the Watchlist Link in UI Shell Global Area Work
14.12.4.2
Seed Reference Data (All items)
14.12.4.3
Create Summary View Object (SEEDED_QUERY)
14.12.4.4
Create Seeded Saved Searches in MDS (SEEDED_SAVED_SEARCH)
14.12.4.5
Creating Application Module/View Objects (All except HUMAN_TASK)
14.12.4.6
Setting Up Service (All except HUMAN_TASK)
14.12.4.7
Importing All Watchlist-Related AMs
14.12.4.8
Nesting Watchlist Application Module
14.12.4.9
Using the refreshWatchlistCategory Method
14.12.4.10
Importing Watchlist JAR Files into the Saved Search Project (USER_SAVED_SEARCH)
14.12.4.11
Promoting Saved Search to the ATK Watchlist (USER_SAVED_SEARCH)
14.12.4.12
Code Task Flows to Accept Parameters (All except HUMAN_TASK)
14.12.4.13
Import Watchlist UI JAR File in User Interface Project
14.12.4.14
Additional Entries for Standalone Deployment
14.13
Implementing Group Spaces
14.13.1
Assumptions
14.13.2
How to Implement Group Spaces
14.13.3
Overview of Group Spaces Functionality
14.13.4
How to Pass a Chromeless Template
14.14
Implementing Activity Streams and Business Events
14.14.1
Introduction to WebCenter Activities
14.14.2
How to Publish Business Events to Activities
14.14.3
How to Publish Activities Using a Programmatic API
14.14.4
How to Implement Activity Streams
14.14.4.1
Defining and Publishing Business Events in JDeveloper
14.14.4.2
Overriding isActivityPublishingEnabled() to Enable Activity Publishing
14.14.4.3
Defining Activity Attributes Declaratively
14.14.5
How to Define Activities
14.14.5.1
Adding the ActivityStream UI Task Flow
14.14.5.2
Defining Activities in service-definition.xml
14.14.6
How to Implement Comments and Likes
14.14.7
How to Implement Follow for an Object
14.14.7.1
Defining the Service Category
14.14.7.2
Adding ActivityTypes for Follow and Unfollow
14.14.8
How to Render Contextual Actions in Activity Streams
14.15
Implementing the Oracle Fusion Applications Search Results UI
14.15.1
How to Disable Oracle Fusion Applications Search
14.15.2
How to Use Basic Search
14.15.2.1
Search Results
14.15.3
How to Implement the GlobalSearchUtil API
14.15.3.1
Using the Search API
14.15.3.2
Running the Oracle Fusion Applications Search UI Under WebLogic Server
14.15.4
Introduction to the Crawled Objects Project
14.15.5
How to Implement Tags in Oracle Fusion Applications Search
14.15.6
How to Use the Actionable Results API with Oracle Fusion Applications Search
14.15.6.1
Implementing the URL Action Type
14.15.6.2
Implementing the Task Action Type
14.15.6.3
Passing Parameters in Oracle Fusion Applications Search
14.15.6.4
Ordering the Other Actions
14.15.6.5
Using Click Path and the Saved Search
14.15.7
How to Integrate Non-Applications Data into Oracle Fusion Applications Search
14.15.7.1
Oracle Business Intelligence Integration
14.15.7.2
Integrating the Oracle WebCenter
14.15.7.3
Ensuring Parity of Users
14.16
Introducing the Navigate API
14.16.1
How to Use the Navigate API Data Control Method
14.16.2
How to Implement Navigation Across Web Applications
14.17
Warning of Pending Changes in the UI Shell
14.17.1
How to Implement Warning of Pending Changes
14.17.2
How to Suppress Warning of Pending Changes
14.18
Implementing the Oracle Fusion Home Page UI
14.18.1
Supported Behavior
14.18.2
How to Create a Home Page
14.18.3
Getting the URL
14.19
Using the Single Object Context Workarea
14.19.1
Implementation Notes
14.19.1.1
Developer Implementation
14.20
Implementing the Third Party Component Area
14.20.1
How to Implement the ThirdPartyComponentArea Facet Developer
14.21
Developing an Activity Guide Client Application with the UI Shell
15
Implementing UIs in JDeveloper with Application Tables, Trees and Tree Tables
15.1
Implementing Applications Tables
15.1.1
Understanding Applications Tables Facets and Properties
15.1.2
How to Create an Applications Table
15.1.2.1
Adding Applications Tables to JSF Pages or Page Fragments
15.1.2.2
Adding Applications Table Components Using the Applications Table Wizard
15.1.3
Introduction to Selected Elements in the Table Property Inspector
15.1.3.1
Common Properties Section
15.1.3.2
Patterns Properties
15.1.3.3
Other Properties
15.1.4
How to Modify Applications Table Components and Properties
15.1.4.1
Adding Data Controls to Tables
15.1.4.2
Working with Table Menus and Icons
15.1.4.3
Increasing Table Width to Fill 100% of Its Container
15.1.4.4
Using an Applications Table with a Query Component
15.1.5
What Happens When You Add an Applications Table
15.2
Implementing the Applications Tree
15.2.1
How to Add an Applications Tree to Your Page
15.2.1.1
Adding the Applications Tree
15.2.1.2
Applications Tree Create Wizard
15.2.1.3
Working with the Applications Tree
15.3
Implementing Applications Tree Tables
15.3.1
How to Add an Applications Tree Table
15.3.1.1
Applications Tree Table Create Wizard
15.3.1.2
Working with the Applications Tree Table
15.4
Using the Custom Wizard with Applications Popups
15.4.1
Creating a Popup
15.4.1.1
How to Add Applications Popups to JSF Pages or Page Fragments
15.4.1.2
How to Add Applications Popup Components Using the Wizard
15.4.2
How to Modify Popup Components and Properties
15.4.2.1
Accessing the Popup on a JSF Page
15.4.2.2
Adding a Data Source to an Existing Popup
15.4.2.3
Adding User-Interface Content to an Existing Popup
15.4.2.4
Adding action and actionListener Methods to the Popup Buttons
16
Implementing Applications Panels, Master-Detail, Hover, and Dialog Details
16.1
Implementing Applications Panels
16.1.1
Overview of Applications Panel Components
16.1.2
How to Create an Applications Panel
16.1.2.1
Adding Applications Panels Using the Applications Panel Wizard
16.1.3
How to Modify Applications Panels Components and Properties
16.1.3.1
Stretching the Applications Panel
16.1.3.2
Accessing the Applications Panel on a JSF Page
16.1.3.3
Editing Applications Panel Properties and Components
16.1.3.4
Adding a Data Source to an Existing Panel
16.1.3.5
Adding User-Interface Content to Applications Panels
16.2
Implementing Applications Master-Detail
16.2.1
Component Structure and Functions
16.2.2
Introduction to Master-Detail Components
16.2.3
How to Create a Master-Detail
16.2.3.1
Adding a Master-Detail to JSF Pages or Page Fragments
16.2.3.2
Adding Master-Details Components Using the Applications Master-Details Wizard
16.2.4
Master-Detail Guidelines for Creating New Records
16.2.4.1
Master-Detail without a Default Primary Key Generator
16.2.4.2
Master-Detail with a Default Primary Key Generator
16.2.4.3
Master-Detail with a Composite Primary Key
16.2.4.4
Any Other Case
16.2.5
How to Modify Master-Detail Components and Properties
16.3
Implementing Hover
16.4
Implementing Applications Dialog Details
16.4.1
How to Add Applications Dialog Details to Your Page
16.4.1.1
Adding Applications Dialog Details
16.4.1.2
Working with the Applications Dialog Details
16.4.1.3
Implementing OK and Cancel Buttons in a Popup
17
Implementing Skinning
17.1
Implementing Skinning
17.1.1
Before You Begin
17.2
Creating and Implementing a Custom Skin
17.2.1
How to Create the Skin Project
17.2.2
How to Customize the Skin
17.2.3
How to Deploy the Skin Profile
17.2.4
How to Change the Logo
17.3
Changing the Skin of an Application
18
Implementing Attachments
18.1
Introduction to Attachments
18.2
Creating Attachments
18.2.1
How to Set Up Your Model Project for Attachments
18.2.2
How to Create Attachment View Links
18.2.3
What Happens When You Create an Attachment View Link
18.2.4
How to Delete the Business Object
18.2.5
How to Assign Categories to the Attachment Entity
18.2.6
How to Create an Attachments Field or an Attachments Table
18.2.7
What Happens When You Implement Attachments
18.2.8
How to Create an Attachments Column in an Applications Table
18.2.9
How to Set Up Required Properties
18.2.10
What Happens at Runtime
18.3
Displaying Attachments for Multiple Entities in the Same Table
18.3.1
How to Configure the Attachments Component to Display Attachments for Multiple Entities
18.4
Configuring the Attachments Component UI
18.5
Setting Up Miscellaneous Attachments Features
18.5.1
Custom Actions
18.5.2
Approvals
18.6
Integrating Attachments Task Flows into Oracle Fusion Functional Setup Manager
18.7
Securing Attachments
18.7.1
Attachment Category Data Security
18.7.1.1
How to Set Up Category Data Security
18.7.2
File Sharing
18.7.3
Attachments SaaS
18.8
Using Attachments (Runtime)
18.8.1
How to Use Attachments File-Level Security
18.8.2
How to Update Attachments
18.8.2.1
Attachments Update Functions
18.8.2.2
Determining the Checked Out Status of File and Text-Type Attachments
18.8.2.3
Enabling or Disabling Attachments Update Functions
18.8.3
How to Check Out and Check In File Attachments
19
Organizing Hierarchical Data with Tree Structures
19.1
Introduction to Trees
19.1.1
Understanding Tree Structures, Trees, and Tree Versions
19.2
Configuring the Trees Application Launch Page
19.3
Working with Tree Structures
19.3.1
How to Manage Tree Structure Data Sources
19.3.2
How to Specify Data Source Parameters
19.3.2.1
Implementing Use Cases
19.3.3
How to Search for a Tree Structure
19.3.4
How to Use the Search Field
19.3.5
How to Create a Tree Structure
19.3.6
How to Duplicate a Tree Structure
19.3.7
How to Edit a Tree Structure
19.3.8
How to Delete a Tree Structure
19.3.9
How to Set Tree Structure Status
19.3.10
How to Audit a Tree Structure
19.4
Working with Trees
19.4.1
How to Search for a Tree
19.4.2
How to Create a Tree
19.4.3
How to Duplicate a Tree
19.4.4
How to Edit a Tree
19.4.5
How to Delete a Tree
19.5
Working with Tree Versions
19.5.1
How to Create a Tree Version
19.5.2
How to Add Tree Nodes to a Tree Version
19.5.2.1
How to Configure the Add Tree Node: Specific Values
19.5.2.2
How to Configure the Add Tree Node: Values Within a Range
19.5.2.3
How to Configure the Add Tree Node: Referenced Hierarchy
19.5.2.4
How to Use Drag-and-Drop to Move Nodes
19.5.2.5
How to Add a Node Using a Custom Search UI
19.5.2.6
How to Edit a Tree Node
19.5.3
How to Create a Record for a Data Source
19.5.4
How to Duplicate a Tree Version
19.5.5
How to Edit a Tree Version
19.5.6
How to Delete a Tree Version
19.5.7
How to Set Tree Version Status
19.5.8
How to Audit Trees and Tree Versions
19.5.9
How to Flatten Rows and Columns
19.6
Managing Labels in the Generic Label Data Source
19.6.1
How to Search for a Label
19.6.2
How to Create a Label
19.6.3
How to Edit a Label
19.6.4
How to Delete a Label
19.7
Using the Applications Hierarchy Component to Develop Applications
19.7.1
How to Create a Tree Application
19.7.2
How to Create a Tree Table Application
19.8
Integrating Custom Task Flows into the Applications Hierarchy Component
19.8.1
Registering Custom Task Flows
19.8.2
Creating Custom Task Flows
19.8.2.1
How to Create a Search Task Flow for the Add Node Operation
19.8.2.2
How to Create a Create Task Flow
19.8.2.3
How to Create a Duplicate Task Flow
19.8.2.4
How to Create an Edit Task Flow
19.8.2.5
How to Create a Delete Task Flow
19.9
Using the fnd:hierarchy Property Inspector to Specify Tree Versions
19.10
Using the Expression Builder to Bind TreeCode, TreeStructureCode, and TreeVersionId Properties
19.11
Embedding the Tree Picker Component in a User Interface
19.12
Setting Bind Variables and View Criteria
19.12.1
How to Set Bind Variables and View Criteria
19.13
Using Service APIs to Manage Trees
19.13.1
How to Use TreeStructureService
19.13.2
How to Use TreeService
19.13.3
How to Use TreeNodeService
19.14
Advanced Topics
19.14.1
Using the Tree Data Model
19.14.2
Using PL/SQL APIs
19.14.3
Using Incremental Flattening
19.14.3.1
How to Use FND_TREE_FLATTENING_HISTORY
19.14.3.2
How to Use FND_TREE_LOG
19.14.3.3
How to Use FND_TREE_LOG_PARAMS
19.14.3.4
Flattening Rows
19.14.3.5
Flattening Columns
19.14.4
Using Trees Business Events
20
Working with Localization Formatting
20.1
Introduction to Localization Formatting
20.2
Formatting Currency
20.2.1
How to Format Currency Using Default Formatting Behavior
20.2.2
How to Format Currency and Override the Default Formatting Behavior
20.2.3
How to Immediately Format Currency Using Partial Page Rendering
20.2.4
What Happens When You Format Currency
20.2.5
What Happens at Runtime: How Currency Is Formatted
20.3
Formatting Dates and Numbers
20.3.1
How to Format Dates and Numbers
20.3.2
How to Format Numeric IDs and Integers
20.3.3
How to Format the Current Date
20.3.4
What Happens When You Format Dates and Numbers
20.3.5
What Happens at Runtime: How Dates and Numbers Are Formatted
20.3.6
Standards and Guidelines
20.4
Formatting Time Zones
20.4.1
How to Format Time Zones
20.4.2
How to Format Time with and without Seconds
20.4.3
How to Format Invariant Time Zone Values
20.4.4
What Happens When You Format Time Zones
20.4.5
What Happens at Runtime: How Time Zones Are Formatted
20.4.6
Standards and Guidelines
20.5
Formatting Numbers, Currency and Dates Using Localization Expression Language Functions
20.5.1
How to Format Numbers, Currency and Dates Using Expression Language Functions
20.5.1.1
Formatting Numbers Using Expression Language Functions
20.5.1.2
Formatting Currency Using Expression Language Functions
20.5.1.3
Formatting Dates Using Expression Language Functions
20.5.2
What Happens When You Format Numbers, Currency and Dates Using Expression Language Functions
20.5.3
What Happens at Runtime: How Currency, Dates and Numbers and Time Zones are Formatted Using Expression Language Functions
20.6
Configuring National Language Support Attributes
20.6.1
Session National Language Support Attributes
20.6.2
Database Session Attributes
20.7
Standards and Guidelines for Localization Formatting
Part IV Developing Applications with Flexfields
21
Getting Started with Flexfields
21.1
Introduction to Flexfields
21.1.1
Descriptive Flexfields
21.1.2
Extensible Flexfields
21.1.3
Key Flexfields
21.1.4
Value Sets
21.1.5
Flexfield Integration with Oracle Business Intelligence
21.2
Participant Roles
21.3
The Flexfield Development Life Cycle
21.4
Flexfields in the Application User Interface
22
Using Descriptive Flexfields
22.1
Introduction to Descriptive Flexfields
22.1.1
The Benefits of Descriptive Flexfields
22.1.2
How Descriptive Flexfields are Modeled in Oracle Application Development Framework
22.2
Developing Descriptive Flexfields
22.2.1
How to Create Descriptive Flexfield Columns
22.2.2
How to Register and Define Descriptive Flexfields
22.2.2.1
Registering and Defining Descriptive Flexfields Using a Registration Task
22.2.2.2
Registering and Defining Descriptive Flexfields Using the Setup APIs
22.2.3
How to Reuse a Descriptive Flexfield on Another Table
22.2.4
How to Register the Reuse of a Descriptive Flexfield
22.2.4.1
Registering the Reuse of a Descriptive Flexfield Using a Registration Task
22.2.4.2
Registering the Reuse of a Descriptive Flexfield Using the Setup APIs
22.2.5
How to Register Entity Details
22.2.5.1
Registering Entity Details Using a Registration Task
22.2.5.2
Registering Entity Details Using the Setup APIs
22.2.6
How to Register Descriptive Flexfield Parameters
22.2.6.1
Registering a Flexfield Parameter Using a Registration Task
22.2.6.2
Registering a Flexfield Parameter Using the Setup APIs
22.3
Creating Descriptive Flexfield Business Components
22.3.1
How to Create Descriptive Flexfield Business Components
22.4
Creating Descriptive Flexfield View Links
22.4.1
How to Create Descriptive Flexfield View Links
22.5
Nesting the Descriptive Flexfield Application Module Instance in the Application Module
22.5.1
How to Nest the Descriptive Flexfield Application Module Instance in the Application Module
22.6
Adding a Descriptive Flexfield View Object to the Application Module
22.6.1
How to Add a Descriptive Flexfield View Object Instance to the Application Module
22.7
Adding Descriptive Flexfield UI Components to a Page
22.7.1
How to Add a Descriptive Flexfield UI Component to a Form
22.7.2
How to Add an Unrestricted Descriptive Flexfield UI Component to a Table
22.7.3
How to Add Descriptive Flexfield Context-Sensitive Segments to a Table as Columns
22.7.4
How to Add Create Row and Delete Row Functionality to the Page
22.7.5
How to Add a Row to an Empty Table in a Custom createInsert Method
22.7.6
How to Dynamically Refresh a Descriptive Flexfield
22.7.7
What Happens When You Add a Descriptive Flexfield to a Page
22.8
Configuring Descriptive Flexfield UI Components
22.8.1
How to Configure Flexfield-Level UI Properties
22.8.2
How to Configure Segment-Level UI Properties
22.8.3
How to Configure Descriptive Flexfield Parameters
22.9
Loading Seed Data
22.10
Working with Descriptive Flexfield UI Programmatically
22.10.1
How to Update a Descriptive Flexfield Programmatically
22.10.2
How to Determine Whether Descriptive Flexfield Segments Have Been Defined
22.10.3
How to Configure a Descriptive Flexfield to Handle Value Change Events
22.11
Incorporating Descriptive Flexfields Into a Search Form
22.11.1
How to Incorporate Descriptive Flexfields Into a Search Form
22.12
Preparing Descriptive Flexfield Business Components for Oracle Business Intelligence
22.12.1
How to Enable a Descriptive Flexfield for Oracle Business Intelligence
22.12.2
How to Produce a Business Intelligence–Enabled Flattened Descriptive Flexfield Model
22.13
Publishing Descriptive Flexfields as Web Services
22.13.1
How to Expose a Descriptive Flexfield as a Web Service
22.13.2
How to Test the Web Service
22.14
Accessing Descriptive Flexfields from an ADF Desktop Integration Excel Workbook
22.14.1
How to Configure ADF Desktop Integration with a Dynamic Column Descriptive Flexfield
22.14.2
How to Handle User-Initiated Context Value Changes in a Dynamic Column Descriptive Flexfield
22.14.3
How to Configure ADF Desktop Integration with a Static Column Descriptive Flexfield
22.14.4
How to Handle Update or Insert of a Descriptive Flexfield Data Row
23
Using Key Flexfields
23.1
Introduction to Key Flexfields
23.1.1
The Benefits of Key Flexfields
23.1.2
How Key Flexfields are Modeled in Oracle Application Development Framework
23.1.3
Partial Usage Feature
23.1.4
Participant Roles
23.1.5
Completing the Key Flexfield Development Process
23.1.5.1
Maintenance Mode and Dynamic Combination Insertion
23.1.5.2
Cross Validation Rules and Custom Validation
23.1.5.3
Understanding the Key Flexfield Producer Development Tasks
23.1.5.4
Understanding the Key Flexfield Consumer Development Tasks
23.2
Completing the Producer Tasks for Key Flexfields
23.2.1
How to Develop Key Flexfields
23.2.1.1
Creating the Combinations Table
23.2.1.2
Creating Foreign Key Columns to Enable the Use of Flexfield Combinations on Application Pages
23.2.1.3
Including Segment Columns in Partial Tables
23.2.1.4
Creating Filter Columns
23.2.1.5
Registering and Defining Key Flexfields Using the Setup APIs
23.2.1.6
What You May Need to Know About the Key Flexfield Setup API
23.2.1.7
Enabling Multiple Structure, Multiple Structure Instance, and Data Set Features
23.2.1.8
Partially Reusing a Key Flexfield on Another Table
23.2.1.9
Registering Entity Details Using the Setup APIs
23.2.2
How to Implement Key Flexfield Segment Labels
23.2.2.1
Defining Key Flexfield Segment Labels
23.2.2.2
Using Value Attributes
23.2.3
How to Implement Cross Validation Rules and Custom Validation
23.2.3.1
Implementing Cross Validation Rules
23.2.3.2
Implementing Custom Validation
23.2.4
How to Create Key Flexfield Business Components
23.2.4.1
Building a Writable Maintenance Model
23.2.4.2
Enabling Dynamic Combination Insertion
23.2.4.3
Building a Read-Only Reference Model
23.2.5
How to Share Key Flexfield Business Components
23.2.5.1
Creating an ADF Library JAR File
23.2.5.2
Importing Business Components From an ADF Library
23.2.6
How to Build a Key Flexfield Maintenance User Interface
23.2.7
What Happens at Runtime: Creating New Combinations
23.3
Completing the Consumer Tasks for Key Flexfields in Reference Mode
23.3.1
How to Create Key Flexfield View Links
23.3.2
How to Nest the Key Flexfield Application Module Instance in the Application Module
23.3.3
How to Add a Key Flexfield View Object Instance to the Application Module
23.3.4
How to Employ Key Flexfield UI Components on a Page
23.3.4.1
Adding Key Flexfield UI Components to a Form or a Table
23.3.4.2
Ensuring Proper Handling of New Rows
23.3.4.3
Ensuring Proper Updating of Reference Mode SIN values in an ADF Form or ADF Applications Table
23.3.4.4
Ensuring Proper Updating of Partial Mode SIN Values in an ADF Form
23.3.4.5
Dynamically Refreshing Partial Flexfield Segments and Segments on a Combinations Page
23.3.4.6
What Happens When You Add a Key Flexfield to a Page
23.3.5
How to Configure Key Flexfield UI Components
23.3.5.1
Configuring Flexfield-Level User Interface Properties
23.3.5.2
Configuring Label-Based Segment UI Properties
23.3.5.3
Configuring Partial Usage UI Properties
23.3.6
How to Incorporate Key Flexfields Into a Query Search Form
23.3.6.1
Setting Up the Business Component Model Layer
23.3.6.2
Creating the Query Search Form
23.4
Using Key Flexfield Advanced Features in Reference Mode
23.4.1
How to Define Code Combination Constraints
23.4.1.1
Creating a View Accessor to Define a Code Combination Constraint
23.4.1.2
Constraining Code Combinations by an Extra WHERE Clause
23.4.1.3
Constraining Code Combinations by Validation Date
23.4.1.4
Constraining Code Combinations by Validation Rules
23.4.1.5
Enabling or Disabling Dynamic Combination Creation for a Specific Usage
23.4.2
How to Access Segment Labels Using the Java API
23.4.3
How to Prepare Key Flexfield Business Components for Oracle Business Intelligence
23.4.3.1
Enabling a Key Flexfield for Oracle Business Intelligence
23.4.3.2
Producing a Business Intelligence–Enabled Flattened Key Flexfield Model
23.4.4
How to Publish Key Flexfield Application Modules as Web Services
23.4.4.1
Exposing a Key Flexfield Application Module as a Web Service
23.4.4.2
Testing the Web Service
23.4.5
How to Access Key Flexfields from an ADF Desktop Integration Excel Workbook
23.4.5.1
Configuring ADF Desktop Integration with a Dynamic Column Key Flexfield
23.4.5.2
Handling User-Initiated Structure Code Value Changes in a Dynamic Column Key Flexfield
23.4.5.3
Configuring ADF Desktop Integration with a Static Column Key Flexfield
23.4.5.4
Handling Update or Insert of a Key Flexfield Data Row
23.5
Completing the Development Tasks for Key Flexfields in Partial Mode
23.5.1
How to Register a Key Flexfield All-Segment Partial Usage
23.5.2
How to Register a Key Flexfield Single-Segment Partial Usage
23.5.3
How to Create Partial Mode Key Flexfield Business Components
23.5.4
How to Create Partial Mode Key Flexfield View Links
23.6
Working with Key Flexfield Combination Filters
23.6.1
How to Prepare the Database for Standard Key Flexfield Combination Filters
23.6.2
How to Add Combination Filters to Your Application
23.6.2.1
Creating a Filter Entity Object for a Standard Filter
23.6.2.2
Creating a Filter View Object
23.6.2.3
Associating Combination Filters with Key Flexfields
23.6.2.4
Configuring, Deploying and Testing Combination Filters
23.6.3
How to Employ Combination Filters on an Application Page
23.6.3.1
Adding Your Key Flexfield Filter to an Application Page
23.6.3.2
What Happens When You Add a Filter Repository Filter to an Application Page
23.6.4
How to Create Combination Filter Definitions for Testing
23.6.5
How to Apply Combination Filters Using the PL/SQL Filter APIs
23.6.5.1
Applying Standard Filters Using the WHERE Clause API
23.6.5.2
Applying Repository Filters for Oracle Enterprise Scheduler Service
23.6.6
How to Remove Combination Filters from Your Application
23.6.7
How to Remove Filters from the Filter Repository
24
Using Extensible Flexfields
24.1
Introduction to Extensible Flexfields
24.1.1
Understanding Extensible Flexfields
24.1.1.1
About Contexts (Attribute Groups)
24.1.1.2
Context-Sensitive Segments
24.1.1.3
About Logical Pages
24.1.1.4
About Categories
24.1.1.5
About Category Hierarchies
24.1.1.6
About Usages (Data Levels)
24.1.2
The Benefits of Extensible Flexfields
24.1.3
Extensible Flexfield Structure and Content
24.2
Overview of Integrating Extensible Flexfields in an Application
24.3
Creating Extensible Flexfield Data Tables
24.3.1
How to Create Extensible Flexfield Database Tables
24.4
Defining and Registering Extensible Flexfields
24.4.1
How to Register Extensible Flexfields
24.5
Defining and Registering Extensible Flexfield Business Components
24.5.1
How to Create and Configure Extensible Flexfield Entity Objects
24.5.1.1
Creating and Configuring an Entity Object Over the Base Extension Table
24.5.1.2
Creating and Configuring an Entity Object Over the Translation Extension Table
24.5.1.3
Creating and Configuring an Entity Object Over the Translation Extension View
24.5.2
How to Configure the EFF_LINE_ID Attribute as a Unique ID
24.5.3
How to Create and Configure Extensible Flexfield View Objects
24.5.3.1
Creating and Configuring Context View Objects
24.5.3.2
Creating and Configuring Category View Objects
24.5.3.3
Creating Declarative View Objects for Searching
24.5.4
How to Configure an Extensible Flexfield Application Module
24.5.5
How to Register the Extensible Flexfield Business Components
24.6
Employing Extensible Flexfields on an Application Page
24.6.1
How to Expose the Pages and Contexts Associated with One Extensible Flexfield Usage
24.6.1.1
Creating a Task Flow for a Single Extensible Flexfield Usage
24.6.1.2
Adding the Task Flow to the Page
24.6.1.3
Rendering the Page
24.6.2
How to Expose the Complete Set of an Extensible Flexfield's Usages, Pages, and Associated Contexts
24.6.2.1
Creating the Task Flows
24.6.2.2
Creating the Fragments
24.6.2.3
Using the Task Flows in the Page
24.6.3
How to Expose One Extensible Flexfield Page and Its Contexts
24.6.4
How to Expose One Extensible Flexfield Context
24.7
Loading Seed Data
24.8
Customizing the Extensible Flexfield Runtime Business Component Modeler
24.8.1
How to Customize the Extensible Flexfield Runtime Business Component Modeler
24.9
Customizing the Extensible Flexfield Runtime User Interface Modeler
24.9.1
How to Create the Customizer Wrapper Class
24.9.1.1
Customizing the Context JSF Fragment
24.9.1.2
Customizing the Segment Components in the Generated Context Task Flow
24.9.1.3
Customizing the Page Links in the Generated Links Task Flow
24.9.1.4
Customizing the Page Task Flow
24.9.1.5
Customizing the Search Task Flow
24.9.1.6
How to Create a Metadata Provider Implementation
24.9.1.7
How to Register the Metadata Provider Class for the Business Component
24.10
Testing the Flexfield
24.11
Accessing Information About Extensible Flexfield Business Components
24.11.1
How to Access Information About Extensible Flexfield Business Components
25
Testing and Deploying Flexfields
25.1
Testing Flexfields
25.1.1
How to Make Flexfields Available for Testing
25.1.2
How to Test Flexfields
25.2
Deploying Flexfields in a Standalone WebLogic Server Environment
25.2.1
How to Package a Flexfield Application for Deployment
25.2.1.1
Enabling the Flexfield Packaging Plugin
25.2.1.2
Generating an EAR File for the Application
25.2.2
How to Deploy a Flexfield Application
25.2.2.1
Creating an MDS Partition
25.2.2.2
Mapping the EAR File to the MDS Partition
25.2.2.3
Mapping the ApplCore Setup Application to the MDS Partition
25.2.2.4
Including Product Application Model Libraries in the ApplCore Setup EAR File
25.2.2.5
Deploying the Product and Setup Applications to the Server Domains
25.2.2.6
Priming the MDS Partition with Configured Flexfield Artifacts
25.2.3
How to Configure Flexfields
25.3
Using the WLST Flexfield Commands
25.3.1
How to Prepare Your Environment to Use the WLST Flexfield Commands
25.3.2
How to Use the deployFlexForApp Command
25.3.3
How to Use the deployFlex Command
25.3.4
How to Use the deleteFlexPatchingLabels Command
25.4
Regenerating Flexfield Business Components Programmatically
25.5
Integrating Flexfield Task Flows into Oracle Fusion Functional Setup Manager
Part V Using Oracle Enterprise Crawl and Search Framework
26
Getting Started with Oracle Enterprise Crawl and Search Framework
26.1
Introduction to Using Oracle Enterprise Crawl and Search Framework
26.1.1
ECSF Architecture
26.1.1.1
Searchable Object Manager
26.1.1.2
Search Designer
26.1.1.3
Semantic Engine
26.1.1.4
Fusion Applications Control
26.1.1.5
ECSF Command Line Administration Utility
26.1.1.6
Security Service
26.1.1.7
Data Service
26.1.1.8
Query Service
26.1.1.9
Oracle SES Search Engine
26.1.1.10
Security Plug-in
26.1.1.11
Crawler Plug-in
26.2
Setting Up and Running ECSF Command Line Administration Utility
26.2.1
How to Make Searchable Objects Accessible to the ECSF Command Line Administration Utility
26.2.2
How to Set the Class Path
26.2.2.1
Setting the Class Path in Windows
26.2.2.2
Setting the Class Path in Linux
26.2.3
How to Set the Connection Information
26.2.3.1
Setting the Connection Information in Windows
26.2.3.2
Setting the Connection Information in Linux
26.2.4
How to Manually Connect to the Oracle Fusion Applications Database
26.2.5
How to Provide the Path of the JPS Config File
26.2.6
How to Configure the Log Settings
26.2.7
How to Automate the ECSF Command Line Administration Utility
26.3
Setting Up Oracle Enterprise Manager and Discovering ECSF
26.3.1
How to Register the ECSF Runtime MBean to the Integrated WebLogic Server
26.3.1.1
Adding the MBean listener to web.xml
26.3.1.2
Creating the Application EAR File for Deployment
26.3.1.3
Configuring Data Sources in Oracle WebLogic Server
26.3.1.4
Deploying the ECSF Application Using the EAR File
26.3.1.5
Starting the Oracle WebLogic Server Instance
26.3.2
How to Install Oracle Enterprise Manager
26.3.3
How to Discover ECSF in Oracle Enterprise Manager
26.3.4
How to Add Users to the Administrators Group
27
Creating Searchable Objects
27.1
Introduction to Creating Searchable Objects
27.2
Defining Searchable Objects
27.2.1
How to Use Groovy Expressions in ECSF
27.2.1.1
Referencing View Object Attributes as Variables
27.2.1.2
Referencing Child View Object Attributes
27.2.1.3
Referencing View Object Attributes in Multilevel Searchable Objects
27.2.1.4
Formatting View Object Attribute Values
27.2.2
What Happens When You Use Groovy Expressions in ECSF
27.2.3
How to Make View Objects Searchable
27.2.3.1
Setting Search Property Values for View Objects
27.2.3.2
Using the Select Primary Table Dialog
27.2.3.3
Using the Search PlugIn Dialog
27.2.4
What Happens When You Make View Objects Searchable
27.2.5
What You May Need to Know About Making View Objects Searchable
27.2.6
How to Make View Object Attributes Searchable
27.2.6.1
Making View Object Attributes Searchable
27.2.6.2
Modifying Searchable Attributes
27.2.6.3
Deleting Searchable Attributes
27.2.7
What Happens When You Define Searchable Attributes
27.2.8
What You May Need to Know About Defining Searchable Attributes
27.2.9
What You May Need to Know about Preventing Conflicts with Oracle SES Default Search Attributes
27.2.10
What You May Need to Know about Preventing Search Attribute Naming Conflicts
27.2.10.1
Checking for Stored Attribute Conflicts
27.3
Securing Searchable Objects
27.3.1
How to Set Permissions for Searchable Objects
27.3.2
How to Create the Security Realm
27.3.3
How to Create the Application Policy Store
27.4
Configuring Search Features
27.4.1
How to Define Search Result Actions
27.4.1.1
Access URL
27.4.1.2
Redirect Service
27.4.1.3
Adding Search Result Actions
27.4.1.4
Defining Properties for Bounded Task Flows
27.4.1.5
Modifying Search Result Actions
27.4.1.6
Deleting Search Result Actions
27.4.2
What Happens When You Define Search Result Actions
27.4.3
What You May Need to Know About Defining Search Result Actions
27.4.4
How to Implement Faceted Navigation
27.4.4.1
Defining Lists of Values
27.4.4.2
Constraining View Objects by Stored Attributes
27.4.4.3
Creating Search Facets
27.4.4.4
Defining A Facet to Use A Child View Object Attribute
27.4.4.5
Using the Select Text Resource Dialog to Select a Matching Text Resource
27.4.4.6
Using the Select Text Resource Dialog to Create and Select a New Text Resource
27.4.4.7
Modifying Search Facets
27.4.4.8
Deleting Root Search Facets
27.4.4.9
Deleting Child Search Facets
27.4.4.10
Defining Facets That Support Ranges
27.4.4.11
Defining Derived Facets
27.4.5
What Happens When You Implement Faceted Navigation
27.4.6
What You May Need to Know About Implementing Faceted Navigation
27.5
Configuring Custom Properties for Searchable Objects
27.5.1
How to Modify Default Runtime Behavior of Searchable Objects
27.5.2
How to Make Searchable Objects Public
28
Configuring ECSF Security
28.1
Introduction to Configuring ECSF Security
28.2
Securing ECSF Credentials
28.2.1
How to Add the Permission Policy
28.2.2
How to Configure Application Identities for Search
28.2.2.1
Setting the SearchContext to FusionSearchContextImpl
28.2.2.2
Creating the Application Identities
28.2.2.3
Adding the Permission Policy for the Application Identities
28.3
Authorizing Users for Search Feeds
28.4
Securing the Searchable Application Data
28.4.1
How to Secure the Searchable Application Data
29
Validating and Testing Search Metadata
29.1
Introduction to Validating and Testing Search Metadata
29.2
Validating the Search Metadata
29.2.1
How to Validate Search Metadata
29.3
Testing Searchable Objects Through a Web Browser
29.3.1
How to Run the ECSF Feed Servlet
29.3.2
How to Test the Config Feed
29.3.3
How to Test the Control Feed
29.3.4
How to Test the Data Feed
29.3.5
How to Reset the State of the Feeds
30
Deploying and Crawling Searchable Objects
30.1
Introduction to Deploying and Crawling Searchable Objects
30.2
Deploying Searchable Objects and Dependencies
30.2.1
How to Deploy the ECSF Shared Library to Oracle WebLogic Server
30.2.1.1
Updating the SearchDB Data Source
30.2.1.2
Deploying the ECSF Shared Library to the Standalone WebLogic Server Instance
30.2.2
How to Create an Application
30.2.3
How to Change the Application Name and Context Root of the View-Controller Project
30.2.4
How to Modify the Run Configuration of the View-Controller Project
30.2.5
How to Add the ECSF Runtime Server Library and Required Java Archive Files to the Model and View-Controller Projects
30.2.6
How to Deploy the ECSF Application
30.3
Crawling Searchable Objects
30.3.1
How to Verify the Crawl
31
Advanced Topics for ECSF
31.1
Introduction to Advanced Topics for ECSF
31.2
Enabling Search on Fusion File Attachments
31.2.1
How to Make File Attachments Crawlable
31.3
Enabling Search on WebCenter Tags
31.3.1
How to Add Tags to Indexable Documents
31.3.2
How to Add Tags for Querying
31.3.3
How to Modify Tags in Indexable Documents
31.3.4
How to Register Change Listeners
31.4
Enabling Search on Tree Structure-based Source Systems
31.4.1
How to Crawl Tree Structures
31.4.1.1
Creating a Searchable Object
31.4.1.2
Implementing a Crawlable Tree Node
31.4.1.3
Extending AbstractTreeWalker
31.4.1.4
Implementing Security
31.4.1.5
Implementing the Attachments Interface
31.4.1.6
Deploying and Starting the ECSF Servlet
31.4.1.7
Configuring Oracle SES to Crawl ECSF
31.4.2
How to Integrate Search Functionality for Tree Structures
31.4.2.1
Setting the Configuration
31.4.2.2
Using the Configuration Interface
31.4.2.3
Using the AbstractConfiguration Class
31.4.2.4
Implementing Searchable Object Classes
31.4.2.5
Extending AbstractConfiguration
31.5
Managing Recent Searches
31.5.1
How to Use the RecentSearchManager API
31.5.2
How Recent Searches Are Processed
31.6
Setting Up Federated Search
31.6.1
How to Create the SearchDB Connection on Oracle WebLogic Server Instance
31.6.2
How to Update the Application Deployment Profile with the Target Directory for Searchable Objects
31.6.3
How to Update the Application to Reference the ECSF Service Shared Library
31.6.4
How to Add the ECSF Runtime Library
31.6.5
How to Set the System Parameter for Web Service
31.6.5.1
Setting the System Parameter in Java System Properties
31.6.5.2
Setting the System Parameter in the ecsf.properties File
31.6.6
How to Package and Deploy the Search Application
31.6.6.1
Running the ant Targets from the Command Line
31.6.6.2
Running the ant Targets from Oracle JDeveloper
31.6.7
How to Update the Search Application with New Searchable Objects or Dependencies
31.6.8
How to Set Up the ECSF Client Application for Federation
31.6.8.1
Adding Encryption Keys to cwallet.sso and default-keystore.jks
31.6.8.2
Adding the Keystore to jps-config.xml
31.6.8.3
Creating the Proxy User
31.6.8.4
Updating connections.xml
31.6.9
How to Set the SearchContext Scope to GLOBAL
31.6.10
How to Integrate Federation Across Oracle Fusion Applications Product Families
31.7
Federating Oracle SES Instances
31.8
Raising Change Events Synchronously
31.9
Using the External ECSF Web Service for Integration
31.9.1
Web Service Methods
31.9.2
ECSF Web Service WSDL and XSD
31.9.3
Web Service Request XSDs and XMLs
31.9.3.1
SavedSearch Request XSD
31.9.3.2
QueryMetaData Request XSD
31.9.3.3
engineInstanceRequest Request XSD
31.9.4
Web Service Response XSDs
31.9.4.1
getSavedSearch()
31.9.4.2
getSavedSearches()
31.9.4.3
saveSearch()
31.9.4.4
deleteSearch()
31.9.4.5
getSavedSearchDetails
31.9.4.6
search()
31.9.4.7
getEngineInstances()
31.9.5
How to Invoke the ECSF Web Service
31.9.5.1
Creating a JAX-WS Web Service Proxy
31.9.5.2
Modifying the AppModuleSearchServiceSoapHttpPortClient Class
31.10
Localizing ECSF Artifacts
31.10.1
How to Translate Strings in Groovy Expressions
31.10.1.1
Associating Resource Bundles to View Objects
31.10.1.2
Using the format() Function in Groovy Expressions
31.10.1.3
Associating Translated Labels to Attributes
31.10.1.4
Using the getLabel() function in Groovy Expressions
31.10.2
How to Localize Facet Display Names
31.10.2.1
Configuring LOVs for Localization Using the VL Table
31.10.2.2
Configuring LOVs for Localization Using the Resource Bundles
31.10.3
How to Localize Crawl Management Display Names
31.10.4
How to Localize Crawlable Dynamic Content
31.10.5
How to Localize Crawlable Template Content
31.10.6
How to Determine Locale
31.10.6.1
Search Page
31.10.6.2
ECSF Command Line Administration Utility
31.10.6.3
Crawl
31.10.6.4
Query
31.11
Troubleshooting ECSF
31.11.1
Problems and Solutions
31.11.1.1
Cannot Remove the ECSF Runtime Server Library
31.11.1.2
Cannot See Data in Data Feeds
31.11.1.3
Configuration or Data Feed Execution Thread Is Busy for Longer than the Configured Warning Timeout
31.11.1.4
Class Not Found Errors When Running the ECSF Servlet
31.11.1.5
Out of Memory Error when Deploying the ECSF Application to Oracle WebLogic Server or Running the Application
31.11.1.6
Blank Oracle ADF/UI Shell Pages
31.11.1.7
Memory Leak on ThreadLocal Variable (SearchContext)
31.11.1.8
How to Check the Space Availability for SES Crawls in the Database
31.11.1.9
How to Crawl with A Different User
31.11.1.10
"FND-6601 Search categories are not available"
31.11.1.11
"FND-6603 Search is not currently available"
31.11.1.12
"FND-6606 An application error occurred with this search"
31.11.1.13
Query Does Not Return Search Results but No Errors Are Displayed on the UI
31.11.1.14
FUSION_RUNTIME.FND_TABLE_OF_VARCHAR2_4000 Exception on Schedules
31.11.1.15
Where Can I Find the SES-ESS Crawler Logs?
31.11.1.16
My Crawls Are Failing
31.11.1.17
How to Get the Password for the SES Administration Page
31.11.2
Diagnosing ECSF Problems
31.11.3
Need More Help?
Part VI Common Service Use Cases and Design Patterns
32
Initiating a SOA Composite from an Oracle ADF Web Application
32.1
Introduction to the Recommended Design Pattern
32.2
Other Approaches
32.3
Example
32.4
How to Initiate a BPEL Process Service Component from an Oracle ADF Web Application
32.5
Alternative Approaches
32.5.1
Using the Java Event API to Publish Events
32.5.2
Using a JAX-WS Proxy to Invoke a Synchronous BPEL Process
32.6
Securing the Design Pattern
32.6.1
Running the Mediator as an Event Publisher
32.6.2
Securing Event-Driven Applications
32.7
Verifying the Deployment
32.7.1
How to Verify the Deployment
32.7.2
How to Test EDN Functionality from the Command Line
32.7.2.1
SendEvent
32.7.2.2
BusinessEventConnectionFactorySupport
32.8
Troubleshooting the Use Case
32.8.1
Deployment
32.8.2
Runtime Errors
32.9
What You May Need to Know About Initiating a SOA Composite from an Oracle ADF Web Application
32.10
Known Issues and Workarounds
33
Initiating a SOA Composite from a PL/SQL Stored Procedure
33.1
Introduction to the Recommended Design Pattern
33.2
Other Approaches
33.3
Example
33.4
How to Invoke a SOA Composite Application Component Using PL/SQL
33.5
Securing the Design Pattern
33.6
Verifying the Deployment
33.6.1
Testing and Deploying the Use Case
33.6.2
Verifying the SOA Composite Deployment Using Oracle Enterprise Manager Fusion Middleware Control Console
33.7
Troubleshooting the Use Case
33.8
What You May Need to Know About Initiating a SOA Composite from a PL/SQL Stored Procedure
33.9
Known Issues and Workarounds
34
Orchestrating ADF Business Components Services
34.1
Introduction to the Recommended Design Pattern
34.2
Other Approaches
34.3
Example
34.4
How to Invoke an ADF Business Components Service from a BPEL Process Service Component
34.5
Securing the Design Pattern
34.6
Verifying the Deployment
34.7
Troubleshooting the Use Case
34.8
What You May Need to Know About Orchestrating ADF Business Components Services
35
Manipulating Back-End Data from a SOA Composite
35.1
Introduction to the Recommended Design Pattern
35.2
Example
35.3
How to Manipulate Data from a BPEL Process Service Component
35.4
Securing the Design Pattern
35.5
Verifying the Deployment
35.6
Troubleshooting the Use Case
35.7
What You May Need to Know About Manipulating Back-end Data from a SOA Composite
35.7.1
When Entity Variables Flush Changes Back to ADF Business Components
35.7.2
Support for XPath Operations
35.7.3
Invoking an ADF Business Components Service and Entity Variables in the Same BPEL Process Service Component
36
Accessing a PL/SQL Service from a SOA Composite
36.1
Introduction to the Recommended Design Pattern
36.2
Other Approaches
36.3
Example
36.4
How to Invoke a PL/SQL Stored Procedure from a SOA Composite Application
36.5
Securing the Design Pattern
36.6
Verifying the Deployment
37
Invoking Custom Java Code from a SOA Composite
37.1
Introduction to the Recommended Design Pattern
37.2
Other Approaches
37.3
Example
37.4
How to Invoke a Java Class from a SOA Composite Application
37.5
Securing the Design Pattern
37.6
Verifying the Deployment
37.7
Troubleshooting the Use Case
37.8
What You May Need to Know About Invoking Custom Java Code from a SOA Composite
38
Managing Tasks from an Oracle ADF Application
38.1
Introduction to the Recommended Pattern
38.2
Other Approaches
38.3
Example
38.4
How to Manage a Human Task Flow from an ADF Application
38.5
Other Approaches
38.6
Securing the Design Pattern
38.7
Verifying the Deployment
38.8
Troubleshooting the Use Case
38.8.1
Task Does Not Display in Worklist Application
38.8.2
Task Details Do Not Display in the ADF Task Flow
38.8.3
Logging
38.8.3.1
Workflow Logging
38.8.3.2
ADF Task Flow Logging
38.9
What You May Need to Know About Managing Tasks from an ADF Application
39
Working with Data from a Remote ADF Business Components Service
39.1
Introduction to the Recommended Design Pattern
39.2
Potential Approaches
39.3
Example
39.4
How to Create Service-Based Entity Objects and View Objects
39.5
Securing the Design Pattern
39.6
Verifying the Deployment
39.7
Troubleshooting the Use Case
39.8
Understanding the Transactional Behavior of Service-Based Entity Objects and View Objects
39.9
Known Issues and Workarounds
40
Invoking an Asynchronous Service from a SOA Composite
40.1
Introduction to the Recommended Design Pattern
40.2
Other Approaches
40.3
Example
40.4
How to Invoke a SOA Composite Application from Within a SOA Composite Application
40.4.1
Defining a New Web Service Reference
40.4.2
Wiring the BPEL Process to the New Web Service Reference
40.4.3
Invoking the Asynchronous Web Service from the BPEL Flow
40.4.4
What Happens When You Invoke an Asynchronous Service from within a SOA Composite Application
40.4.5
What Happens at Runtime: How an Asynchronous Service is Invoked from within a SOA Composite Application
40.5
Securing the Design Pattern
40.6
Verifying the Deployment
40.7
Troubleshooting the Use Case
40.7.1
Deployment
40.7.2
Runtime
40.8
What You May Need to Know About Invoking an Asynchronous Service from Another SOA Composite
41
Synchronously Invoking an ADF Business Components Service from an Oracle ADF Application
41.1
Introduction to the Recommended Design Pattern
41.2
Potential Approaches
41.3
Example
41.4
How to Invoke an ADF Business Components Service from an Oracle ADF Application
41.5
Securing the Design Pattern
41.6
Verifying the Deployment
42
Implementing an Asynchronous Service Initiation with Dynamic UI Update
42.1
Introduction to the Recommended Design Pattern
42.2
Potential Approaches
42.3
Example
42.4
How to Implement an Asynchronous Service Initiation with Dynamic UI Update
42.4.1
Writing the Active Data Handler
42.4.2
Building the Supporting Active Data Entry Classes
42.4.3
Registering the Active Data Collection Model with the Oracle ADF UI Page
42.4.4
Registering the Component Managed JavaBean for Supporting Method Actions
42.4.5
Referencing the Managed JavaBean in the Page UI
42.4.6
Creating the Data Model and Adding Application Module Methods
42.4.7
Creating a SOA Composite that Subscribes to the Published Event
42.4.8
Constructing a BPEL Process to Perform Asynchronous Work
42.4.9
Invoking the ADF Business Components Service
42.5
Securing the Design Pattern
42.6
Verifying the Deployment
42.7
Troubleshooting the Use Case
42.8
What You May Need to Know About Initiating an Asynchronous Service with Dynamic UI Update
42.9
Known Issues and Workarounds
43
Managing Tasks Programmatically
43.1
Introduction to the Recommended Design Pattern
43.2
Potential Approaches
43.3
Example
43.4
Managing Human Workflow Tasks from a Java Application
43.4.1
How to Connect to the Task Service/Task Query Service
43.4.2
How to Use the Single Server Task Service API
43.4.2.1
Import Libraries into the Java Project
43.4.2.2
Import Code Packages into the Java Project
43.4.2.3
Declare and Obtain Task Service Object References
43.4.2.4
Obtain the Workflow Service Context Object
43.4.2.5
Obtain the Single Task Object and Set Task Outcome
43.4.3
How to Use the Single Server Task Query Service API
43.4.3.1
Import Libraries into the Java Project
43.4.3.2
Import Code Packages into the Java Project
43.4.3.3
Declare and Obtain Task Query Service Object References
43.4.3.4
Manage Query and Task Outcome States
43.4.4
How to Use the Federated Server Task Query Service API
43.4.4.1
Import Libraries into the Java Project
43.4.4.2
Import Code Packages into the Java Project
43.4.4.3
Create a List of Servers for a Parallel Federated Query
43.4.4.4
Declare Task and Query Service References and Create the Workflow Client Service Object
43.4.4.5
Obtain the Workflow Service Context
43.4.4.6
Implement Exception Handling for Federated Queries
43.4.4.7
Manage Query and Task Outcome States
43.4.5
How to Query and Traverse Federated and Non-federated Query Result Sets
43.4.5.1
Determine Query Service Search Criteria
43.4.5.2
Construct the Predicate for queryTasks()
43.4.5.3
Arrange the Order of Results Returned by the queryTasks() Method
43.4.5.4
Construct the List of Display Columns for the queryTasks() Method
43.4.5.5
Construct a List of OptionalInfo Items to be Returned from queryTasks()
43.4.5.6
Invoke queryTasks() with the Attribute Lists
43.4.5.7
Iterate through the Result Set
43.4.5.8
Programmatically Set the Task Outcome
43.5
Other Approaches
43.6
Securing the Design Pattern
43.7
Verifying the Deployment
43.7.1
Deploying the Human Task
43.7.2
Deploying Programmatic Task Functionality
43.7.3
Invoking Programmatic Task Functionality
43.8
Troubleshooting the Use Case
43.8.1
Troubleshooting Task Data
43.8.2
Troubleshooting Java Code
43.9
What You May Need to Know About Implementing Email Notification for an Oracle ADF Task Flow for a Human Task
44
Implementing an Oracle ADF Task Flow for a Human Task
44.1
Introduction to the Recommended Design Pattern
44.2
Other Approaches
44.3
Example
44.4
How to Implement an Oracle ADF Task Flow for a Human Task
44.4.1
Creating an Oracle ADF Task Flow
44.4.2
Creating a User Interface for the Human Task
44.4.3
Implementing Product-Specific Sections
44.4.3.1
How to Add Instructions
44.4.3.2
How to Modify Details
44.4.3.3
How to Modify Recommended Actions
44.4.3.4
How to Modify <PLACE APPLICATION SPECIFIC CONTENT HERE>
44.4.3.5
How to Implement Links
44.4.3.6
How to Modify Comments and Attachments
44.4.3.7
How to Modify Related Links
44.4.3.8
How to Modify History
44.4.4
Implementing a Task Detail with Contextual Area
44.4.5
Implementing Email Notification
44.4.5.1
Before You Begin
44.4.5.2
Determining the Implementation Approach
44.4.5.3
Using a Switcher Component
44.4.5.4
Using a Separate View for Online and Email Versions
44.4.5.5
Fine-Tuning the Emailable Page
44.4.6
Displaying Localized Translated Data
44.4.7
Displaying Rows in the Approval Task
44.4.8
Configuring a Deployment Profile
44.5
Securing the Design Pattern
44.6
Verifying the Deployment
44.7
Troubleshooting the Use Case
44.7.1
Specify oracle.soa.workflow.wc in weblogic-application.xml
44.7.2
Set the FRAME_BUSTING Attribute in web.xml
44.7.3
Migrate from an Earlier Version of the Drop Handler Template
44.7.4
Override the EL for the Create Button
45
Cross Family Business Event Subscription Pattern
45.1
Introduction to the Recommended Design Pattern
45.2
Potential Approaches
45.3
Example
45.4
How to Subscribe to a Cross-Family Business Event
45.4.1
Before You Begin
45.4.2
Determining the Composites to Be Defined
45.4.3
Determining the Aqueue Message Recipient
45.4.4
Defining an XFamilyPub Composite
45.4.5
Defining an XFamilySub Composite
45.5
Verifying the Deployment
45.5.1
How to Verify the Deployment of the XFamilyPub Composite
45.5.2
How to Verify the Deployment of the XFamilySub Composite
Part VII Implementing Security
46
Getting Started with Security
46.1
Introduction to Securing Oracle Fusion Applications
46.1.1
Architecture
46.1.1.1
Oracle Platform Security Services (OPSS) Security Framework
46.1.1.2
Oracle Web Services Manager
46.1.1.3
Oracle ADF Security
46.1.1.4
Application User Sessions
46.1.1.5
Oracle Fusion Data Security
46.1.1.6
Oracle Virtual Private Database
46.1.1.7
Oracle Data Integrator
46.1.2
Authentication
46.1.2.1
Oracle Identity Management Repository
46.1.2.2
Identity Propagation
46.1.2.3
Application User Session Propagation
46.1.3
Authorization
46.1.3.1
OPSS Application Security Repository
46.1.3.2
Oracle Fusion Data Security Repository
46.2
Authentication Techniques and Best Practices
46.2.1
APIs
46.2.2
Expression Language
46.2.3
Non-browser Based Login
46.3
Authorization Techniques and Best Practices
46.3.1
Function Security
46.3.1.1
Resource Entitlements and Permissions
46.3.1.2
Expression Language
46.3.2
Data Security
46.3.2.1
APIs and Expression Language
46.3.2.2
Oracle Virtual Private Database
46.3.2.3
Personally Identifiable Information
46.3.2.4
Data Role Templates
47
Implementing Application User Sessions
47.1
Introduction to Application User Sessions
47.2
Configuring Your Project to Use Application User Sessions
47.2.1
How to Configure Your Project to Use Application User Sessions
47.2.2
How to Configure the ADF Business Component Browser
47.2.3
What Happens at Runtime: How the Application User Session is Used
47.3
Accessing Properties of the Applications Context
47.3.1
How to Access Sessions Using Java APIs
47.3.1.1
Initializing Sessions
47.3.1.2
Getting Context Attributes
47.3.1.3
Setting Context Attributes
47.3.1.4
Accessing the Connection
47.3.1.5
Accessing Session Context Using the Java API
47.3.2
How to Access Sessions Using PL/SQL APIs
47.3.2.1
Initializing Sessions
47.3.2.2
Getting Context Attributes
47.3.2.3
Setting Context Attributes
48
Implementing Oracle Fusion Data Security
48.1
Introduction to Oracle Fusion Data Security
48.1.1
Terminology
48.1.2
Integrating Oracle Fusion Data Security with Oracle Platform Security Services (OPSS)
48.1.3
Integrating Data Security Task Flows into Oracle Fusion Functional Setup Manager
48.1.4
Integrating Oracle Fusion Data Security with User Sessions
48.1.5
Integrating Oracle Fusion Data Security with Virtual Private Database (VPD)
48.2
Managing Data Security Artifacts in the Oracle Fusion Data Security Policy Tables
48.2.1
How to Get Started Managing Data Security
48.2.2
What You May Need to Know About Administering Oracle Fusion Data Security Policy Tables
48.3
Integrating with ADF Business Components
48.3.1
How to Configure the ADF Data Model Project
48.3.2
How to Secure Rows Queried By Entity-Based View Objects
48.3.3
What Happens at Runtime: How Oracle Fusion Data Security Filters View Instance Rows
48.3.4
How to Perform Authorization Checks for Custom Operations
48.3.5
How to Test Privileges Using Expression Language Expressions in the User Interface
48.4
Using Oracle Fusion Data Security to Secure New Business Resources
48.4.1
How to Use Oracle Fusion Data Security to Secure a Business Object
48.4.2
How to Use Parameterized Conditions When Securing a Business Object
48.4.2.1
Converting Non-String Parameter Values Into Character Values
48.4.2.2
Writing Performance Type Conversions in Predicates
48.4.3
How to Create Test Users in JDeveloper
48.4.4
What You May Need to Know About Creating Application Roles
48.5
Getting Security Information from the Application User Session Context
48.5.1
How to Use the DataSecurityAM API to Get Session Context Information
48.5.2
How to Use the PL/SQL Data Security API to Check User Privileges
48.6
Understanding Data Security Performance Best Practices
48.7
Validating Data Security with Diagnostic Scripts
48.7.1
How to Validate Data Security Configuration with Diagnostic Scripts
48.7.2
How to Validate Applications Context
48.8
Integrating with Data Security Task Flows
48.8.1
About Integrating the Data Security Task Flows into Your Application
48.8.2
How to Configure Data Security Task Flows to Display in the Primary Window
48.8.2.1
Creating a Task Flow Call Activity in Your Application's Task Flow
48.8.2.2
Initializing the Data Security Task Flow Using a Managed Bean
48.8.2.3
Registering the Managed Bean with Your Application's Task Flow
48.8.3
How to Configure the Object Instance Task Flow to Display in a Dialog
48.8.3.1
Creating the Task Flow Executable in the Region Page Definition FIle
48.8.3.2
Initializing the Object-Instance Task Flow Using a Managed Bean
48.8.3.3
Registering the Managed Bean with Your Application's Task Flow
48.8.4
How to Grant the End User Access to the Data Security Task Flows
48.8.5
How to Grant the Application Access to the Application Policy Store
48.8.6
How to Map the Application to an Existing Application Stripe
49
Implementing Function Security
49.1
Introduction to Function Security
49.1.1
Function Security Development Environment
49.1.2
Function Security Implementation Scenarios
49.1.3
Function Security-Related Application Files
49.2
Function Security Implementation Process Overview
49.3
Adding Function Security to the Application
49.3.1
How to Create Entitlement Grants for Custom Application Roles
49.3.2
What Happens After You Create an Entitlement Grant
49.3.3
How to Define Resource Grants for OPSS Built-In Roles
49.3.4
What Happens When You Make an ADF Resource Public
49.3.5
How to Enforce Authorization for Securable ADF Artifacts
49.3.6
How to Enable Authentication and Test the Application in JDeveloper
49.3.7
What You May Need to Know About Actions That Developers Must Not Perform
49.3.8
What You May Need to Know About Testing
49.3.9
What You May Need to Know About Security Best Practices
50
Securing Web Services Use Cases
50.1
Introduction to Securing Web Services Use Cases
50.2
Understanding Oracle Web Services Manager Best Practices
50.3
Attaching Policies Globally
50.4
Attaching Policies Locally
50.4.1
How to Make a Web Service Publicly Accessible
50.4.2
How to Support Elevated Privileges for Web Service Clients
50.4.3
How to Provide Additional Security Hardening for Web Service Clients
50.4.4
How to Connect to Third Party Web Services
50.5
Authorizing the Web Service with Entitlement Grants
50.5.1
How to Grant Access for the Service
50.5.2
How to Enforce Authorization for the Service
50.6
What Happens At Runtime: How Policies Are Enforced
51
Securing End-to-End Portlet Applications
51.1
Introduction to Securing End-to-End Portlet Applications
51.2
Securing the Portlet Service
51.2.1
How to Authenticate the Service
51.2.2
How to Configure the Key Store and Credential Store
51.2.3
How to Authorize the Service
51.3
Securing the Portlet Client
51.4
Registering the Key Store and Writing to the Credential Store
51.4.1
How to Register the Key Store and Write to the Credential Store
51.4.2
What Happens When You Register the Key Store and Write to the Credential Store
Part VIII Advanced Topics
52
Running and Deploying Applications on Oracle WebLogic Server
52.1
Introduction to Deploying Applications to Oracle WebLogic Server
52.1.1
Prerequisites for Deployment
52.1.2
Introduction to the Standalone Administration Server WebLogic Server Instance
52.2
Running Applications on Integrated WebLogic Server
52.2.1
How to Deploy an Application with Metadata to Integrated WebLogic Server
52.3
Preparing to Deploy Oracle ADF Applications to an Administration Server Instance of WebLogic Server
52.3.1
How to Reference the Shared Libraries
52.3.2
How to Create Deployment Profiles for Standalone WebLogic Server Deployment
52.4
Deploying Your Oracle ADF Applications to an Administration Server Instance of WebLogic Server
52.4.1
How to Create an Application Server Connection Using JDeveloper
52.4.2
How to Deploy the Application Using JDeveloper
52.4.3
How to Create an EAR File for Deployment
52.5
Deploying Your SOA Projects to an Administration Server Instance of WebLogic Server
52.5.1
How to Deploy Your SOA Projects Using JDeveloper
52.5.1.1
Check the Deployed SOA Project
53
Creating Repository Connections
53.1
Creating a Content Repository Connection
53.1.1
How to Create a Content Repository Connection
53.1.1.1
Creating a Connection for Oracle Fusion Applications Development
53.1.1.2
Creating a Connection for Ad Hoc Development
53.1.2
Troubleshooting Content Server Connections
53.1.2.1
User Does Not have Sufficient Privileges
53.1.2.2
Invalid Security: Error in Processing the WS-Security Header
53.1.2.3
Access Denied: Credential AccessPermission
53.2
Creating an Oracle Data Integrator Repository Connection
53.3
Creating Oracle Business Activity Monitoring Server Repository Connection
53.3.1
How to Create an Oracle BAM Connection
53.3.2
How to Use Oracle BAM Adapter in a SOA Composite Application
53.3.3
How to Integrate Sensors With Oracle BAM
54
Defining Profiles
54.1
Introduction to Profiles
54.2
Integrating Profiles Task Flows into Oracle Fusion Functional Setup Manager
54.3
Setting and Accessing Profile Values
54.3.1
How to View and Set Profile Values Using the Setup UI
54.3.2
How to Access Profile Values Programmatically
54.3.3
How to Access Profile Values Using Expression Language
54.4
Managing Profile Definitions
54.4.1
How to Edit Profile Definitions
54.4.2
Registering a New Profile Option
54.5
Managing Profile Categories
54.5.1
How to Manage Profile Categories
55
Initializing Oracle Fusion Application Data Using the Seed Data Loader
55.1
Introduction to the Seed Data Loader
55.2
Using the Seed Data Loader in JDeveloper
55.2.1
Introduction to the Seed Data Framework
55.2.2
How to Set Up the Seed Data Environment
55.2.3
How to Use the Seed Data Extract Manager
55.2.4
How to Use Seed Data Extract Processing
55.2.4.1
Understanding Extract Taxonomy Partition Selection Dialogs
55.2.4.2
Using the Extract Seed Data Command Line Interface
55.2.5
How to Use the Seed Data Upload Manager
55.2.5.1
Uploading Seed Data
55.2.6
How to Share Application Modules
55.2.7
How to Update Seed Data
55.2.7.1
Using Incremental Updates
55.2.7.2
Implementing Java Database Connectivity-based National Language Support Updates
55.3
Translating Seed Data
55.3.1
How to Extract Translation Data
55.3.1.1
Treating Seed Data Base XML and Language XLIFF as a Single Entity
55.3.2
How to Process Seed Data Translations
55.3.3
How to Load Translation Seed Data
55.3.4
Oracle Fusion Middleware Extensions for Applications Translation Support
56
Using the Database Schema Deployment Framework
56.1
Introduction to Using the Database Schema Deployment Framework
56.2
Implementing Applications Data Modeling and Deployment JDeveloper Extensions (Data Modeling Extensions)
56.2.1
How to Use the Offline Database
56.2.2
How to Create an Offline Database
56.2.3
How to Deploy an Offline Database in XML Persistence Format
56.2.4
How to Validate Application Data Model Standards
56.2.5
Application User Defined Properties
56.2.5.1
User Defined Properties for Tables
56.2.5.2
User Defined Properties for Columns
56.2.5.3
User Defined Properties for Indexes
56.2.5.4
User Defined Properties for Constraints
56.2.5.5
User Defined Properties for Views
56.2.5.6
User Defined Properties for Sequence
56.2.5.7
User Defined Properties for Materialized View
56.2.5.8
User Defined Properties for Materialized View Log
56.2.5.9
User Defined Properties for Trigger
56.2.6
How to Create an Offline Database Object
56.2.7
How to Edit an Offline Database Object
56.2.8
How to Import an Offline Database Object
56.2.9
How to Deploy the Offline Database Objects
56.2.9.1
Deploying in SXML Persistence Format
56.2.9.2
Setting the CLASSPATH Variable
56.2.9.3
Using Bootstrap Mode
56.2.9.4
Deployment FAQ
56.2.9.5
Cleaning Database Objects
56.3
Using Schema Separation to Provide Grants
57
Improving Performance
57.1
Introduction to Improving the Performance of Applications
57.2
ADF Business Components Guidelines
57.2.1
Working with Entity Objects
57.2.1.1
Enable Batch Updates for your Entity Objects
57.2.1.2
Children Entity Objects in Composite Entity Associations Should not set the Foreign Key Attribute Values of the Parent
57.2.1.3
Avoid Using List Validator Against Large Lists
57.2.1.4
Avoid Repeated Calls to the same Association Accessor
57.2.1.5
Close Unused RowSets
57.2.1.6
Use "Retain Association Accessor RowSet" when Appropriate
57.2.1.7
Mark the Change Indicator Column
57.2.2
Working with View Objects
57.2.2.1
Tune the View Object SQL Statement
57.2.2.2
Select the Correct Usage for View Objects
57.2.2.3
Set Appropriate Fetch Size and Max Fetch Size
57.2.2.4
Use Bind Variables
57.2.2.5
Include at Least One Required or Selectively Required View Criteria Item
57.2.2.6
Use Forward-Only Mode when Possible
57.2.2.7
Avoid Calling getRowCount
57.2.2.8
Avoid Entity Object Fault-in by Selecting Necessary Attributes Up-Front
57.2.2.9
Reduce the Number of View Object Key Attributes to a Minimum
57.2.2.10
Use Range Paging when Jumping to Different Row Ranges
57.2.2.11
Use setListenToEntityEvents(false) for Non-UI Scenarios
57.2.2.12
Use Appropriate Getter or Setter on View Row
57.2.2.13
Use Appropriate Indexes with Case-Insensitive View Criteria Items
57.2.2.14
Avoid View Object Leaks
57.2.2.15
Provide a "Smart" Filter when Using LOV Combobox
57.2.2.16
Use Small ListRangeSize for LOVs
57.2.2.17
Avoid Reference Entity Objects when not Needed
57.2.2.18
Do Not Use the "All at Once" Fetch Mode in View Objects
57.2.2.19
Do Not Use the "Query List Automatically" List of Value Setting
57.2.2.20
Avoid the "CONTAINS" or "ENDSWITH" Operator for Required or Selectively Required View Criteria Items
57.2.3
Working with Application Modules
57.2.3.1
Enable Lazy Delivery
57.2.3.2
Make Application Code Passivation-Safe
57.2.3.3
Avoid Passivating Read-Only View Objects
57.2.3.4
Avoid Passivating Certain Transient Attributes of a View Object
57.2.3.5
Maintain Application Session User Tables
57.2.3.6
Tune the Application Module Release Level
57.2.3.7
Do Not Leave Uncommitted Database Updates Across Requests
57.2.3.8
Release Dynamically Created Root Application Modules
57.2.3.9
Do Not Destroy the Application Module when Calling Configuration.releaseRoot ApplicationModule.
57.2.4
Working with Services
57.2.4.1
Set the Find Criteria to Fetch Only Attributes that are Needed
57.2.4.2
Expose Service for Frequently Used Logical Entities
57.2.4.3
Use Correct ChangeOperation when Calling a Service
57.2.4.4
Set Only Changed Columns on Service Data Objects for Update
57.3
ADF ViewController Layer Guidelines
57.3.1
Working with Various ADF ViewController Components
57.3.1.1
Minimize the Number of Application Module Data Controls
57.3.1.2
Use the Visible and Rendered Attributes
57.3.1.3
Remove Unused Items from Page Bindings
57.3.1.4
Disable Column Stretching
57.3.1.5
Use Appropriate Values for Refresh and RefreshCondition
57.3.1.6
Disable Estimated Row Count if Necessary
57.3.1.7
Use HTTPSession Hash Table in Moderation
57.3.1.8
Use Short Component IDs
57.3.1.9
Follow UI Standards when Using Search
57.3.1.10
Avoid Executing Component Subtree by Adding a Condition Check
57.3.1.11
Do not set Client Component Property to True
57.3.1.12
Set Immediate Property to True when Appropriate
57.3.1.13
Use Appropriate ContentDelivery Mode for a Table or a Tree Table
57.3.1.14
Set the Appropriate Fetch Size for a Table
57.3.1.15
Avoid Frozen Columns and Header Columns if Possible
57.3.1.16
Avoid Unnecessary Regions
57.3.1.17
Set the Data Control Scope to "Shared"
57.3.1.18
Select the No Save Point Option on a Task Flow when Appropriate
57.3.1.19
Use Click-To-Edit Tables when Appropriate
57.3.1.20
Avoid Unnecessary Task Flow Activation for Regions Under Popups
57.3.1.21
Delay Creation of Popup Child Components
57.3.1.22
Avoid Unnecessary Task Flow Activation for Regions Under Switchers
57.3.1.23
Avoid Unnecessary Root Application Module Creation from UI-layer Code
57.3.1.24
Avoid Unnecessary Savepoints on Task Flow Entry
57.3.1.25
Cache Return Values in Backing Bean Getters
57.3.1.26
Do Not Maintain References to UI Components in Managed Beans
57.3.2
Enable ADF Rich Client Geometry Management
57.3.3
Use Page Templates
57.3.4
Use ADF Rich Client Partial Page Rendering (PPR)
57.4
SOA Guidelines for Human Workflow and Approval Management Extensions
57.5
Oracle Fusion Middleware Extensions for Applications Guidelines
57.5.1
Use Profile.get to Get Profile Option Values
57.5.2
Release any Application Modules Returned from getInstance Calls
57.5.3
Avoid Unnecessary Activation of Attachments Taskflow
57.5.4
Use Static APIs on Message Get Message Text
57.5.5
Set the Data Control Scope to Isolated for Page Level Item Nodes
57.6
General Java Guidelines
57.6.1
Working with Strings and StringBuilder
57.6.1.1
Use StringBuilder Rather than the String Concatenation Operator (+)
57.6.1.2
Check the Log Level Before Making a Logging Call
57.6.1.3
Use Proper Logging APIs for Debug Logging
57.6.1.4
Lazy Instantiation
57.6.2
Configure Collections
57.6.3
Manage Synchronization
57.6.4
Work with Other Java Features
57.6.4.1
Avoid Autoboxing
57.6.4.2
Do not use Exceptions for Code Path Execution
57.6.4.3
Reuse Pattern Object for Regular Expression Matches
57.6.4.4
Avoid Repeated Calls to the same APIs that have Non-Trivial Costs
57.6.4.5
Close Unused JDBC Statements to Avoid Memory Leaks
57.6.4.6
Use registerOutParameter to Specify Bind Types and Precisions
57.6.4.7
Avoid JDBC Connection Leaks
57.7
Caching Data
57.7.1
Identifying Data to Cache
57.7.2
How to Add Data to Cache
57.7.3
How to Cache Multi-Language Support Data
57.7.3.1
Creating ADF Business Components objects for shared MLS data
57.7.3.2
Creating ADF Business Components Objects that Join to MLS tables
57.7.4
How to Consume Cached Data
57.7.4.1
Consuming Shared Data Using a View Accessor
57.7.4.2
Creating a shared application module programmatically
57.7.5
What Happens at Runtime: When Another Service Accesses the Shared Application Module Cache
57.8
Profiling and Tracing Oracle Fusion Applications
57.8.1
How to Profile Oracle Fusion Applications with JDeveloper Profiler
57.9
Set up a Debug Breakpoint
58
Debugging Oracle ADF and Oracle SOA Suite
58.1
Introduction to Debugging Oracle ADF Debugging and Oracle SOA Suite
58.2
Collecting Diagnostics
58.2.1
How to Collect Diagnostics in the Integrated WebLogic Server Environment
58.2.1.1
Enabling Diagnostic Logging in the Development Environment
58.2.1.2
Enabling Database Tracing in Integrated WebLogic Server Instances
58.2.2
How to Collect Diagnostics in the Standalone WebLogic Server Environment
58.2.2.1
Enabling Diagnostic Logging in the Provisioned Environment
58.2.2.2
Adding Debug Messages to Your Code
58.2.2.3
Enabling Database Tracing in Standalone WebLogic Server Instances
58.3
Diagnosing Problems
58.3.1
How to Diagnose Problems in the Integrated WebLogic Server Environment
58.3.1.1
Testing the JDBC Data Source Connections
58.3.1.2
Viewing the Application Module Pooling Statistics
58.3.1.3
Sanity Checking Your EAR File in the Integrated WebLogic Server Environment
58.3.2
How to Diagnose Problems in the Standalone WebLogic Server Environment
58.3.2.1
Sanity Checking Your EAR File in the Standalone WebLogic Server Environment
58.3.2.2
Examining the Oracle WebLogic Server Classloaders
58.4
Debugging in JDeveloper
58.4.1
How to Debug an Application Remotely
58.5
Troubleshooting Oracle ADF
58.5.1
Problems and Solutions
58.5.1.1
"Too many files" Error Occurs on Local Linux Servers
58.5.1.2
Compilation Error Occurs
58.5.1.3
"No def found" or "No class def found" Exception Occurs
58.5.1.4
Breakpoints Are Not Functioning Correctly
58.5.1.5
Empty List in the Data Controls Panel
58.5.1.6
Runtime Error Related to DataBindings.cpx File
58.5.1.7
"Application module not found" Errors Related to DataBindings.cpx File
58.5.1.8
Oracle WebLogic Server Hot Reloading Does Not Work
58.5.1.9
Missing ADF Component at Runtime in Oracle WebLogic Server
58.5.1.10
Odd ADF Component Errors
58.5.1.11
Oracle WebLogic Server is Not Responding
58.5.1.12
Missing Base Class
58.5.1.13
Unavailable FND Components
58.5.1.14
JavaServer Pages Compilation Errors
58.5.1.15
ApplicationDB Errors While Running the Integrated WebLogic Server
58.5.1.16
Metadata Services Runtime Exception
58.5.1.17
Application Cannot Fetch Data from Oracle Fusion Applications Database
58.5.1.18
"The task cannot be processed further" Message Appears
58.5.1.19
TimedOut Exception Occurs
58.6
Testing and Troubleshooting Oracle SOA Suite
59
Designing and Securing View Objects for Oracle Business Intelligence Applications
59.1
Introduction to View Objects for Oracle Business Intelligence Applications
59.2
General Design Guidelines
59.2.1
Entity Object Guidelines
59.2.2
Association Guidelines
59.2.3
View Object Guidelines
59.2.3.1
Technical Requirements
59.2.3.2
View Object Attributes Guidelines
59.2.3.3
Outer Joins
59.2.4
View Links Guidelines
59.2.5
View Criteria Guidelines
59.3
Understanding Oracle Business Intelligence Design Patterns
59.3.1
Understanding Flattened View Objects
59.3.2
Understanding Fact-Dimension Relationships
59.3.3
Understanding Self Referencing Entities (Self-Joins)
59.3.4
Understanding Business Intelligence Filters
59.3.5
Understanding Translations
59.3.6
Understanding Date Effectivity
59.3.6.1
Date Effectivity Exceptions for Oracle BI Applications
59.4
Designing and Securing Fact View Objects
59.4.1
Designing Fact View Objects
59.4.2
Securing Fact View Objects
59.4.2.1
Securing the Same Transaction by Multiple Entities for Different Roles
59.4.2.2
Securing Transactions Different from Securing Dimensions
59.4.2.3
Joining Facts to Facts
59.4.2.4
Securing MOAC-Based transactional Applications
59.5
Designing and Securing Dimension View Objects
59.5.1
Designing Dimension View Objects
59.5.2
Designing Business Unit Dimensions
59.5.3
Securing Dimension View Objects
59.5.3.1
Securing Dimensions Composed of Multiple Entities
59.5.3.2
Securing Transactions Using Dimension with Dimension Browsing Unsecured
59.5.4
Using Multi-Valued Dimension Attributes
59.5.5
Using Junk Dimensions and Mini Dimensions
59.5.6
Using Secured and Unsecured Dimension View Objects
59.6
Designing Date Dimensions
59.6.1
Using the Gregorian Calendar
59.6.2
Using the Fiscal Calendar
59.6.3
Using the Projects Calendar
59.6.4
Using Timestamp Columns
59.6.5
Using Role-Playing Date Dimensions
59.7
Designing Lookups as Dimensions
59.7.1
Securing Data on Lookups
59.8
Designing and Securing Tree Data
59.8.1
Designing a Column-Flattened View Object for Oracle Business Intelligence
59.8.1.1
How to Generate a BICVO Automatically Using Tree Management
59.8.2
Customizing the FND Table Structure and Indexes
59.8.3
Using Declarative SQL Mode to Design View Objects for Oracle Business Intelligence Applications
59.8.3.1
Using Single Data Source View Object Design Pattern
59.8.3.2
Using Multiple Data Source View Objects Design Pattern
59.8.3.3
Setting the Declarative-Mode BICVO Properties
59.8.4
Guidelines for ATG-Registration and BICVO Generation
59.8.5
Guidelines for Hierarchy Depth and Conformance
59.8.5.1
Resolving Problems
59.8.6
Securing ADF Business Components View Objects for Trees
59.8.6.1
Security Implementation
59.9
Supporting Flexfields for Oracle Business Intelligence
59.10
Supporting SetID
59.10.1
How to Expose the SetID Attribute for Set-Enabled Lookups
59.10.2
How to Expose the SetID Attribute for Set-Enabled Reference Tables
59.11
Supporting Multi-Currency
60
Implementing ADF Desktop Integration
60.1
Oracle Application Development Framework Desktop Integration Standards and Guidelines
60.1.1
How to Structure the ADF Desktop Integration Directories
60.1.2
How to Name Your ADF Desktop Integration Files
60.1.3
How to Implement the Dialog Attributes Declarative Component
60.1.3.1
Adding the Component to Your Page
60.2
Skinning Excel ADF Desktop Integration Workbooks
60.3
Configuring the WebLogic Server Frontend
61
Creating Customizable Applications
61.1
Introduction to Creating Customizable Applications
61.2
Setting Project Properties to Enable User and Seeded Customizations
61.2.1
How to Set Project Properties to Enable User and Seeded Customizations
61.3
Configuring the Persistence Change Manager
61.3.1
How to Configure the Persistence Change Manager
61.4
Defining the Customization Layers
61.5
Authorizing Runtime Customization of Pages and Task Flows
61.5.1
How to Authorize Runtime Customization of Pages and Task Flows
61.6
Restricting Customization for a Specific Component on a Page
61.6.1
How to Restrict Customization for a Specific Component on a Page
61.7
Configuring Runtime Resource String Editing for Customizations
61.7.1
How to Configure Runtime Resource String Editing for Customizations
61.8
Enabling Pages for Runtime Customization
61.8.1
How to Enable Pages for Runtime Customization
61.8.1.1
Adding Oracle Composer Technology Scope to Your Project
61.8.1.2
Preparing Your Page for End-User Personalizations
61.8.1.3
Ensuring Customizable Pages Have Page Definitions
61.8.1.4
Making a JSPX Document Editable at Runtime
61.8.1.5
Setting Up a Resource Catalog
61.8.1.6
Using the Default Catalog Definition File for Testing
61.8.1.7
Configuring the Persistence of Implicit Runtime Customizations
61.9
Enabling User Customization of the UI Shell Template
61.9.1
How to Enable User Customization of the UI Shell Template
61.10
Creating a Database Connection at the IDE Level
61.10.1
How to Create a Database Connection at the IDE Level
61.11
Implementing Design-Time Customizations from JDeveloper
61.12
Implementing Runtime Customizations
61.13
Customizing the Navigator Menu
Part IX Appendices
A
Working with the Application Taxonomy
A.1
Introduction to the Oracle Fusion Application Taxonomy
A.1.1
Characteristics of the Level Categories
A.1.2
How to Manage the Lifecycle
A.1.2.1
Creating Patches and Patch Sets
A.1.2.2
System Administration
A.1.2.3
Diagnostics and Maintenance
A.1.3
Benefits of a Logical Hierarchy
A.1.4
Delivery Hierarchy
A.1.5
How to Integrate Taxonomy Task Flows into Oracle Fusion Functional Setup Manager
A.2
Working with Objects and Methods in the Application Taxonomy
A.2.1
Particular Table Columns and Data
A.2.2
Denormalized Taxonomy Table
A.2.3
Available Public Business Objects
A.2.3.1
Accessing the Entity and View Objects
A.2.4
How to Use Exposed Service Methods
A.2.5
How to Traverse the Taxonomy Hierarchy
A.3
Understanding Taxonomy MBeans
B
ECSF Command Line Administration Utility
Scripting on this page enhances content navigation, but does not change the content in any way.