Forms Personalization - Get It While It's Hot!

 So, it's all about J2EE, right?

Well, it will be - and we're all excited by the move to the Fusion Applications platform, and its early form, Oracle Applications Framework.

But we still live in a world with Oracle Forms, and we will continue to do so for  Release 12. Importantly, you can stay on these releases as long as they provide you business value, so you can move to Fusion Applications on your timeframe, not ours. (Close your eyes and say 'Applications Unlimited' . Feels good, doesn't it?)

So it's important for us to let you change your business practices at the lowest cost of ownership on the Forms stack, and Forms Personalization lets you do that. It's a feature that's been out just under 2 years, but this is a great venue to highlight it to make sure you're taking maximum advantage of it.

What now?

Forms Personalization takes the Custom Library (CUSTOM.PLL) concepts and makes them much easier to implement. Like much easier. Like going from your VCR to a Tivo easier. CUSTOM.PLL coding is all hand-tooled PL/SQL which is controlled in a single source file, by default. It allows implementers to trap various Forms triggers and take actions based on them.

All Forms Personalizations, on the other hand, are stored as metadata, and so they are all seamlessly upgraded without needing to be re-applied or addressed - just like Flexfields or Folder definitions! Forms Personalization provides tools to perform the same configurations, in the form of a Form. (Say that fast, huh?)

Open any Form in 11i10, and go to Help->Diagnostics->Custom Code-> Personalize. This brings up the Personalization Form in the context of the Form and Function that you were in. This is where you build the Personalizations specific to that Form or Function.

The page has two major tabs: Conditions and Actions. Forms Personalization is basically a big set of if-then statements that can execute because of various events that take place on that Form.


Conditions determine IF a personalization executes after a specific event or Forms trigger (including MENU or SPECIAL triggers). Triggers (WHEN-NEW-ITEM-INSTANCE, WHEN-VALIDATE, etc.) can be attached to objects, such as this example - when the user tabs out of the Purchase Order Type field into the Supplier Name field. Note that Conditions include conditional logic (only if the PO Type is 'Planned Purchase Order', e.g.), and scopes (only for Purchasing Superuser responsibility or Vision Operations organization or Joe the useless intern).



Actions are the list of specific things that you want to have happen. The major actions are:

  • Builtin: Form or PL/SQL built-ins like executing a procedure, mimicking a key stroke, navigating to another function, opening a URL, etc. Very powerful indeed.

  • Property: Set the Forms property value of a form item (If it's a Planned Purchase Order, set the Required property of the Description item in the PO_Header block to TRUE, e.g.)

  • Message: put up a prompt warning like an OK box (cool because you can populate the message with data from screen variables, lookups, or calculations)

  • Menu: Enables a special menu entry, defining its label, icon name and blocks to which it applies.


How now? (.... 'brown cow?')

Those are the basics, and I think you can see how much more accessible this power is now. It's easily managed, as well. For example, there are delivered FNDLOAD scripts for migrating these personalizations between instances (DEV > TEST > PROD), as well as entering them in version control systems.

Also, there is a central form for identifying the personalizations and turning them off! Pretty good if you completely hose up the WHEN-NEW-FORM-INSTANCE event... (Not that I've done that. Not that I would tell you, anyway.)

Couple of last notes

Forms Personalization receives events before CUSTOM.PLL does but then passes them normally to CUSTOM.PLL... Your existing CUSTOM.PLL logic will continue to work, but you can introduce these Personalizations first.

Forms Personalization was tested for performance and has been found to have very low impact. So don't worry about using this on heavily trafficked forms.

You need FND 11.5.10 minipack (FND.H), patch 3262159; alternately, it's included in ATG Family Pack H with additional niceties.

In all, it's great stuff, and while many folks have already done a bunch of CUSTOM.PLL library work, some may have shied away from it, or might have other small tasks that can now be trivially done. Of course, if you're just implementing, you'll find this very valuable.



Hi Jim,

I have been using the CUSTOM.pll for years but recently stumbled across Forms personalization, what a great addition to the EBS customization and extension toolbox. Maintaining and documenting an ever changing CUSTOM library has been a support nightmare, but forms personalization solves all those problems.

Best Regards,
Andries Hanekom

Posted by Andries Hanekom on July 21, 2006 at 01:04 AM PDT #

Great stuff, isn't it? Please let us all know, in the Comments section, if you guys are doing really clever stuff with Forms Personalization. We'll all benefit; I'd love to share your stories with the customers I talk to.
Thanks, all the best.

Posted by Jim Van Heel on July 21, 2006 at 09:34 AM PDT #

Was anyone able to attach an LOV to a text field on the form?

Will appreciate any help

Posted by Steve on September 22, 2006 at 09:40 AM PDT #


I Want to understand, if a Form is 'personalized' and a Patch is applied which touches that Form.

What will be the impact? How we ensure that after the Patch application the Form Personalization are OK.


Posted by Rajib Pramanik on January 03, 2010 at 02:51 PM PST #

Hi, Rajib,

If a form is personalized, subsequent patches that update the form will preserve your personalizations automatically and transparently to you. No additional steps are required to preserve your personalizations.


Posted by Steven Chan on January 05, 2010 at 03:29 AM PST #

Hello Steve,

I look for Form Personalization information OTN and to my surprise everything is gone. All the links are dead and the search page is not that useful.

Any ideas on whats the new home base for Form Personalization?


Posted by Hitesh on March 07, 2010 at 10:17 PM PST #

Hello, Hitesh,

I'm not sure what happened to that site.

You can find lots of information about personalization in our EBS Developers Guides. For example, for Release 12 see:

Check out the guides in the "Standards" section.


Posted by Steven Chan on March 09, 2010 at 03:06 AM PST #

Thanks for the great blog. We have used personalization to personalise the Service Requests form on version 11.5.10. Because of the nature of our business we have had to hide a number of unrequired fields, extend the widths of some fields and rename some to reflect our own context. This has result in 73 actions in total being created to personalize this form. The form is now fit for our purposes but this has had an adverse effect on performance. It is now taking considerably longer to load but is a lot faster when the personalisations are disabled. Can you advise on how this can be optimised

Posted by Cynthia Dzikiti on August 04, 2010 at 06:32 PM PDT #

Hi, Cynthia,

Hmm. Interesting question. Our standard response to performance issues that have been introduced by customizations is to recommend that you remove the customizations.

Note that "customizations" != "personalizations"

So, this falls into a grey area: personalizations are supported, and indeed, encouraged. I think we should investigate performance issues resulting from personalizations.

Can you log a formal Service Request via My Oracle Support (formerly Metalink) with the details? Please forward your Service Request number to me so that I can get one of our OAF developers working with the Oracle Support team assigned to your SR.


Posted by Steven Chan on August 05, 2010 at 01:27 AM PDT #

Hello Steve,
Here is the service request number:
Service Request Number 3-2104278401

Many Thanks,

Posted by Cynthia on September 12, 2010 at 07:56 PM PDT #

Hello, Cynthia,

Thanks for your SR number. Reviewing your SR, it appears that you and your Support Engineer have isolated the issue to your own custom code that you've created for this form. The problem does not appear to be with underlying Forms personalization functionality.

If that's the case, you will need to spend some time optimizing your custom code for that form. Oracle Support can assist in a limited way, but I would expect that this will quickly go beyond Support's scope. Support isn't really geared up to help debug customizations. If you need in-depth assistance with this, Oracle Consulting may be a good option to consider.


Posted by Steven Chan on September 13, 2010 at 01:58 AM PDT #

Hello Jim I was researching on HRMS Form Personalization information and find your materials useful, but in the future could you include some screen shots. Just one question, will the form will have any adverse effect on performance? But, every little helps. Best regards Kuha Kumaran .K.

Posted by Kuha Kumaran. K on June 05, 2011 at 09:45 PM PDT #


I want to personalized on Po Lines item LOV which show only item code and description and i want to show another field Inventory Organization.

Can anyone help me in this matter

Faisal Khan

Posted by guest on January 29, 2012 at 05:20 AM PST #

Hello, Faisal,

I'm afraid that we don't have any Purchasing specialists on this blog's panel of authors. I'd recommend asking this question in one of the Purchasing forums on the Oracle Technology Network.


Posted by Steven Chan on February 09, 2012 at 10:33 AM PST #

how can i make a validate on an item when we leave the item

Posted by guest on February 27, 2013 at 06:02 AM PST #

Post a Comment:
  • HTML Syntax: NOT allowed


« July 2016