You are on page 1of 494

R12 Extend Oracle

Applications: Customizing
OA Framework Applications
Ed 1
m y
Student Guide – Volume 1
d e
c a
e A
c l
r a
O ly
l & On
n a e
D49187GC10
t e r U s
Edition 1.0
January 2008 I n
D53750

c l e
r a
O
Copyright © 2008, Oracle. All rights reserved.

This document contains proprietary information and is protected by copyright and other intellectual property laws. You may copy and
print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way.
Except where your use constitutes "fair use" under copyright law, you may not use, share, download, upload, copy, print, display,
perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization
of Oracle.

The information contained in this document is subject to change without notice. If you find any problems in the document, please
report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not
warranted to be error-free.

If this documentation is delivered to the United States Government or anyone using the documentation on behalf of the United
States Government, the following notice is applicable:

U.S. GOVERNMENT RIGHTS


The U.S. Government’s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted
by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract.

Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates. Other names may
be trademarks of their respective owners.

Authors

Bill Sawyer, Lauren Cohn, Barbara Waddoups, Robert Farrington, Mildred Wang

Technical Contributors and Reviewers

John Zerbel, Jon Styles, Sara Woodhull, Suvarna Gadipatti, Liza Lyons, Vincent Thevenet

This book was published using: oracletutor


m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Table of Contents

Introduction to Customizing...........................................................................................................................1-1
R12 Customizing OA Framework Applications............................................................................................1-3
Course Objectives..........................................................................................................................................1-4
Lesson Objectives..........................................................................................................................................1-5
Agenda – Day 1 .............................................................................................................................................1-6
Agenda – Day 2 .............................................................................................................................................1-7
Agenda – Day 3 .............................................................................................................................................1-8
Agenda – Day 4 .............................................................................................................................................1-9
Agenda – Day 5 .............................................................................................................................................1-10
Important Terminology..................................................................................................................................1-11
Personalization vs. Extension ........................................................................................................................1-13
So, What Is In This Course? ..........................................................................................................................1-14
Architectural Components of OA Framework...............................................................................................1-15
Why Java? .....................................................................................................................................................1-17
Foundations of Java Programming ................................................................................................................1-19
The Java Tech Stack for OA Framework ......................................................................................................1-21
Oracle JDeveloper 10g ..................................................................................................................................1-23
Oracle JDeveloper 10g Components .............................................................................................................1-25
What's in BC4J? ............................................................................................................................................1-26
What's in UIX? ..............................................................................................................................................1-27
What's in AOL/J? ..........................................................................................................................................1-28
What's in OA Framework? ............................................................................................................................1-29
What's in the Metadata Services? ..................................................................................................................1-30
What is the MVC Design Pattern?.................................................................................................................1-31
m y
d e
Why Do We Use MVC? ................................................................................................................................1-32
The OA Framework Architecture ..................................................................................................................1-33

c a
Additional Resources.....................................................................................................................................1-34
Summary........................................................................................................................................................1-35

A
Concepts of the MVC Design Pattern ............................................................................................................2-1
R12 Customizing OA Framework Applications............................................................................................2-3

e
c l
Lesson Objectives..........................................................................................................................................2-4
What is a JSP Page?.......................................................................................................................................2-5

r a
Key JSP Application Components.................................................................................................................2-6
What Happens at Runtime? ...........................................................................................................................2-8
What Happens from the Start?.......................................................................................................................2-10

O ly
Behind the Scene ...........................................................................................................................................2-17

& On
Logical Components of an OA Framework Page ..........................................................................................2-28
What is the MVC Design Pattern?.................................................................................................................2-29

l
Model: Business Components for Java..........................................................................................................2-30

a e
Model: Application Modules.........................................................................................................................2-31

r n
Model: Entity Objects....................................................................................................................................2-32

s
Model: View Objects.....................................................................................................................................2-33

t e U
View: OA Framework-Based Page................................................................................................................2-34

n
View: Java Objects in a Page.........................................................................................................................2-35

e I
View: A Framework Example .......................................................................................................................2-36
View: Page Hierarchy....................................................................................................................................2-37

c l
Controller: Controlling UI Behavior..............................................................................................................2-38
OA Framework MVC Summary ...................................................................................................................2-39

r a
Summary........................................................................................................................................................2-40
Basics of the Model ..........................................................................................................................................3-1

O R12 Customizing OA Framework Applications............................................................................................3-3

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


i
Lesson Objectives..........................................................................................................................................3-4
Model-layer BC4J Objects ............................................................................................................................3-5
Encapsulation The "Reuse Onion". ...............................................................................................................3-6
General Reuse Rules......................................................................................................................................3-7
Recommended Build Approach.....................................................................................................................3-8
Business Component (BC4J) Packages .........................................................................................................3-9
BC4J Package Naming Standards .................................................................................................................3-10
Application Modules .....................................................................................................................................3-11
Transaction Object.........................................................................................................................................3-14
Application Module Files ..............................................................................................................................3-15
Entity Objects ................................................................................................................................................3-16
Entity Object Creation Standards ..................................................................................................................3-18
Entity Object Automatic Features .................................................................................................................3-19
Entity Object Files .........................................................................................................................................3-20
View Objects .................................................................................................................................................3-21
View Object Creation Methods .....................................................................................................................3-24
ExpertMode View Objects ............................................................................................................................3-25
View Objects with Entity Objects .................................................................................................................3-26
View Object Rows.........................................................................................................................................3-27
Creating View Objects...................................................................................................................................3-28
View Object Java Files ..................................................................................................................................3-29
View Object Files ..........................................................................................................................................3-30
BC4J Database Interactions...........................................................................................................................3-31
Non-BC4J Method.........................................................................................................................................3-32
Read-only Queries .........................................................................................................................................3-33
Step 1: Initial Query ......................................................................................................................................3-34
Step 2: Entity Object Population ...................................................................................................................3-35
Step 3: Entity Object Reuse...........................................................................................................................3-36
Step 4: Entity-derived Attributes ...................................................................................................................3-37
m y
d e
Step 5: Entity Object Fault-in ........................................................................................................................3-38
Step 6: Entity Object References ...................................................................................................................3-39

c a
EO/VO Merge ...............................................................................................................................................3-40
Step 1: EO/VO Merge Resolution .................................................................................................................3-41

A
Step 2: EO/VO Merge Resolution .................................................................................................................3-42
Other Model-layer Objects ............................................................................................................................3-43

e
c l
Association Objects .......................................................................................................................................3-44
Reference Association Objects ......................................................................................................................3-46

r a
Composition Association Objects..................................................................................................................3-47
Composition Association Object Behavior....................................................................................................3-48
View Links ....................................................................................................................................................3-49

O ly
Entity Experts ................................................................................................................................................3-51

l & On
Validation AMs and Validation VOs.............................................................................................................3-52
Summary........................................................................................................................................................3-54

n a e
Basics of the View ............................................................................................................................................4-1
R12 Customizing OA Framework Applications............................................................................................4-3

t r s
Lesson Objectives..........................................................................................................................................4-4

e
Recommended Build Approach.....................................................................................................................4-5
U
View-layer Terminology ...............................................................................................................................4-6

I n
Workspaces and Projects ...............................................................................................................................4-8
Step 1: Create a Page .....................................................................................................................................4-9

l e
Step 2: Name Your New Page .......................................................................................................................4-10

c
Step 3: View Page's Initial Structure .............................................................................................................4-11

r a
Step 4: Modify the Page's Structure...............................................................................................................4-12
Running the New Page ..................................................................................................................................4-13
What Can You Add to the Page? ...................................................................................................................4-14

O Region Styles.................................................................................................................................................4-15

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


ii
Sub-Region Styles .........................................................................................................................................4-16
Named Children vs. Indexed Children ..........................................................................................................4-17
Item Styles .....................................................................................................................................................4-19
Item Style Details ..........................................................................................................................................4-20
Shared Regions ..............................................................................................................................................4-23
Attribute Sets .................................................................................................................................................4-25
Creating Attribute Sets ..................................................................................................................................4-26
Attribute Set Standards..................................................................................................................................4-27
Table Column Template ................................................................................................................................4-28
Button Template ............................................................................................................................................4-29
Region Header Template ...............................................................................................................................4-30
CSS Styles .....................................................................................................................................................4-31
Common CSS Styles .....................................................................................................................................4-32
Extending Other Objects ...............................................................................................................................4-34
Destinations and Links ..................................................................................................................................4-35
Mailto Links ..................................................................................................................................................4-36
Lists of Values (LOVs)..................................................................................................................................4-37
Defining an External LOV.............................................................................................................................4-39
Reading Model Data......................................................................................................................................4-41
Writing Model Data.......................................................................................................................................4-43
Binding Items to Data....................................................................................................................................4-45
General Naming Rules...................................................................................................................................4-46
Page and Object Naming Rules .....................................................................................................................4-49
Styles and Bean Names .................................................................................................................................4-50
Attribute Set Standards..................................................................................................................................4-51
Attribute Sets .................................................................................................................................................4-53
Attribute Set Naming Conventions................................................................................................................4-54
More Attribute Set Standards ........................................................................................................................4-55
m y
Summary........................................................................................................................................................4-56

d e
Basics of the Controller ...................................................................................................................................5-1
R12 Customizing OA Framework Applications............................................................................................5-3

c a
Lesson Objectives..........................................................................................................................................5-4
Recommended Build Approach.....................................................................................................................5-5

e A
Do You Need a Controller? ...........................................................................................................................5-6
Controller Basics ...........................................................................................................................................5-7

c l
Common Logic to Code ................................................................................................................................5-8
Typical Locations for Code ...........................................................................................................................5-9

r a
Handling Queries...........................................................................................................................................5-10
View Object initQuery Code .........................................................................................................................5-11

O ly
Dynamic WHERE Clauses ............................................................................................................................5-12
Using findByKey Instead of initQuery..........................................................................................................5-13

l & On
Processing a Button Press..............................................................................................................................5-14
Getting Parameters from Requests ................................................................................................................5-15

n a e
Example: Manually-built Search ...................................................................................................................5-16
The Process....................................................................................................................................................5-17

t r s
Example VOImpl Code .................................................................................................................................5-18

e
Example AMImpl Code.................................................................................................................................5-19
U
Example Controller Code ..............................................................................................................................5-20

I n
Example Search: Controller...........................................................................................................................5-21
Forwarding to Another Page..........................................................................................................................5-22

l e
Setting Titles with Message Dictionary.........................................................................................................5-23

c
Event Flow Overview....................................................................................................................................5-24

r a
Initial Setup Flow ..........................................................................................................................................5-25
Controller Event Flows in OA Framework....................................................................................................5-26
GET Event Flow – Overview ........................................................................................................................5-27

O GET Event Flow (1-3)...................................................................................................................................5-28

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


iii
GET Event Flow (4) Instantiate BC4J and UIX Classes .............................................................................5-30
Example Bean Hierarchy Structure ...............................................................................................................5-31
GET Event Flow (5) processRequest...........................................................................................................5-32
GET Event Flow (6) Post-Processing..........................................................................................................5-33
GET Event Flow (7) UIX Renders the Page..................................................................................................5-34
POST Event Flow – Overview ......................................................................................................................5-35
POST Event Flow (1 - 3) Submit, Client-Side Validation.............................................................................5-36
POST Event Flow (4 & 5) Validate User and Retrieve State ........................................................................5-37
POST Event Flow (6) Apply Form Data .......................................................................................................5-38
POST Event Flow (6) More of processFormData .........................................................................................5-39
POST Event Flow (7) processFormRequest..................................................................................................5-42
Summary........................................................................................................................................................5-43
Setting Up Your Development Environment ................................................................................................6-1
R12 Customizing OA Framework Applications............................................................................................6-3
Lesson Objectives..........................................................................................................................................6-4
Installing and Setting Up JDeveloper ............................................................................................................6-5
Configure Your Environment Variables........................................................................................................6-7
Get the DBC File ...........................................................................................................................................6-9
Create a Shortcut ...........................................................................................................................................6-10
Assign the E-Business Suite User..................................................................................................................6-11
Uncompress Tutorial.zip ...............................................................................................................................6-12
Launch JDeveloper 10g .................................................................................................................................6-13
Configure the Connections and Test..............................................................................................................6-14
Configure the Connection and User...............................................................................................................6-16
Summary........................................................................................................................................................6-18
Introduction to JDeveloper 10g with OA Extension.....................................................................................7-1
R12 Customizing OA Framework Applications............................................................................................7-3
Lesson Objectives..........................................................................................................................................7-4
m y
Oracle JDeveloper 10g with OA Extension...................................................................................................7-5

d
Oracle JDeveloper 10g Components .............................................................................................................7-7 e
c a
Applications and Workspaces........................................................................................................................7-8
Projects ..........................................................................................................................................................7-10

A
Creating JDeveloper Items ............................................................................................................................7-12
Creating a Workspace....................................................................................................................................7-13

e
c l
Step 1: Creating a Project ..............................................................................................................................7-14
Step 2: Creating a Project ..............................................................................................................................7-15

r a
Step 3: Creating a Project ..............................................................................................................................7-16
Step 4: Creating a Project ..............................................................................................................................7-17

O ly
Step 1: Establish a Database Connection.......................................................................................................7-18
Step 2: Establish a Database Connection.......................................................................................................7-19

l & On
Step 3: Establish a Database Connection.......................................................................................................7-20
Step 4: Establish a Database Connection.......................................................................................................7-21

a e
Step 5: Establish a Database Connection.......................................................................................................7-22
Step 6: Establish a Database Connection.......................................................................................................7-23

n
e r
Step 7: Establish a Database Connection.......................................................................................................7-24

s
Project Properties...........................................................................................................................................7-25

t U
Project Properties – Oracle Applications.......................................................................................................7-26

I n
Directory Structure ........................................................................................................................................7-27
Exploring Java Files ......................................................................................................................................7-28

e
Exploring Other Objects - Wizards ...............................................................................................................7-29

l
Exploring Other Objects – UI Objects...........................................................................................................7-30

c
Finding Methods and Fields ..........................................................................................................................7-31

r a
Supporting Code Development with Profiler and Code Coach ....................................................................7-33
New Code Editor Features.............................................................................................................................7-35

O Customizing JDeveloper 10g with OA Extension .........................................................................................7-37


Refactoring ....................................................................................................................................................7-39

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


iv
JDeveloper Help System ...............................................................................................................................7-42
Obtaining Help on a Topic ............................................................................................................................7-43
Oracle JDeveloper Debugger.........................................................................................................................7-44
Breakpoints....................................................................................................................................................7-46
Breaking on Exceptions.................................................................................................................................7-48
Debugger Windows .......................................................................................................................................7-49
Stepping Through a Program.........................................................................................................................7-51
Watching Data and Variables ........................................................................................................................7-52
Debugging Declarative Applications.............................................................................................................7-53
More Debugging Tips....................................................................................................................................7-54
Understand BC4J Interactions .......................................................................................................................7-55
Debugging Validation and Commits .............................................................................................................7-57
Summary........................................................................................................................................................7-58
Introduction to Personalizations ....................................................................................................................8-1
R12 Customizing OA Framework Applications............................................................................................8-3
Course Objectives..........................................................................................................................................8-4
Concepts: Pages.............................................................................................................................................8-5
Concepts: Regions .........................................................................................................................................8-6
Concepts: Region Hierarchy..........................................................................................................................8-7
Concepts: Items .............................................................................................................................................8-8
Examples of Personalizations ........................................................................................................................8-9
User Personalizations ....................................................................................................................................8-10
Administrator-seeded Personalizations..........................................................................................................8-12
Administrator Personalization (After) ...........................................................................................................8-13
Configurable Pages (After)............................................................................................................................8-14
Add a Flexfield (After) ..................................................................................................................................8-15
Customizing the Look-and-Feel (After) ........................................................................................................8-16
Personalizations vs. Extensions .....................................................................................................................8-17
m y
d e
Benefits of Personalizations ..........................................................................................................................8-18
Benefits of Extensions ...................................................................................................................................8-19

c a
Summary........................................................................................................................................................8-20
Personalization Concepts ................................................................................................................................9-1

A
R12 Customizing OA Framework Applications............................................................................................9-3
Objectives ......................................................................................................................................................9-4

e
c l
System Personalization Capabilities..............................................................................................................9-5
Menus and Responsibilities ...........................................................................................................................9-6

r a
Creating Menus and Responsibilities ............................................................................................................9-7
Functional Administrator Menus Page ..........................................................................................................9-8

O ly
Menus Form...................................................................................................................................................9-10
Responsibilities Form ....................................................................................................................................9-11

l & On
Messages........................................................................................................................................................9-12
Functional Administrator Messages Page......................................................................................................9-13

a e
Messages Form ..............................................................................................................................................9-14
Lookups .........................................................................................................................................................9-15

n
e r
Functional Administrator Lookup Types Page .............................................................................................9-16

s
Drill Down to Lookup Codes Page................................................................................................................9-17

t U
Application Object Library Lookups.............................................................................................................9-18

I n
Custom Colors and Fonts ..............................................................................................................................9-19
Branding ........................................................................................................................................................9-20

e
Corporate Branding Image ............................................................................................................................9-21

l
Product Branding Image ................................................................................................................................9-22

c
Concepts: Page Personalizations ...................................................................................................................9-23

r a
Concepts: User Personalizations....................................................................................................................9-25
Concepts: Personalization Levels ..................................................................................................................9-26

O Personalization Levels and Layers ................................................................................................................9-28


Layers and Levels..........................................................................................................................................9-29

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


v
Summary........................................................................................................................................................9-30
User-level Personalizations .............................................................................................................................10-1
R12 Customizing OA Framework Applications............................................................................................10-3
Objectives ......................................................................................................................................................10-4
User-level Personalizations ...........................................................................................................................10-5
User-level Personalization Features...............................................................................................................10-6
User-level Personalizations ...........................................................................................................................10-7
User-level Personalizations: Views ...............................................................................................................10-8
User Personalizations: Sort and Filter ...........................................................................................................10-9
User Personalizations: Column Renaming ....................................................................................................10-10
User Personalizations: Multiple Views..........................................................................................................10-11
Users Maintain User Personalizations ...........................................................................................................10-12
Default Personalizations for Users ................................................................................................................10-13
Seeding User-level Personalizations..............................................................................................................10-14
Admin-Seeded User Views............................................................................................................................10-15
Admin-Seeded User Views UI ......................................................................................................................10-18
Create Admin-Seeded User View..................................................................................................................10-19
Summary........................................................................................................................................................10-20
Administrator-level Personalizations.............................................................................................................11-1
R12 Customizing OA Framework Applications............................................................................................11-3
Objectives ......................................................................................................................................................11-4
Administrator Personalization Features.........................................................................................................11-5
What Can Be Personalized by Administrators?.............................................................................................11-6
Admin-Level: Where Do I Start? ..................................................................................................................11-7
Profile Options for Personalization................................................................................................................11-8

m
About this Page..............................................................................................................................................11-11
Navigate to Page and Start Personalizing ......................................................................................................11-13
y
Analysis .........................................................................................................................................................11-10

d e
Default Personalization Context ....................................................................................................................11-14
Optional: Choose Context .............................................................................................................................11-15

c a
Optional: Set Personalization Scope..............................................................................................................11-16
Optional: Search for Item in Page..................................................................................................................11-18

A
The Personalization UI ..................................................................................................................................11-19
Find Object to Personalize.............................................................................................................................11-20

e
c l
Complete View ..............................................................................................................................................11-21
Create Your Personalization ..........................................................................................................................11-22

r a
Modify Object Properties ..............................................................................................................................11-23
Common Properties to Personalize................................................................................................................11-25

O ly
SPEL Example Using Functions ...................................................................................................................11-26
Other Common Properties .............................................................................................................................11-28

l & On
Create a New Item .........................................................................................................................................11-32
Common Item Styles .....................................................................................................................................11-33

a e
Connecting a New Item to a Data Source......................................................................................................11-34
Return to Your Application Page and Test....................................................................................................11-35

n
e r
Managing Administrator Personalizations.....................................................................................................11-36

s
Manage Personalization Levels .....................................................................................................................11-37

t U
Troubleshooting Administrator Personalizations ..........................................................................................11-38

I n
Troubleshooting Personalizations..................................................................................................................11-40
Examine Personalizations Using SQL*Plus ..................................................................................................11-43

e
Application Catalog Page in Functional Administrator Responsibility .........................................................11-44

l
Personalization Document Manager..............................................................................................................11-46

c
Summary........................................................................................................................................................11-49

r a
Personalizing Configurable Pages..................................................................................................................12-1
R12 Customizing OA Framework Applications............................................................................................12-3
O Objectives ......................................................................................................................................................12-4

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


vi
Concept: Configurable Pages ........................................................................................................................12-5
Personalizing a Configurable Page ................................................................................................................12-7
Configurable Page Before Personalization ....................................................................................................12-8
Configurable Page After Personalization ......................................................................................................12-9
Prepare for Personalization............................................................................................................................12-10
Personalizing a Configurable Page ................................................................................................................12-11
Personalization Level ....................................................................................................................................12-12
Layout Page ...................................................................................................................................................12-13
Horizontal or Vertical Layout........................................................................................................................12-14
Contents Page ................................................................................................................................................12-15
Add Content...................................................................................................................................................12-16
Reorder Content.............................................................................................................................................12-17
Personalizing Object Properties.....................................................................................................................12-18
Summary........................................................................................................................................................12-19
Advanced Personalization Features ...............................................................................................................13-1
R12 Customizing OA Framework Applications............................................................................................13-3
Objectives ......................................................................................................................................................13-4
Add a Descriptive Flexfield to a Page ...........................................................................................................13-5
Enabling Existing Descriptive Flexfields (Before)........................................................................................13-6
Enabling Existing Descriptive Flexfields (Analyzing) ..................................................................................13-7
Enabling Existing Descriptive Flexfields (Freezing).....................................................................................13-8
Enabling Existing Descriptive Flexfields (Finding) ......................................................................................13-9
Enabling Existing Descriptive Flexfields (Enabling) ....................................................................................13-10
Enabling Existing Descriptive Flexfields (Containers) .................................................................................13-11
Enabling Existing Descriptive Flexfields (Showing).....................................................................................13-12
Enabling Existing Descriptive Flexfields (Displaying) .................................................................................13-13
Adding a Descriptive Flexfield to the UI.......................................................................................................13-14
Adding a Descriptive Flexfield to the UI: Drill .............................................................................................13-15
m y
d e
Adding a Descriptive Flexfield to the UI: Create ..........................................................................................13-16
Adding a Descriptive Flexfield to the UI: After ............................................................................................13-17

c a
The Third Case ..............................................................................................................................................13-18
Adding a New Region ...................................................................................................................................13-19
Adding a New Region with New Content .....................................................................................................13-20

e A
URL Include ..................................................................................................................................................13-21
Summary........................................................................................................................................................13-23

c l
E-Business Suite Architecture Overview .......................................................................................................14-1

r a
R12 Customizing OA Framework Applications............................................................................................14-3
Overview .......................................................................................................................................................14-4

O ly
Oracle E-Business Suite ................................................................................................................................14-5
Oracle E-Business Suite Home Page .............................................................................................................14-6

l & On
HTML Interface.............................................................................................................................................14-7
Forms Interface..............................................................................................................................................14-9

a e
Concurrent Processing...................................................................................................................................14-11
System Overview...........................................................................................................................................14-12

n
e r
Oracle Applications .......................................................................................................................................14-13

s
Applications Technology Stack for Release 12 .............................................................................................14-14

t U
Rapid Install...................................................................................................................................................14-15

I n
Rapid Install Technology Stack Components................................................................................................14-16
Product Families ............................................................................................................................................14-17

e
Example Standard Product Identifiers ...........................................................................................................14-18

l
Product Registration ......................................................................................................................................14-19

c
Product Dependencies ...................................................................................................................................14-20

r a
Vision Demo Database ..................................................................................................................................14-21
Summary........................................................................................................................................................14-22

OE-Business Suite Architecture Components..................................................................................................15-1

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


vii
R12 Customizing OA Framework Applications............................................................................................15-3
Objectives ......................................................................................................................................................15-4
Lesson Overview ...........................................................................................................................................15-5
Multi-Tier Architecture .................................................................................................................................15-6
Desktop Tier: Traditional Forms Interface ....................................................................................................15-7
Desktop Tier: Forms Client Applet ...............................................................................................................15-8
Desktop Tier: Java Client ..............................................................................................................................15-9
Application Tier.............................................................................................................................................15-10
Application Tier: Load Balancing .................................................................................................................15-11
Application Tier: HTML-Based Applications ...............................................................................................15-12
Application Tier: Oracle Applications Framework .......................................................................................15-13
Application Tier: Oracle Applications Framework Components ..................................................................15-14
Application Tier: Oracle Applications Framework Processing .....................................................................15-15
Application Tier: Java Servlet Access with HTML Applications .................................................................15-16
Application Tier: Forms Services ..................................................................................................................15-17
Application Tier: Forms Services Architecture .............................................................................................15-18
Application Tier: Network Traffic.................................................................................................................15-19
Application Tier: Concurrent Processing Server ...........................................................................................15-21
Application Tier: Report Review Agent........................................................................................................15-22
Application Tier: Accessing Concurrent Processing Output .........................................................................15-23
Application Tier: Administration Server (Obsolete) .....................................................................................15-24
Database Tier.................................................................................................................................................15-25
Oracle Homes ................................................................................................................................................15-26
Oracle Applications Technology Layer.........................................................................................................15-28
Oracle Applications DBA (AD) ....................................................................................................................15-29
Oracle Application Object Library (FND).....................................................................................................15-30
Oracle Application Object Library: End User Features.................................................................................15-31
Oracle Application Object Library: Developer Features ...............................................................................15-33
Oracle Application Object Library: System Administration Features ...........................................................15-34
m y
Oracle Application Object Library: Security Features ..................................................................................15-36

d e
Oracle Applications Utilities (AU) ................................................................................................................15-37

c a
Oracle Applications Framework (OAF) ........................................................................................................15-38
Oracle Workflow (WF) .................................................................................................................................15-39

A
Oracle Alert (ALR)........................................................................................................................................15-40
Oracle XML Publisher (XDO) ......................................................................................................................15-41

e
c l
Oracle Applications Manager (OAM) ...........................................................................................................15-43
Release 12 Applications Technology Stack – Key Changes ........................................................................15-44

