Search This Blog

Sunday, July 14, 2013

Form Personalization

Why personalization?
  • Oracle Supports personalization unlike customization
  • Personalization are 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 whereas in CUSTOM.PLL we don't have that ability.
  • Can be applied to new responsibilities/users easily.
  • Can be restricted to function or form.

What can be done through personalization?
  • Zoom from one form to another
  • 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

Personalization Tables: 
  • FND_FORM_CUSTOM_RULES
  • FND_FORM_CUSTOM_ACTIONS
  • FND_FORM_CUSTOM_SCOPES
  • FND_FORM_CUSTOM_PARAMS
  • FND_FORM_CUSTOM_PROP_LIST
  • FND_FORM_CUSTOM_PROP_VALUES

 Zoom Functionality through Forms Personalization

What is Zoom?
Directly going from one form to another form with click of a button is called zoom functionality in oracle applications. This can be done in different ways. Firstly, We can just call the second form and then leave it for user to enter the data. Second way is call the second form from first and then dynamically populate the data in second form based on first forms data.

How to implement Zoom functionality?
In this tutorial we will zoom from Order Organizer form to Shipping transactions form and also populate the order number dynamically in destination form.

Know the following things before you start
  • Know the names of source form and destination form
  • If you need to populate the data dynamically know what fields that you need to populate.
  • Global Variables: These variables can be initialized in any form and can be used in any form all over the applications
  • Trigger & Action: trigger is an event and action is operation/execution that we do. When an event occurs we do operation/execution

Source form: Order Organizer form (OEXOEORD)
Destination form: Shipping transactions form (WSHFSTRX)
Source field: Order number ()
Destination field1: Order number low (QM_DLVB.DLVB_SOURCE_HEADER_NUMBER_LO)
Destination field2: Order number high (QM_DLVB.DLVB_SOURCE_HEADER_NUMBER_HI)
Destination field3: Line Status (QM_DLVB.DLVB_LINE_RELEASED)

Process flow:
  • Initialize the menu/icon in source form
  • Initialize the global variables
  • When the menu/icon is clicked copy the order number from source form filed to global variable and then launch the destination form
  • In the destination form copy the value from global variable to destination form field.

Initialize the menu/icon in source form

Navigation: Order Management Super User Orders, Returns Order Organizer

Navigation: Help Diagnostics Custom Code Personalize

Follow the screenshots








Personalization in Destination Form