Professional Documents
Culture Documents
Why personalization?
Will not have a bigger impact when you upgrade or apply patches to the environment
Personalization will store who columns with which we have the ability to track who created/modified
it where as in CUSTOM.PLL we dont have that ability.
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
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
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.
I will take one simple business requirement to help you understand the need for this kind of approach.
Lets say your business has a third party system like Agile to maintain your inventory items but your item
creation should start from Oracle Apps. As we dont want to give our base table MTL_SYSTEM_ITEMS_B
table access to agile system we will create a custom table (preferred in custom schema) with limited
columns which need to be shared with agile system.
Custom Table Script:
1 CREATE TABLE "APPS"."ERPS_DEMO_FORMS_PERS"
2 ( "ID" VARCHAR2(100 BYTE),
3 "NAME" VARCHAR2(100 BYTE)
4 );
Custom procedure to call from Inventory item Form via Forms personalization.
1 CREATE OR REPLACE PROCEDURE erps_demo_forms_pers_prc(
2 p_inv_item VARCHAR2,
3 p_inv_desc VARCHAR2)
4 AS
5 BEGIN
6 INSERT INTO erps_demo_forms_pers VALUES
7 (p_inv_item,
8 p_inv_desc
9 );
10 COMMIT;
11 EXCEPTION
12 WHEN OTHERS THEN
13 NULL;
14 END;
Now having Custom table and custom procedure compiled in database we will move on to front end and
personalization to call this procedure.
Loging to Apps front end and navigate to Inventory Responsibility.
If it prompts for selection of inventory organization select anything as per your preference. This form
being a master form your selection doesnt matter here in anyway.
Navigation: Help > Diagnostics > Custom Code > Personalize
Navigate to Actions Tab and enter the information as shown in screenshot below.
Argument:
1 ='declare
2 begin
3 erps_demo_forms_pers_prc('''||${item.MTL_SYSTEM_ITEMS.INVENTORY_ITEM_MIR.value}||''',
4 ${item.MTL_SYSTEM_ITEMS.DESCIPTION_MIR.value}||''' );
5 end'
Save it.
Close form.
Open form again, Create new inventory item and save it.
Now you should be able to see the item in both standard base table and also in our custom table.