Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
REMINDER
Check in on the
COLLABORATE mobile app
Ten More Forms and OAF Personalization Examples - Version 3...Updated for R12.2
Prepared by:
Susan Behn
Vice President
Infosemantics, Inc.
Session ID#: 13808
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 GS-35F-0680V
■ Texas State HUB vendor
■ For more information, check out our web site at www.Infosemantics.com
▪ R12.1.3, R12.2, OBIEE public
vision instances
▪ Posted presentations on
functional and technical topicsGoldPartner
Copyright © 2014 Infosemantics, Inc. All Rights Reserved . Any other commercial product names herein are trademark, registered trademarks or service marks of their respective owners.
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 ProfessionalForms OAFFormsSkillsetrequired Superuserw/sqlskillsor
developerFunctionalsuperuser
Survivespatching/upgrades Yes–mostofthetime Yes–mostofthetimeSpeedupdataentry~Hidefieldsandotherobjects~Changeorderoffields~Setdefaultvalues
Yes Yes
Callotherforms/functionsfromtoolbar
Yes No
Addbuttonstocallotherforms/functions
No Yes
Improvesecurity~Makefieldsrequired
Yes Yes
Adaptability~Changeprompts/labels
Yes Yes
Adaptability~Changelistofvalues
Yes-withsomelimitations Notwithpersonalization;RequiresJ-Devextension
Additems(Buttons,Fields,Tips,etc…)
No 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 users8
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 Oracle…conflicts 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 – 100Reusable
Form/FunctionDefault = FunctionMost 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 ResponsibilityUser – Use this for testing rulesIndustry (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
Validate “Value” entry; If sql – will run sql statement
Attempts to execute action
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
Professional Forms Examples
1. Export Hidden Canvases
2. Security User Define
▪ Warning if attempting to end date users with active expense
reports
3. AR Open/Close Periods – Warning if user tries to close period if records exist in interface table or lockbox
4. AP Invoices – Check for duplicate invoice number for the same supplier in another operating unit
5. 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
LockboxRule
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 Reductionwith 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: Diagnostics = Yes
FND: Personalization Region Link Enabled= 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 doesn’t 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
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 :
CreatedUserNameLastUpdateDateLastUpdatdByCreationDate
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
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
■ Enter the bind variable to use
in the query, in this case the
customer number
■ Click Apply
■ Click Return to
Personalization Page
Click
Create
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
Then click View in
Hierarchy for the
table created
Tip – It helps to check
this box and click Go to
find elements just
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
Click the undo icon for a
specific personalization
The Undo All button will
undo all
personalizations created
in the browser session
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
Personalization Tab
Click the About
Previous Page link
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
■ My Oracle Support Document 1292611.1
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')
This query does not include the seeded personalizations
Previous OAF Personalization Examples
■ Ten New Forms and OAF Personalization Examples for R12.1 – Collaborate 2012
1. Remove “Worklist Access” link
2. Modify privacy statement
3. Create an export button
4. Submit a concurrent request
5. Modify the query for a table
Previous OAF Personalization Examples
■ Customization Reductionwith Forms and OA Framework Personalizations –Collaborate 2011
1. Remove a button
2. Change prompts
3. Hide/reorder columns in a table
4. Set initial values
5. Display a field not currently on page
Questions & Answers
Thank You!
Susan Behn
www.infosemantics.com
People First. Driving Solutions Together®
Please complete the session evaluationWe appreciate your feedback and insight
You may complete the session evaluation either
on paper or online via the mobile app