Form Personalization is a feature in Oracle E-Business Suite 11.5.10 onwards that allows you to change the behavior of Forms-based screens. Prior to this release if we need to change the behavior of Oracle Forms we need to change the "custom.pll". That's indeed requires lot of effort and time compared to Forms Personalization which gives you a interactive user interface to implement the changes needed on the forms.
With the help of Form Personalization we can change properties of form, executing built-ins functions, display custom messages, add menu entries to call another forms, add rules, conditions and actions.
To open form personalization go to Help -> Diagnostics -> Custom Code -> Personalize
If you not able to see Diagnostics option or Personalize link is not opening follow steps on below post :-
Now lets understand when and where we can take benefit of forms personalization to make life easier:-
- Calling another form from current form.
- Changing / Hiding the label/fields from the form.
- Trigger custom program at particular forms event.
- Changing property of field on form. Like make a particular field mandatory / non-mandatory, editable / non-editable, change query of List of Values etc.
- Header / Rule Section : This section contains the basic information about the form on which personalization is being done. It has :-
- Function Name :- Name of the form function
- Form Name :- Name of the form in use.
- Sequence :- Sequence is the field where we provide sequence number. Forms personalization is executed sequentially in the sequence. Lower sequence value executed first.
- Description :- Allow to enter details about personalization being done. Its good practice to enter description related to what you are doing in the personalization as it helps later in debugging issue to identify the personalization.
- Level :- Its the level that defines at what level the forms personalization is being applied. If Level is 'Forms' then all the functions under that forms will be impacted. If Level is function then the forms personalization will have its impact only when you are working on that function inside the form.
- Enabled Checkbox :- To enable / disable forms personalization.
- Condition :- The condition determines the when a particular personalization will perform its action. You can write sql query to determine if it will be triggered or not OR call pl/sql function as well. It has :-
- Trigger Event : Its nothing but the forms event. Based on the value choosen here the function will execute only when that particular event triggers on the form. Trigger event are predefined.
- Trigger Object : Trigger object is the object on the form upon which an event is triggering. If you write a condition having trigger event and trigger object then when that event happens on that object of the form then only the condition will be checked and action will be performed.
- Condition : The box is the place where we put sql validation query. If the condition returns true then action will be performed.
- Processing Mode : Defined the mode in which the condition will be applicable.
- Context : Context plays the same role as does the profile options. It gives us flexibility that at what level the forms personalization will be used. We can choose level as 'Responsibility/User' and it will impact only at the responsibility / user level.
- Action : Action determines actual operation that needs to be performed when a particular trigger event satisfies condition i.e it returns TRUE on condition validation. Each rule must have atleast one condition other wise it doesn't make sense just to define condition and don't perform any action. We can define multiple action to be triggered on one condition and it will execute in sequence. There are 4 different types of action available :-
- Property : This action type is used to set the property of the objects. These objects could be Item / Window / Forms Block etc. Property has 4 sections :-
- Object Type : This determines which type of object will be impacted.
- Target Object : Actual object that will be impacted.
- Property Name : It determines the attribute of the object that you want to change.
- Value : The target value that the object property will change to. You can enter hard coded text or write custom sql query or call function to set the values. SQL query / function will provide result at run time.
- Message : It is used to custom message at runtime. You can set different type of message that can shown. Different message types are :-
- Show : This will show a pop message as note to user when condition is satisfied. User need to press 'OK' to continue processing.
- Hint : This will not show any pop up and will not stop processing. Message will be displayed at the bottom left corner of the form, can be called task bar where you generally see messages when you save data on a form.
- Error : It display pop as error and stop the processing.
- Debug : It displays message pop as debug.
- Warn : Show pop window as warning window. Upon hitting 'OK' you can continue transaction.
- Builtin :
It allow to call oracle standard builtin APIs and functions. Using this
you can call a Form / Function / Open URL / Execute a trigger and many
- Builtin Type : List all the builtin functions type that are available.
- Program Name : Based on the builtin type chosen, enter respected program to be executed.
- Menu :
This is used to call another form from current form. You can create a
form menu link and call. This will be used to implement ZOOM
functionality that will we discuss later.
- Menu Entry : Oracle provided 45 special menu entries that can be used to call another form from one form.
- Menu Label : Custom name that you can provide while you try to create a new call to form.