Professional Documents
Culture Documents
Examples in R11i/R12
Presented By
Susan Behn
2
Business Benefit – $aves Money!
Less Declarative Menu Driven Tools
Development Business User Friendly
Time
Reduce
Survives patching Upgrade Costs
Reduce Adapt terminology to your
Processing business without coding
Time
Speed up data entry ‒ Reduce
move or eliminate fields Training Time
Add validations ‒
reduced error correction
3
Overview
• Personalizations – declaratively alter
behavior or appearance using tools
provided by Oracle
• Personalization Tools
– Forms personalizations
• Professional Forms 6i or 10g
– OA Framework Personalizations
– CUSTOM.pll
• Programmatic tool prior to 11.5.10
• Professional forms only
4
Overview – Forms Personalization
• Requires superuser with some sql skills
• Survive patching and upgrades
– Includes post patch/upgrade validation process
• Most changes traditionally done using
CUSTOM.pll can be accomplished using Forms
Personalization
• Effective immediately – no coding, no compiling
• Forms Personalizations fire prior to CUSTOM.pll
for the same event
5
Overview – Forms Personalizations
What you can do?
• Speed up data entry and processing
– Hide fields, tabs
– Change order of fields
– Set default values
– Call other forms or web address from tool bar
– Execute processes from tool bar
• Improve security and audit controls
– Make fields required
– Restrict insert or update
• Adapt to your business rules/self training
– Change prompts and labels
– Alter List of Values (LOVs)
6
Overview – OA Framework Personalizations
7
Overview – OA Framework Personalizations
What you can do?
• Speed up data entry and processing
– Reorder Columns
– Hide Columns
– Set Initial Values
• Improve security and audit controls
– Remove Buttons
– Change Field Attributes – make fields required
• Adapt to your business rules/self training
– Change Page and Section Headers
– Change Field and Column Names
– Change Button Names
– Add Items (Buttons, Fields, Tips and more)
8
Forms 6i and10g Personalizations
Setup and Use
Examples
Tips
9
Setup – Profile Options – Form
Personalizations
• Hide Diagnostics menu entry
– Set to No to see the menu
• Utilities: Diagnostics
– Set to No to require apps password
10
Accessing Forms Personalization
• Access the form or function needing personalization
• Help à Diagnostics à Custom Code à Personalize
11
Forms Personalization
1 ‒ 100
Reusable
Form/Function
Default = Function
12
Forms Personalization – Condition Tab
• Trigger event determines when the rule fires
– Use standard trigger events (next slide)
– Use specific events unique to the form (With Caution)
• Find additional events using Help àDiagnostics àCustom Code
àShow Custom Events
• Trigger object depends on trigger event
– WHEN-NEW-BLOCK-INSTANCE requires block name
13
Forms Personalization - 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
14
Forms Personalization - Standard Trigger Events
• WHEN-VALIDATE-RECORD
– Populate hidden fields
– Additional validations
• SPECIALn
– Populate tools menu (SPECIAL 1-15)
– Populate reports menu (SPECIAL 16-30)
– Populate actions menu (SPECIAL 31-45)
• MENUn
– Populate tools menu (MENU1-15)
15
Forms Personalization – 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
16
Forms Personalization – Context
• Who does this rule apply to?
Site
Responsibility
User ‒ Use this for
testing rules
Industry (For future use) Tip: For initial
development, set
context to your user
id
17
Forms Personalization - 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
18
Example #1 – Display Message
• What
– GL Journal Entry – Remind users to change the
period name the first 20 days of the fiscal year
• Why
– During year end close, the final period is open
longer resulting in mistakes
– Save time and money by reducing errors
– Reduce time for training through use of
automated messages
19
Example #1 – Display Message
• How
Enter
header
details
Condition is checked when the user
accesses the journal name field
Message appears
Feb 1 ‒ Feb 20 every
year
20
Example #1 – Display Message
Action type
= message
• Message Types
– Show – Informational Message
– Hint – Appear on status bar
– Error – Requires user response – raises form_trigger_failure
– Debug – Only displays if debug mode is set to Show Debug
Messages
– Warn – Informational message with caution symbol – raises
form_trigger_failure
21
Example #1 – Display Message
• Result
Click OK to
continue
22
Example #2 – Data Access Restrictions
• What
– Restrict users from entering or retrieving their
own invoice
• Why
– Audit control
– Theft prevention
• How
– Requires minimal SQL skills
23
Example #2 – Data Access Restrictions
• Enter header and condition tab details
– WHEN-NEW-BLOCK-INSTANCE for the invoice
block controls access at the invoice level.
24
Example #2 – Data Access Restrictions
• Change the default where clause to prevent
retrieval of employee invoices based on user id
vendor_id NOT IN
(SELECT vendor_id
FROM po_vendors pv ,
fnd_user fusr
WHERE fusr.user_id = fnd_profile.value('USER_ID')
AND fusr.employee_id = pv.employee_id )
25
Example #3 – Menu Entries
• What
– Create a menu item to display the invoice id
• Why
– Access to invoice id makes workflow and
invoice approval troubleshooting faster
26
Example #3 – Menu Entries
• How - Step 1 – establish the menu entry
• Trigger Event = WHEN-NEW-FORM-INSTANCE
Use WHEN-NEW-FORM-
INSTANCE for visual changes
Such as establishing menu entries
27
Example #3 – Menu Entries
• Menu action type only displays the menu
Note Menu
Entry # for
step 2
28
Example #3 – Menu Entries
• Step 2 – create the action for the menu entry
– Trigger Event = MENU# chosen in step 1
29
Example #3 – Menu Entries
• Step 2 – create the action for the menu entry
30
Example #3 – Menu Entries
• Result
Choose
menu item
31
Example #3 – Menu Entries
• Result
Message is
displayed
32
Another Example – Menu Entries
• What
– Create invoice tax distributions for use tax for invoices where
sales tax was not charged
• Why
– Less manual processing saves money
• Reduces data entry time
• Eliminates calculation errors
• How
– Create a PL/SQL procedure which uses Oracle standard APIs to
calculate and create distributions
– Call procedure from menu item with Execute a Procedure Builtin
33
Example #4 – Masking Data
• What
– Mask the tax id (11i)
• Supplier form has moved to OA Framework in R12
• Why
– Compliance
• Secure sensitive data
34
Example #4 – Masking Data
• How - Change form appearance at
WHEN-NEW-FORM-INSTANCE trigger
35
Example #4 – Masking Data
• CONCEAL_DATA = TRUE - replaces data with *
• DISPLAYED = FALSE – hides field completely
Don t need to
know object
Use Select By name
Text button to
find correct
object by prompt
36
Example #4 – Masking Data
• Result
37
Example #5 – Changing LOVs
• What
– Remove Taxpayer ID from List of Values
(LOVs) for find window
• Why
– Compliance
• Secure Sensitive Data
– Adapt to business/Reduce training time
• Limit LOVs to only display data applicable to
business
38
Example #5 – Changing LOVs
• Taxpayer ID is also on LOVs for find windows
39
Example #5 – Changing LOVs
• HOW – Use Create a new record group Builtin
40
Example #5 – Changing LOVs
• Assign the new record group to the LOV used for
Supplier name
Record group
created in
previous slide
41
Example #5 – Changing LOVs
• Result
• Additional steps
– Mask the tax id on the find window
– Replace the tax id with the end date for the supplier
number LOV
42
Other Process Improvement Features
• Utilize the following Builtins to improve process flows
– Launch SRS Form – runs concurrent request
– Launch a Function – call another form
– Launch a URL – call any web page
– DO_KEY
• DO_KEY(‘NEXT_BLOCK’) will force query execution for find window
– GO_ITEM, GO_BLOCK – change navigation
• Use to prevent update to a field where navigation is needed to populate
– EXECUTE_TRIGGER
• Execute form trigger, not database trigger
• Use after setting default values to ensure internal code executes
43
Forms Personalization – Tips
• Exit and re-open the form to see
personalization changes
• Use debug messages before and after
events
• Apply Now button - see the results
– Does not always work if dependant on the results
of another action
• Turn custom code off - Help à Diagnostics
à Custom Code à Off
44
Forms Personalization 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
45
OA Framework Personalizations
Setup and Use
Examples 6 - 10
46
Setup – Profile Options – OA Framework
Personalizations
• 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 (new in 11.5.10)
– Required to migrate personalizations
– Set this profile option to a tmp directory with open (777) permissions
47
OA Framework Personalizations
Personalize
FND: Personalization Self-Service
Region Link Enabled
Defn = Yes
= Yes
FND: Diagnostics
= Yes
48
OA Framework Examples
• Remove a button
• Change prompts
• Hide/reorder columns in a table
• Set initial values
• Display a field
49
Example #6 – Remove a button
• What
– Remove the Import Spreadsheet button in iExpenses for a
separate responsibility where iExpenses is utilized for
procurement card transactions
• Why – Process Improvement
– Adapt to your own business processes without customization
• Importing Spreadsheets is not applicable to this business function
– No cash or out of pocket transactions for procurement cards
• More details: Using Personalizations to Give Your Self
Service Applications a Custom Look and Feel
– http://www.solutionbeacon.com/
PersonalizationsOpenWorld2008.pdf
50
Example #6 – Remove a button
• How – Click Personalize Page button
Start with
Personali
ze Page
51
Example #6 – Remove a button
• Biggest challenge – finding the item to personalize
– Simple View
– Complete View
– Expand All
– <ctrl> F
– Collapse All
– Focus
52
Example #6 – Remove a button
• My favorite – expand all and use <crtl> F
Click pencil to
edit
53
Example #6 – Remove a button
• Set rendered = false and click Apply
button
Options for
personalization
change based on
object type
54
Example #6 – Remove a button results
• Click the Return to Application button
Shown column is
now null since
rendered = false
Button is gone
55
Personalization Levels / Inheritance
• Personalizations at lower levels override
personalizations at higher levels
• Values inherit the definition from the level
immediately above unless changed
• Order of precedence from highest to lowest:
– Function
– Site
– Operating Unit
– Responsibility
56
Example #7 – Change Prompts
• What
– Change Id to Notification Id
• Why
– Clarify description of field
– Eliminate confusion
– Less training
Tip: Changing prompts to your own business terminology
speeds up training of new employees and reduces error
rates!
57
Example #7 – Change Prompts
• How
– Click the Personalize Page button and find the
Id using <ctrl> F
58
Example #7 – Change Prompts
• How - Click the pencil
Click pencil to
edit
59
Example #7 – Change Prompts
• How – Change the prompt at the site level
Site Level
Personalization
60
Example #7 – Change Prompts
• Result – prompt changed
61
Example #8 – Hide/Reorder
Columns in a table
• What
– Hide the Duplicate column to prevent users from
duplicating expense reports
– Reorder columns
• Why
– Hastily duplicating expense reports increased
error rates
– For the procurement card usage of iExpenses,
this functionality did not apply
– Reorder columns to match desired data entry flow
for faster entry
62
Example #8 – Hide/Reorder
Columns in a table
• How
– Click the Personalize Page button
– Use strategies on next slide to find the
Duplicate column
63
Example #8 – Hide/Reorder
Columns in a table
• The button to duplicate is called a Switcher
– Switchers allow users to “switch” to another
function
• Finding tip
– Look for other columns in the table if searching
for a common word
• Report Total Click
pencil
• Purpose to edit
64
Example #8 – Hide/Reorder
Columns in a table
Set Rendered
= false
Duplicate
column is gone
65
Example #8 – Hide/Reorder
Columns in a table
• Find the table to reorder table columns
– Turn on region links to find tables easier
66
Example #8 – Hide/Reorder
Columns in a table
• Check personalization level
• Use arrows to move fields up or down
67
Example #9 – Set Initial Values
• What
– Set the initial value for the Purpose at the
Responsibility level as follows:
• Expense report responsibilities
– Purpose = ‘Internet Expenses’
• Procurement card responsibilities
– Purpose = “Procurement card”
• Why
– Save time
• Streamline data entry
68
Example #9 – Set Initial Values
• How
– In the appropriate responsibility, click the
Personalize Page button
69
Example #9 – Set Initial Values
70
Example #10 – Add Item
• What
– Add Tips to provide additional instructions
– Add a tip to direct users to the corporate
receiving training application
• Why
– Make new users self sufficient
– Reduce training costs
– Reduce errors
71
Example #10 – Add Item
72
Example #10 – Add Item
73
Example #10 – Add Item
74
Example #10 – Add Item
• Enter the
item style,
id, Text to
identify the
tip and the
message
name for
the
message
created
75
Example #10 – Add Item
76
Customizations and Personalizations
WARNING
Customizations or Personalizations, whether they are
protected or non protected, allow you to fundamentally
change the behavior of the application.
This could interfere with intended
functionality.
Use with caution!
TEST! TEST! TEST! TEST! TEST!
77
Customizations and Personalizations
…THEN TEST IT
AGAIN!
78
Migration to Other Instances
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>
79
Migration to Other Instances
OA Framework 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
80
Summary
81
References
82
The ABCs of Workflow for Oracle The Release 12 Primer ‒
E-Business Suite Release 11i and Shining a Light on the
Release 12 Release 12 World
83
Questions and Answers
Thank You!
Susan Behn
susan.behn@infosemantics.com
84