Académique Documents
Professionnel Documents
Culture Documents
Oracle Applications
Release 11.5.10
Objectives of this session
Version 1.0 2
What is Forms Personalization ?
The Form Personalization feature allows you to declaratively alter the behavior of
Forms-based screens, including
Changing properties
Executing built-ins
Displaying messages
Adding menu entries.
. Form Personalization is independent to each form. This means the personalization done
on one form will not reflect on other form.
. The form mainly contains four sections. They are
Rules, Conditions
Context
Actions
The Need
Most of the customers wish to modify the way the forms look and behave. They want to
change the labels on the form fields, hide fields, hide buttons, amend custom logic etc.
The motives could be
Managing un-necessary fields.
To match the customer specific business requirements.
To match the language (lingo) used by the customer.
Version 1.0 3
Warning
WARNING
FormPersonalizationsshouldfirstbeenteredandthoroughlytestedon
aTestSystembeforetheyareactuallyloadedtoaproductionsystem.
Important:
By default the Personalize menu is visible to all the users; this can be
controlled with help of profile options. By setting up the below profile
options, the access to the Personalize menu can be limited for the authorized
users. This will prevent unauthorized users from changing the look and
behavior of the forms.
The profile options are Utilities: Diagnostics = Yes/No
Hide Diagnostics = Yes/No
Version 1.0 4
How to Invoke Forms Personalization
MenuNavigation:HelpDiagnosticsCustomCodePersonalize
Version 1.0 5
Rules
1. Rulesadministerthepersonalizationneedstobeimplementedontheform.
2. Eachrulecontainsasequencenumberandthedescription.
3. TherulecanbeactivatedordeactivatedusingtheEnabledcheckbox.
4. Therulecanbedeletedwhennolongerneeded.
5. Defining rules doesnt identify when the rule should get evaluated or
applied. For each rule, there should be conditions attached which power
theexecutionoftherule.
Forexample:
1.ARulecanbeChangetheOrderNumberprompttoClaimNumber.
2.HideCustomerfield.
Version 1.0 6
Condition
TriggerObject
TriggerEvent
Condition
ProcessingMode
Validate
Version 1.0 7
Condition
Version 1.0 8
Condition : Trigger Event & Trigger Object
Version 1.0 9
Condition : Trigger Event & Trigger Object
Version 1.0 10
Condition : Trigger Event & Trigger Object
2. Run the form of interest and a dialog will appear each time an event is sent
3. Turn this mode off by selecting Help > Diagnostics > CustomCode > Normal
Version 1.0 11
Condition: Condition / Process Mode / Validate
Version 1.0 12
Condition: Condition
I. Condition :
1. The Condition field lets you create an expression in SQL.
If it is empty or evaluates to TRUE at runtime, then the Actions are
performed.
If it evaluates to FALSE at runtime, then the Actions are skipped.
The Condition is re-evaluated EACH time the rule is processed.
1. Not in Enter Query Mode: The Rule will not be executed in Enter Query Mode.
2. Only in Enter Query Mode: The Rule will be executed in Enter Query Mode
only.
3. Both: The Rule will be executed in both the Enter & Execute query modes.
III. Validate :
1. When you press the Validate button, the Condition will process immediately
and return either True, False, or an Error.
2. Errors are in standard ORACLE error format, with an ORA error number.
Version 1.0 14
Context
Version 1.0 15
Context
Version 1.0 16
Context is not a hierarchy
4. If 2 rules have the same Trigger Event, and Actions that change the
same property, the rule with the higher sequence number will be
performed last, thus it will WIN.
Version 1.0 17
Actions
Version 1.0 18
Actions
Version 1.0 19
Actions: Sequence
1. BothRulesandActionshaveaSequencethatmustbeentered.
2. Itisthereincaseyouneedthingstobeprocessedinaspecific
order.
3. Thesequencedoesnothavetobeunique.
4. ForanAction,theSequenceisveryimportantinvarioussituations,
forexample:
WhenusingBuiltins,youmightfirstmovethecursortoa
particularblock,thenissueaqueryinthatblock.
WithProperties,ifyouaremovinganitemyoumightfirst
havetomakethecanvasadifferentsize.
Version 1.0 20
Actions Type: Property
TheactiontypePropertyisusedtosetthepropertiesoftheobjects.
ThevariousobjectsincludeItem,Window,andBlocketc.
Actualobjectnamedefinedintheformshouldbeenteredafter
selectingtheobjecttype.
PropertyNameisthePropertytobechanged.
Valueisthenewdesiredvaluefortheproperty.
Thecurrentvalueofthepropertywillbedisplayedwhenclicked
ontheGetValuebutton.
Example: ObjectType=Item,
TargetObject=:ORDER.ORDER_NUMBER
PropertyName=PROMPT_TEXT
Value=ClaimNumber
Thevaluecanbeinterpretedatruntime,soyoucanuseSQL
functionsandoperators.
Anyvaluestartwith=operatorwillbeinterpretedatruntime,
otherwisethevalueistreatedasisenteredinthevaluefield.
Example:Value=>=WelcometotheSalesOrderEntryMr.||user.
Version 1.0 21
Common Actions of type Property
For Canvasses:
TOPMOST_TAB_PAGE: Determines the currently selected Tab Page.
For Windows:
TITLE: the title of the window
X and Y_POS: the location within the MDI window, in inchesFor Blocks:
DEFAULT_WHERE: the WHERE clause of the SQL statement controlling queried
records
ORDER_BY: the ORDER_BY clause of the SQL statement of the queried records
INSERT_ALLOWED: if False, prevents the user from creating new records
UPDATE_ALLOWED: if False, prevents the user from updating any item in a
queried record
DELETE_ALLOWED: if False, prevents the user from deleting queried records
Version 1.0 23
Actions Type: Message
The action type Message is used to display custom messages during runtime.
Message Type and Description should be entered after selecting the action type as
Message.
The available message types are
Version 1.0 24
Common Actions of type Message
Version 1.0 25
Actions Type: Builtin
TheactiontypeBuiltinisusedtoexecutetheformandAOLAPIs.
DependingontheAPItypeselected,theparametersshouldbeentered.
Example: BuiltinType=FND_UTILITIES.OPEN_URL
Argument=http://dms.dell.com
Version 1.0 26
Common Actions of type Builtin
GO_ITEM and GO_BLOCK: Move the cursor to a specific item or the first
item in a block
Version 1.0 27
Actions Type: Special
Version 1.0 28
Actions Type: Special
TheactiontypeSpecialisusedtoactivatetheavailablespecial
menusontheToolsmenu.
OracleApplicationsprovide45specialmenusunderToolsmenuwhich
canbeusedbycustomersbasedontheirrequirements.
SelecttheSPECIALmenuwhichisnotusedbytheform.
MenulabelisthepromptwhichappearstotheuserswhenToolsmenuis
invoked,blockspecifiestheblocksforwhichthespecialmenushouldbe
activated
Iconnameisthe.icofilename.
Aseparatorcanbecreatedabovetheactivatedspecialmenubyselecting
theRenderlinebeforemenucheckbox.
Example:
MenuEntry=SPECIAL4
MenuLabel=AdditionalCustomerInformation
EnabledinBlocks(s)=Customer
IconName=Flower.ico
Version 1.0 29
Triggers Conditions Sequences Actions
When an event occurs in the form, we look for all enabled rules
that match that Trigger Event and Trigger Object.
Starting with the Rule that has the lowest sequence,
if the Condition is empty or evaluates to TRUE, we
process each enabled Action, in the order of the
Action Sequence.
Then we look for the next-highest sequenced Rule and
process it, until there are no more Rules for that Event.
Version 1.0 30
Working with Strings in Value Field
Every property that takes a string can work one of two ways
If the string you type does not start with =, then it will be used exactly as
you typed it.
If the string you type starts with =, then it will be evaluated at runtime.
You can refer to:
Bind variables, like :block.field etc
SQL operators, such as ||, TO_CHAR(), DECODE(), and NVL()
Server-side functions that do not have OUT parameters.
=The field value is: {an ORACLE error because the syntax is incorrect. It
:items.part_number should be: =The field value is: || :items.part_number}
Version 1.0 31
Multilingual Issues
Version 1.0 32
Multilingual Issues
Youcancountonnumberstobeconfusing!
So,regardlessofwhatyourcurrentsettingsare,enterallnumeric
valuesinenglishformat
Examples:
SettingtheWIDTHproperty:2.5
Creating a Condition based on the value of a numeric
field::block.field>=2.5
Version 1.0 33
Multilingual Issues
WRONG:
sysdate >= to_date(1-JAN-05)
JAN will not mean January in all languages
Always specify an exact mask when converting a string to a date
Avoid Y2K issues enter years with all 4 digits
RIGHT:
sysdate >= to_date(1-1-2005, DD-MM-RRRR)
Version 1.0 34
Debugging: Why isnt it running ?
Version 1.0 35
Debugging: Is it really running ?
It may not be obvious that your change was applied in some cases.
To resolve that:
Version 1.0 36
Debugging: Why isnt is sticking ?
Often an Action may execute, but by the time control returns to the user the
property you set has been overridden. What can you do?
Version 1.0 38
Form Personalization v/s Form Customization
Personalization Customization
Version 1.0 39
Form Personalization: Database Tables
FND_FORM_CUSTOM_RULES
FND_FORM_CUSTOM_ACTIONS
FND_FORM_CUSTOM_PARAMS
FND_FORM_CUSTOM_PROP_LIST
FND_FORM_CUSTOM_PROP_VALUES
FND_FORM_CUSTOM_SCOPES
Version 1.0 40
Summary
Forms Personalization
Build rules associated with the proper Trigger Event
Build rules that fire conditionally
Use Sequencing
Use the Validate feature to confirm Conditions and Strings
Use string evaluation
Handle multilingual situations
Use the most commonly used Properties, Builtins and Messages
Use debugging features
Version 1.0 41
Thank You
Version 1.0 42