You are on page 1of 94

Ten More Forms and OAF Personalization

Examples - Version 3...Updated for R12.2


Session ID#: 13808

Prepared by:
Susan Behn
Vice President
Infosemantics, Inc.

REMINDER
Check in on the
COLLABORATE mobile app

About the Speaker

Oracle Ace
Over 20 years E-Business Suite development and support
Member-Oracle Proactive Support Customer Advisory Board
Chair-Oracle E-Business Suite User Management SIG
Co-Chair-Texas-Louisiana Oracle User Group TLOAUG
Over 100 presentations on E-Business Suite
Co-author for multiple books on E-Business Suite

Visit us at booth 933


Established in 2001
SBA 8(a) Small Business
disadvantaged company
GSA Schedule contract GS35F-0680V
Texas State HUB vendor
For more information, check
out our web site at
www.Infosemantics.com

Gold
Partner
Copyright 2014 Infosemantics, Inc. All Rights Reserved . Any other commercial product names
herein are trademark, registered trademarks or service marks of their respective owners.

R12.1.3, R12.2, OBIEE public


vision instances
Posted presentations on
functional and technical topics

Agenda
Overview of Personalization Tools
Forms Personalization
How It Works
Examples 1 - 5

OA Framework Personalization Examples


How It Works
Examples 6 - 10

Migration to other instances


References

Overview
Personalizations alter behavior or appearance using tools
provided by Oracle
Personalization Tools
Professional forms 6i/10g personalization
CUSTOM.pll

Programmatic tool prior to 11.5.10

Professional forms only

OA Framework Personalizations beginning in 11.5.9 and above

Comparison of Personalization Tools


Feature/Requirement
Skill set required
Survives patching/upgrades
Speed up data entry
~Hide fields and other objects
~Change order of fields
~Set default values
Call other forms/functions from
toolbar
Add buttons to call other
forms/functions
Improve security
~Make fields required
Adaptability
~Change prompts/labels
Adaptability
~Change list of values
Add items (Buttons, Fields, Tips,
etc)

Professional Forms
Superuser w/sql skills or
developer
Yes most of the time
Yes

OAF Forms
Functional superuser

Yes

No

No

Yes

Yes

Yes

Yes

Yes

Yes - with some limitations

Not with personalization;


Requires J-Dev extension
Yes

No

Yes most of the time


Yes

Forms 10g Personalizations

Setup to access Personalizations Profile


Options/RBAC Permission Set
Set the Hide Diagnostics
menu entry profile option to
No at the user level
Yes will hide the menu

R12.1.3+
Set profile option Utilities:
Diagnostics to Yes

provides too much access


applies to entire
diagnostics menu

RBAC create grant for


permission set FND
Diagnostics
Personalizations Menu
for specific users

Grant for Operations (Pat Stock) to access


Personalizations Forms

Setup Profile Options


FND: Enable Industry Editing
Set to Yes to view Oracle-delivered Form Personalizations
Set to null or No when creating personalizations

If set to Yes when creating personalizations


Per Oracleconflicts may be created with Oracle-delivered
personalizations
User created personalizations will be harder to track

AP Invoice examples of Oracle


delivered personalizations

Accessing Forms Personalization


Access the form or function needing personalization
Help Diagnostics Custom Code Personalize

Forms Personalization

1 100
Reusable

Form/Function
Default = Function
Most often should be Form

Condition Tab
Trigger event determines when the rule fires
Use any event called by form
List of values includes standard trigger events only
Caution: If typing trigger event, text is not validated from LOV

Trigger object depends on trigger event


WHEN-NEW-BLOCK-INSTANCE requires block name

Condition Tab
Use specific events unique to the form (With Caution)
Oracle does not commit to keeping every event in to form
in future patches if form is changed

Find additional events using Help Diagnostics


Custom Code Show Custom Events

Standard Trigger Events


WHEN-NEW-FORM-INSTANCE
Security rules, Navigation rules, Visual attributes

WHEN-NEW-BLOCK-INSTANCE
Same as WHEN-NEW-FORM-INSTANCE
Message rules

WHEN-NEW-RECORD-INSTANCE
Default values

WHEN-NEW-ITEM-INSTANCE
Message rules
Default values dependent on entry of another item

Standard Trigger Events


WHEN-VALIDATE-RECORD
Populate hidden fields
Additional validations

MENUn
Populate tools menu (MENU1-15)

SPECIALn

Use MENUn before SPECIALn


Populate tools menu (SPECIAL 1-15)
Populate reports menu (SPECIAL 16-30)
Populate actions menu (SPECIAL 31-45)

Condition Tab
Condition
Optional SQL code fragment to limit scope of rule
Use bind variables (:block.field)
Evaluates to true or false use for complex validation