r a
Summary........................................................................................................................................................15-45
E-Business Suite Database Architecture........................................................................................................16-1

O ly
R12 Customizing OA Framework Applications............................................................................................16-3
Objectives ......................................................................................................................................................16-4

l & On
Lesson Overview ...........................................................................................................................................16-5
Oracle Applications Database Objects ..........................................................................................................16-6

n a e
Multiple Languages in the Database..............................................................................................................16-7
Schemas.........................................................................................................................................................16-8

t r s
Example Oracle Applications Product Schemas............................................................................................16-9

e
APPS Schema ................................................................................................................................................16-10
U
Additional Schemas.......................................................................................................................................16-11

I n
Schemas Used During Signon .......................................................................................................................16-12
Implementing Multiple Organizations...........................................................................................................16-13

l e
Reporting Currencies.....................................................................................................................................16-15

c
Database Features ..........................................................................................................................................16-16

r a
Monitoring Features – Automatic Workload Repository ..............................................................................16-18
Monitoring Features – Automatic Database Diagnostic Monitor ..................................................................16-19
Monitoring Features – Active Session History..............................................................................................16-20

O Performance Features – Query Optimization ................................................................................................16-21

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


viii
Performance Features – Database Resource Manager...................................................................................16-23
Performance Features – Partitioned Tables ...................................................................................................16-24
Performance Features – Temporary Tables ...................................................................................................16-26
Performance Features – Locally Managed Tablespaces ................................................................................16-27
Performance Features – Oracle Applications Tablespace Model ..................................................................16-28
Scalability Features – Oracle Real Application Clusters ...............................................................................16-29
Business Intelligence Features – Materialized Views....................................................................................16-31
Database Tier Server Process Scripts ............................................................................................................16-32
Summary........................................................................................................................................................16-35
E-Business Suite File System Architecture....................................................................................................17-1
R12 Customizing OA Framework Applications............................................................................................17-3
Objectives ......................................................................................................................................................17-4
Lesson Overview ...........................................................................................................................................17-5
INST_TOP Directory ....................................................................................................................................17-7
Database Tier File System .............................................................................................................................17-8
Application Tier File System.........................................................................................................................17-9
APPL_TOP Structure ....................................................................................................................................17-10
Product Directories ........................................................................................................................................17-11
Globalization Products ..................................................................................................................................17-12
Applications Context File ..............................................................................................................................17-13
Applications Product Directories...................................................................................................................17-14
Additional Language Subdirectories .............................................................................................................17-28
$APPL_TOP/admin Directory.......................................................................................................................17-29
$APPL_TOP/admin Directory Text Files......................................................................................................17-30
AD Directory .................................................................................................................................................17-31

Common Components Directory...................................................................................................................17-33

m y
AU Directory .................................................................................................................................................17-32

Java Files .......................................................................................................................................................17-35

d e
Applications Technology Stack Directory.....................................................................................................17-36
Database Directories......................................................................................................................................17-37

c a
Summary........................................................................................................................................................17-38
E-Business Suite Basic Administration..........................................................................................................18-1

A
R12 Customizing OA Framework Applications............................................................................................18-3
Objectives ......................................................................................................................................................18-4

e
c l
Lesson Overview ...........................................................................................................................................18-5
Environment Files..........................................................................................................................................18-6

r a
Main Applications Environment File ............................................................................................................18-8
Key Parameters in <CONTEXT_NAME>.env .............................................................................................18-9

O ly
Temporary Files.............................................................................................................................................18-15
The adovars.env File......................................................................................................................................18-16

l & On
The adconfig.txt File......................................................................................................................................18-17
The fndenv.env File.......................................................................................................................................18-18

a e
The devenv.env File ......................................................................................................................................18-19
Application Tier Server Control Scripts ........................................................................................................18-20

n
e r
Modifying Environment Files........................................................................................................................18-25

s
Oracle Applications Languages .....................................................................................................................18-26

t U
Character Sets – Introduction ........................................................................................................................18-30

I n
Character Sets – Database Tier......................................................................................................................18-31
Character Sets – Application Tier..................................................................................................................18-33

e
Character Sets – Desktop Tier .......................................................................................................................18-34

l
Globalizations and Country-specific Functionalities.....................................................................................18-35

c
Dates and Numbers........................................................................................................................................18-36

r a
National Language Support (NLS) ................................................................................................................18-37
NLS and Application Tier Servers.................................................................................................................18-39

O Translation Patches........................................................................................................................................18-40
Translated Language Items............................................................................................................................18-41

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


ix
Summary........................................................................................................................................................18-42
E-Business Suite Basic AD Utilities................................................................................................................19-1
R12 Customizing OA Framework Applications............................................................................................19-3
Objectives ......................................................................................................................................................19-4
Lesson Overview ...........................................................................................................................................19-5
AD Utilities ...................................................................................................................................................19-6
Configuration and Environment Files............................................................................................................19-8
Setting the Environment ................................................................................................................................19-10
The AD Utilities ............................................................................................................................................19-12
The Web-based Utilities ................................................................................................................................19-15
Running the AD Utilities ...............................................................................................................................19-17
Command Line Arguments............................................................................................................................19-18
Command Line Arguments - abandon...........................................................................................................19-20
Command Line Arguments - defaultsfile ......................................................................................................19-21
Command Line Arguments - help .................................................................................................................19-22
Command Line Arguments - interactive .......................................................................................................19-23
Command Line Arguments - localworkers....................................................................................................19-24
Command Line Arguments - logfile..............................................................................................................19-25
Command Line Arguments - menu_option ...................................................................................................19-26
Command Line Arguments - parallel_index_threshold.................................................................................19-27
Command Line Arguments - printdebug .......................................................................................................19-28
Command Line Arguments - restart ..............................................................................................................19-29
Command Line Arguments - wait_on_failed_job .........................................................................................19-30
Command Line Arguments - workers ...........................................................................................................19-31
Command Line Arguments - flags.................................................................................................................19-32
AD Utilities Flags - hidepw...........................................................................................................................19-33
AD Utilities Flags - logging ..........................................................................................................................19-34
AD Utilities Flags - trace...............................................................................................................................19-35
m y
d e
AD Utilities Features .....................................................................................................................................19-36
AD Feature Versions .....................................................................................................................................19-37

c a
AD Prompts ...................................................................................................................................................19-39
Parallel Processing.........................................................................................................................................19-40
Parallel Processing - Managers......................................................................................................................19-41

e A
Parallel Processing - Workers........................................................................................................................19-42
Parallel Processing - Deferred Jobs ...............................................................................................................19-43

c l
Database Processing Phases ..........................................................................................................................19-44
Distributed AD – Introduction.......................................................................................................................19-46

r a
Distributed AD – Requirements ....................................................................................................................19-47
Distributed AD – Usage ................................................................................................................................19-48

O ly
Log Files........................................................................................................................................................19-49
Worker Log Files...........................................................................................................................................19-50

l & On
Restart Files ...................................................................................................................................................19-51
Manager and Worker Log Messages .............................................................................................................19-52

n a e
Maintenance Mode – Introduction.................................................................................................................19-55
Maintenance Mode ........................................................................................................................................19-56

t e r s
Restricted Mode.............................................................................................................................................19-57
Summary........................................................................................................................................................19-58
U
I n
Deploying OA Framework Applications .......................................................................................................20-1
R12 Customizing OA Framework Applications............................................................................................20-3

e
Objectives ......................................................................................................................................................20-4

l
Storing Personalizations ................................................................................................................................20-5

c
Directory Structure ........................................................................................................................................20-6

r a
Directory Structure - Layer Values................................................................................................................20-7
Toolset ...........................................................................................................................................................20-8

O Functional Administrator Personalization UI ...............................................................................................20-9


export.bat / import.bat- Syntax ......................................................................................................................20-10

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


x
export.bat/import.bat - Example ....................................................................................................................20-11
Command Line – XMLExporter/XMLImporter............................................................................................20-12
export.bat vs. XMLExporter..........................................................................................................................20-13
Import Substitutions – JPXImport.bat ...........................................................................................................20-14
JPXImport.bat - Syntax .................................................................................................................................20-15
Import Substitutions – JPXImporter ..............................................................................................................20-16
Inspecting the MDS Repository.....................................................................................................................20-17
JDR_UTILS PL/SQL package APIs..............................................................................................................20-18
List the Personalizations Done on a Page.....................................................................................................20-25
Inspect Personalizations ................................................................................................................................20-26
Deploying Personalizations ...........................................................................................................................20-28
Extract the Personalizations – Functional Administrator Page......................................................................20-29
Set Personalization Document Root Path ......................................................................................................20-30
Import/Export Personalizations .....................................................................................................................20-31
Extract the Personalizations – Select the Page ..............................................................................................20-32
Extract the Personalizations – Export to File System ....................................................................................20-33
Upload Personalizations into Production Instance – Functional Administrator Page....................................20-34
Upload Personalizations into Production Instance – Exported Personalizations ...........................................20-35
Upload Personalizations into Production Instance – Import from File System .............................................20-36
Extensions......................................................................................................................................................20-37
OA Page Extensions ......................................................................................................................................20-38
Deployment of Page Extensions....................................................................................................................20-39
1.Copy .java Classes......................................................................................................................................20-40
2. Import Substitutions ..................................................................................................................................20-41
3. Import OA Component Definitions ...........................................................................................................20-42
View The Deployed Extensions ....................................................................................................................20-43
BC4J Extensions............................................................................................................................................20-44
Deployment of Business Logic Extensions ...................................................................................................20-45
m y
Summary........................................................................................................................................................20-46

d e
Translations......................................................................................................................................................21-1
R12 Customizing OA Framework Applications............................................................................................21-3

c a
Objectives ......................................................................................................................................................21-4
Pages to be Translated ...................................................................................................................................21-5

e A
Content to be Translated................................................................................................................................21-6
Generic Process of Translation.....................................................................................................................21-7

c l
Toolset for Personalization Translations .......................................................................................................21-8
Translating Personalizations Inline................................................................................................................21-9

r a
Manage Levels Page Of Personalization UI .................................................................................................21-10
Profiles for Translation..................................................................................................................................21-11

O ly
1. Go to Manage Levels Screen.....................................................................................................................21-12
2. Go to Translate page..................................................................................................................................21-13

l & On
3. Choose the languages ................................................................................................................................21-14
4. Type in the Translated Text and Apply .....................................................................................................21-16

n a e
Translating Personalizations Using UI Tools ................................................................................................21-17
1. Go to the Manage Levels Screen ...............................................................................................................21-18

t r s
2. Extract Translations...................................................................................................................................21-19

e
3. Choose Languages.....................................................................................................................................21-20
U
4.Updating the XLIFF File ............................................................................................................................21-21

I n
5.Updating the <target> Tag Value ...............................................................................................................21-22
6. Upload the Translated XLIFF Files ...........................................................................................................21-23

l e
Toolset for New Page Translations................................................................................................................21-24

c
Translating a New Page .................................................................................................................................21-25

r a
1. Get the XLIFF File ....................................................................................................................................21-26
XLIFF Extractor -Syntax...............................................................................................................................21-27
Make a copy of the base XLIFF file ..............................................................................................................21-28

O 2. Update the Target-Language Attribute ......................................................................................................21-29

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xi
3. Update the string in the <target> Tag ........................................................................................................21-30
4. Import the Translations into the MDS Repository.....................................................................................21-31
XLIFF Importer .............................................................................................................................................21-32
XLIFF Importer -Syntax................................................................................................................................21-33
Summary........................................................................................................................................................21-34
OA Framework Development Concepts and Standards ..............................................................................22-1
R12 Customizing OA Framework Applications............................................................................................22-3
Lesson Objectives..........................................................................................................................................22-4
General Coding Standards .............................................................................................................................22-5
Coding Terminology......................................................................................................................................22-6
OA Framework Standard Considerations ......................................................................................................22-7
E-Business Suite Standard Considerations ....................................................................................................22-8
E-Business Suite Standard DB Objects .........................................................................................................22-11
Oracle BLAF Standards.................................................................................................................................22-13
E-Business Suite Java Standards ...................................................................................................................22-14
OA Framework File Standards ......................................................................................................................22-15
Files in a Typical OA Framework Application..............................................................................................22-16
Standard File Suffix Abbreviations ...............................................................................................................22-18
Package Names..............................................................................................................................................22-20
File Names.....................................................................................................................................................22-23
Region and Item Names ................................................................................................................................22-24
OA Framework Model Standards ..................................................................................................................22-25
OA Framework View Standards....................................................................................................................22-26
OA Framework Controller Standards ............................................................................................................22-27
Summary........................................................................................................................................................22-28
OA Framework and E-Business Suite Security ............................................................................................23-1
R12 Building OA Framework Applications ..................................................................................................23-3
Lesson Objectives..........................................................................................................................................23-4
m y
d e
Key E-Business Suite Security Terms ...........................................................................................................23-5
Successive Layers of Access Control ............................................................................................................23-10

c a
Increasing Flexibility and Scalability ............................................................................................................23-11
Function Security...........................................................................................................................................23-13

A
Data Security .................................................................................................................................................23-14
Oracle User Management Layers of Access Control.....................................................................................23-16

e
c l
Role Based Access Control (RBAC) .............................................................................................................23-17
Delegated Administration..............................................................................................................................23-19

r a
Registration Processes ...................................................................................................................................23-21
Self Service and Approvals ...........................................................................................................................23-23

O ly
Introduction to Function Security ..................................................................................................................23-24
Securing Functions ........................................................................................................................................23-25

l & On
Defining a Menu............................................................................................................................................23-26
Menu Guidelines ...........................................................................................................................................23-28

a e
Creating a Menu ............................................................................................................................................23-29
Modifying an Existing Menu Definition ......................................................................................................23-30

n
e r
Using Responsibilities ...................................................................................................................................23-31

s
Responsibility Components ...........................................................................................................................23-33

t U
Defining a New Responsibility......................................................................................................................23-34

I n
Sample Menu.................................................................................................................................................23-35
Dissecting Security – Users ...........................................................................................................................23-36

e
Dissecting Security – Responsibilities...........................................................................................................23-37

l
Dissecting Security – Project Settings ...........................................................................................................23-38

c
Dissecting Security – Menus .........................................................................................................................23-39

r a
Key E-Business Suite Menu Terms ...............................................................................................................23-44
Dissecting Security – Standard Menus ..........................................................................................................23-46

O Menu: Global Menu.......................................................................................................................................23-47


Menu: Tabs....................................................................................................................................................23-48

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xii
Menu: Subtabs ...............................................................................................................................................23-49
Menu: Side Navigation..................................................................................................................................23-50
Menu: Task/Property Menu...........................................................................................................................23-51
Menu Structures.............................................................................................................................................23-52
Creating Menus .............................................................................................................................................23-53
Navigation and Security Separate..................................................................................................................23-54
Introduction to Data Security.........................................................................................................................23-55
Data Security Components - Objects.............................................................................................................23-57
Grants ............................................................................................................................................................23-58
Permissions and Permission Sets...................................................................................................................23-59
Data Security Policies....................................................................................................................................23-60
Summary........................................................................................................................................................23-61
Extending OA Framework Applications .......................................................................................................24-1
R12 Customizing OA Framework Applications............................................................................................24-3
Objectives ......................................................................................................................................................24-4
4 Basic Types of Extensions..........................................................................................................................24-5
Adding New Attributes..................................................................................................................................24-6
Defaulting Attribute Values...........................................................................................................................24-7
Validate Attribute Values ..............................................................................................................................24-10
New Development .........................................................................................................................................24-14
Common Extension Tasks .............................................................................................................................24-15
Deploying an Extension.................................................................................................................................24-16
Creating a BC4J Substitution.........................................................................................................................24-17
Deploying a BC4J Substitution .....................................................................................................................24-20
Deploy from within JDeveloper with OA Extension.....................................................................................24-21
Deploy on the Middle-Tier Server.................................................................................................................24-23
Summary........................................................................................................................................................24-24
Assembling Components .................................................................................................................................25-1
m y
R12 Customizing OA Framework Applications............................................................................................25-3

d e
Objectives ......................................................................................................................................................25-4

c a
Assembly Process ..........................................................................................................................................25-5
Analyze the Page ...........................................................................................................................................25-6

A
Gather the Model-layer Components.............................................................................................................25-7
Gather the View-layer Components ..............................................................................................................25-8

e
c l
Gather the Controller-layer Components.......................................................................................................25-9
Move the Components...................................................................................................................................25-10

r a
Create a Workspace and Project ....................................................................................................................25-11
Create a Workspace .......................................................................................................................................25-12

O ly
Name Your Workspace .................................................................................................................................25-13
Create a Project..............................................................................................................................................25-14

l & On
Control Your View-layer Metadata ...............................................................................................................25-15
Set the Runtime Connection Information (DBC) ..........................................................................................25-17

a e
Set the Project Properties...............................................................................................................................25-18
Connections Step 1 ........................................................................................................................................25-19

n
e r
Connections Step 2 ........................................................................................................................................25-20

s
Connections Step 3 ........................................................................................................................................25-21

t U
Connections Step 4 ........................................................................................................................................25-22

I n
Connections Step 5 ........................................................................................................................................25-23
Connections Step 6 ........................................................................................................................................25-24

l e
Test the Page..................................................................................................................................................25-25
Summary........................................................................................................................................................25-26

c
r a
Development Considerations ..........................................................................................................................26-1
R12 Customizing OA Framework Applications............................................................................................26-3
Objectives ......................................................................................................................................................26-4
O Prime Considerations.....................................................................................................................................26-5

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xiii
Coding Principles ..........................................................................................................................................26-6
E-Business Suite Application Development..................................................................................................26-7
Set-up Your Development Environment .......................................................................................................26-10
OA Framework Build Approach ...................................................................................................................26-12
Other Considerations .....................................................................................................................................26-13
PL/SQL..........................................................................................................................................................26-15
Oracle Forms .................................................................................................................................................26-16
Oracle Forms Code........................................................................................................................................26-17
Common Modules (AK)................................................................................................................................26-18
Common Application Foundation (JTT) .......................................................................................................26-19
Common Application Components (JTF)......................................................................................................26-20
JavaServer Pages (jsp) ...................................................................................................................................26-21
Summary........................................................................................................................................................26-22
Course Labs .....................................................................................................................................................27-1
R12 Customizing OA Framework Applications............................................................................................27-3
Lab 1..............................................................................................................................................................27-4
Task 1: Login to Your E-Business Suite Instance .....................................................................................27-5
Task 2: About This Page Link ...................................................................................................................27-8
Solution......................................................................................................................................................27-14
Lab 2..............................................................................................................................................................27-25
Task 1: Preparation ....................................................................................................................................27-26
Task 2: Modify the FWKTEST User.........................................................................................................27-27
Task 3: Set-up the NX Client on Your Classroom PC...............................................................................27-29
Task 4: Open the NX Client on Your Classroom PC ................................................................................27-32
Task 5: Unzip Tutorial.zip.........................................................................................................................27-34
Task 6: Set Your JDeveloper Environment ...............................................................................................27-35
Task 7: Start JDeveloper............................................................................................................................27-36
Task 8: Get the DBC File ..........................................................................................................................27-38
m y
Task 9: Test Your JDeveloper Workspace and Project .............................................................................27-39
Task 10: Set-up Your Database Connection..............................................................................................27-42
d e
c a
Task 11: Set Your Project Properties.........................................................................................................27-48
Task 12: Test Your JDeveloper Set-up......................................................................................................27-54
Task 13: Optional – Personal Set-up .........................................................................................................27-57

e A
Lab 3..............................................................................................................................................................27-58
Step 1. Setup your environment for OA Framework development............................................................27-59

c l
Step 2. Create the Model-layer Components .............................................................................................27-61
Step 3. Create the View-layer Components...............................................................................................27-67

r a
Lab 4..............................................................................................................................................................27-74
Task 1: Create a new responsibility for iExpenses ....................................................................................27-75

O ly
Task 2: Create a new responsibility for Manager Self Service ..................................................................27-77
Task 3: Create a new responsibility for iProcurement ...............................................................................27-78

l & On
Task 4: Create Your User ..........................................................................................................................27-79
Task 5: Test your own User.......................................................................................................................27-81

n a e
Task 6: Set Profile Options........................................................................................................................27-83
Task 7: Learn the Administrator-level Personalization UI ........................................................................27-88

t r s
Task 8: Create Administrator-seeded User-level Personalizations ............................................................27-90

e
Task 9: Test Your Administrator-seeded Personalizations........................................................................27-94
U
Task 10: Add a Tip to a Page.....................................................................................................................27-95

I n
Task 11: Add Button links.........................................................................................................................27-98
Task 12: Rearrange the Regions on a Page................................................................................................27-100

l e
Task 13: Add a Column to a Table - Analysis...........................................................................................27-102

c
Task 14: Add Column to the Table............................................................................................................27-105

r aTask 15: Reorder Table Columns ..............................................................................................................27-107


Task 16: Personalize Privacy Link Globally Across Pages .......................................................................27-108
Task 17: Disable Your Personalizations ....................................................................................................27-110

O Task 18: Using the Functional Administrator............................................................................................27-112

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xiv
Task 19: Make a Field Required................................................................................................................27-114
Lab 5..............................................................................................................................................................27-116
Task 1: Determine Which Flexfield to Set-Up ..........................................................................................27-117
Task 2: Define Descriptive Flexfield Segments ........................................................................................27-119
Task 3: Enable Descriptive Flexfield on Page ...........................................................................................27-124
Task 4: Create a new flexfield on the Non-Catalog Request Page ............................................................27-128
Task 5: Make Your Flexfield Visible to Your Responsibility ...................................................................27-131
Lab 6..............................................................................................................................................................27-133
Task 1: Set-up SQLDeveloper...................................................................................................................27-134
Task 2: Navigate Around the Database .....................................................................................................27-137
Task 3: Administer the Database ...............................................................................................................27-139
Solution – Task 2.......................................................................................................................................27-140
Solution – Task 3.......................................................................................................................................27-142
Lab 7..............................................................................................................................................................27-144
Task – Navigate the File System ...............................................................................................................27-145
Solution - Navigate the File System ..........................................................................................................27-146
Lab 8..............................................................................................................................................................27-148
Task – Administering the Server Processes...............................................................................................27-149
Solution – Administering the Server Processes .........................................................................................27-150
Lab 9..............................................................................................................................................................27-152
Task – Setting Up the Environment and Locating Utilities .......................................................................27-153
Solution – Setting Up the Environment and Locating Utilities .................................................................27-154
Lab 10............................................................................................................................................................27-157
Task 1: Allow Personalizations .................................................................................................................27-158
Task 2: Personalize the Expenses Home Page...........................................................................................27-159
Task 3: Create folders on the server ..........................................................................................................27-162
Task 4: Set the Personalization Document Root Path Profile....................................................................27-164
Task 5: Export the Personalizations to File System...................................................................................27-165
Task 6: Edit the Personalizations...............................................................................................................27-168
m y
Task 7: Change the Personalization Document Root Path Profile.............................................................27-170
Task 8: Import the Personalizations into the MDS repository...................................................................27-171
d e
c a
Lab 11............................................................................................................................................................27-173
Pre-requisites: ............................................................................................................................................27-174

A
Task 1: Copy all .class files to $JAVA_TOP ...........................................................................................27-176
Task 2: Import the Page and Region into the MDS ...................................................................................27-177

e
c l
Task 3: Register the Page within E-Business Suite ...................................................................................27-178
Task 4: Bounce the E-Business Suite Instance ..........................................................................................27-179

r a
Task 5: Test Your New Page .....................................................................................................................27-180
Task 6: Remove Your Metadata ................................................................................................................27-181
Lab 12............................................................................................................................................................27-186

O ly
Task 1: Design Your Menu........................................................................................................................27-187

l & On
Task 2: Research Your Menu ....................................................................................................................27-188
Task 3: Implement Your Function.............................................................................................................27-191
Task 4: Implement Your Menu..................................................................................................................27-192

a e
Task 5: Implement Your Responsibility ....................................................................................................27-197

n
e r
Task 6: Modify Your User and Test ..........................................................................................................27-198

s
Lab 13............................................................................................................................................................27-200

t U
Task 1: Create a New Project ....................................................................................................................27-201

I n
Task 2: Add Attributes to an Existing BC4J Object ..................................................................................27-203
Lab 14............................................................................................................................................................27-211

e
Task 1: Defaulting Attributes ....................................................................................................................27-212

l
Lab 15............................................................................................................................................................27-218

c
Task 1: Extend the BC4J Validation Logic ...............................................................................................27-219

r a
Lab 16............................................................................................................................................................27-224
Supplemental Lab 1 .......................................................................................................................................27-236

O Task 1: Create a new responsibility for iExpenses ....................................................................................27-237


Task 2: Create a new responsibility for Manager Self Service ..................................................................27-239

Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xv
Task 3: Create a new responsibility for iProcurement ...............................................................................27-240
Task 4: Create Your User ..........................................................................................................................27-241
Task 5: Test your own User.......................................................................................................................27-243
Task 6: Create User-level Personalizations ...............................................................................................27-245
Task 7: Duplicate Your User-level personalization...................................................................................27-251
Supplemental Lab 2 .......................................................................................................................................27-254
Task 1: Create a new responsibility for Sales ............................................................................................27-255
Task 2: Add the XXX Sales User responsibility to LJONES user.............................................................27-256
Task 3: Configure the Configurable Page..................................................................................................27-257
Supplemental Lab 3 .......................................................................................................................................27-268
Task 1: Use SPEL Syntax in Your Personalizations..................................................................................27-269
Task 2: Extending an Existing Region into a Page....................................................................................27-274
Task 3: Add a Region Using Url Include...................................................................................................27-277

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xvi
Preface

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xvii
Profile
Before You Begin This Course
Before you begin this course, you should be able to thoroughly perform the tasks covered
in the R12 Oracle Applications System Administration course. And, you should have
some experience with programming, Java, and J2EE programming. This course is a
programming course with approximately 50% of the course time spent in hands-on
programming labs. If you don’t have appropriate programming skills, debugging skills,
and E-Business Suite experience, especially in system administration, you will
significantly lessen your likelihood of successfully completely the course.
How This Course Is Organized
R12 Extend Oracle Applications: Customizing OA Framework Applications is an
instructor-led course featuring lectures and hands-on exercises. Online demonstrations
and written practice sessions reinforce the concepts and skills that are introduced.

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xviii
Related Publications
Oracle Publications
Title Part Number
Oracle Applications Framework - JDeveloper Check MetaLink for latest version.
with OA Extension patch

