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
Why Personalization
- Personalization is stored in tables rather than files
- Will not have a bigger impact when you upgrade or apply patches to the environment
- Can be moved easily through FNDLOAD from one instance to other
- Can be restricted at site/responsibility/user level
- Easy to disable/enable with click of a button.
- Personalization will store who columns with which we have the ability to track who created /modified it where as in CUSTOM.PLL we don’t have that ability.
- Can be applied to new responsibilities/users easily.
- Can be restricted to function or form
Advantages
- Pass data from one form to another through global variables.
- Change LOV values dynamically
- Enable/Disable/Hide fields dynamically
- Display user friendly messages when required
- Launch URL directly from oracle form
- Execute PL/SQL programs through FORM_DDL package
- Call custom libraries dynamically
Limitations
- You cannot create new items
- You cannot move items between canvases
- You cannot display an item which is not on a canvas (thus, individual flexfield segments cannot be displayed)
- You cannot set certain properties such as the Data type of an Item.
- You cannot change frames, graphics, or boilerplate
- You cannot hide the item that currently has focus
Profiles Options
Oracle has provided a very useful utility called Diagnostics in Oracle Application which can be used to debug the code. There are few profile which must be set in enable this utility. These are:
Hide Diagnostics menu entry: If the
profile option is set as ‘No’, Only then it will appear in the help menu
Utilities: Diagnostics: If set to ‘Yes’, No APPS schema
password is required otherwise APPS password required to use any of its feature
Sections of form personalization
Rules
Rules administer the personalization needs to be
implemented on the form. Each rule contains a sequence number and the
description. The rule can be activated or de-activated using the “Enabled”
checkbox. The rule can be deleted when no longer needed.
Seq: The sequence in which rules will be processed. This is a value between 1 and 100, with 1 being processed first. The sequence of rules does not have to be unique.
Description: Use this field to document the personalization you are making.
Enabled: Uncheck this checkbox to temporarily disable processing of a Rule.
Conditions
Conditions decide the
event the rule to be executed. Each condition mainly contains three sections
i.e. Trigger Event, Trigger Object and Condition.
Trigger Event: Select
the event at which you want the Rule to be processed. You can pick from the
list of standard events, or type in a specific event unique to the form.
Following are the
events for triggering event
WHEN-NEW-FORM-INSTANCE
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-RECORD-INSTANCE
WHEN-NEW-ITEM-INSTANCE
WHEN_VALIDATE_RECORD
MENU1
to MENU15 Under ‘Tools’
SPECIAL1
though 15: under ‘Tools’
SPECIAL16
though 30: under ‘Reports’
SPECIAL31
though 45: under ‘Actions’
Trigger
Object: Depending on the Trigger Event, this field may be Disabled, or Enabled
and Required in which case it will validate against a List of Values.
Condition:
This is an optional SQL code fragment that is evaluated when the Event occurs;
if it evaluates to TRUE then the Actions are processed. The condition can
contain any of the following:
SQL
functions and operators, such as AND, OR, TO_CHAR, DECODE, and NVL
References
to bind variables (:block.field), including :system, :global and :parameter
values. Use the 'Add Item...' button to assist with item names.
Calls
to server-side functions that do not have OUT parameters
Enter-Query Mode: This
checkbox controls whether the Rule should be processed if the event occurs
during enter-query mode processing.
Context
Context manages to whom the personalization should apply. This is similar to the concept of using profile options in Oracle Applications. The various levels are
- Site
- Responsibility
- Industry
- User
Actions
Actions decide the
exact operation to be performed when the conditions and context return true
during the runtime. Usually each rule should be associated with at least one
action.
The types of actions
available are…
- Property
- Message
- Builtin
- Special
Action Type: Property
The action type
“Property” is used to set the properties of the objects. The various objects
include “Item, Window, and Block etc”.
Actual object name
defined in the form should be entered after selecting the object type.
Select By Text: This
button allows the user to select an object based on text appearing on the
screen at the point in time that the Personalization form is invoked, including
any changes that current rules might have performed.
Object Type: the type
of object, including Item, Window, Block, Tab Page, Canvas, Radio button, View,
Global Variable, Parameter, LOV, and Local Variable.
Target
Object: based on the Object Type, the internal name of the
object
Property
Name:
based on the Object Type, the properties that can be personalized.
Property
Name for Items:
PROMPT_TEXT: the
prompt of the item, typically next to or above the item
DISPLAYED:
if False, the item is hidden
INITIAL_VALUE:
the value to default on a new record. This can only be set in the
WHEN-NEW-RECORD-INSTANCE event
UPDATE_ALLOWED: if False, prevents the user from
changing the value on a queried row
LABEL: the label of a button, checkbox or
radio button
NEXT and PREVIOUS_NAVIGATION_ITEM: to control the behavior of Tab and
Shift+Tab
REQUIRED: if True, the user must enter a
value
TOOLTIP_TEXT: the bubble tip on the item
X and Y_POS: the location on the canvas, in
inches
WIDTH: the width, in inches
VALUE: copy a value into the item, as if
the user typed it.
Property
Name for Tab Pages:
DISPLAYED:
If False, the tab page is hidden. Note that keyboard navigation may need to be
changed to prevent access to items on the page
LABEL:
the title of the tab
Property
Name for Canvasses:
TOPMOST_TAB_PAGE:
Determines the currently selected Tab Page
Property
Name for Windows:
TITLE:
the title of the window
X and Y_POS:
the location within the MDI window, in inches
Property Name for 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
Value: the new value. The appearance and validation of this field changes based on whether the property accepts Boolean values (True/False), numbers, a restricted set of values, or a string (See Evaluation of Strings below)
Get Value: This button gets the current property value of the object.
Get Value: This button gets the current property value of the object.
Action Type: Message
Message Type: either 'Show', 'Hint', ‘Warn’, 'Error', or
‘Debug’.
- Show: displays a message of type Note, with an OK button.
- Hint: displays text on the status bar
- Error: displays a message of type Error, with an OK button. Processing is aborted afterwards.
- Debug: displays a message of type Note, with an OK button. Only displays when ‘Display Debug messages’ is checked.
- Warn: displays a message of type Question, with OK and Cancel buttons. If the user selects Cancel, processing is aborted.
Message Text: The text you want to display in the message.
Action Type: Builtin
Builtin Type: Name of the builtin, such as
Launch SRS Form – launches a concurrent program
Launch a Function – launches another form function
Launch a URL – launches any URL
DO_KEY – execute a form builtin
Execute a Procedure – execute any procedure using syntax
exactly as you would in pl/sql code
GO_ITEM – navigate to a specific item
GO_BLOCK – navigate to a specific block
FORMS_DDL – issue dynamic sql statements
RAISE FORM_TRIGGER_FAILURE
EXECUTE_TRIGGER – call a trigger.
SYNCHRONIZE – synchronize form on client and middle tiers
Call Custom Library – call a specific event you have coded
directly in CUSTOM.pll
Create Record Group from Query – creates a record group
dynamically. Assign this new record group to a list of values to limit data
returned in the list.
Action Type: Menu
- Menu Entry: SPECIAL1 through SPECIAL45
- Menu Label: the text for the menu entry
- Render Line before menu: will draw a line above the menu entry
- Icon Name: the name of a .ico file
- Enabled In Block(s): the blocks for which the menu entry should be enabled. Leave blank for all blocks .
Custom.pll Vs Form Personalization
Task/Business
Requirement
|
CUSTOM.pll
|
Forms
Personalization
|
Change
LOV Query
|
Yes
|
Yes
<!--[if !supportLineBreakNewLine]--> <!--[endif]-->
a.
Create a New Record Group
b.
Attach new RG to LOV
|
Change
field properties like Mandatory/Display etc
|
Yes
|
Yes
|
Zoom
to another screen
|
Yes
|
Yes
a.
Enable Menu
b. Trap the Menu event |
Disable
a Menu entry when certain conditions are met
|
Yes
|
No
See Note-1 |
Display
messages, warnings, hints etc
|
Yes
|
Yes
|
Display
message with Questions, and conditionally execute code based on users
response to the question
|
Yes
|
No
|
Execute
PL/SQL Stored procedures
|
Yes
|
Yes
|
Change
Navigation and Navigational Properties
|
Yes
|
Yes
|
Change
block properties like “Query Where Clause” etc
|
Yes
|
Yes
|
Change
is applicable across multiple screens, like Changing window title for all
screens within one Organization/Responsibility
|
Yes
|
Yes
See Note-2 |
Show
FND Messages with their tokens replaced
|
Yes
|
See
Note-3
<!--[if !supportLineBreakNewLine]--> <!--[endif]--> |
Oracle Apps R12 and Oracle Fusion Cloud Self Paced Online Training Videos Published on Udemy with Life Time Access & Live Meeting Support to Clear your Queries. Avail 25% to 80% discount. Please Check https://www.oracleappstechnical.com for Never Before Offers and Discount Coupon Codes.
ReplyDelete