Context
Who does this rule apply to?
Context:
Site
Responsibility
User Use this for testing rules
Industry (For future use)

Tip: For initial


development, set context
to your user id

Property Actions

Sequence non unique (1 100)


Type property, message, built-in, menu
Description (Optional)
Language use to change prompts for language

Prompts change
depending on
action type

Buttons
Buttons are enabled/disabled based on type of action and
object

Displays form field


property using SPEL
(Simplest Possible
Expression Language)

Inserts a value from any form


field in block.field format into
the Value field

Validate Value entry; If


sql will run sql
statement

Attempts to
execute
action

Professional Forms Examples


1.
2.

Export Hidden Canvases


Security User Define

3.

4.
5.

Warning if attempting to end date users with active expense


reports

AR Open/Close Periods Warning if user tries to close


period if records exist in interface table or lockbox
AP Invoices Check for duplicate invoice number for the
same supplier in another operating unit
AP Payments Set default payment type to manual and
prevent user from updating the payment type

Example 1 Export Hidden Canvas


File export by default exports the fields you see on the page
Example System Administrator Application Function

Exports Function, User Function Name, Description

Example 1 Export Hidden Canvas


How do you export all the information about the function
For example, you want the details on the properties, form,
WebHTML and other tabs

Example 1 Export Hidden Canvas


Open the personalization page and create a personalization
at the WHEN-NEW-FORM-INSTANCE event

Example 1 Export Hidden Canvas

Action type = Property


Set the object type to block
Select the block used for the File Export
Set the property EXPORT_HIDDEN_CANVASES to TRUE

Example 1 Export Hidden Canvas


Export now contains columns A through S

Example 2 Do not end date users with


unprocessed transactions
Security User Define
Do not populate the end date if a user has unprocessed
expense reports

Why Error reduction


If a user is inactive, an expense report for that user cannot be
processed

Example 2 Do not end date users with


unprocessed transactions

Example 2 Do not end date users with


unprocessed transactions

Example 3 Warn user if closing period


with records in interface table or lockbox
Receivables Control Accounting Open/Close Periods
Interface
Rule

Example 3 Warn user if closing period


with records in interface table or lockbox
Interface Rule Actions Warning Message

Example 3 Warn user if closing period


with records in interface table or lockbox

Lockbox
Rule

Example 3 Warn user if closing period


with records in interface table or lockbox
Lockbox Actions Warning Message

Example 4 Warning if duplicate invoice #


for the same supplier in another OU
Payables Invoices Entry Invoices

Example 4 Warning if duplicate invoice #


for the same supplier in another OU
Actions - Warn

Example 5 Set default payment type to


manual and prevent update
Payables Payments Entry Payments
For testing, I have the context set to OPERATIONS, but in
practice, this would be set for a specific responsibility

Example 5 Set default payment type to


manual and prevent update
Action Set the value of the payment type to Manual

Example 5 Set default payment type to


manual and prevent update
Action Also set the value of the payment type flag to M

Example 5 Set default payment type to


manual and prevent update
Now that the payment type has a default, prevent the user
from changing the value

Example 5 Set default payment type to


manual and prevent update
Action Set the ENTERABLE property to false to prevent
the user from changing the value

Previous Form Personalization Examples


Ten New Forms and OAF Personalization Examples for
R12.1 Collaborate 2012
1. Change a prompt
2. Display a message
3. Create a menu item to call a builtin to call another form
function
4. Create a menu item to call a builtin to call a pl/sql procedure
5. Use the GO_ITEM builtin

Previous Form Personalization Examples


Customization Reduction
with Forms and OA Framework Personalizations
Collaborate 2011
1. Display a temporary message
2. Change the default where clause
3. Create a menu item to display the invoice id for workflow
troubleshooting
4. Item properties mask data
5. Alter the LOV (List of Values)

Maintenance
After upgrades, go to the personalization for each form and
choose Tools Validate All
Tools Administration will show personalized forms
Press the Find button with the Form Name blank

Tables
FND_FORM_CUSTOM_RULES
Data from header and condition

FND_FORM_CUSTOM_SCOPES
Data from context area

FND_FORM_CUSTOM_ACTIONS
Data from actions tab

Create your own custom reports to document


personalizations

Query for Forms Personalizations


set pages 999
set lines 999

column Description for a45


column Function for a13
column Form for a9
column Condition for a35
column TriggerObject for a20
column TriggerEvent for a26
SELECT form_name Form, function_name Function, description Description,
sequence Seq, trigger_event TriggerEvent, trigger_object TriggerObject,
condition Condition, enabled
FROM fnd_form_custom_rules
ORDER BY form_name, function_name, sequence

Migration - Forms Personalizations


Download for a specific form:
FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES form_name=<form name>

Download all personalizations


FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>
FND_FORM_CUSTOM_RULES