Additional Publications
• System release bulletins
• Installation and user’s guides
• read.me files
• International Oracle User’s Group (IOUG) articles
• Oracle Magazine

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xix
Typographic Conventions
What follows are two lists of typographical conventions that are used specifically within text
or within code.

Typographic Conventions Within Text

Convention Object or Term Example


Uppercase Commands, Use the SELECT command to view
functions, information stored in the LAST_NAME
column names, column of the EMPLOYEES table.
table names,
PL/SQL objects,
schemas

Lowercase, Filenames, where: role is the name of the role


italic syntax variables, to be created.
usernames,
passwords

Initial cap Trigger and


button names
Assign a When-Validate-Item trigger to
the ORD block.
m y
Choose Cancel.
d e
Italic Books, names of
c
For more information on the subject seea
courses and
manuals, and
e
Oracle SQL Reference
Manual A
emphasized

c l
words or phrases Do not save changes to the database.

Quotation marks r a
Lesson module This subject is covered in Lesson 3,
O ly
titles referenced “Working with Objects.”

& On
within a course

l
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xx
Typographic Conventions in Code

Typographic Conventions Within Code

Convention Object or Term Example


Uppercase Commands, SELECT employee_id
functions FROM employees;

Lowercase, Syntax variables CREATE ROLE role;


italic

Initial cap Forms triggers Form module: ORD


Trigger level: S_ITEM.QUANTITY
item
Trigger name: When-Validate-Item
. . .

Lowercase Column names, . . .


table names, OG_ACTIVATE_LAYER
filenames, (OG_GET_LAYER ('prod_pie_layer'))
PL/SQL objects . . .
SELECT last_name
m y
FROM employees;

d e
Bold Text that must
be entered by a
CREATE USER scott
IDENTIFIED BY tiger;
c a
user

e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xxi
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

R12 Extend Oracle Applications: Customizing OA Framework Applications Table of Contents


xxii
Introduction to Customizing
Chapter 1

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 3
Course Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 4
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 5
Agenda – Day 1

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 6
Agenda – Day 2

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 7
Agenda – Day 3

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 8
Agenda – Day 4

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 9
Agenda – Day 5

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 10
Important Terminology

my
de
ca
e A
cl
In any development, customization, extension, configuration, or installation process,
there are a lot of words that can be used interchangeably, and are defined by the

ra
context of the speakers. This is fine for conversation, but it doesn’t allow the needed
clarity for learning. For this course, there are six critically important terms that you

O ly
must understand and use properly: installation, deployment, configuration,
personalization, extension, and customization.

l & On
Installation is the process of moving E-Business Suite from the distribution media (i.e.,

na e
CD or DVD) to the host system. The complexity of the process and the tasks to
complete the move are based on the operating system (i.e., Windows, Linux, etc.) of

ter U s
the host system. Installation is only the first step of bringing up a fully functional E-
Business Suite instance. The software still needs to be configured to the specific

In
needs of the business or business unit for which it is installed. The software may also
need to be installed on multiple servers if a multi-node installation is desired.

le
Deployment is the process of moving personalizations, extensions, or customizations
c
from the development systems or servers to testing/production servers.

ra
Configuration is the process of setting the proper parameters and customer-specific

O information for a fully functional E-Business Suite instance. The requirements of


configuration are set by each of the product teams. This is the most time consuming
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 11
part of the process of bringing an E-Business Suite instance to full production. This
process is not trivial, and will involve a multiple of subject matter experts covering the
gamut of your business.
Personalizations, Extensions and Customizations are all supported. But, it is critical to
understand the scope and limitations of that support. Oracle supports the mechanics
of each of these techniques. It also provides the tools for accomplishing such actions
along with documentation on the tool. The implementation specifics for any given
personalization, extension, or customization as required by a specific customer
installation are not support beyond the mechanics, tools, and documentation support.
Personalization is the process of making changes to the User Interface (UI) from
within an E-Business Suite form/page. It is possible to make personalizations to both
Forms-based and OA Framework-based pages.
Extension is the process of making changes to the programmatic (i.e., PL/SQL or
Java) elements of an E-Business Suite form/page. It is possible to extend both Forms-
based and OA Framework-based pages.
Customization is the process of creating new forms/pages. While Oracle does provide
tools to do this (i.e., Oracle Forms and JDeveloper 10g with OA Extension), this is the
least supported option.
Customizing, a similar word to customization, is the totality of all the above processes.
When you are done, and your E-Business Suite instance is running in production, you

y
will have an instance that is customized to your business needs. And, you will have
used several of the methods listed to accomplish your customized instance.
m
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 12
Personalization vs. Extension

m y
d e
c a
e A
c l
From this page forward, we will discuss Personalizations and Extensions within the
context of OA Framework pages and applications. While it is possible to personalize

course.
r a
and extend Forms-based pages and applications, it is well beyond the scope of this

O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 13
So, What Is In This Course?

my
de
ca
e A
cl
In almost every adaptation you will make to your E-Business Suite instance, there are
multiple choices for the method to use. It is strongly recommended that you look to

ra
implement your adaptation in the order listed above. Always choose configuration over
any method. Configurations are most likely to survive patching and upgrades. If

O ly
configurations do not survive patching or upgrades, no method below it would have
survived.

l & On
The evolutionary nature of E-Business Suite requires an open mind. E-Business Suite

na e
continues to add products and functionality that was not in previous releases.
Functionality that might have even required customizations on your part to implement

ter U s
is often found in new releases. So, in those new releases, you will most likely find
yourself with a difficult decision. Do you eliminate your customization in favor of the

In
new functionality? Or, do you keep your customization, and deal with the challenges of
patching and upgrades? There are no easy answers. If possible, for the long-term

le
health of your E-Business Suite instance, it is better to move that functionality up the

c
ladder.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 14
Architectural Components of OA Framework

my
de
ca
e A
The smaller contributors are:
• Caching Framework
cl
• Oracle JDBC 10g
ra
O ly
To establish a common understanding, here are some basic definitions of the
components:

& On
• Business Components for Java (BC4J) is a component that meshes SQL
l
na e
database concepts like views, tables, and transactions into the Java world via
View Objects (VOs), Entity Objects (EOs), and Application Modules (AMs).

ter U s
• User Interface XML (UIX) is the component that allows creation of user interface
(UI) objects through use of XML. This removes the need for the programmer to

In
know various implementation details, like HTML or WML. At run-time, the generic
XML can be transformed into the necessary output. UIX is also component-

cle based, with each UI element defined as a JavaBean.


• Application Object Library for Java (AOL/J) provides a number of E-Business

ra Suite specific services, especially security. This means that OA Framework


pages implement that same user security model used in E-Business Suite.
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 15
• Metadata Services (MDS) is the delivery of XML on demand. OA Framework
page, personalizations, and BC4J substitutions are not stored in the file system
of the server. These XML components are stored and managed in MDS (tables
in the database).
• HTML is hypertext markup language, and is a standard maintained by the World
Wide Web Consortium (W3C) (http://www.w3.org). It is the language supported
by browsers.
• WML is wireless markup language, and is supported by most cell phones and
other wireless devices.
• XML is extensible markup language, and is the generic standard underneath
technologies like HTML and WML.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 16
Why Java?

m y
d e
ca
e A
c l
Java is a programming language that shares numerous features with other
programming languages, especially C and C++. This means that programmers won’t

r a
have a difficult learning curve with Java. It is also an industry standard, not a
proprietary development language like PL/SQL or Oracle Forms. Most of Java is now

O ly
open source, and Oracle has contributed many components, as open source, to the
Java community.

l & On
Object-oriented programming allows us to create the highly sophisticated, distributed,

n a e
networked applications that are in demand today. And it allows us to do so by
implementing 3 common pillars, encapsulation, inheritance, and polymorphism.

e r s
Java is robust in that it includes numerous compile-time and run-time checks to
t U
ensure that the programmer followed good programming habits. The most common

I n
practical application of this is in Java’s memory management. Java provides all the
benefits of C and C++ programmer-defined data types, while avoiding the
l e
programming errors that are common within C and C++.
c
r a
Security within Java is built-in at its core. As such, applications created in Java can’t
be invaded from outside.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 17
Finally, Java code is portable. Java code is compiled into an intermediate bytecode.
That bytecode is distributed, and it is the responsibility of an individual JVM (Java
Virtual Machine) to run that bytecode. Because JVMs exist for numerous platforms,
the bytecode can run on each of those platforms without any programmer intervention.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 18
Foundations of Java Programming

my
de
ca
e A
Encapsulation

cl
Encapsulation in Java is essentially a shield around the object. That shield protects

ra
the object from other objects looking directly into its code. In practice, this means that
if someone wants to use an object they communicate to that object via its methods.
O ly
What encapsulation does is to hide the implementation from the client who interacts

l & On
with the object via its interface. In theory, this should allow implementations to change
without adversely affecting the client. Encapsulation also allows the building of

a e
modular systems without a lot of tightly coupled interdependencies.

n
er
As an example, in a business application we might allow customers to place orders for
s
books. The customer doesn’t care how we get them their book. They only care that
t U
they get it. Internally, we might have our own warehouse, or we might drop-ship

In
directly from the printer. What we’ve done is “encapsulate” the delivery mechanism of
the book from the customer.
le
Inheritance
c
ra
Inheritance is the ability to extend a class so the new class inherits the behavior and
data of its parent while adding its own differentiating characteristics. Inheritance is

O often described as an "is-a" relationship. Subclasses (child classes) are specialized

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 19
implementations of their more generic superclasses (parent classes). For example,
assume you have a generic base class called Mammal with two subclasses:
LandMammal and MarineMammal. You then subclass LandMammal to create the new
class Cat, and subclass MarineMammal to create the new subclass Whale. A cat "is
a" mammal the same way that a whale "is a" mammal (so they share many behaviors
and characteristics), but they also have their own behaviors and characteristics: cats
purr and whales swim.
Polymorphism
In general terms, "polymorphism" refers to a component's ability to take on many
forms. In the inheritance hierarchy described above, we have a Whale class that
extends MarineMammal, which in turn extends Mammal. The single class -- Whale --
is capable of assuming three forms: Whale, MarineMammal and Mammal. Similarly,
the Cat class is a Cat, a LandMammal and a Mammal. If you were to create an array
of Mammals, for example, you could include both Cat and Whale objects since they
are both Mammals.
Now, taking this one step farther, you can also send the same message to these
related classes that may result in distinctive class-specific behavior. Suppose we were
to define an abstract method on our Mammal base class called move( ) ("abstract"
means there is no implementation for this method at this level; the implementation
must be supplied by a subclass). Then, we implement this method for our Mammal
subclasses as appropriate: cats are quadrupeds that run, trot and walk while whales

my
swim. Finally, we access the array of Mammals that we created above, and call the
method move( ) on each object. This moves the animal from point A to point B using
its species-specific method of locomotion.

de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 20
The Java Tech Stack for OA Framework

my
de
ca
e A
cl
All Java programs share a basic platform. Within Java development, we call these
shared basics the core specification.

ra
Java itself is a compact programming language. It is the APIs that account for the
seemingly endless list of objects and methods. While there are other APIs within Java,
O ly
these are the ones that are critical to us.

