2. Copyright @ Immense Source Institutes, 2011. All rights reserved
New Form Development
Form Customization
Form Personalization
Oracle Application Forms
3. Copyright @ Immense Source Institutes, 2011. All rights reserved
Contents in Oracle Application Forms
• Oracle 11i Product top
• Architecture for Forms
• Standard form vs Custom form
• Standard Library file
• Template.fmb
• Query find
• Custom.pll
• New form Development process
• Step to Resister the New Form
• Form Customization Process
• Form Personalization
• Form Personalization vs CUSTOM.pll
4. Copyright @ Immense Source Institutes, 2011. All rights reserved
What is Form 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
5. Copyright @ Immense Source Institutes, 2011. All rights reserved
Most of the customers wish to modify the way the forms look and behave.
Like changing the labels on the form fields,
hiding fields,
hiding buttons, etc.
The motives could be
Managing un-necessary fields.
To match the customer specific business requirements.
The Need
6. Copyright @ Immense Source Institutes, 2011. All rights reserved
Menu Navigation:
Help Diagnostics Custom Code
Personalize
7. Copyright @ Immense Source Institutes, 2011. All rights reserved
Condition
Trigger Object
Trigger Event
Condition
Processing Mode
Validate
8. Copyright @ Immense Source Institutes, 2011. All rights reserved
» Each condition mainly contains three sections. They are…
» Trigger Event: Trigger Event specifies the occurrence where the rule
should
be executed.
» Trigger Object: Trigger Object is the object on the form to determine at
what level the rule should be executed.
The values can be “<Form Name>”, ‘<Block Name>” or “<Item Name>”
» Condition: Condition is any SQL statement to control the execution of
rule
when the mentioned criterion is met.
Condition
9. Copyright @ Immense Source Institutes, 2011. All rights reserved
Condition : Trigger Event & Trigger Object
10. Copyright @ Immense Source Institutes, 2011. All rights reserved
All E-Business Suite forms send the following events:
WHEN-NEW-FORM-INSTANCE: Once, when the form starts up. Trigger
Object does not apply.
WHEN-NEW-BLOCK-INSTANCE: Each time the cursor moves to a new
block. Trigger Object must contain the blockname of interest.
WHEN-NEW-RECORD-INSTANCE: Each time the cursor moves to a new
record. Trigger Object must contain the blockname of interest.
WHEN-NEW-ITEM-INSTANCE: Each time the cursor moves to a new
item. Trigger Object must contain the blockname.itemname of interest.
WHEN-VALIDATE-RECORD: each time the current record has any change
that needed to be validated. Trigger Object must contain the blockname
of interest.
Form Personalization
11. Copyright @ Immense Source Institutes, 2011. All rights reserved
Processing Mode:
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.
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.
Condition: Processing Mode &
Validate
13. Copyright @ Immense Source Institutes, 2011. All rights reserved
Context manages to whom the personalization should apply.
This is similar to the concept of using profile options in Oracle
Applications with a slight difference. We will see this in next slide.
The various levels are Site, Responsibility, Industry and User.
During runtime, the values provided in the context are evaluated and
personalization rules will be applied.
Usage of context is very vital in implementing the personalization to
prevent the inappropriate users accessing these personalization of the
form.
Example : Context = Responsibility
Value = Customer Support
Context
14. Copyright @ Immense Source Institutes, 2011. All rights reserved
If a Rule has a context of ‘Site’, it will be applied for everyone.
A rule with a context of Responsibility does not ‘override’ Site.
A rule with a context of User does not ‘override’ Site or Responsibility.
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’.
Context
16. Copyright @ Immense Source Institutes, 2011. All rights reserved
Actions decide the exact operation to be performed when the conditions
and context return TRUE during the runtime.
The types of actions available are…
Property
Message
Built-in
Special
Each Action contains a Sequence number, Description and Language.
Based on the action type selected, the fields on the right sector of the
actions tab will be refreshed where the action parameters are entered.
Actions can be enabled, disabled or deleted.
Actions
17. Copyright @ Immense Source Institutes, 2011. All rights reserved
The action type “Property” is used to set the properties of the objects.
The various objects include “Item, Window, and Block etc”.
Property Name is the Property to be changed.
Value is the new desired value for the property.
Example: Object Type = “Item”,
Target Object = “:ORDER.ORDER_NUMBER”
Property Name = “PROMPT_TEXT”
Value = “Claim Number”
The value can be interpreted at runtime, so you can use SQL functions and
operators.
Any value start with “=” operator will be interpreted at runtime,
otherwise the value is treated as is entered in the value field.
Example: Value => =’Welcome to the Sales Order Entry Mr. ‘||user.
18. Copyright @ Immense Source Institutes, 2011. All rights reserved
For Items (Fields):
• 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
• LABEL: The label of a button, checkbox or radio button
• 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.
Common Actions of type Property
19. Copyright @ Immense Source Institutes, 2011. All rights reserved
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
For Canvases:
• 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 inches
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
Common Actions of type Property
20. Copyright @ Immense Source Institutes, 2011. All rights reserved
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
Show Hint Error Debug Warn
• Depending on the response expected from the user, the appropriate message type should be
selected.
Example: Message Type = “Hint”
Message Text = “Please Follow the Date format DD-MON-YYYY”
21. Copyright @ Immense Source Institutes, 2011. All rights reserved
Show: Displays a message of type Note, with an OK button.
Hint: Displays text on the message line
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.
Common Actions of type Message
22. Copyright @ Immense Source Institutes, 2011. All rights reserved
Actions Type: Builtin
The action type “Builtin” is used to execute the form and AOL API’s.
Depending on the API type selected, the parameters should be entered.
Example: Builtin Type = FND_UTILITIES.OPEN_URL
Argument = http://dms.dell.com
23. Copyright @ Immense Source Institutes, 2011. All rights reserved
• GO_ITEM and GO_BLOCK: Move the cursor to a specific item or the first
item in a block
• DO_KEY: Acts like a macro, simulating user actions.
• Common Arguments:
• ENTER_QUERY: invoke QBE mode
• EXECUTE_QUERY: execute the query
• NEXT and PREVIOUS_BLOCK: move to another block
• NEXT and PREVIOUS_ITEM: move to another item
• FND_UTILITIES.OPEN_URL: Launch a URL. Can be as simple as
‘www.yahoo.com’, or as complex as a Discoverer page
• FND_FUNCTION.EXECUTE: Open a function, applying security rules.
Parameters can be passed if the target accepts them.
Common Actions of type Builtin
24. Copyright @ Immense Source Institutes, 2011. All rights reserved
A rule or action may not run for a variety of reasons:
• The Rule or Action is not enabled .
• The Condition has evaluated to FALSE .
• The Trigger Event and/or Trigger Object were not what you expected
• The scope of the rule only consists of Responsibility, Industry and/or
User, and none is true for the current context
• An action is executing the Builtin 'RAISE
FORM_TRIGGER_FAILURE' . That will abort all further processing
for that event.
• The Language of the Action, if not ‘All’, is different than what you are
currently running
• You have set Custom Code to ‘Off’ or ‘Core code only’ in the
pulldown menu.
• Rules are created for a Function. You might be running the same form,
but as a different function.
Debugging: Why isn’t it running ?
25. Copyright @ Immense Source Institutes, 2011. All rights reserved
Personalization Customization
Not Require CUSTOM library Mainly use CUSTOM library
For a limited functionality like hiding
columns, changing labels and showing
custom messages etc. (Look & Feel)
To Implement the complex business
logic
Easy, faster and requires minimum
development effort.
Depends on the complexity of business
logic and require considerable
development effort.
Doesn’t violate the support from Oracle
and these rules also conceded with the
future upgrades without any additional
effort.
26. Copyright @ Immense Source Institutes, 2011. All rights reserved
Form Personalization: Database Tables
Some of the Important Database tables for personalization
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