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 other function.
- 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.
I have requirement for form personalization form on sales order form. When Ship_to field is changed and while saving (Message should say if the SHIP_TO is changed the freight_terms, FOB and ...will be changed) .
ReplyDeleteI am able to get the above message when i change any field in sales order form.
but i wanted this message to display only when i change the ship_to field in sales order form.
Please guide me how to do this using form personaliztion.
Thanks In Advance
Kiran
Hi Kiran,
DeleteTo do this you can compare the existing value of SHIP_TO field and the changed value. I would say you create a variable in FP and store the existing value of SHIP_TO location.
If any one moves out of SHIP_TO field you write the condition to validate the current value and the variable value, If those are not same show the message.
To define variable you can go to Actions :-
Type -> Property
Object Type -> Global / Local Variable
Target Object -> XX_SHIP_TO
Property Name -> VALUE
Value -> = (select query to pull SHIP_TO location.)
Hi i have requirement for form personalization for receipts form in receiving(Purchasing Resonpsibility)
ReplyDeleteto show message when the check box and the attachment is attached against purchase order
in attachment screen there is only FND tables .so how i match both in same personalization.
really sorry for my English..
Thanks in Advance
Arul.
Hi Arul,
DeleteYes attachments are saved in fnd_attached_documents. If query the table you can find reference to the module and particular record.
fnd_attached_documents.entity_name refers to the module / form where its originated.
fnd_attached_documents.pk1_value represent the primary key of the record.
If you have attached and attachment in Purchasing form then you have fnd_attached_documents.pk1_value ~ po_header_all.po_header_id.
Hope with that you can form the query and build the condition for your forms personalization.
Regards
Tauseef
This comment has been removed by the author.
DeleteThank you so much...but i have an issue because I am using receipt screen in receiving menu(Purchasing Responsibility).so entity name is RCV_TRANSACTIONS_INTERFACE(using "Miscellaneous" category).how i match with this. Can you share your mail id i will send in detail.my mail id is 'arulrajkv@gmail.com'
ReplyDeleteHi i have requirement for form personalization for Modifier form in Pricing. I want to disable all field in Modifier form (if end date < today). i don't want change everything if end date < today.
ReplyDeleteThanks In Advance
Chasha
Hello Chasha,
DeleteHere is how you should do that.
First Have the condition :-
Trigger Event = WHEN-NEW-BLOCK-INSTANCE
Trigger Object = MODIFIERS
Conditin = :MODIFIERS.END_DATE_ACTIVE <= Sysdate
Setup Action :
Type = Property
Object Type = Block
Target Object = MODIFIERS
Property Name = UPDATE_ALLOWED
Value = FALSE
Regards
Tauseef
This comment has been removed by the author.
DeleteHi,
DeleteYou may need to do the same thing on different events so that it gets disabaled in all cases and have to enable it back when you move to a record which is eligible to be updated.
Regards
Tauseef
Thanks for the advice. But i have doubt. Why MODIFIER_LIST not use WHEN-NEW-BLOCK-INSTANCE same MODIFIERS I also modify header information on the Form.
DeleteRegards
Chasha
This comment has been removed by the author.
DeleteWell you can use that too, it depends on your requirement... I was under impression that you want to disable update on modifier lines which are end dated. If you have requirement that if a modifier at header level is end datet and you don't want to allow update, then please use the block as MODIFIER_LIST.
DeleteRegards
Tauseef
Thank you so much.
DeleteRegards
Chasha
Hi Tauseef,
ReplyDeleteHow can we suppress the frm 41050 warning messages through form personalization?
Please suggest.
Thanks
Hello,
DeleteCan you please tell the steps/scenario where you get the FRM-41050 message. Based on that we can get some thing.
Regards
Tauseef
Hi Tauseef,
ReplyDeleteI have done form personalization to make sales order lines read-only after saving changes on a custom sales order form. Functionality is working fine, but for every line this FRM message is poping up. SO want to suppress these messages.
Thanks
Hello,
DeleteI am not able to reproduce it... I tried with setting update/insert allowed to FALSE but didn't get such warning message.
I only see few HINT message on bottom left screen. If you have block and even that you setup the FP.. I can try and provide some fix.
Regards
Tauseef
Hi! If I want to supress standard message APP-INV-05407 for Subinventory transfer. Do you have example how to do this ? Thanks, Linda
ReplyDeleteHi Linda,
DeleteSure I would try to help but need to understand at what time and scenario you get this message. Based on that I will and suggest some thing.. a screenshot would be better to understand.
Tauseef
Hi Tauseef! Thank you! In Inventory, Transactions->SubInventory transfers form. When user enters transfer 'items' more tha we have in the stock at the moment, he/she will get message is´App-INV-05407 'quantity will drive inventory negative' .
DeleteWe allow negative inventory in factory organizations .
So, this is just standard warning message, that we want to suppress for specific responsibility(Context).
Do you have an idea ? Have you done any supressings before ? It can be similar...Thanks for any help, Linda
Hi! Its me again :) I went forward with the condition:
DeleteTrigger event :WHEN-NEW-ITEM-INSTANCE
Trigger object:MTL_TRX_LINE.TRANSACTION_QUANTITY
Condition:${item.mtl_trx_line.transaction_quantity.value} >${item.mtl_trx_line.qoh.value}
But the action, I am stucked here .. How to supress the message or how do I silently 'say' OK on that message and proceed.
Thanks for any tip,
Linda
Hi Linda,
DeleteYou are going in right direction and to press the button we can use following :-
Builtin Type: EXECUTE_TRIGGER
Argument: WHEN-BUTTON-PRESSED
But the problem I see that the condition is not getting satisfied.. Since FP is all event based and while the pop up message is showed no event is generated.
Regards
Tauseef
very good slide, thank you so much
ReplyDeletevery good slide, thank you so much
ReplyDeleteThank you for the detailed explanation. Was extremely helpful for me. Keep up the good work!
ReplyDeleteThanks!
Hello. I have an issue with the Material Requirements form for Depot Repair Responsibility. Under supply tab i need to make the Subinv field mandatory and it did turn yellow but it allows me to save even if no data are inserted. Can you please help me on this? Thanking you in advance.
ReplyDeleteHi I have requirement for form personalization for updating recieved_date of rma collection plan if receipts form in receiving(Purchasing Resonpsibility) has the the same data.Please help.
ReplyDeleteThanks!
how to check the field in form is getting auto-populated or not???
ReplyDeleteHi all
ReplyDeleteI have a requirement for Form personalization Oracle R12 in oracle ebs form, I need to disable a profile call while trying to create a new Prescriber, while let the profile be continued to call while creating a new member (patient). How can I achieve that ? Any suggestions please...
ReplyDelete