Upload
FNDLOAD <userid>/<password> 0 Y UPLOAD
$FND_TOP/patch/115/import/affrmcus.lct <filename.ldt>

OAF Personalizations

Setup OAF Profile Options


Personalize Self-Service Defn
Yes to allow Personalize button to appear at the top of the page

FND: Personalization Region Link Enabled


Yes to display all the regional links above each region
Minimal to display key regional links

Disable Self-Service Personal


Yes will disable all personalizations at any level

FND: Diagnostics
Turns on About this Page

FND: Personalization Document Root Path


Required to migrate personalizations
Set this profile option to a tmp directory with open (777)
permissions

Setup OAF Profile Options New in 12.2


FND: Enable Rich Table Interactions
Yes to allow users to dynamically resize tables and change
column order using mouse

Xliff Export Root Path


Root path for extracting translated personalizations using the
Extract Translations button on the Manage Personalizations
page

Xliff Import Root Path


Root path for importing translated personalizations

Setup OAF Profile Options

Personalize Self-Service
Defn = Yes
FND: Personalization
Region Link Enabled= Yes

FND: Diagnostics = Yes

Finding Object to Personalize


Biggest challenge finding the item to personalize

Search
Complete View

Expand All
Focus
<ctrl> F

R12.2 Return to
Application now at top of
page

OA Framework Examples
1. Enable Record History in some pages
2. About this record for Suppliers

When enabling record history doesnt work

3. How to restrict a field length


4. Change the number of rows displayed per page
5. Model Personalization

Create a view object and place the data on a form

Example 1 Enable Record History


Click the personalize page link for an OAF form
In this example, Tax Manager Tax Configuration

Select a country to query tax regimes


Click the Personalize Page link

Click on the
Personalize Page
link

Example 1 Enable Record History


Select Table for the Style and click Go
If Region links are turned on, you can click the region link as a
short cut

Click the
pencil to edit

Example 1 Enable Record History


Set Record
History
Enabled to
true and
click Apply
Click Return
to Application

Example 1 Enable Record History


Record history column is now included
Clicking on this icon displays history
This does not yet work in every OAF form on to example 2

Example 2 Suppliers About this record


Query a supplier and go to the Quick Update page
Click the Personalize Page link

Click on the Personalize


Page link

Example 2 Suppliers About this record


Use <ctrl> F to find Key Payment Setups
Click the Create Item icon

Use Simple View


Then, click the Create
Item icon

Example 2 Suppliers About this record


Create a new
column for Created
By and click the
Apply button
Enter the ID and
leave other fields
as defaulted

Example 2 Suppliers About this record


Click create item for the
CreatedBy Column just
created

Click the Create


Item icon

Example 2 Suppliers About this record


Create a message styled
text items with View
Attribute
"CreatedUserName" and
view instance "SitesVO

Record History
View Attributes :
CreatedUserName
LastUpdateDate
LastUpdatdBy
CreationDate

Example 2 Suppliers About this record


Back on the
Personalize Page
button, expand
the new
CreatedBy
column and click
the create item
button for the
columnHeader
Click the Create
Item icon

Example 2 Suppliers About this record


Enter an ID and
Prompt and click apply
Return to Application

Example 2 Suppliers About this record


The Created By column is now available
Reminder repeat steps for additional record history fields

Example 3 Restrict Field Length


Restrict Customer name to 50 characters
In the Customer form, click the Create button

Click on the Personalize


Page link

Example 3 Restrict Field Length


<ctrl> F is my favorite way to find the right object to edit

Use <ctrl> F to find the


Organization Name
and then click the pencil
to edit

Example 3 Restrict Field Length


Change the Maximum length from Inherit to 50 and click the
apply button
Then click the Return to Application button on the next page

Change to desired
length and click
apply

Example 4 Change Number of Rows


Displayed
In many forms, you may want to display more than the default
10 rows Purchase orders in this example

Click on the Personalize


Page link

Example 4 Change Number of Rows


Displayed
Find the Advanced Table for Purchase Order Headers

Click the pencil to edit

Example 4 Change Number of Rows


Displayed
Update Records Displayed to the desired number, click
Apply and then Return to Application

Example 4 Change Number of Rows


Displayed
Form now shows 20 records at a time

Example 5 Add a Table New Query


In the customer relationship manager, I want to display all the
projects for this customer
Go to the form and query a customer, then click the
Personalized Page link

Click on the
Personalize Page link

Example 5 Add a Table New Query


Click Choose
Context

Scope will be set to


current page; Clear
all other fields
Check include for
site, then apply

Click Model
Personalization

Example 5 Add a Table New Query


Enter a view instance name
Enter your sql query with :1
as your bind variable
Click
Create

Enter the bind variable to use


in the query, in this case the
customer number
Click Apply
Click Return to
Personalization Page