l & On
1. The Java 2 Platform, Standard Edition (J2SE) 1.4 API. (You can learn more
about this at: http://java.sun.com/j2se/corejava/index.jsp)
a e
2. The Java 2 Platform, Enterprise Edition (J2EE) 1.4 API (You can learn more
n
ter U s
about this at: http://java.sun.com/j2ee/index.jsp)
It is outside the scope of this course to teach you the fundamentals of Java. If you

In
need additional exposure to Java, the New to Java center (new2java) is a free
resource available at:

le
http://java.sun.com/learning/new2java/index.html

c
Java development puts together the methods and instance variables provided in the

ra
core specification APIs into common formats called J2EE Design Patterns.

O Note: Design Patterns are not specific to the language (Java, for example) used to
implement them. Design Patterns can be implemented in numerous programming

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 21
languages, but for OA Framework we choose to implement them in Java, and the
primary pattern we use is the Model-View-Controller (MVC) pattern. MVC will be
discussed in more detail later in the course.
Why patterns?
• Patterns work. Since the core requirement of any application is that it works,
having a pattern to follow that already works is a tremendous boost.
• Patterns are reusable. Templates decrease the time it takes to type in large
quantities of code. At best, it will reduce errors and cut the time it takes to
develop new applications.
• Patterns are shared. Java development patterns allow a common shared
understanding amongst various developers.
For examples of design patterns, see the book: Design Patterns -- Elements of
Reusable Object-Oriented Software by Gamma, Helm, Johnson, and Vlissides
(Addison-Wesley, 1995)
You may have heard of Java frameworks like Struts or JFC/Swing. In E-Business
Suite, we use a framework called OA Framework. OA Framework is a Java framework
that excels at creating 3-tier web-based applications that link to an E-Business Suite
instance while maintaining all the security features of that instance.
A framework is a specialized set of related classes designed to make application
development easier. In effect, a framework implements part of an application so

my
developers don't have to write all of the application code from scratch. Developers use
the framework as the basis for their work, so they can focus on the additional code

de
required to implement their specific application requirements. Frameworks can also
cooperate. For example, the OA Framework cooperates with the UIX and BC4J

ca
frameworks to provide a rich, comprehensive foundation for building web-based
applications. BC4J handles database interaction, UIX handles web beans and HTML

A
rendering, and the OA Framework "glues" these technologies together into a
seamless technology stack including application security, personalization support and
e
cl
other Oracle E-Business Suite features. Without these frameworks, a web application
developer would have to implement all of this functionality in addition to her

ra
application's behavior. Not only do frameworks make development more efficient, but
they also improve product quality. Each module is designed, developed and tested by
O ly
developers with specific areas of expertise and focus.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 22
Oracle JDeveloper 10g

my
de
ca
e A
Integrated Development Environment

cl
The add-in API architecture of the Oracle JDeveloper integrated development

ra
environment (IDE) means that all the tool components (for example, navigator, editor,
and modeler) share memory models and event systems. In this way, an update in one
O ly
tool is communicated to another tool so that the latter can refresh its image or take
other appropriate actions.

l & On
In Oracle 10g, the JDeveloper IDE is developed in pure Java. Synchronization
a e
between model and code can be set so that you can decide to work using one or the
n
other user interface.

te
Customizable Environmentr U s
In
You can customize the JDeveloper IDE and arrange its look to better suit your project
needs and programming style. To suit the JDeveloper IDE to your individual taste, you

cle
can:
• Change its look and feel

ra • Create and manipulate custom navigators

O • Customize the Component Palette

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 23
• Customize the IDE environment
• Select JDeveloper’s embedded Java EE server
• Arrange the windows in the IDE

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 24
Oracle JDeveloper 10g Components

my
de
ca
e A
Oracle JDeveloper 10g Environment

cl
Oracle JDeveloper 10g contains four major user interface components. These

and navigate your program. ra


components are what you use to edit code, design and manage the user interface,

Component Palette O ly
l & On
The Component Palette displays the components available to build user interfaces,
models, navigation diagrams, and so on.

na e
Applications Navigator and Structure window

ter U s
The Applications Navigator displays a list of files or classes in a project. The files may
be Java source files, .class files, graphics files, HTML, XML documents, and so on.

the Navigator. In
The associated Structure window shows the detailed structure of the object selected in

le
Code Editor
c
The Code (Design) Editor is where most of the work takes place; this is where you

ra
write code and design user interfaces. Open the editor by double-clicking the name of

O the file in the Navigator that you want to edit or view. The appropriate editor, code or
design, will open based on your selection.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 25
What’s in BC4J?

m y
d e
c a
e A
c l
Note: In many of the error messages generated by BC4J, you will see a reference to
oracle.jbo…. Why? Originally, BC4J was named JBO (Java Business Objects). To

structure.
r a
maintain code, those APIs have not been refactored into a newer BC4J naming

O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 26
What’s in UIX?

my
de
ca
e A
cl
UIX is an Oracle standard. But, it allows a migration path to future technologies. For
example, Java Server Faces (JSF) was chosen and developed as the standard over

ra
UIX. So, Oracle has taken UIX, implemented it as a JSF Implementation Library, and
open sourced the code. So, all the UI components migrate very easily to JSF.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 27
What’s in AOL/J?

m y
d e
c a
e A
c l
AOL/J is also responsible for managing and maintaining the application context (state)
as you navigate within and on OA Framework pages.

r a
Note: The Thin Client Framework (TCF) was a means to allow an older, Oracle
Forms-based interface to run newer java-based components from within the Oracle
Forms UI.
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 28
What’s in OA Framework?

my
de
ca
e A
cl
Note: In many of the error messages generated by OA Framework, you will see a
reference to jrad…. Why? Originally, this UI-level was called Java Rapid Application

newer naming structure.


ra
Development (JRAD). To maintain code, those APIs have not been refactored into a

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 29
What’s in the Metadata Services?

my
de
ca
e A
cl
In can not be over emphasized, unlike most objects in E-Business Suite, the OA
Framework declarative components are retrieved from the MDS. Even though the

executed.
ra
XML files may exist in the EBS file system, those are not the objects that are being

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 30
What is the MVC Design Pattern?

my
de
ca
e A
cl
The term "view" has several meanings for Oracle-based applications (such as
database view). In the case of the Model-View-Controller architecture, it helps to think

a
of the view as the "end user's view of the data".
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 31
Why Do We Use MVC?

my
de
ca
e A
cl
It is also the most popular and consistently used pattern for this type of development.
While not a standard, it is still widely used and adopted, and Oracle followed with its

a
own implementation of this pattern.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 32
The OA Framework Architecture

my
de
ca
e A
cl
In OA Framework, there is often a discussion of Client-Server. If you see this, it is not
the same as the older client-server computing with which you might be familiar. The

ra
UIX and OA Extension components, on the middle-tier, are referred to as the Client.
The BC4J components, on the middle-tier, are referred to as the Server. The OA

O ly
Controller spans the two components, and provides communication between them.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 33
Additional Resources

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 34
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 35
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Customizing
Chapter 1 - Page 36
Concepts of the MVC Design
Pattern
Chapter 2

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 3
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 4
What is a JSP Page?

my
de
ca
e A
cl
Typical JSP programming is plagued by two significant drawbacks. One, the UI is only
as good as the programmer’s ability to generate the proper HTML to generate that UI.

intensive.
ra
Two, as a follow-on, making global changes to the UI via JSPs is difficult and labor-

O ly
Example: In typical JSP programming, you might have a global footer that is included

l & On
on each page. If that footer is changed, all the pages that reference that footer must
be changed. Typically, there are no tools for doing this globally. Programmers must

na e
update each page manually. OA Framework JSPs differ substantially from this model.
The major difference is the use of UIX JavaBeans to implement the UI.

ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 5
Key JSP Application Components

my
de
ca
e A
cl
A typical JSP application involves the following components: a browser for client
access, a database for enterprise data and a web application server ("middle-tier")

ra
where the application objects live.
• The browser communicates with the middle-tier using HTTP (Hyper Text Transfer
O ly
Protocol), which involves sending a request message to which the middle-tier

l & On
replies with a response message.
• A JSP is a file with some HTML and Java code that executes top to bottom. At
a e
runtime, it is compiled into a Java class that is actually a servlet.
n
ter s
• A servlet is a Java-based web application server extension program that
implements a standard API.
U
In
• A servlet session is a mechanism for maintaining state between HTTP requests
during a period of continuous interaction between a browser and a web

cleapplication. A session may be initiated at any time by the application and


terminated by the application, by the user closing the browser, or by a period of

ra user inactivity. A session usually corresponds to an application login/logout cycle

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 6
• A JavaBean (or "bean" for short) is simply a reusable component that implements
specific design patterns to make it easy for programmers and development tools
to discover the object's properties and behavior.
• Any objects in the middle-tier that communicate with the database use a JDBC
(Java Database Connectivity) driver.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 7
What Happens at Runtime?

my
de
ca
e A
Step 1

cl
When the user selects a link, a button or an active image, the browser sends an HTTP

ra
request to the web application server for processing. For the purposes of this
introduction, we will focus on the two primary HTTP request methods (POST and
O ly
GET) that are relevant for an OA Framework application.
HTTP GET

l & On
Whenever the user clicks a link or an image with an associated URL (like
a e
http://www.yahoo.com) the browser submits a GET request.
n
ter U s
You can think of a GET as a postcard: both the address (URL) and any information
the sender wants to convey (URL parameters) are written on the card itself (which is

In
inherently space-constrained; how much can you write on a postcard?). This means
that all the information for the communication is visible externally (and in an HTTP

cle
GET, all the data sent to the server is visible as parameters on the URL).
HTTP POST

ra
Whenever the user clicks a button, image or link that performs a form submit in an OA
Framework application (see What is a Form? below), the browser submits a POST
Orequest to the server (technically, a form can be submitted with a GET, but for the

Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 8
purposes of working with the OA Framework, you can assume a form submit is a
POST).
You can think of a POST as an envelope: the address (URL) is written on the outside,
but the content within has the information the sender wants to convey. There's no limit
to the amount of information that can be stored inside the envelope. Furthermore, the
submitted data is not visible on the URL -- just as the contents of an envelope are not
externally visible (although the metaphor isn't absolutely accurate: a developer could
also add some parameters to the URL when doing a form submit).
What is a "Form?"
In simple terms, a "form" lets you collect data entered by users into "form fields," and
send that data to the server for processing.
A form is an HTML construct that groups data entry controls like fields (both hidden
and visible), poplists and so on with action controls (like buttons) that are capable of
"submitting the form." When the user selects a submit button, for example, the
browser issues a POST request which sends the form's data to the server.
Tip: People often use the terms "POST" and "submit form" interchangeably when
talking about the OA Framework.
Step 2
The HTTP listener in the web application server routes the incoming request to the
JSP. The developer's code does not know or care whether the browser issued a

my
POST or a GET. All it does is read request values to determine what to do. So, for
example, one of the request values might tell the JSP that a "Go" button had been

Step 3
de
pressed, which means it must execute a query.

ca
The JSP delegates to one or more JavaBeans that implement various behaviors
including database interaction. Once they have completed their work, the JSP
A
prepares the appropriate HTML content to send back to the browser in the response.

e
cl
Note: We included the JavaBeans in this example just to make the point that in an
application of any complexity -- and modularity -- the JSP does not do the application

ra
work on its own since you should not combine model, view and controller code in the
same file. However, there is no absolute technical requirement for the JSP to work
O ly
with any other Java classes, and if it does, there is no requirement that these classes
be JavaBeans.
Step 4
l & On
a e
The browser displays the HTML it received in the response.
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 9
What Happens from the Start?

m y
d e
ca
e A
c l
While it may seem trivial, just seeing the Login page indicates a lot of very good
information. If you see this page, it means the following:

r a
1. The database for your Applications instance is UP.
2. The TNS listener for your Applications instance is UP.
O ly
3. All of the critical Applications services, especially middle-tier services like HTTP

& On
Listeners, OC4J Servers, and other processes are UP.
l
with each other.
n a e
4. Most importantly, all of those processes listed above are properly communicating

t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 10
What Happens from the Start?

my
de
ca
e A
cl
Assuming you have correctly logged in to the Applications instance, a whole bunch of
other things have now occurred. Those processes are as follows:

ra
1. When you logged in with your username and password, that username and
password you entered was checked against valid users and passwords in the
O ly
Applications instance. All of the communication of this sensitive data was

l & On
encrypted. And, you would not see the Navigator (or Personal Home Page) if you
did not enter a proper username and password.

a e
2. Once your username and password were checked and authorized, a SESSION
n
er
was created for you in the database. And a special item, called a SESSION
s
COOKIE, was passed to your browser. This SESSION and SESSION COOKIE
t U
combination ensure that you are who you say you are. Why is this important? It

In
prohibits Applications users from cut-n-pasting URLs or bookmarking URLs to
ensure proper security. From now on, every time you do something within

cle Applications, the SESSION COOKIE on your browser will check itself against the
SESSION in the database just to make sure your are secure.

ra 3. As an additional note on security, the SESSION and SESSION COOKIE have

O timeouts. What that means is that they are only valid for a specific period of time.
In fact, there are two timeouts that should interest you. The first timeout controls
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 11
how long you can remain IDLE. In other words, how long can you go between
interactions with the server? This is important for performance of the servers, not
security. The second timeout is a maximum limit, called a SESSION LIMIT. It
simply says that after the session limit has expired (the default is 4 hours, but
various systems can change this to longer or shorter periods of time), you MUST
login again to the system. This timeout is important for security reasons.
4. Now you see the Navigator (the Personal Home Page). What has happened to
see this? The Application looked at the username you entered. And, it did the
following:
1. It read all the responsibilities that were assigned to your username.
2. For each responsibility, it looked at the Menu that was assigned to that
responsibility and any menu items that were specifically excluded from the
menu assigned to you.
3. For each menu, it read all of the individual submenus and functions that
were assigned to that menu. A function is an individual Forms (traditional)
page, a web-based (OA Framework) page, or a means of doing a security
check (a securing function).
4. After reading all of this data for your username, the Applications knows
precisely what data and pages you can and can not see. In other words, it
can enforce proper security to limit what you can do.
5. Finally, now that it understands what you can and cannot do, it puts up a list of all
the functionality to which you have access. The user, SYSADMIN, which is
shown in the image above, has quite a broad range of functionality assigned to
m y
them.
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 12
What Happens from the Start?

my
de
ca
e A
cl
Let’s assume that you pick one of the items in the Navigator. In this example, assume
you picked the System Administration responsibility. This responsibility has a complex

a
menu made up of numerous submenus and individual pages.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 13
What Happens from the Start?

my
de
ca
e A
cl
Some responsibilities have simple menus that include only one page. In this case, the
example above assumes you selected the Functional Administrator responsibility.

page. ra
Whether the menu is simple or complex, the menu will eventually lead to an individual

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 14
What Happens from the Start?

my
de
ca
e A
cl
In some cases, the responsibility selected will utilize Oracle Forms-based pages. This
is an older technology, and is beyond the scope of this course. It is also a technology

a
that is being replaced with OA Framework-based pages.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 15
What Happens from the Start?

my
de
ca
e A
cl
This is an OA Framework-based page. If you compare that with the Forms-based
page on the previous slide, you will see that there are obvious visual differences in the

ra
two types of pages. While the visual differences are dramatic, the functionality that you
can achieve with either is comparable.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 16
Behind the Scene

my
de
ca
e A
cl
Just getting to the point that an OA Framework page is loaded and visible is a major
accomplishment. The slides that follow outline what has occurred.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 17
Behind the Scene

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 18
Behind the Scene

my
de
ca
e A
cl
Personalizations add themselves like onion-layers to a page. The order in which those
layers of personalization are applied is as follows:
• Base page
• Function-level ra
• Location-level O ly
• Site-level
l & On
• Organization-level

n
• Responsibility-levela e
er s
Each progress layer up the hierarchy includes all the changes beneath it, plus any
t U
changes that it adds to the mix. Understanding this hierarchy is important to

In
debugging unusual behavior.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 19
Behind the Scene

my
de
ca
e A
cl
In order to read the AM, there are a couple of files the page will need to find. Those
files will be stored on the server in a location referred to as $JAVA_TOP. In this case,
the AM related files are:
ra
1. <AMName>AM.xml (this is the XML-based definition of the AM. While it is XML-
O ly
based, it is not stored in the MDS.)

l & On
2. <AMName>AMImpl.class (this is the Java-based programmatic capability of the
AM. The XML-based capabilities are limited. In most cases, the needed
a e
capabilities of the AM have to be programmed in Java to accomplish their task.)
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 20
Behind the Scene

my
de
ca
e A
cl
The VOs are, like the AM, stored in $JAVA_TOP. The VO related files are:
1. <VOName>VO.xml (this is the XML-based definition of the VO. While it is XML-

ra
based, it is not stored in the MDS.)
2. <VOName>VOImpl.class (this is the Java-based programmatic capability of the
O ly
VO. The XML-based capabilities are limited. In most cases, the needed

l & On
capabilities of the VO have to be programmed in Java to accomplish their task.)
3. <VOName>VORowImpl.class (this is a pre-generated Java-based file. It needs to
a e
be present, but rarely, if ever, is anything actually done with this pre-generated
n
file.)

ter U s
There may be multiple VOs, each with their set of files. There are also view-level

In
BC4J objects that may be referenced called View Links (VLs). VLs are the means by
which VOs can be joined.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 21
Behind the Scene

my
de
ca
e A
cl
The EOs are stored in $JAVA_TOP. The EO related files are:
1. <EOName>EO.xml (this is the XML-based definition of the EO. While it is XML-

ra
based, it is not stored in the MDS.)
2. <EOName>EOImpl.class (this is the Java-based programmatic capability of the
O ly
EO. The XML-based capabilities are limited. In most cases, the needed

l & On
capabilities of the EO have to be programmed in Java to accomplish their task.
Specifically, any data INSERTs, UPDATEs, DELETEs, or unique business logic
a e
validations (individual fields or multi-field) must be in this code.)
n
r s
There may be multiple EOs, each with their set of files. There are also entity-level

e
BC4J objects that may be referenced called Association Objects (AOs). AOs are the
t U
means by which EOs can be joined. There are also objects like Entity Experts,

In
Validation AMs (VAMs), and Validation VOs (VVOs) to name some others.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 22
Behind the Scene

m y
d e
ca
e A
c l
There is a much more in-depth discussion on the details of page processing later in
the course. Additionally, a detailed discussion of State Management (i.e., the overall

a
management of the transaction) also occurs later.
r
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 23
Behind the Scene

my
de
ca
e A
cl
The COs are, like the AM, stored in $JAVA_TOP. The CO related file is:
<COName>CO.class (this is the Java-based programmatic capability of the CO. For

ra
controllers, there is no XML-based definition. Any UI-capabilities beyond the things
accomplishable by the Pages themselves will require the CO to accomplish the task.
O ly
The most common such tasks are:)

l
• Initiating data queries.& On
• Generation of dynamic UI items (like dynamic window-titles).

na e
• Responses to button-clicks and icon-clicks by the user.

ter U s
• Note: There are two methods in the CO. One method is run when the page is
loading (processRequest()). The other method is run when the page is

In
responding to an event (processFormRequest()).
There may be multiple COs, each with a class file. While discussed in this course,

le
COs are not extensible objects within OA Framework pages. Any deeper discussion of
c
COs is beyond the scope of this course.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 24
Behind the Scene

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 25
Behind the Scene

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 26
Behind the Scene

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 27
Logical Components of an OA Framework Page

my
de
ca
e A
Event Handling:

cl
In traditional client/server applications, you have the option of handling events ranging

ra
in granularity from very low-level mouse movements to field, region and finally,
window-level scope. Furthermore, when you communicate from the client to the
O ly
server, you can send a single value to be validated back to the server while expecting

l & On
a single validation result back. You can then modify the user interface accordingly,
which allows for a highly interactive experience for the user.

na e
In a web application, you essentially handle "page-level" events (unless you are using
JavaScript extensively to create a more interactive experience, and since the OA

ter U s
Framework Coding Standards and Oracle Browser Look and Feel (BLAF) UI
Guidelines prohibit this, we will not consider it here). In this case, as users navigate

In
from field to field and enter data, there are no events for you as a developer to handle.
When the browser finally sends a request as described above, all the page data is
le
sent in that single communication -- including any user-entered values and information
c
about what actions the user wants to perform. The developer reads request values to

ra
determine what happened (if the user pressed a button, which one was it?), does
whatever work is required by the selected action, and then transmits a new HTML
Opage back to the browser.

Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 28
What is the MVC Design Pattern?

my
de
ca
e A
cl
The term "view" has several meanings for Oracle-based applications (such as
database view). In the case of the Model-View-Controller architecture, it helps to think

a
of the view as the "end user's view of the data".
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 29
Model: Business Components for Java

my
de
ca
e A
components.
cl
In general, the following definitions are useful as quick references to BC4J

ra
• The AM is the transaction container.
• EOs are the tables and the business rules.
O ly
• VOs are the queries / SELECT statements.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 30
Model: Application Modules

my
de
ca
e A
cl
An AM must explicitly contain a VO. But, EOs and other objects are indirectly
contained in the AM via their association to the VO and the objects the VO needs.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 31
Model: Entity Objects

my
de
ca
e A
cl
There should be one EO per table, and that EO should be the means by which all
business rules are implemented on that table.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 32
Model: View Objects

my
de
ca
e A
cl
Here is a quick rule to remember. While code reuse for most objects is a desirable
trait. It is far more important for VOs to run quickly and minimize their memory impact

and avoid VO reuse.


ra
to the middle-tier. So, in general, you should develop specific VOs for specific needs,

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 33
View: OA Framework-Based Page

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 34
View: Java Objects in a Page

my
de
ca
e A
cl
By referring to UI objects, instead of the code to create those UI objects, the UI
objects can change in their underlying implementation without requiring changes to

a
multiple pages of OA Framework code.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 35
View: A Framework Example

my
de
ca
e A
l
These are just examples of some of the JavaBeans that construct the UI for this page.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 36
View: Page Hierarchy

my
de
ca
e A
cl
Unlike the previous pages, this page shows the UI from within JDeveloper. OA
Framework pages use a hierarchical layout. The order in which an object appears in

a
the hierarchy is the order in which it appears on the page.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 37
Controller: Controlling UI Behavior

my
de
ca
e A
cl
In general, a controller does two things.
• Responds to the drawing of the page (GET).

ra
• Responds to events (like button clicks) on the page (POST).

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 38
OA Framework MVC Summary

my
de
ca
e A
standard HTML.
cl
At the browser level, an OA Framework page, like any other web page, renders as

ra
In the middle-tier, however, this page is implemented in memory as a hierarchy of
Java beans -- very much like a classical Java client UI. Each UI widget, such as
O ly
buttons, a table, the tabs, the application branding image and so on, that renders in

l & On
the page corresponds to one or more web beans in the hierarchy.
When the browser issues a request for a new page, OA Framework reads the page's
a e
declarative metadata definition to create the web bean hierarchy. For each bean with
n
er
an associated UI controller, OA Framework calls code that you write to initialize the
s
page. When page processing completes, OA Framework hands the web bean
t U
hierarchy to the UIX framework so it can generate and send HTML to the browser.

In
When the browser issues a form submit (if, for example, the user selects a search

le
region's Go button), OA Framework recreates the web bean hierarchy if necessary
(the hierarchy is cached between requests, and typically needs to be recreated only in
c
ra
exceptional cases that we'll discuss in detail later), and then calls any event handling
code that you've written for the page beans. When page processing completes, the

O page HTML is generated again and sent to the browser.

Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 39
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Concepts of the MVC Design Pattern


Chapter 2 - Page 40
Basics of the Model
Chapter 3

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 3
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 4
Model-layer BC4J Objects

m y
d e
ca
e A
Remember two things:

c l
• The Root AM is just the first AM for a page. It contains the transaction and all the
connection objects.
r a
• The Root AM explicitly contains the VOs. All other objects are contained via their
association to the VOs. O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 5
Encapsulation The “Reuse Onion”

m y
d e
c a
e A
'Client' / 'Server' Code Separation

c l
Within the Model-View-Controller architecture, OA Framework draws a clear

r a
distinction between client and server classes, a distinction that on the surface may
seem to conflict with JSP application architecture. A typical JSP application has 3
physical tiers:
O ly
l & On
• The browser (the client where our HTML renders and users interact with the UI)
• The web application server (the middle tier where our UI web bean hierarchy is
a e
constructed and our application business logic executes)
n
• The database server

t e r U s
Within the middle tier, OA Framework draws a further distinction between client and

I n
server classes as follows:
• Client classes (View and Controller code) drive the HTML user interface

l e
• Server classes (Model code) supports any client (not just OA Framework) user
c
interfaces

r a
This distinction is important because it preserves the ability to use server code with

O different clients.

Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 6
General Reuse Rules

my
de
ca
e A
cl
Note about JDBC: It is not recommended or supported to included JDBC calls in OA
Framework because of connection pooling. BC4J, through the Root AM, pools its

ra
connections to the database, and manages those connections to provide consistent
performance on the middle tier. If you call JDBC directly, your code can cause

O ly
memory and connection leaks, which will ultimately produce bad performance and
server crashes.

l & On
JDBC is the Java Database Connectivity API. It is a J2EE API that provides a way for

a e
Java programs to access one or more sources of data.

n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 7
Recommended Build Approach

my
de
ca
e A
l
Steps 1, 2, 6, and 7 are the steps that deal directly with Model layer components.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 8
Business Component (BC4J) Packages

m y
d e
ca
e A
c l
The JDeveloper 10g process changed from the JDeveloper 9i process. In 9i, you
explicitly created BC4J packages. In 10g, BC4J packages are create inherently from
the BC4J object creation.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 9
BC4J Package Naming Standards

my
de
ca
e A
cl
Naming Standards are not enforced on customers. These standards are simply what
Oracle uses. Like any standards, they evolve over time. If you encounter objects that

ra
don’t adhere to any given naming standard, chances are those are older objects
adhering to an older naming standard that is no longer used.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 10
Application Modules

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 11
Application Modules

my
de
ca
e A
l
AMs communicate with Controllers and VOs.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 12
Application Modules

my
de
ca
e A
cl
Transactions then get connections from a connection pool, and those connections are
reused and recycled to increase performance and reduce resource requirements on
the middle tier.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 13
Transaction Object

my
de
ca
e A
cl
While the AM holds all the EOs, the EO and EO-related objects are not explicitly
declared as belonging to the AM, unlike VOs that are explicitly declared.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 14
Application Module Files

m y
d e
ca
e A
c l
Most BC4J objects follow this format, a declarative (XML) component with a
programmatic (Java) component. It is worth stating that the XML component for BC4J
objects is not stored in the MDS.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 15
Entity Objects

my
de
ca
e A
cl
The general rule is one EO per table. Although in some cases, one EO may represent
several tables. But, those are unusual circumstances.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 16
Entity Objects

m y
d e
c a
e A
c l
No Oracle created object will contain custom methods. And, the preferred method of
implementing custom methods is to extend an EO.

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 17
Entity Object Creation Standards

my
de
ca
e A
l
Why all columns? Simply because you only want one EO per table.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 18
Entity Object Automatic Features

my
de
ca
e A
cl
Composite associations control when validation business logic (declarative validation
or program code in the entity objects) fires for the parent as opposed to the child.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 19
Entity Object Files

m y
d e
ca
e A
c l
Most BC4J objects follow this format, a declarative (XML) component with a
programmatic (Java) component. It is worth stating that the XML component for BC4J
objects is not stored in the MDS.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 20
View Objects

m y
d e
ca
e A
c l
It is an oversimplification to state that a VO is a SELECT statement. A VO is an object.
The object represents both the data (the SELECT), and the operations (methods) you

r a
can perform on that data (gets/sets/validations). Most VOs are defined declaratively,
but there are even methods to programmatically create and alter VOs at run-time.

O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 21
View Objects

my
de
ca
e A
cl
The VO allows us to do the action most often performed, a query, without the
overhead of a full EO. This significantly increases the performance of OA Framework
pages.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 22
View Objects

my
de
ca
e A
l
You should never put business logic in your view object.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 23
View Object Creation Methods

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 24
ExpertMode View Objects

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 25
View Objects with Entity Objects

m y
d e
c a
e A
c l
EOs are the objects through which we insert, update, and delete data. VOs are the
objects through which we query (select) data. This causes a natural disconnect of

r a
sorts. If you have a VO based on an EO, what is that VO capable of doing? A VO
mapped to updateable EOs allows the actions on the EO to occur through the VO.

O ly
VOs mapped to reference EOs are using those EOs just for query purposes, generally
a foreign key of some sort.

l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 26
View Object Rows

my
de
ca
e A
cl
Unlike the SELECT statement itself, VOs have a means by which to iterate through
each returned row. But, there are performance implications, and your VO should be as

ra
precise as possible to return the fewest number of records. And, you should consider
a limit beyond which you VO should not return any additional rows. The default in OA
Framework is 200 records.
O ly
l & On
This default behavior is controlled by a profile option, FND: View Object Max Fetch
Size (VO_MAX_FETCH_SIZE). Changing this profile option should not be done

na e
lightly. If this value is increased, it will increase the memory requirements of the JVMs
running on the middle tier, and it will impact the performance of the servers. The

ter U
be aware of the consequences.s
business requirements of your application may require you to increase the value. But,

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 27
Creating View Objects

m y
d e
c a
e A
c l
Note: Also be aware that if you create a query in Expert Mode, and then toggle out of
Expert Mode, all of your SQL changes are lost.

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 28
View Object Java Files

my
de
ca
e A
cl
The ViewRowImpl class should always be created for two reasons. One, it is the
iterator that allows you to step through the individual rows of the VO. Two, it generates

ra
the get/set methods for the VO. Merely creating the get/set methods doesn’t gain
anything, but it does allow others to extend those methods should the need arise.

O ly
Note: On this same page of the wizard, there is an Object Definition class

l & On
(ViewObjDefImpl) that can also be selected (created). What is this? An Object
Definition class allows for the run-time creation of the definition of a VO object. If this

na e
sounds indirect, it is. While it preserves a pure object-oriented model, it doesn’t
perform or scale properly. These objects are not used in OA Framework pages. Even

ter U
performance characteristics. s
in non-OA Framework pages, they are seldom used because of their poor

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 29
View Object Files

m y
d e
ca
e A
c l
Most BC4J objects follow this format, a declarative (XML) component with a
programmatic (Java) component. It is worth stating that the XML component for BC4J
objects is not stored in the MDS.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 30
BC4J Database Interactions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 31
Non-BC4J Method

my
de
ca
e A
cl
This method chooses object-oriented purity over performance. While ideal in a
theoretical sense, performance is always, in the eyes of the end-user, a priority over
programming methodology.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 32
Read-only Queries

my
de
ca
e A
cl
Entity objects are not required for read-only queries. So, BC4J breaks the Entity
encapsulation for View Objects. This is done for significant performance improvement
reasons.
ra
Note: While the diagram shows one row, one VO can potentially fetch multiple rows
during its query.
O ly
l & On
Note: The difference between a read-only query and an initial query is nothing at this
point. Underlying the process is the definition of the VO. If the VO has no associated
a e
EO, it is read-only. If the VO has been defined with an associated EO, then the first
n
ter
step is an initial query.

U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 33
Step 1: Initial Query

my
de
ca
e A
cl
Note: The difference between a read-only query and an initial query is nothing at this
point. Underlying the process is the definition of the VO. If the VO has no associated

step is an initial query.


ra
EO, it is read-only. If the VO has been defined with an associated EO, then the first

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 34
Step 2: Entity Object Population

my
de
ca
e A
cl
The query can bring back many view object rows (the result set or row set) in a single
fetch from the database. Each view object row corresponds to an entity object (entity

ra
object instance). If the view object is based on an entity object, entity objects are
found or instantiated by primary key (PK) for each VO row. No data is preserved in the

O ly
VO-layer except for those columns that are SQL-derived or transient, because those
objects are only found in the SELECT and/or VO definition.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 35
Step 3: Entity Object Reuse

m y
d e
c a
e A
EO
c l
The 2nd VO Row uses less memory since it references and reuses the same Supplier

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 36
Step 4: Entity-derived Attributes

my
de
ca
e A
cl
Entity-Derived attributes are useful for calculations owned by the Entity and shared by
multiple VOs. But, entity-derived attributes are only calculated when demanded. When

rendering to the browser.


ra
is that? When the VO attempts to bind the entity-derived attribute into the UI for

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 37
Step 5: Entity Object Fault-in

my
de
ca
e A
l
Missing attributes are faulted-in on demand during EO validation.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 38
Step 6: Entity Object References

my
de
ca
e A
cl
Here is the scenario. Assume you have an Association Object that connects the two
Entity Objects. Initially, the VO queries the data, transfers it to the EO. Then, during

ra
interaction with the end-user, they assign a different SupplierId. This requires that a
new Entity Object row in the cache that currently is not there. In these scenarios, the

O ly
VO marks all reference EO (Supplier) attributes as read-only. And, you cannot change
the primary key of the reference EO. You must change the foreign key attributes,

l & On
which will result in the fault-in of the EO-layer data from the database.

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 39
EO/VO Merge

my
de
ca
e A
cl
An EO/VO merge occurs whenever an EO already exists in memory, containing
original or modified values, and a new VO is queried containing data for the EO. The

ra
EO is the transaction cache, and the values need to be resolved before the VO can
properly bind the correct value to the UI.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 40
Step 1: EO/VO Merge Resolution

my
de
ca
e A
cl
Note: Other users do not see the changed value until it is saved to the database. The
EO/VO merge only applies to data within that user’s current session.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 41
Step 2: EO/VO Merge Resolution

my
de
ca
e A
during rendering.
cl
After query and the EO/VO merge, the VO will then bind the correct value to the UI

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 42
Other Model-layer Objects

m y
d e
c a
e A
c l
We will cover Association Objects (AOs) and View Links (VL) in this lesson. Entity
Experts, Validation Application Modules (VAMs), and Validation View Objects (VVOs)

objects exist.
r a
will be defined later in the course. At this point, it is sufficient to simply know that these

O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 43
Association Objects

my
de
ca
e A
l
Association Objects are the way to implement foreign keys at the EO-layer.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 44
Association Objects

m y
d e
c a
e A
c l
Composition - A strong association where the source entity object owns the
destination entity object. In other words, the destination cannot exist independent of its

r a
source. For example, a purchase order header is comprised of purchase order lines,
which have no meaning or life span outside the context of their header.

O ly
Reference - A weak association where the source entity object only references the

l & On
destination entity object. For example, a purchase order header references a supplier,
but the supplier can still exist regardless of whether a purchase order references it or
not.

n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 45
Reference Association Objects

m y
d e
c a
e A
This is the default behavior for AOs.

c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 46
Composition Association Objects

my
de
ca
e A
l
This has to be specifically indicated in the EO.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 47
Composition Association Object Behavior

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 48
View Links

my
de
ca
e A
cl
Note: While it is possible to create View Links (VLs), they are seldom-used objects.
Why? If you application is doing any data manipulation, you will be using Association

ra
Objects (AOs) instead of VLs. If you are doing read-only, it is far easier to either put
the join into the SELECT statement that defines the VO. Or, create a database view

O ly
that has your join, and base you VO on that database view.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 49
View Links

m y
d e
ca
e A
View Links

c l
Use view links sparingly. See the OA Framework Developer's Guide for more
information.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 50
Entity Experts

my
de
ca
e A
cl
The entity expert is a singleton defined to be a special affiliate of a business object
(either the top entity object in a composition, or a standalone entity object). It includes

ra
common code called by the owning business object, or simple validation routines
called by other entity objects that don't want the cost of instantiating the entity object

O ly
itself. For example, a PurchaseOrderHeaderEOImpl class doesn't want to instantiate a
whole SupplierEOImpl class just to find out if the supplierId foreign key it's about to set

l & On
is valid. Instead, it calls an isSupplierIdValue(Number supplierId) method on the

a e
supplier's entity expert singleton -- a much lighter weight operation.

n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 51
Validation AMs and Validation VOs

my
de
ca
e A
cl
When you implement business logic in your entity objects, you will frequently find that
you need to execute some simple SQL statements, and not just for pure validation

ra
purposes. For example, a purchase order header has many lines. Each line is
assigned a unique line number. This number is defined as the current maximum line

O ly
number for the entire purchase order + 1. At runtime, we need to query the database
to find out what the maximum line number is for a given purchase order header:

l & On
SELECT MAX(LINE_NUMBER) FROM FWK_TBX_PO_LINES WHERE
HEADER_ID = :1;

na e
er
Whenever you need to execute SQL like this, you can create a view object
s
dynamically from a SQL statement, or you can predefine a declarative view object for
t U
it. That being said, OA Framework Coding Standards require that you use the

In
declarative strategy in this case since it is more performant: a view object is cached in
its respective application module, which allows entity object code to reuse it (and the

le
underlying JDBC prepared statement) by simply rebinding and re-execute the query.
c
This is an important performance benefit since validation routines are called

ra
repeatedly.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 52
Predefined view objects must be assigned to an application module so that they can
be accessed at runtime. In other words, view objects do not exist outside the context
of an application module.
Since entity objects (and their associated validation view objects) can be shared by
multiple UI clients (and the root application modules should be considered UI-specific),
it is not appropriate to use the root application module for a particular page to hold
your validation view objects. Instead, to group these utility view objects into
meaningful, reusable units, create a validation application module per business object
to hold them. A business object is defined the top-level entity object in a composition,
or a single entity object if it stands alone.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 53
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Model


Chapter 3 - Page 54
Basics of the View
Chapter 4

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 3
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 4
Recommended Build Approach

my
de
ca
e A
l
Steps 4 deals directly with View layer components.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 5
View-layer Terminology

my
de
ca
e A
cl
Be careful with terminology, and always try to understand the context. As an example,
a property in one context may or may not mean the same thing as a property in a
differing context.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 6
View-layer Terminology

m y
d e
ca
e A
c l
Simplest Possible Expression Language (SPEL)
For selected properties, the OA Framework supports the use of SPEL expressions to

r a
quickly bind the property to an underlying data source that provides the property's
value. For example, you could bind the Rendered property of a button to a view object
O ly
attribute to ascertain whether it should be hidden or shown when the page renders.

l & On
The SPEL syntax for this property looks like:
${oa.<ViewInstanceName>.<ViewAttributeName>}

n a e
${oa.FunctionSecurity.<FunctionName>}

t e r U s
Note: SPEL is defined in JSR-52, which is maintained by the JCP (Java Community
Process). You can download more information on SPEL, and the types of expressions
possible in SPEL at:
I n
http://jcp.org/aboutJava/communityprocess/final/jsr052/index2.html

c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 7
Workspaces and Projects

my
de
ca
e A
run OA Framework pages.
cl
Workspaces and Projects are just containers for JDeveloper, and are not needed to

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 8
Step 1: Create a Page

my
de
ca
e A
l
(Menu) File > New > Web Tier > OA Components > Page

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 9
Step 2: Name Your New Page

my
de
ca
e A
cl
By E-Business Suite Development standards, all pages end in PG. While not
mandatory for your pages, it is strongly recommended that you follow all of the E-

maintainability of your pages.


ra
Business Suite Development naming standards to ensure interoperability and

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 10
Step 3: View Page’s Initial Structure

m y
d e
ca
e A
c l
The structure is shown in the Structure panel within JDeveloper. By default, the
Structure panel is in the lower-left corner of the JDeveloper window.

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 11
Step 4: Modify the Page’s Structure

my
de
ca
e A
cl
By E-Business Suite Development standards, the first region, initially named region1,
should be modified to set its properties as follows:

standard.) ra
• ID must be PageLayoutRN. (This is an E-Business Suite Development naming

O ly
• Region Style must be pageLayout.

l & On
• The pageLayout region must be the first region of a page. (The page is created
by default to adhere to this.)

na e
• AM Definition must be set to a defined AM.

• Title must be set.


ter
• Window Title must be set.

U s
In
• Autofooter must be set to True.

cle
• Form must be set to True.
Note: Both XML and Java are case-sensitive.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 12
Running the New Page

my
de
ca
e A
cl
Notice that with essentially nothing more than a blank page, you already have
something that looks like an OA Framework page in an E-Business Suite instance.

ra
How? Since OA Framework is built in Java, and one of Java’s core principles is
inheritance, the objects that you create already get certain added components. For

O ly
example, in the page, note the following:

l & On
• The page has the R12 look and feel, especially the color scheme.
• There is a corporate branding image, the Oracle logo in the upper left.
a e
• There is a header line with options, Home, Logout, and Preferences.
n
ter U s
• There is a footer link with options, Home, Logout, and Preferences.
• There is a Privacy Statement link.

In
• There is a Copyright statement

cle
All of these come not from something you specifically did, but through inheritance.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 13
What Can You Add to the Page?

my
de
ca
e A
Shared Region object.
cl
A Shared Region is simply a region with the Extends property set to the name of the

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 14
Region Styles

my
de
ca
e A
cl
It is absolutely critical that you begin to familiarize yourself with the OA Framework
Developer’s Guide (OAFDG). The OAFDG comes in the patch that contains the

ra
JDeveloper with OA Extension version that you are using for your development. In
Chapter 4: Implementing Specific UI Features of the OAFDG, there is a detailed

O ly
discussion of each of these region types, along with other UI features.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 15
Sub-Region Styles

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 16
Named Children vs. Indexed Children

m y
d e
ca
e A
The named children are as follows:
• location
c l
• copyright
r a
• userInfo
• inContextBranding O ly
• productBranding
l & On
• returnNavigation

n a e
• pageStatus
• footnote
t e r U s
• contentFooter
I
• corporateBranding n
l e
• quickSearch
c
• privacy

r a
• flexibleContents

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 17
By default, the corporateBranding named child is set automatically when the page is
created. The corporateBranding named child is set with default characteristics, but you
can change this as desired.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 18
Item Styles

my
de
ca
e A
cl
It is absolutely critical that you begin to familiarize yourself with the OA Framework
Developer’s Guide (OAFDG). The OAFDG comes in the patch that contains the

ra
JDeveloper with OA Extension version that you are using for your development. In
Chapter 4: Implementing Specific UI Features of the OAFDG, there is a detailed

O ly
discussion of each of these item types, along with other UI features.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 19
Item Style Details

m y
d e
c a
e A
c l
Message beans are components that are capable of displaying associated error,
warning or information icon(s) with an explanatory message (for example, if a user

r a
enters the wrong value in a text input field an error icon renders next to its prompt).
Typically message beans either display or accept data values (as opposed to
boilerplate text, for example).
O ly
l & On
If you use the region style messageComponentLayout to contain your message
beans, and you want to add some other type of bean such as a submitButton item,

first.
n a e
you must insulate or encapsulate the non-message bean in a messageLayout region

t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 20
For example:
• messageComponentLayout
- messageTextInput
- messageStyledText
- messageLovInput
- messageLayout
submitButton
- messageTextInput

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 21
Item Style Details

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 22
Shared Regions

my
de
ca
e A
cl
Shared Regions are an important tool to ensure a consistent look and feel, while
minimizing the cost and time to make changes to a page.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 23
Shared Regions

my
de
ca
e A
cl
Shared Regions are an important tool to ensure a consistent look and feel, while
minimizing the cost and time to make changes to a page.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 24
Attribute Sets

m y
d e
ca
e A
(Extends property).
c l
Property values can be inherited from either attribute sets or extended objects

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 25
Creating Attribute Sets

my
de
ca
e A
cl
Not all properties should be set via an attribute set. Check the OA Framework
Developer’s Guide for standards and guidelines.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 26
Attribute Set Standards

m y
d e
c a
e A
costs.
c l
By using Attribute Sets, Oracle significantly reduces development and translation

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 27
Table Column Template

my
de
ca
e A
(Extends property).
cl
Property values can be inherited from either attribute sets or extended objects

ra
Note: Just because JDeveloper allows you to set all the properties, it does not mean
that you could or should do so. Please note that the attribute set template specifically
O ly
limits the properties to the item type.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 28
Button Template

my
de
ca
e A
(Extends property).
cl
Property values can be inherited from either attribute sets or extended objects

ra
Note: Just because JDeveloper allows you to set all the properties, it does not mean
that you could or should do so. Please note that the attribute set template specifically
O ly
limits the properties to the item type.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 29
Region Header Template

my
de
ca
e A
(Extends property).
cl
Property values can be inherited from either attribute sets or extended objects

ra
Note: Just because JDeveloper allows you to set all the properties, it does not mean
that you could or should do so. Please note that the attribute set template specifically
O ly
limits the properties to the item type.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 30
CSS Styles

my
de
ca
e A
cl
Be careful with CSS changes. One small CSS change, because it is shared and used
across all OA Framework pages, can have a dramatic impact on the page. If not

a
planned and executed properly, that change can have unintended consequences.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 31
Common CSS Styles

my
de
ca
e A
l
See the OA Framework Developer’s Guide for more on these common CSS styles.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 32
Common CSS Styles

my
de
ca
e A
l
See the OA Framework Developer’s Guide for more on these common CSS styles.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 33
Extending Other Objects

my
de
ca
e A
cl
When you extend an UI object, you are setting the Extends property of that UI object.
This uses the same terminology as Java uses when it extends a java object. While

a
identical in concept, the implements are quite different.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 34
Destinations and Links

m y
d e
ca
e A
c l
Whenever you programmatically or declaratively navigate to a page that is not
included in your navigation menu, you should use the page name (page=/...) syntax

r a
instead of a function (OAFunc=...). Whenever you navigate to page whose navigation
function is included in the navigation menu, you may use the navigation function as
shorthand.
O ly
l & On
We have opted to consistently use the page=/... syntax in the labs.
We are going in this direction to help underscore the important difference between a
a e
"navigation" function, and a "securing" function. The page=/... syntax has nothing to
n
e r
do with page security, and the OAFunc=... syntax has nothing to do with navigation.
s
The function syntax is the older way of doing navigation and security combined.
t U
Note that the Destination URI property is only available on some item types, such as

I n
messageStyledText, but not on others such as messageTextInput.

c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 35
Mailto Links

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 36
Lists of Values (LOVs)

m y
d e
ca
e A
c l
Be aware of the limits of LOVs and other UI objects. Not every region type is capable
of containing an LOV, even if you can add that LOV within JDeveloper. OA Framework

more information.
r a
may simply refuse to display the object. See the OA Framework Developer’s Guide for

O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 37
Lists of Values (LOVs)

my
de
ca
e A
the poplist in the LOV window.
cl
Fields E, F, and H have their Search Allowed property set to True, so they appear in

ra
Field A (with the search icon) on the base page is the LOV field. The LOV field must
have both criteria item and return item LOV mappings. The other fields in the base
O ly
page can only be either criteria or return items. If a field other than the LOV field

l & On
provides criteria, that criteria must be an exact match to a column in the LOV results
table. While the diagram shows the criteria field D and the results column H as hidden

a e
fields, they can be hidden or displayed fields.

n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 38
Defining an External LOV

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 39
Defining an External LOV

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 40
Reading Model Data

my
de
ca
e A
cl
Assuming you have specified the appropriate data source bindings, the OA
Framework automatically reads data from the model for display in the view, and writes

ra
user-entered data in the view back to the model. You don't need to write a single line
of code (except for any validation you want to perform in the underlying entity objects,
of course).
O ly
l & On
In simple terms, every time the OA Framework renders a page, it calls the current
view object row's get<AttributeName> method for each web bean's associated view

na e
object attribute. Consider an example page with a "Suppliers" table, which binds to
a SuppliersVO view object. The SuppliersVO maps to an underlying SupplierEOImpl,

ter U s
although it also includes one "calculated" transient attribute ("OnHoldDisplay") that
does not have a corresponding entity object attribute.

In
1. The user selects the "Search" region's "Go" button to populate search results in
the "Suppliers" table.

cle
2. The "Search" region's controller handles the button press by invoking a search

ra method in the root application module, which in turn delegates to


the SuppliersVOImpl class so it can query itself.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 41
3. Within the executeQuery method, the SuppliersVOImpl view object performs
its SQL SELECT in the database.
4. For each row returned in our example result set, the view object instantiates
a SupplierEOImpl entity object and sets its attribute values with the query results.
Note: Entity object-based attribute values aren't actually stored anywhere in the
view object. They "live" in the entity object, and are retrieved as needed by the
view object. "Calculated" (meaning the values are simply selected from a SQL
statement and have no relationship to an entity object) or "Transient" view object
attribute values are stored on the SuppliersVORowImpl object.
5. During page rendering (after all the query processing), the OA Framework uses
the view object data bindings defined for each web bean to call the
corresponding SuppliersVORowImpl object's getAttribute("<attributeName">)
which in turns calls its get<AttributeName> method.
6. The SuppliersVORowImpl get<Attribute Name> method in turn calls the
corresponding SupplierEOImpl get<AttributeName> method to retrieve the value.
For the "calculated" OnHoldDisplay attribute, the view object row retrieves the
value from its own cache.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 42
Writing Model Data

m y
d e
c a
e A
c l
Whenever the browser issues a POST request, the OA Framework automatically
writes any user-entered form values back to the underlying view objects, which in turn

r a
update any corresponding entity objects as shown below.
Note: The following steps assume that the entity object for the row has already been
O ly
successfully instantiated and initialized (such as in the create method on the

l & On
underlying view object for the page when the user originally comes into a Create page.
The VO create method calls the corresponding create method on the entity object
behind the scenes).

n a e
e r
1. UIX performs onSubmit JavaScript validation (required fields, data types,
s
formats) and issues the POST request only if this validation succeeds.
t U
2. The browser sends a POST request and the OA Framework calls

I n
the processFormData methods on all the web beans in the hierarchy.

c l e
3. Within processFormData, the OA Framework automatically
calls setAttribute(String name, Object value) on the current row of the underlying

r a view object for each bean. This executes any attribute-level validation that you've
written in the view object row.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 43
4. Within this setAttribute method, the view object row automatically calls the
corresponding set<AttributeName> method in the underlying entity object. This
executes any associated attribute-level validation in the entity object.
5. Once all the attribute values have been set, the OA Framework calls the view
object validate for each row it modified to execute any associated row-level
validation.
6. Finally, within the validate method, the view object row calls validateEntity for the
underlying entity object which executes any associated entity-level validation.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 44
Binding Items to Data

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 45
General Naming Rules

my
de
ca
e A
cl
These naming rules are guidelines, and are meant to show the standards to which
Oracle’s E-Business Suite developers adhere.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 46
General Naming Rules

m y
d e
ca
e A
c l
Short names are important because they reduce the size of the generated HTML file
sent back to the browser. This have middle-tier and network performance issues.

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 47
General Naming Rules

my
de
ca
e A
l
Because of OA Framework’s hierarchy, names must be unique within the entire page.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 48
Page and Object Naming Rules

my
de
ca
e A
cl
BLAF stands for Oracle's Browser-Look-And-Feel specification, and it specifies the
appearance and behavior of OA Framework-based applications.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 49
Styles and Bean Names

my
de
ca
e A
l
Exceptions to the rule: attachmentLink becomes OAMessageAttachmentLinkBean

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 50
Attribute Set Standards

my
de
ca
e A
cl
Creating Attribute Set Packages Manually
Attribute sets are created into the context of an OA Component package file. To

ra
create an attribute set package in JDeveloper:
1. In the JDeveloper Navigator, select the OA Project where you want to create
your package. O ly
& On
2. From the main menu, choose File > New to open the New Object Gallery.
l
na e
3. In the Categories tree, expand the Web Tier node, and select OA Components.
4. In the Items list, select Package File to open the New Package File dialog.

er s
5. Enter a Name and a Package. Select OK to save create your
t U
<Package>.<Name>.xml OA Component document.
6. Save your work.
In
cle
Creating Attribute Sets Manually
To create and edit individual attribute sets in JDeveloper:

ra1. Identify which Attribute Set template you should be using based on the kind of
attribute set you need to create. For example, if you are creating a button
O attribute set, you need to use the Button Template.

Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 51
2. In the Oracle10g JDeveloper System Navigator pane, select the attribute set
package to display its contents in the Structure pane.
3. In the Structure pane, select the Attribute Set folder, right-click and select New >
Attribute Set to open the New Attribute Set dialog.
4. In the New Attribute Set dialog, enter an Attribute Set Name. Per the attribute set
template that you identify in Step 1, select all the appropriate properties in the
Available Properties list and shuttle them to the Included Properties list. Select
OK to create the attribute set.
5. Enter values for the attribute set's included properties in the Property Inspector.
6. Save your work.
Generating Attribute Sets Automatically (Only on Linux)
In order to facilitate the process of creating table-related attribute set packages and
attribute sets, you should automatically generate these using a command-line utility.
Prerequisites
1. Before proceeding, make sure that any tables for which you want to generate
attribute sets are fully described in FND_TABLES and FND_COLUMNS (to do
this, you need to load properly defined XDF table definitions). The table name,
column name and column descriptions defined in these entities become the basis
for the generated attribute sets.
2. You should check out any preexisting attribute set packages from source control
that you want to update with the generator. Note the physical location of the XML
files in your working area.
m y
Running the Attribute Set Generator
d e
To automatically generate new and updated existing attribute sets, run the Attribute
Set Generator from the Linux command line as shown below. This utility will create
c a
new attribute sets, and update preexisting attribute set Comments property values
with the corresponding column descriptions in FND_COLUMNS. You can elect to
e A
c l
generate attribute sets for an entire product, or for specific tables within a product.
Once you generate your attribute sets, you can maintain all other properties in

r a
JDeveloper as described above (the generator never overrides any other property
values).
O ly
Note: For persistent attributes, the Comments property value is always copied from

l & On
FND_COLUMNS (the column description value in FND_COLUMNS should be treated
as the single source of truth). If you need to make changes to the Comments property
a e
value, you need to change the underlying column description.
n
t e r U s
The resulting attribute set packages and attribute sets are named according to
standards. Correct naming and packaging is essential for service creation since the

I n
OA Framework automatically detects table.column attribute sets using these naming
conventions, and defaults them when you create view object attributes that map to

c l e
persistent entity attributes.

r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 52
Attribute Sets

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 53
Attribute Set Naming Conventions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 54
More Attribute Set Standards

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 55
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the View


Chapter 4 - Page 56
Basics of the Controller
Chapter 5

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 3
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 4
Recommended Build Approach

my
de
ca
e A
l
Steps 5 deals directly with Controller layer components.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 5
Do You Need a Controller?

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 6
Controller Basics

my
de
ca
e A
cl
A general rule is to minimize the number of controllers. While it is possible for every
region object to have a controller, it is probably not advisable to do so. And, by

ra
minimizing regions with controllers, it can simplify the code for your OA Framework
page, and make the page must more maintainable.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 7
Common Logic to Code

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 8
Typical Locations for Code

my
de
ca
e A
name>CO.java file.
cl
The code itself will typically be in the <AM/VO/EO>Impl.java file or a <controller

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 9
Handling Queries

my
de
ca
e A
l
This is the most common use of a controller.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 10
View Object initQuery Code

my
de
ca
e A
to the AM to call the necessary VO.
cl
Remember to keep to the encapsulation. The controller should call the AM, and defer

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 11
Dynamic WHERE Clauses

m y
d e
c a
e A
c l
This is a good general rule. Where possible, keep things defined at design time
(declarative) instead of at run time (programmatic). Declarative objects have much
better performance.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 12
Using findByKey Instead of initQuery

my
de
ca
e A
cl
The findByKey is useful when you are looking for a single row whose entity objects are
likely to already be in the cache (BC4J will pluck them from the cache instead of doing

ra
a round trip to the database). This is a very useful tool for developers and we want to
encourage them to use it. That doesn't mean that you won't still have cases when it is

O ly
preferable to initialize a query.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 13
Processing a Button Press

my
de
ca
e A
l
Button presses and other events are part of the POST cycles spoken about earlier.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 14
Getting Parameters from Requests

my
de
ca
e A
pages.
cl
Note: Java and XML are case sensitive. This is a common error in OA Framework

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 15
Example: Manually-built Search

my
de
ca
e A
cl
Manually-built Search regions are those that are individually constructed as individual
pieces rather than using the Query Bean. For example, the Query Bean creates a Go

ra
button to execute the query, and it creates the associated controller-layer and model-
layer code to make the query function. With manually-built search regions, you will

O ly
have to create all the UI items, the controllers, and the model-layer code to implement
the functionality. The drawback is that this is much more complex, and for the normal,

l & On
simple cases is over complicated. The advantage is that it allows truly complicated
cases to be constructed.

na e
The processFormRequest in the controller should never call methods on the VO

ter U s
directly; it should always delegate to the AM.
This same code, added to the processRequest method instead of the

In
processFormRequest method, can be used to do an automatic query when the user
comes into the page.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 16
The Process

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 17
Example VOImpl Code

my
de
ca
e A
Note the following characteristics:
cl
This code gives an example of the code that would be put into the VOImpl.java class.

ra
• The method is named initQuery(). This is a naming standard.
• The parameter passed to the method (employeeNumber) is not assumed to be
O ly
valid number. There is a try/catch to typecast the String object to a Number
object.

l & On
• If the typecast fails, an OAException is thrown from the message dictionary.

na e
• The remainder of the code sets up the dynamic WHERE clause for the VO, and

ter
then executes the query.

U s
• If you do not have the executeQuery(), the VO will not query your data. This is a

In
common error. Sometimes, you will, when creating the VO, accidentally or
unintentionally check the generate VOImpl.java class. The VOImpl.java class file

cle is just an empty stub. Without an initQuery method with a call to executeQuery,
the data will not be retrieved.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 18
Example AMImpl Code

m y
d e
ca
e A
Note the following characteristics:
c l
This code gives an example of the code that would be put into the AMImpl.java class.

r a
• The method checks to see if the VO is assigned to the AM.
• If the VO is not known to the AM, an OAException is thrown.
O ly
• The AM then invokes the initQuery method on the VO passing any parameters
needed.
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 19
Example Controller Code

m y
d e
ca
e A
class. Note the following characteristics:
c l
This code gives an example of the code that would be put into the CO.java (Controller)

r a
• The first line of the method is a call to super.
• The controller knows the UI objects, and gets their values from the pageContext.
O ly
• The pageContext knows what its root AM is. So, the controller asks for the root
AM from the pageContext.
l & On
n a e
• Parameters are serialized. For this example, this is simple. Serialization is the
process of converting an object into a string representation. Since the parameter

t e r U s
is already a string, this is simple. In some cases, more complex objects may be
passed as parameters to the method.

I n
• Finally, the AM method is invoked. Since the AM can contain multiple VOs, it is
not possible, like initQuery for VOs, to call a standard AM method.

c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 20
Example Search: Controller

my
de
ca
e A
cl
There are two methods of redrawing the page.
• The primary way is now to use partial page rendering (PPR) to redraw relevant

ra
sections of the page without redrawing the entire page.
• The older method is to forward the current page back to itself if there is some UI
O ly
change that requires going back through the processRequest logic for the page.

l & On
The use of forwarding back to the current page to display UI changes, such as a data-
dependent title, is no longer necessary for most pages, which now use partial page
rendering (PPR) instead.
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 21
Forwarding to Another Page

my
de
ca
e A
cl
Forward is used to direct to a new page without having to interact with the browser.
The redirection is done on the middle-tier server.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 22
Setting Titles with Message Dictionary

my
de
ca
e A
cl
Declarative values set in the pages (text, prompts, and so on, set in the Property
Inspector) are also translatable, but do not use Message Dictionary.

ra
You should never hardcode text into your page logic. Use the Message Dictionary to
ensure that the text can be translated and reused.
O ly
Do not use tokens for single words, partial words, or sentence fragments because

example:
l & On
they do not translate into languages that have a different grammatical structure. For

a e
• "This &DOCUMENT cannot be &ACTION."
n
ter U s
- DOCUMENT might be purchase order or invoice, and ACTION might be
approved, denied, and so on. These would not translate to a Romance

In
language that uses gender, because there may be a mismatch between the
noun and the verb.

cle - "&NUMBER of row&PLURAL saved." where the value of PLURAL can be


either "s" or nothing, to result in "row" or "rows". This does not translate to

ra any language that does not use "s" to designate a plural.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 23
Event Flow Overview

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 24
Initial Setup Flow

m y
d e
c a
e A
OAPageBean does many “housekeeping” tasks.

c l
OAPageContext is passed to all the web beans when they are called. It can be

r a
considered the beans communication link to the outside world. "OA Framework
services" mostly refers to services from AOL/J, but also to convenience methods for
common tasks.
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 25
Controller Event Flows in OA Framework

my
de
ca
e A
or redrawing a page.
cl
“Submit action” is an oversimplification. The flow for this action also includes drawing

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 26
GET Event Flow – Overview

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 27
GET Event Flow (1-3)

m y
d e
c a
e A
1. Get the ICX Session Cookie
2. The URL provides:
c l
• Database (DBC) information
r a
• Page name
• Other parameters O ly
l & On
3. Check to see if metadata is in the cache.

a e
4. If metadata not in cache, fetch the metadata.

n
t e r
• Metadata fetched through separate static connection
s
• At customer sites metadata will be in the database
U
I n
• In JDeveloper you can work against XML files, the repository, or both
Note: Separate static connection for fetching metadata means that: 1) It’s a

l e
different commit cycle so rollbacks in their own pages will not affect the metadata

c
(though that would be read-only anyhow) and 2) there is a separate AM in the AM

r a pool for fetching the metadata.


5. Apply personalizations.
O 6. Get root AM for session.
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 28
7. Validate session on root AM.
8. Validate the function (function security) associated with the page, the user, and the
responsibility.
The AM associated with page is the root AM. The root AM holds the database
connections. One connection is used for data. The other connection, the shadow,
is used to fetch metadata and validate SQL.
Note: “Validate function associated with page” refers to going through function
security to see if user has access to the function. Function is (at least) associated
with the page using a property at the pageLayout (top) region of a page.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 29
GET Event Flow (4) Instantiate BC4J and UIX Classes

m y
d e
ca
e A
extensions of UIX beans.
c l
At runtime, UI regions and items map to web beans (JavaBeans). OABeans are

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 30
Example Bean Hierarchy Structure

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 31
GET Event Flow (5) processRequest

m y
d e
c a
e A
and set bean properties programmatically.
c l
In the processRequest() method, developers can query data (using vo.executeQuery)

r a
NOTE: Programmatically setting, and even creating, a UI object is possible, but
is highly discouraged. Programmatic UI creation or manipulation has the
following drawbacks:
O ly
• Adverse performance impact

l & On
• Inability to apply personalizations

n a e
• Difficult to maintain and debug

t e r U s
• Programmatically created pages cannot use important OA Framework
abilities, like partial page refresh

I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 32
GET Event Flow (6) Post-Processing

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 33
GET Event Flow (7) UIX Renders the Page

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 34
POST Event Flow – Overview

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 35
POST Event Flow (1 - 3) Submit, Client-Side Validation

my
de
ca
e A
cl
Note that while UIX performs browser-side validation using JavaScript, but OA
Framework based pages and their related code must not use JavaScript.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 36
POST Event Flow (4 & 5) Validate User and Retrieve State

my
de
ca
e A
cl
Cases where the bean hierarchy might not exist or might be out of synch include:
Back button use, passivation, and failover to another JVM. Failover is not yet
supported.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 37
POST Event Flow (6) Apply Form Data

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 38
POST Event Flow (6) More of processFormData

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 39
POST Event Flow (6) More of processFormData

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 40
POST Event Flow (6) More of processFormData

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 41
POST Event Flow (7) processFormRequest

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 42
Summary

my
de
ca
e A
Open the Course Labs book.

cl
Complete Lab 1 – Learning More About the Page

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 43
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Basics of the Controller


Chapter 5 - Page 44
Setting Up Your Development
Environment
Chapter 6

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 3
Lesson Objectives

my
de
ca
e A
cl
While not specifically part of this course, it is critically important that an OA Framework
developer obtains the specific version of JDeveloper 10g with OA Extension for their

ra
version of E-Business Suite. JDeveloper 10g with OA Extension is used with R12 E-
Business Suite instances. For 11.5 (11i) E-Business Suite instances, you will need to

O ly
use JDeveloper 9i. The techniques for OA Framework development in both versions of
JDeveloper are similar, but there are some important differences between the two
versions of JDeveloper.
l & On
na e
It would be possible to include a table of the patch numbers that contain the specific
versions of JDeveloper 10g with OA Extension. The problem with that is that this

ter U s
course material would quickly become out of date. There is a very specific Oracle
MetaLink Note that contains all the latest information on the released patches.

In
How to find the correct version of JDeveloper to use with E-Business Suite
11i or Release 12 – MetaLink Note: 416708.1

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 4
Installing and Setting Up JDeveloper

m y
d e
c a
e A
will be named similar to the following:
c l
When you download the proper patch for your E-Business Suite instance, the patch

p5856648_R12_GENERIC.zip
r a
JDeveloper 10g with OA Extension does not contain a installation routine. The
O ly
installation process consists of unzipping the patch to a directory of your choice. For

On Linux – /JDev
l & On
example, you could use the following:

On Windows – D:/JDev
n a e
t e r U s
When you unzip the patch, it will create three (3) subdirectories as follows:
jdevbin – This subdirectory contains all the executables, utilities, and supporting

I n
files for JDeveloper 10g with OA Extension.

l e
jdevdoc – This subdirectory contains the OA Framework Developer’s Guide
(OAFDG) along with the Javadoc files for the APIs.
c
r a jdevhome – This subdirectory is empty. But, it can be used as the base directory
for your OA Framework files.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 5
Installing and Setting Up JDeveloper

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 6
Configure Your Environment Variables

my
de
ca
e A
cl
Setting environment variables is specific to the operating system, operating system
version, and command shell being used. It is not possible to list every single variation.

ra
But, here are some specific examples.
Setting the JDEV_USER_HOME environment variable on Windows 2000/XP
O ly
• Right-click My Computer on your desktop, select Properties.

& On
• In the System Properties dialog, select the Advanced tab.
l
na e
• On the Advanced tab, select the Environment Variables button.
• Select the New button at the User variables for <username> box.

er s
• In the New User Variable dialog, enter JDEV_USER_HOME in the Variable
Name field.
t U
In
• Set the Variable Value field to the location of your JDEV_USER_HOME

cle subdirectory (for example, D:\JDev\jdevhome\jdev)


• Select OK in each of the dialogs you opened to save the new user environment

ra variable.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 7
Setting the JDEV_USER_HOME environment variable on Linux
• There are a multitude of shells that can be run for Linux operating systems.
Examples of these shells include, bash, csh, tcsh, and others. In most cases, one
of these two methods will work.
• Open a terminal window on your Linux machine, and type the commands listed in
the method that works for you.
• Method 1:
set JDEV_USER_HOME = /JDev/jdevhome/jdev
export JDEV_USER_HOME
• Method 2:
export JDEV_USER_HOME = /JDev/jdevhome/jdev
JDEV_JAVA_HOME points to the appropriate Java SDK for your development, and
certified by Oracle for your Operating System and E-Business Suite version. In most
cases, you will not need to set this on either Linux or Windows servers. The
appropriate values are already set-up for you. In rare cases almost always on Linux
servers, this needs to be set.

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 8
Get the DBC File

m y
d e
ca
e A
c l
On your course server, the value of the environment variable, INST_TOP will not be
initially set. You will need to type the entire path. The default path value for INST_TOP
on your course server is as follows:
/dbfiles/apps_inst/apps/adsdemo r a
O ly
Note – Never remove the DBC file from $INST_TOP. You should only make copies

& On
of this file. Other E-Business Suite processes need this file.

l
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 9
Create a Shortcut

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 10
Assign the E-Business Suite User

my
de
ca
e A
cl
This is the user, password, and responsibility that will be used for the OA Framework
course. In your actual development environment, these values can be changed to

a
appropriate values for your development/testing server.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 11
Uncompress Tutorial.zip

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 12
Launch JDeveloper 10g

my
de
ca
e A
system version, and the shell.
cl
The method to launch JDeveloper will vary depending on operating system, operating

something you should close. ra


Note: The first time JDeveloper 10g is launched you see the Start Page. It is

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 13
Configure the Connections and Test

m y
d e
ca
e A
c l
Username: This is the database user to which you are going to connect. Within E-
Business Suite, the master database user that has access to all the E-Business Suite
database objects is apps.
r a
Password: The default password for the apps database user is apps. Note: On
O ly
production servers or any server requiring security, it is important that this password
has been changed.

l & On
Role: In defining database privileges, there are three manners in which a particular
a e
user might (depending upon their granted security) access a database, Normal,
n
e r
SYSOPER, and SYSDBA. SYSOPER and SYSDBA are expanded privilege roles.
s
Normal is the default method. Since connecting to the database is only done to select,
t U
insert, update, and delete tables, Normal is adequate privilege for use in JDeveloper.

I n
Deploy Password is used for classic J2EE deployment and testing. OA Framework

l e
does not use a classic J2EE deployment model; so, OA Framework developers do not
use this setting.
c
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 14
Configure the Connections and Test

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 15
Configure the Connection and User

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 16
Configure the Connection and User

my
de
ca
e A
page, you know several things.
cl
At this point, if you have seen both the test_fwktutorial.jsp page and the Hello, World!

worked. ra
1. You have connected to a database, or else test_fwktutorial.jsp would not have

O ly
2. You have connected to an R12 E-Business Suite applications instance, or else

l & On
Hello, World! would not have worked.
3. You have a user on that E-Business Suite instance named, FWKTESTER, with a
a e
password of FWKDEV, assigned to the AK product, and given the
n
ter U s
FWK_TBX_TUTORIAL responsibility.
4. Your installation and configuration is complete.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 17
Summary

my
de
ca
e A
Open the Course Labs book.

cl
Complete Lab 2 – JDeveloper and E-Business Suite Set-up

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Setting Up Your Development Environment


Chapter 6 - Page 18
Introduction to JDeveloper
10g with OA Extension
Chapter 7

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 3
Lesson Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 4
Oracle JDeveloper 10g with OA Extension

m y
d e
ca
e A
Oracle JDeveloper

c l
You can use Oracle JDeveloper to build several different types of Java components.

Wizard Driven r a
This lesson focuses on using the JDeveloper IDE for building applications.

O ly
A wizard is a graphical tool that provides step-by-step guidance through the process of

including:
l & On
defining a new element in the IDE. Oracle JDeveloper provides several wizards,

n a e
• Application Wizard: Defines a new application and associated projects

t e r U s
• Applet Wizard: Defines a new Java applet and adds it to the specified project
• EJB Wizard: Defines a new Enterprise JavaBean (EJB) and adds it to the

I
specified project
n
l
project
c e
• JSP Wizard: Defines a new JavaServer Page (JSP) and adds it to the specified

r a
• HTTP Servlet Wizard: Defines a new servlet and adds it to the specified project

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 5
Designing a User Interface
Oracle JDeveloper helps you specify the following features of your user interface:
• Size and position of controls
• Properties for each control, such as labels, enabled or disabled status, font, and
so on
• Event-handler methods

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 6
Oracle JDeveloper 10g Components

my
de
ca
e A
Oracle JDeveloper 10g Environment

cl
Oracle JDeveloper 10g contains four major user interface components. These

and navigate your program. ra


components are what you use to edit code, design and manage the user interface,

Component Palette O ly
l & On
The Component Palette displays the components available to build user interfaces,
models, navigation diagrams, and so on.

na e
Applications Navigator and Structure window

ter U s
The Applications Navigator displays a list of files or classes in a project. The files may
be Java source files, .class files, graphics files, HTML, XML documents, and so on.

the Navigator. In
The associated Structure window shows the detailed structure of the object selected in

le
Code Editor
c
The Code (Design) Editor is where most of the work takes place; this is where you

ra
write code and design user interfaces. Open the editor by double-clicking the name of

Othe file in the Navigator that you want to edit or view. The appropriate editor, code or
design, will open based on your selection.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 7
Applications and Workspaces

my
de
ca
e A
Application Organization

cl
Oracle JDeveloper 10g with OA Extension uses a well-defined structure to manage

ra
Java programming applications. The structure is hierarchical and supports
applications, projects, images, .html files, and so on.
Applications O ly
l & On
Application is the highest level in the control structure. It is a view of all the objects you
currently need while you are working. An application keeps track of the projects you
a e
use and the environment settings while you are developing your Java program. When
n
resume your work.
ter U s
you open JDeveloper, the last application used is opened by default so that you can

In
Applications are stored in files with the extension .jws. You do not edit an application
file directly. Whenever you save your application, you are prompted to save all the

cle
files currently open. To save the open and modified files, select the Save option (or
the Save All option) from the File menu.

a
Note: You can view the content of an application file by using any text editor.
r
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 8
Determining Applications
You might consider an application to be a view into currently used objects. You can
choose to create applications that group projects that were created in different
applications. Application object groupings can be based around a business area
(Accounts Payable, General Ledger, Accounts Receivable), a phase in a life cycle
(analysis, design, deploy), or the structure of the application (UI, business logic, data
structure).
Workspaces
For E-Business Suite development, there is additional information and restrictions. For
example, an OA Framework application needs to know the E-Business Suite user,
password, application short name, and responsibility key in order to run. Additionally,
unlike typical J2EE development, E-Business Suite doesn’t run Applications, it runs
pages (PG files). So, in JDeveloper, an Application is used as the starting template
that is modified to meet E-Business Suite needs, and is then renamed as a
Workspace.

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 9
Projects

my
de
ca
e A
Projects

cl
JDeveloper projects organize the file elements that are used to create your program.

ra
A project file has the file extension .jpr and keeps track of the source files, packages,
classes, images, and other elements that may be needed for your program. You can
O ly
add multiple projects to your application to easily access, modify, and reuse your

l & On
source code. You can view the content of a project file by using any text editor.
Projects manage environment variables, such as the source and output paths used for
a e
compiling and running your program. Projects also maintain compiler, run-time, and
n
project.
ter
debugging options so that you can customize the behavior of those tools for each

U s
In the Navigator pane, projects are displayed as the second level in the hierarchy

In
under the application.

cle
When you select a .java or .html file in the Applications Navigator, the Structure pane
displays the elements of the file in a tree format. For example, when you select a .java

a
source file, the classes, interfaces, methods, and variables are displayed.
r
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 10
To edit source code, double-click the file in the navigation list to display the contents in
the appropriate editor. The Structure pane can be used to quickly locate specific areas
of code in your Java source files and to browse the class hierarchy.
When you are working with the visual designer, the Structure pane displays the
components of your user interface and their associated event-handling methods in a
hierarchical tree format.
Note: Italic style is used to indicate file names that have not yet been saved.

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 11
Creating JDeveloper Items

my
de
ca
e A
Creating JDeveloper Items

cl
You can create any JDeveloper item from this New Gallery window. The context for

ra
creating the item must be correct. You must have the correct element selected in the
Category column to create the appropriate item.
O ly
Use the Filter By drop-down list to view specific types of elements.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 12
Creating a Workspace

my
de
ca
e A
Creating a Workspace

cl
The properties to be completed include the following:
File Name
ra
O ly
Enter a name for the workspace. This name is used to categorize all the files in your
workspace.
Directory Name
l & On
na e
Enter a top-level directory for the application or click Browse to locate one. This is
where all your application files are stored during development. By default, it points to

Add a New OA Project


ter
JDEV_USER_HOME/myprojects.

U s
In
Use this checkbox to simultaneously create an OA Project for your OA Workspace. In

cle
most cases, you would select this checkbox.

ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 13
Step 1: Creating a Project

my
de
ca
e A
cl
The project is created as part of creating the Workspace. But, it is possible to create a
Project independently of the Workspace. To do this, choose File > New > Projects >

Extension.
ra
Project Configured for Oracle Applications from the menu in JDeveloper 10g with OA

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 14
Step 2: Creating a Project

my
de
ca
e A
Default Package:

cl
This is simply a default starting point for future files. It is not a limit. You can change

ra
the package of any object you create to point to the appropriate path. In essence, this
is there to save you typing time.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 15
Step 3: Creating a Project

my
de
ca
e A
cl
You will not use the repository in class. The repository is the MDS, and is where the
runtime XML files for your pages and regions are kept. For development purposes, by

a
not specifying a repository, all files will be run from the file system.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 16
Step 4: Creating a Project

m y
d e
c a
e A
DBC File Name:

c l
Point to the DBC file copied from $INST_TOP.
User Name:
r a
O ly
Default for this course is fwktester.
Password:

l
Default for this course is fwkdev.& On
Application Short Name:

n a e
Responsibility Key:
t e r
Default for this course is AK.

U s
n
Default for this course is FWK_TBX_TUTORIAL.
I
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 17
Step 1: Establish a Database Connection

my
de
ca
e A
Database folder.
cl
From the Applications Navigator panel, click the Connections tab, and choose the

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 18
Step 2: Establish a Database Connection

my
de
ca
e A
l
Right-click the Database folder, and choose New Database Connection.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 19
Step 3: Establish a Database Connection

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 20
Step 4: Establish a Database Connection

my
de
ca
e A
cl
Generally, it is recommended to give the connection the same name as the SID of the
E-Business Suite database to which you are connecting.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 21
Step 5: Establish a Database Connection

m y
d e
c a
e A
Username:
Default for this course is apps.
c l
Password:
r a
Default for this course is apps.
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 22
Step 6: Establish a Database Connection

my
de
ca
e A
cl
If you don’t know this information, you can ask your instructor, or you can examine the
DBC file they provided. All of the connection information is contained in the DBC.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 23
Step 7: Establish a Database Connection

my
de
ca
e A
Always test the connection.

cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 24
Project Properties

my
de
ca
e A
cl
Project Properties: Specifying Project Details
If you need to change any of the connection information, or any other project setting,

Properties window. ra
simply double-click the project in the Applications Navigator panel to open the Project

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 25
Project Properties – Oracle Applications

my
de
ca
e A
cl
In order to see complete diagnostic errors and stack dumps, we will add OADiagnostic
to the Run Options of every project.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 26
Directory Structure

m y
d e
ca
e A
myprojects:
myclasses:
c l
Holds .java and .xml files
Holds .class and .xml files
myhtml:
r a
Holds deployed objects, like shared images, and .jsps
system:
O ly
Holds JDeveloper configuration information
dbc_files/secure:

l & On
Holds DBC files

n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 27
Exploring Java Files

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 28
Exploring Other Objects - Wizards

m y
d e
c a
e A
c l
Some objects, notably any BC4J objects (AM, EO, VO, AO, VL), have Wizards
associated with them. When you double-click the object, it opens the object wizard by
default.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 29
Exploring Other Objects – UI Objects

my
de
ca
e A
cl
UI (View-layer) objects, like pages (PG) and regions (RN), aren’t written in Java and
they don’t have object wizards. These objects are edited using the Property Inspector.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 30
Finding Methods and Fields

my
de
ca
e A
Finding Methods and Fields

cl
As projects evolve, classes can become quite large, containing several methods and

ra
fields. To help you find your way around complex classes, JDeveloper provides the
Structure pane, which is the bottom pane in the Applications Navigator.
O ly
The Structure pane lists all the methods and fields for the currently selected class. If

l & On
you double-click an item in the Structure pane, JDeveloper takes you to the definition
of that item in the source code, displaying and highlighting it in the Code Editor. For
a e
example, if you double-click the helpAbout_ActionPerformed entry in the Structure
n
Editor.
ter
pane, the start of the helpAbout_ActionPerformed method is highlighted in the Code

U s
You can also search the Navigator and Structure pane components for strings by

In
using a [letter]. The search is a hierarchical search based on the first letter of each

le
component. As you enter subsequent letters, the structure list highlights the first
component that begins with that set of letters. If there is more than one occurrence,
c
ra
use the up and down arrow keys to scroll through the result set.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 31
Note: JDeveloper 10g with OA Extension provides some new features to facilitate
navigation through your Java code. One of these is navigation between members,
which allows you to quickly navigate between fields and methods in the Code Editor
by using the Previous Member ([Alt] + [Up]) and Next Member ([Alt] + [Down])
accelerators.

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 32
Supporting Code Development with Profiler and Code Coach

my
de
ca
e A
Code Coach
cl
Supporting Code Development with Profiler and Code Coach

ra
Code Coach creates more efficient Java programs by helping you write higher-quality,
better-performing code. You run Code Coach on a class to obtain advice on how to
make your code better. O ly
Profilers
l & On
na e
Profilers gather statistics on your program, enabling you to more easily diagnose
performance issues. With profilers, you can examine and analyze your data.
Code Editor

ter U s
When you pause momentarily while entering code in the Code Editor, JDeveloper

In
automatically scans your code to look for syntax errors. If there are any, you see them
represented in the Structure pane or in the Log window.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 33
Code Insight
If you pause after entering a “.” (period), JDeveloper invokes Code Insight. Code
Insight displays valid methods and members from which you can select. JDeveloper
also provides Code Insight for parameters when you pause after entering a left
parenthesis.

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 34
New Code Editor Features

my
de
ca
e A
New Code Editor Features
Code Assist
cl
ra
Code Assist is a new feature in JDeveloper 10g with OA Extension. It deals with
adherence to coding standards rather than syntactical correctness.
O ly
It examines your code in the Java Source Editor and offers suggestions to fix coding

l & On
problems or breaches of coding standards. A light bulb icon appears in the margin
beside a line where JDeveloper has a suggestion for a code change. You click the
a e
icon to display the suggestion. You can accept the suggestion by clicking it and
n
r s
amending the code; or you can reject the suggestion and suppress the light bulb by

e
closing the suggestion. In many cases, if you accept the suggestion, JDeveloper
t U
makes the appropriate code modifications for you automatically.

In
You can choose which rules you want Code Assist to use, or you can disable the

cle
feature altogether by selecting Tools > Preferences > Audit: Profiles.
Code Folding

ra
Code folding allows you to shrink sections of code, making large programs more
readable and more manageable. You use the + and – buttons in the blue vertical bar
Oon the left of the code to expand or contract classes, respectively.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 35
Tasks List
By using the Tasks list, you can create and keep track of tasks. The tasks can be of
any nature, but the feature has been provided primarily for tasks connected with the
process of software development. For this reason, a direct link has been provided
between the Code Editor and the Tasks list: When writing code, a task is created
whenever you enter
//TODO. A check mark is displayed in the margin to the left of the line, indicating the
presence of a task.
Overview Margin
The Overview margin is displayed vertically on the right side of the Code Editor. If
there are no problems with the code, a small green marker appears at the top of the
margin. An orange marker indicates a warning, and a red marker denotes an error.
When you position the cursor over an orange or red marker, you see a brief displayed
description of the error or warning.
Overridden and Implemented Method Definitions
When working in the Java Source Editor, you can identify methods that override
superclass definitions or implement interface declarations. Overriding definitions are
marked with an upward-pointing arrow and the letter o in the left margin; clicking this
letter takes you to the overridden definition. Similarly, an upward-pointing arrow and
the letter i in the margin identifies a method that implements an interface; clicking the

y
letter takes you to the implemented method declaration.

m
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 36
Customizing JDeveloper 10g with OA Extension

my
de
ca
e A
Customizing the IDE
cl
Customizing JDeveloper 10g with OA Extension

ra
You can customize JDeveloper’s default display options (for example, whether the
splash screen is displayed at startup and whether dockable windows are always on
O ly
top) as well as other general behavior (for example, whether JDeveloper automatically

saved to a file).
l & On
reloads externally modified files and whether output to the Log window is automatically

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 37
You can do all of the following:
• Customize the general environment for the IDE.
• Customize dockable windows for the IDE.
• Customize the Component Palette.
• Load preset keymaps and customize individual accelerators. You can take
advantage of the several existing keymap sets in JDeveloper or begin with an
existing keymap and then customize it to suit your own coding style by changing
which keyboard shortcuts, or accelerators, map to which actions.
• Customize options for the Code Editor.
• Add external tools to JDeveloper.

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 38
Refactoring

my
de
ca
e A
Refactoring

cl
Refactoring is the process of improving an application by reorganizing its internal

ra
structure without changing its external behavior. In JDeveloper, you can make these
changes without breaking any dependent files on which your project relies because
O ly
these files are automatically updated for you.

l & On
Oracle JDeveloper 10g with OA Extension provides an even more powerful refactoring
framework; as a result, performing refactoring actions is faster and much smoother.
a e
You can now right-click a method or field in the Java Structure window (or in the Code
n
er
Editor) to initiate refactoring. When refactoring, JDeveloper searches your entire
s
project and any projects that are listed in Tools > Project Properties, Dependencies.
t U
Before proceeding with a refactoring action, you have the option of previewing the

In
occurrences that will be updated (as the slide shows). You can then choose to

le
continue with the refactoring action or cancel it. You can even undo refactoring if
needed.
c
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 39
Refactoring

my
de
ca
e A
Refactoring (continued)

cl
You can refactor across an entire application. In particular, you can refactor across

ra
multiple projects (via project dependencies).
Some of the available refactoring operations are:
O ly
Rename Class: Renames a class, its constructors, and its source file and updates all

& On
references to the class in the project
l
na e
Rename Field: Renames a field and updates all references to the field in the project
Rename Method: Renames a method and updates all references to the method in the
project

ter U s
Rename Package: Renames a package and updates all references to the package in

In
the project (including organization of subpackages)

le
Rename Local Variable: Renames a local variable and updates all references to the
variable
c
ra
Rename Parameter: Renames a parameter and updates all references to the
parameter

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 40
Introduce Variable/Field/Constant/Parameter: Replaces the selected expression
with a new expression of the same type
Extract Method: Creates a new method from the selected code, setting up
parameters for any variables that need to be passed to the new method
Extract Interface: Creates a new interface from any of the public methods in the
current type definition and implements that interface for the current type
Use Supertype Where Possible: Replaces all occurrences of a type with one of its
supertypes if applicable
Pull Members Up: Promotes the declaration of methods or fields to the supertype and
updates references accordingly
Push Members Down: Moves the declaration of methods or fields to all the subtypes
of the current type and updates references accordingly
Delete Safely: Checks to make sure that the element you are attempting to delete is
not actually being used in your code before allowing the delete operation to proceed. If
references are found, you are warned and given the option to cancel the delete
operation. Delete Safely can be used when deleting types, methods, and fields.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 41
JDeveloper Help System

m y
d e
c a
e A
JDeveloper Help System

c l
To make the best use of JDeveloper tools and libraries, and of Java itself, you can use

To access the help system: r a


a comprehensive help system that covers all aspects of Java development.

O ly
1. Select Help > Table of Contents in the main menu. The help system appears.

& On
2. Select one of the topics from the content navigator at the left of the window. After
l
n a e
you select a topic, the topic expands to display subtopics.
3. Select the topic you are interested in and right-click it to display the help text in a
window.

t e r U s
4. Use hypertext links to navigate within a topic or to related topics.

I n
Note: The JDeveloper 10g with OA Extension contains both the JDeveloper 10g help

Framework.
c l e
and the specific help for the additional components provided by OA Extension and OA

r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 42
Obtaining Help on a Topic

my
de
ca
e A
Obtaining Help on a Topic

cl
Pressing the [F1] key invokes a context-sensitive Help topic window.
Javadoc
ra
O ly
Javadoc is a tool that parses the declarations and documentation comments in a set
of source files and produces a set of HTML pages describing the classes, inner

& On
classes, interfaces, constructors, methods, and fields.
l
na e
When working in the Code Editor, you can quickly access the specific javadoc entry
for any element in the source file. To browse the specific javadoc entry for a given

ter U s
class, member, or method, select the appropriate code element, right-click, and
choose Quick Javadoc. A pop-up window with javadoc for just that element appears.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 43
Oracle JDeveloper Debugger

my
de
ca
e A
Oracle JDeveloper Debugger

cl
Debugging is the process of looking for program errors that prevent your program from

ra
doing what you intended. There are two basic types of program errors: run-time errors
and logic errors. Remember that the compiler catches any syntax problems.
O ly
If your program successfully compiles but gives run-time exceptions or hangs, then

l & On
you have a run-time error. That is, your program contains valid statements but is
encountering errors when they are executed. For example, you may be trying to open
a e
a file that does not exist or you may be trying to divide by zero.
n
r s
Logic errors are errors in the design and implementation of your program. That is, your

e
program statements are valid and do something, but the results are not what you
t U
intended them to be. This type of error is usually the most difficult to find.

In
The debugger enables you to control the execution of your program. It provides the

cle
ability to execute parts of the code step by step. You can also set breakpoints that
pause the program execution when it reaches the line of code you want to examine.

ra
While the program is paused, you can inspect and even modify program variables.
This helps you examine loops and other control structures to make sure that what is
Ohappening is what you intended.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 44
Breakpoints
Breakpoints are a convenient way of tracing the cause of a problem in a program.
When the debugger encounters a breakpoint, it pauses program execution. You can
resume execution, stepping through the code line by line and examining variables and
conditions. Or you can simply stop the program. You can set as many breakpoints as
you want.
Watchpoints
A watchpoint is a new type of breakpoint in JDeveloper 10g with OA Extension. A
watchpoint is a breakpoint that breaks on a value change.
Watchpoints enable you to pause the debugger when the value of a specified field is
accessed or modified. You set a watchpoint by right-clicking a variable in the Code
Editor and choosing Toggle Watchpoint from the shortcut menu.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 45
Breakpoints

m y
d e
ca
e A
Breakpoints
Setting Breakpoints
c l
r a
To set a breakpoint, you select a line of code in the source code window, right-click,
and then select Toggle Breakpoint. You can click in the left margin to set a new
O ly
breakpoint. After you start debugging, breakpoints that are known to be valid have a

l & On
check mark in the breakpoint icon. A breakpoint without a check mark may mean that
this line does not represent code where the debugger can stop. However, it might
a e
simply mean that the debugger does not yet know whether the breakpoint is valid or
n
invalid.
Viewing Breakpoints
t e r U s
I n
To view all the currently enabled breakpoints, select View > Breakpoints from the
menu bar. A window appears showing all the breakpoints that are set in the program.

c l e
To disable or remove a breakpoint, right-click the breakpoint and select an action from
the shortcut menu.

r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 46
Conditional Breakpoints
To set the conditions on which you want a breakpoint to be activated, right-click a
breakpoint and select Edit Breakpoint. On the Breakpoint Conditions tab, you can
specify information about how and when the breakpoint is activated (including valid
Java conditional statements and thread-specific conditions).
Display Settings
To select the columns that are displayed in the breakpoints window, right-click in the
breakpoints window and select Settings. In the dialog box, select Debugger >
Breakpoints in the navigator tree on the left, and then select the columns to display.
Scope Settings
To select the scope for debugging, right-click in the breakpoints window, select
Change Scope, and then select the appropriate value.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 47
Breaking on Exceptions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 48
Debugger Windows

my
de
ca
e A
Debugger Windows

cl
Make sure that the project is selected, and then click the Debug icon. Alternatively, in

ra
the menu bar you can select Debug > Debug <Project Name>.jpr. This causes any
required files to be compiled and then starts your program in debug mode.
Debugging Windows O ly
l & On
As soon as you start the debugger, three tabs are added to a new window at the
lower-right side of JDeveloper: the Smart Data tab, the Data tab, and the Watch tab. A
a e
new tab is added to the existing message window. You can use this tab to monitor the
n
ter s
code as it executes. Fields for each window can be modified in the Tools >
Preferences menu in the Debugger node.
U
In
• Smart Data tab: Displays only the data that appears to be relevant to the source
code you are stepping through

le
• Data tab: Displays all the arguments, local variables, and static fields for the

c current method

ra• Watch tab: Displays the current value of an expression that you have flagged to
appear during execution of the program
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 49
Remote Debugging
You can manually launch the program you want to debug and then start the debugger.
In the Host list, select the name of the machine where the program has started. After
the debugger is attached to the running program, remote debugging is similar to local
debugging.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 50
Stepping Through a Program

m y
d e
c a
e A
Stepping Through a Program

c l
Click the following buttons in the debugger toolbar:

r a
• Start the debugger: Executes the program in debug mode. The program is
paused when it encounters a breakpoint. If no breakpoints are set, you can
O ly
pause the program by clicking the “Pause execution” button.

& On
• Resume the program: Resumes the program after stopping at a breakpoint
l
n a e
• Step over a method call: Executes the method at the current position in the
program at full speed rather than tracing the method line by line

t e r U s
• Step into a method call: Traces a method line by line. This is useful when you
suspect that the method may be the one that is causing the problem.

I n
• Step out of a method call: Enables you to step out of the current method and
return to the next instruction of the calling method

l e
• Step to the end of the method: Jumps to the end of the method
c
r a
• Pause execution: Pauses a running program at its current position
• Stop the debugger: Stops the execution of a running program. This is a useful

O way of killing the program.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 51
Watching Data and Variables

my
de
ca
e A
Watching Data and Variables

cl
Viewing Analyzed Data on the Smart Data Tab

ra
The debugger analyzes the source code near the execution point, looking for variables
and fields expressions that are used in the lines of code. By default, the debugger
O ly
analyzes only one line of code for each location.

& On
Viewing Local Variables on the Data Tab
l
na e
The Data tab is the lower window that is displayed when you click the Debug tab at
the bottom of the Applications Navigator. The Data tab automatically displays a list of

ter U s
local variables, static fields, and arguments that are in scope. As you jump from one
method to the next, the list of variables displayed on the Data tab changes.

In
Selecting Other Variables and Expressions to Watch
Other variables and expressions can be viewed by following the steps described in the

le
slide. Select a variable or expression such as age+10. Right-click the variable or
c
expression and select “Watch… at Cursor” from the shortcut menu. A dialog box

ra
displays the selected variable or expression; click OK to accept it and add it to the
Watch tab. View the variables that you have selected to monitor on the Watch tab. To
Omodify a data value, right-click it and select Modify Value from the shortcut menu.

Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 52
Debugging Declarative Applications

my
de
ca
e A
cl
For example, compiler messages can warn you that you forgot to provide a setting for
important properties that would affect how the page runs. The Embedded OC4J

their bind variables.


ra
window shows runtime information such as SQL statements being executed as well as

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 53
More Debugging Tips

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 54
Understand BC4J Interactions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 55
Understand BC4J Interactions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 56
Debugging Validation and Commits

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 57
Summary

my
de
ca
e A
Open the Course Labs book.

cl
Complete Lab 3 – First OA Framework Page

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to JDeveloper 10g with OA Extension


Chapter 7 - Page 58
Introduction to
Personalizations
Chapter 8

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 3
Course Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 4
Concepts: Pages

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 5
Concepts: Regions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 6
Concepts: Region Hierarchy

my
de
ca
e A
Region Hierarchy

cl
This picture shows how regions and items in a page correspond to the hierarchy you

ra
would see in the Personalization Structure page for administrators. The hierarchical
grid is an abstraction of the OA Framework-based page. Each indent level in the
O ly
hierarchy represents a container region. Each leaf node is an item (field or widget).

l & On
Note that Personalize… region links are shown in the displayed page. Whether these
region-level links appear is determined by the FND: Personalization Region Link
a e
Enabled (FND_PERSONALIZATION_REGION_LINK_ENABLED) profile option.
n
r s
Some objects listed in the Personalization Structure page may not appear in the same

e
order as they do in the displayed page. For example, the Page Button Bar, which
t U
display the “Create Expense Report”, “Import Spreadsheet”, and “Export Spreadsheet”

In
buttons on the top of the page, appear after the “Track Submitted Expense Reports”

le
and “Update Expense Reports” headers in the page hierarchy. Use Expand All on the
hierarchy to see the entire hierarchy of regions and items.
c
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 7
Concepts: Items

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 8
Examples of Personalizations

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 9
User Personalizations

my
de
ca
e A
cl
Once you create a user personalization, the page displays a Views button. This allows
you to call up any user-created or administrator-seeded user personalizations.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 10
User Personalizations

my
de
ca
e A
cl
Once you click on the Views button, you now have an additional UI where you can call
up your predefined user-level personalizations, including administrator-seeded user-
level personalizations.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 11
Administrator-seeded Personalizations

my
de
ca
e A
cl
Other than being broadly available, administrator-seeded personalizations are no
different from any other user personalization.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 12
Administrator Personalization (After)

my
de
ca
e A
cl
The following changes have been made on this page:
1. The regions have been reordered. Note that the Notifications region is first.

ra
2. A new tip has been created and put at the bottom of the page.

O ly
3. A new button has been created and put below the new tip.
4. The privacy statement link has had its TEXT changed. While not visible on this
& On
slide, the privacy statement points to a new URI as well.
l
na e
5. A new column (Currency Code) has been added to the Track Submitted Expenses
Reports table, and data has been mapped into that new column.

ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 13
Configurable Pages (After)

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 14
Add a Flexfield (After)

my
de
ca
e A
cl
This is the page with the added flexfield. If the flexfield has not been defined, the
region would not appear. So, adding a flexfield is a multi-part process involving both

a
E-Business Suite and OA Framework-based capabilities.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 15
Customizing the Look-and-Feel (After)

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 16
Personalizations vs. Extensions

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 17
Benefits of Personalizations

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 18
Benefits of Extensions

m y
d e
ca
e A
Limitations of Personalizations

c l
• Modifying business logic requires creating an extension to the application using

class. r a
JDeveloper with OA Extension. Extensions are covered in another section of this

O ly
• The ability to change page flows depends on how the page flow was

l & On
implemented. In some cases, URLs in functions may be modified, or destination
URIs on navigational elements may be personalized. However, in any case of
a e
changing page flows, transaction flows may be affected, and such changes
n
e r
should be thoroughly tested. Page flow changes are generally beyond the scope
of the system administrator.
t U s
• If you are trying to create a button or link that goes to another page with

I n
parameters, the destination page must already be built to accept parameters and

l e
do something with them. Usually these would be drilldown pages. If the source
page uses nested application modules, it may not be possible to implement
c
r a passing parameters.
• You cannot replace a List of Values (LOV) with a poplist.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 19
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Introduction to Personalizations
Chapter 8 - Page 20
Personalization Concepts
Chapter 9

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 3
Objectives

m y
d e
ca
e A
Release 12.
c l
This lesson covers the personalization features available in the E-Business Suite

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 4
System Personalization Capabilities

my
de
ca
e A
cl
Menus and responsibilities are system personalizations, as are messages and
lookups. These types of personalization apply to both OA Framework-based products
and Oracle Forms-based products.
ra
Display Preferences are personalizations that apply across OA Framework-based
O ly
applications and do not affect product functionality. For example, changing the FND:

l & On
Branding profile option changes the appearance of the product logo in all OA
Framework-based pages in the installation of the E-Business Suite, but it does not

a e
affect how the pages behave.

n
Framework-based page.
ter
Page Personalization can affect both the appearance and functionality of an OA

U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 5
Menus and Responsibilities

my
de
ca
e A
cl
System administrators often create new responsibilities for different classes of users.
System administrators can also create new menus, modify existing menus, and

ra
remove (exclude) portions of existing menus for different responsibilities. This type of
personalization applies both to OA Framework-based products and Oracle Forms-
based products.
O ly
l & On
Creating menus and responsibilities, as well as setting up other security features, is
covered in the System Administrator Fundamentals class offered by Oracle University.

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 6
Creating Menus and Responsibilities

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 7
Functional Administrator Menus Page

my
de
ca
e A
cl
This is an OA Framework-based menus page available to the Functional
Administrator. Menus you define in this page can be used for both OA Framework-

ra
based pages and Oracle Forms-based forms.
Select the link on the menu name to drill down to see its menu entries. Use the Create
O ly
Navigation Menu button to enter a new menu.

l & On
Responsibility: Functional Administrator (or UMX: Functional Security Administration)
Navigation: Core Services > Menus

na e
It is worth noting that the old Oracle E-Business Suite security system has been

ter U s
superceded by a newer security mechanism called, UMX (User Management).
Products now leverage this new and more powerful security model. If you want to

In
know more, please visit the Oracle User Management FAQ at:
http://www.oracle.com/technology/products/applications/security/oracleusermanagementfaq.htm#Q35

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 8
Functional Administrator Menus Page

my
de
ca
e A
cl
This is the page you drill down to from the Menus page. You can use this page to
examine, update, and duplicate existing menus.

ra
Responsibility: Functional Administrator
Navigation: Core Services > Menus > link on menu name
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 9
Menus Form

my
de
ca
e A
Navigation: Application > Menu
cl
Responsibility: System Administrator

ra
Note: For clarity, the above screenshot is a traditional Forms-based page, not an OA
Framework web-based page.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 10
Responsibilities Form

my
de
ca
e A
cl
Responsibility: System Administrator
Navigation: Security > Responsibility > Define

ra
Note: For clarity, the above screenshot is a traditional Forms 6i based page, not an
OA Framework web-based page.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 11
Messages

my
de
ca
e A
cl
Messages and lookups are system personalizations. System administrators often
create new application messages and lookups. This type of personalization applies

(traditional) products.
ra
both to OA Framework-based (web-based) products and Oracle Forms-based

O ly
Creating or modifying Oracle Applications messages is covered in the Oracle

& On
Applications Developer’s Guide, as well as in some product-specific documentation.

l
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 12
Functional Administrator Messages Page

my
de
ca
e A
cl
This is an OA Framework-based messages page available to the Functional
Administrator. Messages you define in this page can be used for both OA Framework-

ra
based (Web-based) pages and Oracle Forms-based (Traditional forms) pages.
Select the Create Message button to create a new message.
O ly
Responsibility: Functional Administrator (or UMX: Functional Security Administration)

& On
Navigation: Core Services > Messages
l
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 13
Messages Form

my
de
ca
e A
c
Navigation: Application > Messagesl
Responsibility: Application Developer

ra
Note: For clarity, the above screenshot is a traditional Forms-based page, not an OA
Framework web-based page.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 14
Lookups

my
de
ca
e A
cl
See the Oracle Applications System Administrator’s Guide, the Oracle Applications
Developer’s Guide, and product-specific documentation for further information on
lookups.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 15
Functional Administrator Lookup Types Page

my
de
ca
e A
cl
Lookup types and codes you define in this page can be used for both OA Framework-
based (web-based) pages and Oracle Forms-based (traditional) forms.

meanings. ra
Select the link on the lookup type name to drill down to see the lookup codes and

O ly
Responsibility: Functional Administrator (or UMX: Functional Security Administration)

& On
Navigation: Core Services > Lookups
l
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 16
Drill Down to Lookup Codes Page

my
de
ca
e A
cl
For those lookup types that are updatable, you can edit existing lookup codes and add
new codes with meanings and descriptions by selecting the Update button.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 17
Application Object Library Lookups

my
de
ca
e A
cl
This is one of several lookups forms in the E-Business Suite.
Responsibility: Application Developer

ra
Navigation: Application > Lookups > Application Object Library

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 18
Custom Colors and Fonts

my
de
ca
e A
cl
Custom Look-and-Feel (CLAF, or Custom Skin)
In Release 12, OA Framework provides pages to declaratively define new a look-and-

ra
feel in a convenient HTML user interface.
• A style sheet controls colors and fonts.
O ly
• Named icons can be replaced with custom icons.

& On
The E-Business Suite includes several skins that you can use or extend. You can
l
na e
apply different skins at the site, responsibility, application, organization, or user level.
Creating a new look-and-feel is described in another section of this class.

ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 19
Branding

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 20
Corporate Branding Image

my
de
ca
e A
cl
To set a Global image to be used across all products, set the profile option “Corporate
Branding Image for Oracle Applications” (FND_CORPORATE_BRANDING_IMAGE)

ra
to the full path name of an image file (GIF) that contains your corporate image. This
profile option should be set at the Site level and does not have a default value.

O ly
To change just a single page’s image, create an administrator personalization for a

l & On
specific page by setting the Image URI property on the corporateBranding page
element to a different image file. This updates the image only for the specific usage on
that page.

na e
ter
Branding is covered in more detail in the Oracle Applications Framework
s
Personalization Guide Release 12.
U
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 21
Product Branding Image

my
de
ca
e A
cl
Personalizing product branding is covered in more detail in the Oracle Applications
Framework Personalization Guide Release 12.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 22
Concepts: Page Personalizations

m y
d e
ca
e A
Layered Page Personalizations

c l
OA Framework-based pages are saved as metadata in the database (page

r a
definitions). Each page personalization represents just the change (i.e., the delta
change) from the base page definition. Page personalizations are also stored as
O ly
metadata definitions. At runtime, the personalization definitions are layered over the
base page definitions.

l & On
Page Personalizations Survive Upgrades
a e
Because page personalizations are saved as metadata documents in the database,
n
unchanged.
t e r U s
and that data is not affected by an upgrade, personalizations survive upgrades

I n
You should test and evaluate each personalization after an upgrade, however. In
some cases, your personalizations may no longer be valid. Reasons personalizations

c l e
might become invalid include:
• Functionality you created or modified for a specific product now may be

r a incorporated into the base product pages, making your personalization no longer
necessary after the upgrade.
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 23
• A page in a product may have been modified by development to remove fields or
regions, in which case personalizations based on those fields would no longer be
valid. This scenario is unlikely.
• A page in a product may have been modified by development to add fields or
regions, in which case you may want to create additional personalizations after
the upgrade.
• A page in a product may have been completely rewritten by development, in
which case most or all of the personalizations on that page may be invalid. This
scenario is unlikely.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 24
Concepts: User Personalizations

my
de
ca
e A
cl
Administrator Personalizations and User Personalizations
Administrators can personalize most pages, regions, and items in the OA Framework-

ra
based parts of the E-Business Suite. Administrators can do personalizations that
affect the behavior and functionality of the pages, such as adding new fields and
O ly
connecting them to data in tables. The changes made by administrators can affect the

l & On
applications across the entire installation, or at more restricted levels.
End users are much more limited in what they can do. Users can only make
a e
personalizations to inquiry pages where personalization has been specifically enabled
n
er
by the application developer. User personalizations affect only the user who creates
s
them. Users can hide some columns, and they can change prompts, order of table
t U
columns, query criteria, and sort order of columns, but they cannot add new columns

In
or other items to the page.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 25
Concepts: Personalization Levels

m y
d e
c a
e A
Personalization Levels

c l
The various personalization levels are layered. For example, a responsibility-level

r a
personalization would take effect above and beyond any personalizations at the site
level for a user in the specified responsibility, but any other users at the site not using
O ly
that responsibility would see only the site-level changes.
Levels

l & On
• Function Level - the customer administrator can define functions and use them
a e
as context for granular level personalizations. For example, you can create a
n
t e r s
function-level personalization to "hide the salary field, if the user is updating an
employee record, but not when the user is creating a new employee".
U
I n
• Industry Level – the customer administrator can introduce personalizations that
affect all users of a particular industry such as using the term “business unit”

c l e
rather than “store”, “location”, or “franchise”. Industry level includes a predefined
list of vertical market categories, such as Healthcare - Provider and Utilities –

r a Electricity.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 26
• Localization Level - the customer administrator can use locales as context for
personalizations such as "showing a different address field label based on
country settings".
• Site Level - the customer administrator can introduce global personalizations that
affect all users with access to the given application component, such as "setting
the number of rows shown in a table".
• Organization Level - the customer administrator can introduce personalizations
that affect all users belonging to a particular organization or business unit with
access to the application component. Example: "sort notifications by age for one
organization and by urgency for another".
• Responsibility Level - the customer administrator can introduce personalizations
that affect all users of a particular responsibility with access to the application
component. Example: "show a trend graph for the sales manager responsibility".
• Seeded User Level - like the User Level available to End Users, but
personalizations made at this level are visible to all users and can only be
changed or deleted by the customer administrator. (Also referred to as "Admin-
seeded user-level" personalizations.)
Oracle-Seeded Levels
Oracle E-Business Suite developers can also seed personalizations as part of the
product:

my
• Seeded Function Level - like the Function Level available to Administrators, but
personalizations made at this level can only be changed or deleted by Oracle.

de
• Seeded User Level - like the User Level available to End Users, but
personalizations made at this level can only be changed or deleted by Oracle.

ca
(Also referred to as "Oracle-seeded user-level" personalizations.)
• Oracle Applications Developers can create and ship personalizations at any of
A
the Administrator personalization levels discussed above, but these are not

e
l
protected against change and deletion by Administrators at the customer site.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 27
Personalization Levels and Layers

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 28
Layers and Levels

my
de
ca
e A
cl
Personalizations add themselves like onion-layers to a page. This hierarchy shows the
order in which those layers of personalization are applied. Each progress layer up the

ra
hierarchy includes all the changes beneath it, plus any changes that it adds to the mix.
Understanding this hierarchy is important to debugging unusual behavior. Let’s offer
an example.
O ly
Function Layer: add a field

l & On
Site Layer: hide the field added at the function layer.

na e
In this example, you might think that your new field would appear on the page, but

ter U s
since the field was hidden at a layer above where it was added, the field will not
appear on the page. Diagnosing issues like this can be time-consuming to track down

n
all the possible culprits.
I
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 29
Summary

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalization Concepts
Chapter 9 - Page 30
User-level Personalizations
Chapter 10

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 3
Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 4
User-level Personalizations

my
de
ca
e A
cl
User-level personalizations are available on search pages where the feature has been
enabled by the developer. These personalizations are also known as "saved

ra
searches“ or "user views". They are approximately equivalent to "folder forms" in the
Oracle Forms-based E-Business Suite forms.

O ly
End users can personalize inquiries and save as many user views as they need.

l & On
Views can be retrieved later using a drop down list on the top of the inquiry region.
End users can tailor the search result columns by tailoring their titles, order and

a e
visibility. End users can also restrict the search criteria and change the sort order.

n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 5
User-level Personalization Features

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 6
User-level Personalizations

my
de
ca
e A
cl
Application developers must choose to specifically enable the capability to save
personalized views (saved searches), so this capability is not available in all search
pages.
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 7
User-level Personalizations: Views

my
de
ca
e A
• Save query criteria.
cl
By creating a personalized view, end users can:

ra
• Modify the layout of the results table to hide or show specific columns.
• Rename or reorder columns.
• Change the sort order. O ly
l & On
• Set a particular view as the default view.

na e
This picture shows the user interface for personalizing and saving searches, where
you give your search a name, specify how many rows the results table should contain,

er s
and which columns to display. For some pages, you would also see buttons that allow
t U
reordering of the displayed columns.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 8
User Personalizations: Sort and Filter

my
de
ca
e A
cl
If you change the sort order, you must set all the columns for the sort order explicitly,
even if you want to leave some "as is" in the order.

ra
Setting query filters always makes the page's query more restrictive. For security
purposes, you cannot override the query restrictions built into the page. You can only
add to those restrictions.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 9
User Personalizations: Column Renaming

my
de
ca
e A
cl
Some column names are controlled by the page developer and cannot be changed for
personalized views. Similarly, the ability to set Show Total varies from page to page.

ra
Of course, you would not be able to show a total for a column where it does not make
sense, such as for the Purpose column in the picture above.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 10
User Personalizations: Multiple Views

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 11
Users Maintain User Personalizations

my
de
ca
e A
l
Users can update, delete, or duplicate their own personalized views.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 12
Default Personalizations for Users

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 13
Seeding User-level Personalizations

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 14
Admin-Seeded User Views

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 15
Admin-Seeded User Views

my
de
ca
e A
cl
This picture shows the administrator user interface for doing personalizations. The
administrator can seed new personalized views on behalf of end users.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 16
Admin-Seeded User Views

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 17
Admin-Seeded User Views UI

my
de
ca
e A
What is a “Securing Function”?

cl
A function is part of an application’s functionality that is registered under a unique

ra
name for the purpose of assigning it to, or excluding it from, a menu. Since menus are
assigned to responsibilities, and responsibilities are assigned to users, by extension
O ly
this is a means of inclusion or exclusion for responsibilities and users as well.

l & On
A securing function then is just a function that has been put into a menu, not for the
sake of offering a navigation path to a page or form, but as a method by which a user
a e
and/or responsibility can test to see if it is allowed a given capability.
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 18
Create Admin-Seeded User View

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 19
Summary

my
de
ca
e A
Open the Course Labs book

cl
Supplemental Lab 1 – User-Level Personalizations is provided as a supplemental lab

a
for your reference and future learning.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

User-level Personalizations
Chapter 10 - Page 20
Administrator-level
Personalizations
Chapter 11

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 3
Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 4
Administrator Personalization Features

m y
d e
ca
e A
some basic concepts.
c l
Administrator Personalizations are powerful. With that power, you have to understand

r a
1. Access to the ability to perform Administrator Personalizations on a page should
be restricted to those who have been trained and have experience to do such
personalizations.
O ly
l & On
2. All Administrator Personalizations should first be performed and tested on a
demo or development system before being moved to a production server.
a e
3. It is possible to create Administrator Personalizations that “break” a page. All
n
t e r U s
personalizations should be fully tested.
4. While it is likely that personalizations will survive patches and upgrades, you

I n
cannot assume that this is always the case. After patches or upgrades, fully test
all pages and personalizations that have been impacted by such a patch or
upgrade.

c l e
5. To facilitate development testing, post-patch testing, and post-upgrade testing, it

r a is recommended that you document all personalizations that have been created
for your instance.
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 5
What Can Be Personalized by Administrators?

my
de
ca
e A
personalization
cl
Pages or regions where the application developer has disabled administrator

ra
The application developer can explicitly disable personalization for a page, region, or
item. Also, regions and items that have been created programmatically in the page
logic cannot be personalized.
O ly
l & On
Personalizations seeded by Oracle development
Users cannot update or delete Oracle-seeded Function-level personalizations. To
a e
update an Oracle-seeded personalized function, you must duplicate the function and
n
update the duplicate.

ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 6
Admin-Level: Where Do I Start?

m y
d e
ca
e A
Setting Up Personalizations

c l
Always create your personalizations initially in a test environment, never in a

r a
production environment. Once you are satisfied with your personalizations, you can
download them from your test instance and deploy them to one or more production
instances.
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 7
Profile Options for Personalization

my
de
ca
e A
FND: Diagnostics -- FND_DIAGNOSTICS

cl
Set this profile option to Yes at the user level to enable a host of diagnostics features,

ra
particularly the About this Page feature. The About this Page feature enables a link at
the bottom of each OA Framework-based page. When you select this link, you see a
O ly
page that provides a wealth of information about the current application page and the

l & On
environment, such as regions in the page, underlying view objects (data sources),
menu and function information, and so on.

a e
Personalize Self-service Defn -- FND_CUSTOM_OA_DEFINTION [sic]
n
r s
Set this profile option to Yes at the user level for an individual user who will be

e
implementing admin-level personalizations. Once this profile option is set to Yes, the
t U
authorized user sees a "Personalize" link available at the top of each OA Framework-
based page.
In
le
FND: Personalization Region Link Enabled --

c
FND_PERSONALIZATION_REGION_LINK_ENABLED

ra
Set this profile option to Yes at the user level for an individual user who will be
implementing admin-level personalizations. Once this profile option is set to Yes and
OPersonalize Self-service Defn is set to Yes, the authorized user sees a "Personalize"

Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 8
link for each region in each OA Framework-based page. Setting this profile to Minimal
minimizes the number of "Personalize Region" links displayed on a page such that
links are displayed only for the farthest downstream region nodes in a hierarchy. Links
for dynamically created regions are present regardless of their position in hierarchy.
Disable Self-service Personal -- FND_DISABLE_OA_CUSTOMIZATIONS
If you create a personalization that causes an error in a page, or you are trying to
diagnose whether a problem is in a base product page or is due to personalizations,
set this profile option to Yes to disable all personalizations from being applied. Once
the problem is solved, set this option back to No so personalizations can take effect
again.
Before you can personalize a region at a personalization level, you must set the
Personalize Self-service Defn profile option to Yes for the user you are signing in as.
Every OA Framework-based application page contains a global Personalize Page link.
This profile option enables the global Personalize Page link on every page so that you
can personalize any page or region. The Personalize Page link navigates to the Page
Hierarchy Personalization or the Page Layout Personalization pages, where you can
drill down to the region you wish to personalize.
Additionally, you may set the FND: Personalization Region Link Enabled profile option
to Yes, to enable "Personalize Region" links for each region in a page. When this
profile is enabled, "Personalize Region" links appear above each region, unless the
region is a table, hierarchy grid, or table layout region, in which case the link appears

my
below that region. Rather than use the global "Personalize Page" link on every page,
you can use any of the "Personalize Region" links to first navigate to the Choose

de
Personalization Context page, then to the Page Hierarchy Personalization page with
immediate focus on the region from which you selected the "Personalize Region" link.

ca
Note: Enabling the "Personalize Region" links allows users to also personalize
regions that are dynamically added to the page from custom code in the controller.

e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 9
Analysis

my
de
ca
e A
Analysis

cl
Another way to analyze a page for planning personalizations is to download the page

ra
definition from the MDS Repository using the XMLExporter, and then examine the
page using JDeveloper with OA Extension. See the OA Framework Developer's Guide
O ly
for information on using the XMLExporter.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 10
About this Page

my
de
ca
e A
for your user.
cl
If you do not see this link, the profile option FND: Diagnostics is not currently enabled

ra
Note: On many instances, the System Administrators leave FND: Diagnostics on at a
site level. So, this information is available to all users. This is not a recommended
setting at the site level.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 11
About this Page

my
de
ca
e A
cl
There is a tremendous amount of information provided by the “About this Page” link.
Be certain to click all the tabs to see all the information that is collected.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 12
Navigate to Page and Start Personalizing

my
de
ca
e A
Navigating to the Page

cl
To begin personalizations, select the Personalize Page link at the top of the page you
want to personalize.
ra
You can get to the personalization UI by navigating to the page directly using the
O ly
appropriate responsibility and menu and selecting a Personalize link (either at the top

l & On
of the page or at a particular region if region-level links are turned on).
You can also get to the personalization UI through the Application Catalog page in the
a e
Functional Administrator responsibility, where you can personalize pages in any
n
ter U s
application, even if those pages are not on your own responsibility or menu.
Minimal region-level links are turned on in this picture.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 13
Default Personalization Context

my
de
ca
e A
Default context

cl
When you first enter the personalization user interface, your personalization context

ra
and scope default to the context you were in when you selected a Personalize Page or
Personalize Region link. Your context includes your site, your organization, and
O ly
responsibility you were using when you entered the personalization UI.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 14
Optional: Choose Context

my
de
ca
e A
Choosing context

cl
The context values on this page default to the current context (responsibility and so

to the Personalization page. ra


on). Once you have chosen your scope and context, select the Apply button to return

Personalizing a different contextO ly


l & On
Once you have finished your personalizations for a particular context, you can change
to another context simply by changing your values in the Choose Personalization
a e
Context page and selecting Apply. If you want to reset the context to the current
n
ter U s
context, simply select the Set to My… button for that context value.
If you are creating personalizations from the Functional Administrator responsibility,

In
you must usually change the Personalization Context settings (since your
personalizations will not typically pertain to the Functional Administrator responsibility).

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 15
Optional: Set Personalization Scope

my
de
ca
e A
Personalization Scope

cl
Pages are made up of regions, which can in turn be made of further regions, and so

ra
on (a hierarchical structure). A region can contain regions that are shared with other
pages, and a shared region can contain other shared regions. Be sure you are
O ly
personalizing the correct scope for the changes you want to create.
Default Scope

l & On
The default scope is the current page (that is, the single instance of all regions on the
a e
page, as opposed to globally across all pages).
n
Personalization Context

ter U s
Note that all these personalizations assume that the personalization context is valid.

In
That is, the user is in a particular page, site, responsibility, and so on, where that
personalization applies.

le
Global and Per-Instance Personalizations
c
Administrator personalizations of shared components can be:

ra• Global: applied to the shared component base definition across pages

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 16
• Per-instance: applied to the shared component usage in the context of a
particular page
For example: a global personalization could be applied to the workflow notification list
to sort notifications by type, while on a particular page the notification list is limited to
overdue notifications, and the list is sorted by date.
End user personalizations only affect the single instance of the page.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 17
Optional: Search for Item in Page

my
de
ca
e A
Search Feature

cl
Use the Search feature to find all existing personalizations for the page by checking

Title/Prompt/Text fields blank. ra


the Include Personalized Items Only check box and leaving the Style and

O ly
You can also search for all items of a particular style, and so on.

l & On
Note that the Search feature is only available for deployed applications in the MDS
Repository. You cannot use it for pages you are running from JDeveloper.

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 18
The Personalization UI

m y
d e
ca
e A
Region Hierarchy

c l
Use Expand All in Complete View on the hierarchy to see the entire hierarchy of
regions and items.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 19
Find Object to Personalize

my
de
ca
e A
Simple View and Complete View

cl
The choice between the simple and complete views is available starting with CU2.

ra
The simple view displays the items in a page and the region immediately above the
items. Container regions that contain only other regions (no items) do not display.
O ly
Many of the Create Item and Reorder icons are disabled in the simple view because

l & On
the regions in the display are not necessarily the regions where you can reorder
objects or create new ones (because many parent regions might be hidden). To see
a e
all the regions in the hierarchy, use the Complete View option.
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 20
Complete View

m y
d e
ca
e A
c l
The choice between the simple and complete views is available starting with CU2.
The complete view displays the complete region and item hierarchy in the page.

r a
Because the complete view displays all the container regions, you can add and
reorder objects in the correct containers.
O ly
The picture here includes the same amount of the page hierarchy as the previous

l & On
picture. Many of the container regions, such as the Default Single Column and Table
Layout regions, are hidden in the simple view.

n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 21
Create Your Personalization

my
de
ca
e A
Personalizations

cl
Not all of these icons would appear on the same line in the Personalization Structure.

ra
If you created an item, you can update it or delete it. If you then update or delete that
item, it changes the original definition of your created item. Personalizing a created
O ly
item adds personalization layers on top of your original item definition without
changing that definition.

l & On
The icon for Seeded User Views only appears in certain tables that are results tables
a e
inside special query regions (built by the developer using the "query bean").
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 22
Modify Object Properties

m y
d e
ca
e A
Result/Source

c l
The screenshot above doesn’t have room to show it, but the last column on the

r a
Personalization Properties window is labeled, Result/Source. It shows you what will be
displayed based on your current user, responsibility, organization, function, and site. For

O ly
example, you might see the Records Displayed property showing 15 rows in the table,
and the personalization level that is setting the value (in this example the Responsibility
level).
l & On
Properties vary by object style

n a e
e r
The object could be either an item or a region. For example, a region style of table
s
would have the Records Displayed property, but a region style of header would not
have that property.
t U
SPEL Values
I n
c l e
Some pages use special syntax (SPEL: Simplest Possible Expression Language, also
known as EL) to set properties of regions or items dynamically at runtime, usually

r a
based on data values. For example, certain fields may become required fields if
another field has a particular value.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 23
You can override SPEL syntax in a personalization (such as setting a field's Required
property to True or False). Note that overriding SPEL syntax may have adverse side
effects for the page, and you should test such changes carefully.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 24
Common Properties to Personalize

my
de
ca
e A
Properties

cl
The properties you can personalize vary by item style or region style.
Rendered Property
ra
O ly
In rare cases, changing the Rendered property to False could have unexpected side
effects if there is logic in the page that refers to the field, so thorough testing is
recommended.
l & On
expression as their value.
na e
The Rendered, Required and Read Only properties can be personalized using a SPEL

ter U s
Required items will display regardless of the value of the Rendered property.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 25
SPEL Example Using Functions

m y
d e
ca
e A
c l
Setting up a function to provide the value of a SPEL expression can be done
completely through the Functional Administrator responsibility. These are the steps to
make a new function available to use:
1. Create a function. r a
2. Create a permission. O ly
3. Create a permission set.
l & On
4. Create a role.
5. Create a grant.
n a e
e r s
When you select the poplist icon for any of these properties in the personalization
t U
level columns, the poplist generally displays the choices Inherit, true, false, and SPEL,
as follows:
I n
l e
• If the base value of Rendered is SPEL, the poplist choices for Rendered are false
or SPEL.
c
r a• If the base value of Required is SPEL, the poplist choices for Required are true
or SPEL.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 26
• If the base value of Read Only is SPEL, the poplist choices for Read Only are
true or SPEL.
These rules maintain the integrity of the business logic and security criteria of the
page.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 27
Other Common Properties

m y
d e
ca
e A
Other Properties

c l
• Destination URI and/or Destination Function provide links to navigate to another
page, website, and so on.
r a
- Links to other pages in the E-Business Suite use the syntax:
O ly
OA.jsp?page=<URL path>&<paramName1>={@<ViewAttributeName1>}

l
&retainAM=<Y or N> & On
- or
n a e
&addBreadCrumb=<Y or N>

OA.jsp?

t e r U s
OAFunc=<FunctionName>&<paramName1>={@<ViewAttributeName1>}

I n
&retainAM=<Y or N>

c-
l e &addBreadCrumb=<Y or N>
Links to outside websites use the syntax http://my.website.com

r a - Mailto: links use the syntax:


mailto:{@<EmailAddressViewAttributeName>}
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 28
For example:
mailto:{@ManagerEmail}
• User Personalization set to False lets an administrator prohibit further
personalizations by an end user.
• CSS Class controls the visual properties of an item. You typically set a value for
CSS Class when you create a new field.
- OraDataText: bold, left-aligned display-only field data.
- OraFieldText: plain text in updatable fields, checkboxes, and so on.
- OraPromptText: right-aligned prompts. Note that the "message" Beans,
such as messageTextInput, automatically set the correct CSS class for the
prompt. The text displayed for a checkbox is not considered to be a prompt,
so use OraFieldText instead.
- OraLinkText: left-aligned plain text data that should render as a link in the
link color.
- OraInstructionText: any of the left-aligned plain text instructions that you add
to your page.
Tip: The CSS Class styles used in the Browser Look and Feel (BLAF) standard for
Release 11.5.10 are listed on the Oracle.com website at:
http://www.oracle.com/technology/tech/blaf/specs/textStandards.html

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 29
Other Common Properties

my
de
ca
e A
Initial Value

cl
Initial Value allows you to set a constant value as a default value for a field.

ra
You can set a default value for an item for the following item styles:

O ly
• MessageTextInput (for Datatypes - VarChar, Date, Number)
• MessageLOVInput
• MessageCheckBox
l & On
• MessageChoice

na e
• MessageRadioButton
• MessageRadioGroup
ter U s
In
When you set the Initial Value property, you must ensure the value matches the data
type and field-level restrictions of that item page element, otherwise you get an

le
exception. For example, you cannot specify a value of "True" on a date field or set the

c
value to a length of 20 characters if the field length is 10 characters.

ra
The default value you set using Initial Value overrides any default value set in the
page's underlying business object. There are also other ways default values can be
O set for fields:

Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 30
• Model: If the view object is based on one or more entity objects, a developer can
programmatically or declaratively set attribute-level defaults, and you can set
your own defaults as an extension to the shipped defaulting (not through
personalization).
• View (page): The page developer can set default values for individual items by
setting their Initial Value property using Oracle JDeveloper with OA Extension.
The Initial Value property is useful for static values that can be determined at
design time. This feature can be used with items that do or do not map to an
underlying view object. If a default value is specified in the page (whether in the
OA Extension or as a personalization), the value displays when the page opens
and/or when the user creates a new row.
• Controller: The page developer can set default values programmatically in their
controller code. This type of defaulting is often found in older product pages that
were built before the other methods were available in OA Framework.
Note: If a developer sets a default value on an item page element in their controller
code, the developer-set default will override the default value you personalize in the
Initial Value property.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 31
Create a New Item

m y
d e
ca
e A
Create Item

c l
You can create a new item by selecting the Create Item icon for a region.
Item Styles
r a
O ly
Item styles that start with "Message" are various types of data fields.

l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 32
Common Item Styles

my
de
ca
e A
Item Style

cl
Note that you cannot change the Item Style property for an existing field. If you need

ra
to do so, create a new item with the desired style and the other properties set to match
the old item as appropriate. Then disable the old item by setting its Rendered property
O ly
to False. Note that replacing items in this way may have unexpected side effects if

l & On
logic in the page manipulates the original item. Item IDs must be unique in the page,
and your new item would have a different ID than the original item. You should test
these changes carefully.

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 33
Connecting a New Item to a Data Source

my
de
ca
e A
View Instance and View Attribute

cl
You must type these values in correctly, because there is no validation on these fields.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 34
Return to Your Application Page and Test

my
de
ca
e A
cl
If you created the personalization by entering the personalization user interface
through the Application Catalog page in the Functional Administrator responsibility,

of the changes.
ra
you will need to navigate to the page that was personalized in order to see the effects

O ly
If you created the personalization by entering the personalization user interface

l & On
through a Personalize link from the page itself, you see the effects of the change
immediately upon returning to your page from the personalization UI.

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 35
Managing Administrator Personalizations

my
de
ca
e A
class.
cl
Translation and deployment of personalizations are covered in another section of the

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 36
Manage Personalization Levels

my
de
ca
e A
Manage Personalization Levels Page

cl
The Manage Personalization Levels page is available both from the personalization

ra
user interface and from the Application Catalog page in the Functional Administrator
responsibility. You can use the Manage Personalization Levels page to easily enable,
O ly
disable, or delete selected personalizations, as well as to extract and upload

l & On
translations of personalizations.
If you were running a multilingual installation, you would make your initial
a e
personalizations in the base language of the instance, and then translate your
n
er
personalizations into other languages immediately using the Translation icon that
s
would appear in this page (the globe icon). The icon does not appear in a single-
language installation.
t U
In
This page is also useful for analyzing existing personalizations before creating or

cle
modifying personalizations for a page or shared region.
If you are having trouble with your personalizations, use this page to temporarily

ra
disable various personalizations at various levels so you can determine which
personalizations are causing a problem.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 37
Troubleshooting Administrator Personalizations

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 38
Troubleshooting Administrator Personalizations

my
de
ca
e A
cl
Once you have corrected the problem in a disabled personalization, you can re-enable
the personalization using the Manage Levels page.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 39
Troubleshooting Personalizations

m y
d e
ca
e A

c l
Personalizations may not be compatible with controller code or other shipped
code. If a controller sets a field to required, or rendered, and so on, you may not


be able to override it.
r a
Some objects may not be personalizable because Oracle development may have
O ly
explicitly disabled personalization.

personalizable.
l & On
If a page or its elements are created programmatically, they may not be

n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 40
Troubleshooting Personalizations

my
de
ca
e A
cl
Be aware of your personalization scope and context.
• Scope: If you personalize a shared region, you affect all locations where that

ra
region is used in the applications.
• Context: If the personalization is showing up in all responsibilities with that page,
O ly
for example, rather than just the one you expect, the personalization may be at

Item placement:
l & On
the site level instead of the responsibility level, or something similar.

na e
• Certain types of personalizations may not appear "correctly" because of the

ter U s
nature of specific region styles in the page (particularly for "default renderers"
such as defaultSingleColumn regions). For example, default single column

In
regions do not allow a button to be added at the top of the region, even if the
objects in the region are reordered to put the button at the top.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 41
Troubleshooting Personalizations

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 42
Examine Personalizations Using SQL*Plus

my
de
ca
e A
MDS Repository Documents

cl
The MDS Repository in the database stores the metadata of your OA Framework-

ra
based pages and regions, as well as information on any personalizations that have
been created in your system. Each metadata definition of a region, page or
O ly
personalization is called a document.
Using JDR_UTILS in SQL*Plus

l & On
You can also use SQL*Plus to review all the personalizations for a given base
a e
document. JDR_UTILS is a PL/SQL package that allows you to evaluate the list of
n
r s
personalization documents that are in your MDS repository. Included in this package

e
is a procedure called jdr_utils.listcustomizations which allows you to see the
t U
personalization document path names that are currently defined in the MDS
repository.
In
cle
See "Inspecting the MDS Repository Content" in the OA Framework Developer's
Guide for more information on the JDR_UTILS package.

a
This package should never be called from any program code.
r
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 43
Application Catalog Page in Functional Administrator
Responsibility

my
de
ca
e A
cl
You can personalize any page or region document by selecting the Personalize Page

ra
(pencil) icon. After that, select a desired context, since the desired context is not
usually in the Functional Administrator responsibility. You then enter the
O ly
Personalization Structure page, where you can personalize the page or region as

l & On
usual in the page hierarchy format.
Note that the functional administrator cannot see the target page or region, either
a e
before or after personalizing it.
n
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 44
Application Catalog Page in Functional Administrator
Responsibility

my
de
ca
e A
cl
Checking the Personalized check box for your search helps you locate all your

ra
personalized documents so you can update or manage them.

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 45
Personalization Document Manager

my
de
ca
e A
Personalization Documents

cl
Each personalization you do is saved in the MDS repository (or in the file system) as a

ra
separate personalization document. For example, if you personalize a page at the site
level, all the personalizations you make there are saved into a single personalization
O ly
document. If you then personalize a page at the responsibility level, all the

l & On
personalizations you make there are saved into another personalization document.
Finding Personalization Documents
a e
One-way to determine the document path for a given personalization is to use the
n
ter U s
About this Page feature. You can also look at the URL in the browser (in some cases).
The personalization document manager is part of the Functional Administrator
responsibility.
In
Please see the OA Framework Personalization Guide - Document Manager for details.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 46
Personalization Document Manager

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 47
Personalization Document Manager

my
de
ca
e A
cl
Once you have exported your personalization files, you can then import them into a
different instance using the Exported Personalizations page.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 48
Summary

my
de
ca
e A
Open the Course Labs book

cl
Complete Lab 4 – Administrator-Level Personalizations

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 49
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Administrator-level Personalizations
Chapter 11 - Page 50
Personalizing Configurable
Pages
Chapter 12

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 3
Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 4
Concept: Configurable Pages

my
de
ca
e A
cl
A configurable page contains at least one flexible layout.
In Oracle Applications, a configurable page is composed of a hierarchy of flexible

ra
layout and flexible content regions, starting with a flexible layout region right below the
page layout region. Other region styles are only allowed as leafs within the flexible
O ly
layout hierarchy or within a flexible content region.

take on a different shape.


l & On
The layout is "flexible" because it can be personalized by a user or administrator to

a e
A configurable page also consists of pieces of content, also referred to as resources,
n
r s
which can be rearranged, hidden or shown. These resources are displayed within the

e
cells of a layout region. When you create a configurable page in OA Extension, the
t U
resources are known as flexibleContent regions, and the layout regions are known as

In
flexibleLayout regions.

cle
Specifically, a flexibleContent region defines the content itself - how the content
appears and what personalizations a user or administrator can make to the content. A

ra
flexibleLayout region defines the area in which the content is placed when the page is
run. When you define a flexibleContent region, you have the option of assigning it to a

O specific flexibleLayout region, so that the content is displayed in that flexibleLayout

Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 5
when it is rendered. If you do not assign it to a flexibleLayout region, the content
becomes a shared resource that the user can later choose to add to any
flexibleLayout region from a resource catalog displayed in the OA Personalization
Framework Add Content page.

my
de
ca
e A
cl
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 6
Personalizing a Configurable Page

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 7
Configurable Page Before Personalization

m y
d e
ca
e A
User responsibility.
c l
This is the Oracle Sales product's Sales Dashboard page, which is part of the Sales

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 8
Configurable Page After Personalization

my
de
ca
e A
l
This is the Oracle Sales product's Sales Dashboard page.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 9
Prepare for Personalization

m y
d e
ca
e A
c l
When the Accessibility preference (or the ICX_ACCESSIBILITY_FEATURES profile)
is set to None the personalize page UI appears as a WYSIWYG presentation,

r a
otherwise the usual hierarchical Personalization Structure page appears.
This picture shows the General Preferences page you get to by clicking on the
O ly
Preferences link at the top of an OA Framework-based page.

l & On
Note: Why do we turn accessibility off? Accessibility rules state that content must be
accessible. But, that doesn’t mean that a page that simply presents the same data in a
a e
different way has to be accessible. As long as all the data on a Configurable Page is
n
e r
available through other accessible pages, you can turn accessibility off. Which is
s
good, because the complexity of Configurable Pages and the complexity of
t U
accessibility do not always mix well.

I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 10
Personalizing a Configurable Page

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 11
Personalization Level

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 12
Layout Page

my
de
ca
e A
the top of the page.
cl
Configurable pages can be personalized by clicking on the “Personalize Page” link at

In the Layout page you can: ra


Clicking on that link opens a graphical page personalization UI.

O ly
• Add rows or columns (create new container regions)
• Delete container regions
l & On
na e
• Reorder container regions
• Switch content between horizontal and vertical layouts

ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 13
Horizontal or Vertical Layout

my
de
ca
e A
cl
You can have several regions in one container region. Within that container, regions
can be arranged horizontally or vertically.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 14
Contents Page

m y
d e
ca
e A
In the Contents page you can:
• Add (show) content
c l
• Remove (hide) content
r a
• Reorder content
• Personalize content properties O ly
• Create new items
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 15
Add Content

m y
d e
ca
e A
c l
Use the plus sign ( + ) from the Contents view to access the Add Content page. The
Add Content page shows all the predefined regions that are available to display on the

r a
configurable page. In some cases, where the developer has enabled the feature, you
may also see seeded personalized views that are created for a query region. Only

O ly
seeded views can be added to the cells.

you want and choose Apply.


l & On
You will see only regions or views that are not already in the page. Select the contents

n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 16
Reorder Content

my
de
ca
e A
cl
Access this page from either the Layout or Contents mode.
Note that if you have added a row or column to the layout, OA Framework

ra
automatically generates a unique region name for the flexible layout region (as shown
in the Responsibility region above).
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 17
Personalizing Object Properties

my
de
ca
e A
cl
If you select the Personalize Properties icon (the pencil) for a region from the Content
View or Layout View, you go to the Personalize Page Hierarchy page. There you can

non-configurable pages.
ra
personalize the properties of that region and all of its children, just as you would for

O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 18
Summary

my
de
ca
e A
Open the Course Labs book.

cl
Supplemental Lab 2 – Personalize Configurable Pages is provided as a supplemental

a
lab for your reference and future learning.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 19
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Personalizing Configurable Pages


Chapter 12 - Page 20
Advanced Personalization
Features
Chapter 13

m y
d e
c a
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 1
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 2
R12 Customizing OA Framework Applications

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 3
Objectives

m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 4
Add a Descriptive Flexfield to a Page

my
de
ca
e A
Add a Flexfield to a Page

cl
There are three cases you may encounter. All cases assume the flexfield already has

ra
its segments and value sets defined and that the flexfield is frozen and compiled.
1. The flexfield is already built into the page, and it is just waiting to be enabled.
O ly
2. The flexfield is not already built into the page, but the underlying view object

& On
already includes the flexfield columns.
l
na e
3. The flexfield is not already built into the page, and the underlying view object
does not include the flexfield columns.

ter U s
4. You can add a flexfield to the page using personalization (only) for the first two
cases. For the third case, you would have to extend the underlying view objects

n
(at least), and then you would add the flexfield to the page using personalization.
I
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 5
Enabling Existing Descriptive Flexfields (Before)

m y
d e
ca
e A
c l
We'll use the Non-Catalog Request page in the iProcurement responsibility as an
example. In this picture, the descriptive flexfield is disabled, so it does not appear, but
it is already built into the page.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 6
Enabling Existing Descriptive Flexfields (Analyzing)

my
de
ca
e A
cl
The Flexfield References section shows the name and location of the flexfield that is
already built into the page: PO_REQUISITION_LINES (PO application) located in the

a
tableLayout region called ReqLineDescFlex.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 7
Enabling Existing Descriptive Flexfields (Freezing)

my
de
ca
e A
cl
If the flexfield is not already defined and frozen, it will not show up even if you enable
the flexfield item on the page. It will just be blank.

ra
Tip: Because the About this Page feature shows the internal (non-translated) name of
the flexfield, use the Examine feature to make sure the flexfield you define is the
correct one.
O ly
Guide.
l & On
For more information on setting up flexfields, see the Oracle Applications Flexfields

na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 8
Enabling Existing Descriptive Flexfields (Finding)

my
de
ca
e A
cl
If there is no flexfield in the page or region you are trying to personalize, you will not
see the Flex item style in the list in the Search region.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 9
Enabling Existing Descriptive Flexfields (Enabling)

my
de
ca
e A
cl
Setting Rendered to true for the flexfield item is sufficient to make the defined and
frozen flexfield appear in many cases. However, in some cases, such as for our

ra
example Non-Catalog Request page, Rendered is already set to true for the flexfield
item, and yet the PO_REQUISITION_LINES flexfield still does not appear. In these

O ly
cases we need to look further to enable the flexfield.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 10
Enabling Existing Descriptive Flexfields (Containers)

my
de
ca
e A
cl
This is the case for our Non-Catalog Request page: Rendered is already set to true for
the flexfield item, but not for the container region, so the flexfield still does not appear.

ra
Tip: Using the Complete view, select the Expand All link. Then use your browser's
Find (on the Page) feature to find the name of the flexfield. Then look at the container
O ly
regions just above it to find the one that is disabled. See the picture on the next page.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 11
Enabling Existing Descriptive Flexfields (Showing)

m y
d e
ca
e A
c l
In our Non-Catalog Request page, there is no value in the Shown column of the
hierarchy table for the Additional Information region, so that region must be enabled
for the flexfield to appear.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 12
Enabling Existing Descriptive Flexfields (Displaying)

my
de
ca
e A
cl
Now the Non-Catalog Request page shows the descriptive flexfield. In this case, it has
two segments, Priority and Justification. The flexfield is inside the default single

a
column container region, which has the Additional Information title.
r
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 13
Adding a Descriptive Flexfield to the UI

m y
d e
c a
e A
c l
Now we look at the case where there is no existing flexfield, but the flexfield columns
are in the underlying view object. We start with analysis using the About this Page
feature.
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 14
Adding a Descriptive Flexfield to the UI: Drill

my
de
ca
e A
cl
Drill down into the definition of the WipLinesVO view object. WipLinesVO1 (usually
with the number) is the instance of the view object used in the page. The columns

ra
ATTRIBUTE_CATEGORY and ATTRIBUTE1 to ATTRIBUTE15 are descriptive
flexfield columns. In this case, the "model", or business logic layer, does include the

O ly
necessary columns for the descriptive flexfield.

l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 15
Adding a Descriptive Flexfield to the UI: Create

my
de
ca
e A
cl
Find the region where you want to add the flexfield. In this case, we want to add our
flexfield to the table region. Select the Create Item icon.

ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 16
Adding a Descriptive Flexfield to the UI: After

my
de
ca
e A
cl
Once you have created your flexfield, you can still personalize it to appear or not
appear, or to have only certain segments appear. You can personalize it for various

ra
contexts, just as if you were personalizing any other field or region. In the
personalization hierarchy, there are two pencil (Edit) icons. The icon in the Update

O ly
column lets you change the original definition that you just created. The icon in the
Personalize column allows you to layer personalizations on top of your definition.

l & On
Note: be careful about personalizing entire flexfields or their segments to be hidden. If

na e
required segments are hidden, data could be saved without required values. The next
time the data is queried, the flexfield may give errors because flexfield values are

ter U s
validated again upon querying or if the rest of the record is changed and saved.

In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 17
The Third Case

m y
d e
c a
e A
course.
c l
Extending view objects and setting up BC4J substitutions will be covered later in the

r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 18
Adding a New Region

my
de
ca
e A
cl
The region you extend should be completely self-contained and meant to be
extended, with its own application module and all its associated logic. No code for the

module.
ra
region should call methods or view objects that are not in the associated application

O ly
In general, any extended region should use or expect the same application module as

l & On
the page you are adding it to. If it has a different application module, you may get
errors about methods not found, or view objects not found, and so on. In any case,
you must test thoroughly.

na e
er
You cannot add new stack layout or flexible layout/content regions to configurable
s
pages through personalization. While the UI currently allows you to create stack layout
t U
or flexible layout regions, you cannot add any new items or new flexible content

In
regions to those. For configurable pages, you can only choose to display or not
display regions that have been predefined in the page by the developer.

cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 19
Adding a New Region with New Content

my
de
ca
e A
cl
If you want to add a completely new region with new content (new regions, new
items), use the Stack Layout style. You can add new stack layout regions only at the

ra
site level. You can personalize them (for example, hide or show them) at other levels if
you set Admin Personalizable to true when you create the region.

O ly
Tip: If you are trying to add a stack layout region and Stack Layout does not appear in

& On
the Item Style poplist, verify that the Level field is set to Site.

l
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 20
URL Include

my
de
ca
e A
cl
Links from your HTML page should usually be absolute URLs. Relative links in a
region are relative to the location of the E-Business Suite page where you add the

ra
region. Because the HTML page can be located somewhere other than within the E-
Business Suite, all the links it contains should be absolute.

O ly
Links can also use target=”_blank” to open a new browser window for the target page.

l & On
Links that do not specify a new browser window or tab (as in Mozilla Firefox tabs) will
replace the entire E-Business Suite page when you click on them, so opening

a e
separate browser windows from those links is recommended.

n
er
Note: Your application server tier proxies and firewall must be set up so that it is
s
possible to reach whatever website the link points to.
t U
Tip: If the HTML page were deployed with the E-Business Suite installation, in the

In
OA_HTML subdirectory, you would include only OA_HTML/filename for the HTML file

le
as the Source URI, instead of an absolute URL that you would use if the HTML page
were located outside the E-Business Suite installation. Similarly, if the links in that file
c
ra
pointed to other files underneath OA_HTML, only the filename or relative URL would
be needed for those links.

O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 21
URL Include

my
de
ca
e A
l
In this example, the Announcements region is an external HTML file.

c
ra
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 22
Summary

my
de
ca
e A
Open the Course Labs book.

cl
Complete Lab 5 – Adding a Flexfield to a Page

ra
Supplemental Lab 3 – Advanced Personalizations is provided as a supplemental lab
for your reference and future learning.
O ly
l & On
na e
ter U s
In
cle
ra
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 23
m y
d e
ca
e A
c l
r a
O ly
l & On
n a e
t e r U s
I n
c l e
r a
O
Copyright © Oracle Corporation, 2007. All rights reserved.

Advanced Personalization Features


Chapter 13 - Page 24