<-----Google Analytics Code Start----> <-----Google Analytics Code Close---->
Skip to content



Default screen resolution  Wide screen resolution  Increase font size  Decrease font size  Default font size  Skip to content Default color Pink color Green color Green color
Home arrow Home arrow Forms Personalization - Best Practices
This website has now moved to http://apps2fusion.com

Forms Personalization - Best Practices | Print |  E-mail
Written by Anil Passi   
Wednesday, 24 October 2007
When it comes to doing forms personalizations in Oracle's eBusiness Suite, it is good to follow certain guidelines.

We all know that forms personalization create a layer of customization on top of the standard Apps D2K Forms.
The Metadata related to forms personalizations is stored in tables FND Tables.

Please find a list of guidelines can be regarded as the best practices when it comes to doing forms personalizations in Oracle Apps.

In case you wish to see different examples of forms personalizations, then please visit link following links

  1. Various examples on Oracle Forms Personalizations

  2. An example for implementation of Oracle Forms Personalizations in HRMS

  3. Comparison between CUSTOM.pll and Forms Personalization in Oracle

Anyway, lets have a look through some of the best practices for Forms Personalizations.

Global Variable Names
All the global variables defined must begin with XX.
This will ensure there is no conflict with global variables that are defined by Oracle’s development team.


You must always use FNDLOAD to transfer Forms Personalizations from one environment to another. However see below point too, which is very relevant to FNDLOAD

Decide a master environment
Decide a master environment onto which all the forms personalization will be entered prior to scripting & patching those personalization using
If "Functional Team" makes changes to TST Environment and then the "Development Team" makes changes to DEV Environment for the same form, then, changes done to TST Environment will be lost when FNDLOAD extract from DEV is uploaded onto TST.
Usually developers make their personalization changes to DEV environment, Functional team makes their changes to TEST/UAT environments and Support team sometimes tends to make their FNDLOAD changes straight into production[ I mean without using FNDLOAD]. This is a bad practice. Do not make any Forms Personalization changes manually onto production.
Decide an environment onto which developers, functional personnel & support staff will manually key in their personalization.
Use this as a master environment to download the Forms Personalizations using FNDLOAD.


Tools Menu

To create new Tool Menus, always use MENU1-MENU15, as Oracle guarantees never to use these during development. Same is not true for SPECIAL Menus, as Oracle development may release a patch utilising the same SPECIALx as you may have personalized. MENU1..15 is available starting from 11.5.10 CU2 onwards


Remember the sequence
Keep in mind that “Forms Personalization” code fires prior to CUSTOM.pll code [in case you have the same form extended in both the places].

Use local variables when its usage is restricted to one single form
If a variable scope is limited to single form which is being personalized, then do not unnecessarily create a GLOBAL Variable.

Clear Global Variables once they have been used
Use global variables when you wish to integrate two different screens using Forms Personalizations. In other words global variable act like a bridge between two forms [of course apart from parameters]
Make sure you clear off the GLOBAL Variables after their usage is finished. This will ensure that screen works under normal scenarios too.

Before reporting a bug/SR in Forms via Metalink, reproduce the issue by disabling customizations
The Forms Personalizations can be disabled by turning the custom code off.
Before reporting any form related bug to Oracle, try reproducing the issue by turning Custom Code off

Identify the best possible triggers to use for personalizations
See this link that explains how to recognise the best trigger to trap for forms personalization.
Both forms personalization and CUSTOM.pll are fed the same set of triggers in Forms.

That’s all that I can think off. If you wish to share your experience of best practices, then please feel to add your experience in the comment section.

Comments (8)add
Raising message through Personalisation
written by santhosh , October 25, 2007
Hi Anil,
I have a doubt in Personalisation.

I am currently doing the payment extract interface program for the bank. The point here is that the bank doesn't allow some characters which are considered as special characters like (#,$,%,^,*,&) etc..In most of the information like vendor name and invoice numbers they are using these characters.

In my interface program, i am removing this special characters and replacing it with space or ' ' symbol as prescribed by bank through translate command.
translate(VENDOR_NAME,'/!;"{}[]|=_*&^%$@~#',' ')

But i am planning to restrict them at the form level itself.
I tried using Personalisation with the condition.
:VNDR.VENDOR_NAME_MIR != translate(:VNDR.VENDOR_NAME_MIR,'/!;"{}[]|=_*&^%$@~#',' ')
In the Actions, I have given a message of type 'Error' and it is also firing.

My question is
Is there any possibility of giving

RAISE_APPLICATION_ERROR unless and until they delete/remove the special characters?

Please help me on this.

written by Anil Passi , October 25, 2007
Hi Santosh

Sure, you can raise the exception, such that users are forced to rectify the issue.
Use the Action of type Builtin, with BuiltIntype RAISE FORM_TRIGGER_FAILURE

Anil Passi
written by santhosh , October 25, 2007
Thanks Anil...
Forms Personalization:: Builtin Type = "Create Record Group from Query"
written by Vinay , October 31, 2007
Hi Anil,

I have gone thru the examples you have given on forms personalization.I got a request to personalize the form and I want to use the Type = "Builtin" and Builtin Type = "Create Record Group from Query" for that form personalization which you have given as an example in the link "http://oracle.anilpassi.com/forms-personalizations.html".But I could not find Bultin Type = "Create Record Group from Query". I am using version of Oracle Apps.I checked in earlier version 11.5.8 also.But I could not find. May I know by using which version you have given that example and in which versions it is available?

How to Enable/Disable Dff for a specific responsibility
written by Anjana Menon , November 09, 2007
Hi Anil,

How can I Enable/Disable Dff for a specific responsibility using Forms Personalization.

Thank You
Forms Personalization
written by Mohammad Al-Masri , November 19, 2007
Can we add button to Apps screen through Forms Personalization????
Regarding Oracle Apps technical
written by prasanta kumar mallick , November 26, 2007
hi anil,
its great job. moreover i am looking for job in Oracleapps technical consultant.
so can u guide to prepare myselfe as same

written by Arunakumari.v , February 26, 2008
how can i populate a message based on a condition in the form using forms personalization

You must be logged in to a comment. Please register if you do not have an account yet.