Note the Name;


This will be
needed later

Example 5 Add a Table New Query


Then click the Create Item icon for the Page Layout element

Click the Create


Item icon for the
Page Layout

Example 5 Add a Table New Query


Choose Advanced
Table as the item
style
Enter the following
ID
Text
View Instance
you created
earlier

Click Apply

Example 5 Add a Table New Query

Click the Create Item


icon for the new table
just created

Example 5 Add a Table New Query


The Item Style
Defaults to Column
Enter an ID
Click Apply

Example 5 Add a Table New Query

Tip It helps to check


this box and click Go to
find elements just
created

Then click View in


Hierarchy for the
table created

Example 5 Add a Table New Query

Then click the Create Item


icon for the column header
for the column created

Example 5 Add a Table New Query


Enter an ID and the Prompt
Click Apply

Example 5 Add a Table New Query

Then click the Create


Item icon for the column

Example 5 Add a Table New Query


Set the item
style to Message
Styled Text
Enter an ID
Enter the View
Objected
created earlier
Enter the View
Attribute
identified by your
query
Click Apply

Example 5 Add a Table New Query

New in 12.2 Undo Personalizations


To undo personalizations within a browser session

Click the Manage


Levels Button
The Undo All button will
undo all
personalizations created
in the browser session

Click the undo icon for a


specific personalization

New in 12.2 Undo Personalizations


What if you really messed up?
You created an item, clicked Return to
Application and get the Error Page

Click the About


Previous Page link

Click the
Personalization Tab

New in 12.2 Undo Personalizations

Click the
Manage Levels
Button

Click the
Undo Icon

Migration - OAF Personalizations


Migrate OA Framework Personalizations from the Functional
Administrator Responsibility
Export to directory defined in FND: Personalization Document
Root Path
FTP to target instance
Import from Document Root Path directory

Query for OAF Pages with Personalizations


Note that because many OA Framework-based personalizations are shipped
with Oracle E-Business Suite either as "seeded developer" or "localization"
personalizations, this list can be much longer than you expect

There is currently no way to tell, other than by looking at the actual


personalization or personalization document, whether a shipped personalization
has been further personalized at your site

SELECT PATH.PATH_DOCID PERZ_DOC_ID,

jdr_mds_internal.getdocumentname(PATH.PATH_DOCID) PERZ_DOC_PATH
FROM JDR_PATHS PATH
WHERE PATH.PATH_DOCID IN
(SELECT DISTINCT COMP_DOCID FROM JDR_COMPONENTS
WHERE COMP_SEQ = 0 AND COMP_ELEMENT = 'customization'
AND COMP_ID IS NULL)
ORDER BY PERZ_DOC_PATH

Query for OAF Personalizations Created by


Customer
This query does not
My Oracle Support Document 1292611.1

include the seeded


personalizations

SELECT PATH.PATH_DOCID PERZ_DOC_ID,


jdr_mds_internal.getdocumentname(PATH.PATH_DOCID) PERZ_DOC_PATH

FROM JDR_PATHS PATH


WHERE PATH.PATH_DOCID IN
(SELECT DISTINCT COMP_DOCID FROM JDR_COMPONENTS
WHERE COMP_SEQ = 0 AND COMP_ELEMENT = 'customization AND COMP_ID IS NULL)

MINUS
SELECT PATH.PATH_DOCID PERZ_DOC_ID,
jdr_mds_internal.getdocumentname(PATH.PATH_DOCID) PERZ_DOC_PATH
FROM JDR_PATHS PATH
WHERE PATH.PATH_DOCID IN

(SELECT DISTINCT COMP_DOCID FROM JDR_COMPONENTS, JDR_ATTRIBUTES


WHERE COMP_SEQ = 0 AND COMP_ELEMENT = 'customization AND COMP_ID IS NULL
AND ATT_COMP_DOCID = COMP_DOCID AND ATT_COMP_SEQ = 0
AND ATT_NAME = 'developerMode' AND ATT_VALUE = 'true')

Previous OAF Personalization Examples


Ten New Forms and OAF Personalization Examples for
R12.1 Collaborate 2012
1.
2.
3.
4.
5.

Remove Worklist Access link


Modify privacy statement
Create an export button
Submit a concurrent request
Modify the query for a table

Previous OAF Personalization Examples


Customization Reduction
with Forms and OA Framework Personalizations
Collaborate 2011
1.
2.
3.
4.
5.

Remove a button
Change prompts
Hide/reorder columns in a table
Set initial values
Display a field not currently on page

Questions & Answers

Thank You!
Susan Behn
susan.behn@infosemantics.com
www.infosemantics.com
People First. Driving Solutions Together

Please complete the session


evaluation
We appreciate your feedback and insight

You may complete the session evaluation either


on paper or online via the mobile app

You might also like