You are on page 1of 10


*********Forms Customization************
1. What is custom development?
Custom development is new development, In order to provide new functionality, which is not available
in Oracle Application; we are going for custom development.
2. What is customization?
Customization is not a new development. The existing form will be modified as per our requirement.
This may be cosmetic change or navigation change or functionality change.
3. Compare Custom development & customization. When they are used and why?
Custom Development

New development

Template form has to use

The required functionality is not provided by oracle in that case we have to go for custom


Tailoring the existing application

Same source file has to use

The existing functionality is not fully satisfying our requirement, then we are going for

4. What are step you have to follow to register a custom application?


Register your Application


Create directory structure


Set the Environment variable for directory


Create the schema


Attach your application & Schema with standard data group


Create the table, views, and trigger in your schema


Create synonym for table to APPS schema


Built the form


Register the form

10. Create form function

11. Create the menu

12. Attach the menu to the responsibility
13. Attach the responsibility to the user
5. How do you find out the FMB name?
Select menu bar Help menu of the form, then select About Oracle Application menu, that will show the
FMB of the form.
6. Name the directory having the FORMS source codes (FMB files)?
AU_TOP forms directory
7. What is template form?
Template form is a form, which have standard functionality of the oracle application, like menu bar,
tool bar action and some standard trigger. All forms in oracle application will be developed using this
form, To get standard appearance oracle application provide this form.
8. What are step you have to follow to register a Form?

Create the function

Attach the function to a form function

Attach the form function to menu

9. What is a Form function?

Form function is nothing but form. Oracle Apps treats all the forms as function.
10. What is Form sub function?
Sub function is a non-form function. Sub function will created based on form function. By using this
we can restrict functionality of the form.
11. How the form sub function is implemented?
By using parameter and profiles
12. What is folder form?
Folder form is a special form, here the user allow changing the appearance of the form as he/she like.
The user can rearrange the fields, resize the fields. This changes will be permanent belongs to the user.

13. Name the directories where you have to copy your Fmb and Fmx files?
All FMB files will be coped in AU_TOP form directory. FMX will be copied to corresponding
Prod_Top form directory.
E.g. All GL forms fmx will be coped in GL_TOP form directory.
14. Why we have to maintain the file names in Capital Letter? (Library/FMB)
Some of operation system will have case sensitivity, those OS may not able to get the correct file, for
avoiding case sensitivity problem we have to maintain the file name in UPPER case.
15. What is naming convention for Data base trigger?
Tablename_Ti. ( i = 1,2,3..)
16. What is naming convention for unique Constraint?
Tablename_Ui (i = 1,2,3.)
17. What is naming convention for Primary Constraint?
18. Can we put all the logic in the trigger?
No, create a package; put all the logic in package. Call the package from the trigger.
19. What is item handler package?
Item handler package is a package. This package will take care of the item validation, navigation. Each
block can have one package with the name of block name.

What is event handler package?

Event handler package is a package. This package will take care of the various event of the form, like
post query, pre query, when new record instance etc. Each form has event handler package with the
name of form name.
21. What is table handler package?

Table handler package is a package. This package will take care of the insert, update and delete
operation of view-based block. Each form can have one package with the name of form name.
22. What are the standard libraries available in template form?





23. What is who column and how can you set the values?
WHO columns are database columns, which gives the history of the record. ( it will gives created user
name with date and last modified user name with date of the record). By using
FND_STANDARD.SET_WHO procedure we can set the value.
24. What is use of custom library?
By using this library we have to do cosmetic and navigation change in form customization.
24. How can you change the default menu bar action?
By using APPCORE library
26. What is use of APPDAYPK library?
By using this library you can change the functionality of menu action and tool bar actions, and you can
add custom help files in the application.
27. What is a reference trigger? Can we modify a reference trigger?
Reference trigger is a trigger; definition of the trigger will be in some other file. We can but Oracle
Application advice against modifying the reference trigger. Because of this change will affect the whole

Can you comment your form? How?

Yes. You can give comment of the from in Form module comment window. By using
FND_STANDARD.FORM_INFO procedure you can comment your form, this is in PRE_FORM

30. Which form objects we should not use?

Activex, Vbx, Ocx, Ole


Mouse Trigger


Combo Box

TEST_IO, Host built-in

31. What is use of APPDAYPK library?

By using this library you can display calendar window in date field LOV.
32. What is use of FNDSQF library?
This library will tack care of concurrent program, profile options and flex filed behavior.
System Variables
SYSTEM.DATE_THRESHOLD : Represents the database date requery threshold.
Default : 01:00 (Synchronization occurs after one minute of elapsed time.) This does not mean that
Form Builder polls the RDBMS once every minute. It means that whenever Form Builder needs to
generate the value for the system variables $$DBDATE$$, $$DBDATETIME$$, $$DBTIME$$, or
SYSTEM.EFFECTIVE_DATE, it updates the effective date by adding the amount of elapsed time (as
measured by the local operating system) to the most previously queried RDBMS value. If the amount
of elapsed time exceeds the date threshold, then a new query is executed to retrieve the RDBMS time
and the elapsed counter is reset.
SYSTEM.EFFECTIVE_DATE : Represents the effective database date. The variable value must
always be in the following format: DD-MON-YYYY HH24:MI:SS
Default : RDBMS date.
SYSTEM.FORM_STATUS represents the status of the current form. The value can be one of three
character strings: NEW,QUERY,CHANGED
SYSTEM.SUPPRESS_WORKING suppresses the "Working..." message in Runform, in order to
prevent the screen update usually caused by the display of the "Working..." message. The value of the
variable is one of the following two CHAR values: TRUE , FALSE
SYSTEM.TRIGGER_RECORD represents the number of the record that Form Builder is
processing. This number represents the record's current physical order in the block's list of records.
The value is always a character string.

SYSTEM.MODE indicates whether the form is in Normal, Enter Query, or Fetch Processing
mode. The value is always a character string. NORMAL ,ENTER-QUERY, Enter Query mode.
SYSTEM.FORM_STATUS represents the status of the current form. The value can be one of three
character strings: CHANGED


SYSTEM.MESSAGE_LEVEL stores one of the following message severity levels: 0, 5, 10, 15, 20, or
25. The default value is 0.
When you create a parameter, you specify its name, datatype, length, and default value.
To create a parameter :
1. In the Object Navigator, create a parameter.
To create a parameter, select the Parameters node in the Object Navigator and then

Navigator Create.

2. In the Property Palette, set the desired parameter properties:

In PL/SQL, you can reference and set the values of form parameters using bind variable syntax.
To reference a parameter: Preface the parameter name with the reserved word PARAMETER, as shown
in the following examples:
:PARAMETER.parameter_name := 'TOKYO'; OR
:block.item := :PARAMETER.parameter_name;
Canvas Types :
* Content
* Stacked
* Tab
* Horizontal Toolbar
* Vertical Toolbar
Visual Attributes :
Visual attributes are the font, color, and pattern properties that you set for form and menu objects that
appear in your application's interface. Visual attributes can include the following properties:
* Font properties: Font Name, Font Size, Font Style, Font Width, Font Weight
* Color and pattern properties: Foreground Color, Background Color, Fill Pattern, Charmode Logical
Attribute, White on Black
Every interface object has a Visual Attribute Group property that determines how the object's individual
visual attribute settings (Font Size, Foreground Color, etc.) are derived. The Visual Attribute Group
property can be set to Default, NULL, or the name of a named visual attribute defined in the same
There are several ways to set the visual attributes of objects:

* In the Property Palette, set the Visual Attribute Group property as desired, then set the individual
attributes (Font Name, Foreground Color, etc.) to the desired settings.
* In the Layout Editor, select an item or a canvas and then choose the desired font, color, and pattern
attributes from the Font dialog and Fill Color and Text Color palettes.
* Define a named visual attribute object with the appropriate font, color, and pattern settings and then
apply it to one or more objects in the same module. You can programmatically change an object's
named visual attribute setting to change the font, color, and pattern of the object at runtime.
* Subclass a visual attribute that includes visual attribute properties and then base objects on it that
inherit those properties.
* Create a property class that includes visual attribute properties and then base objects on it that inherit
those properties.
About named visual attributes : Setting the Visual Attribute Group property to a named visual attribute
defined in the same module specifies that the object should use the attribute settings defined for the
named visual attribute. A named visual attribute is a separate object in a form or menu module that
defines a collection of visual attribute properties. Once you create a named visual attribute, you can
apply it to any object in the same module, much like styles in a word processing program.
Applies to canvas, tab page, item, radio button
Property Classes :
A property class is a named object that contains a list of properties and their settings. Once you create a
property class you can base other objects on it. An object based on a property class can inherit the
setting of any property in the class that makes sense for that object.
Property class inheritance is an instance of subclassing. Conceptually, you can consider a property class
as a universal subclassing parent.
There can be any number of properties in a property class, and the properties in a class can apply to
different types of objects. For example, a property class might contain some properties that are
common to all types of items, some that apply only to text items, and some that apply only to check
When you base an object on a property class, you have complete control over which properties the
object should inherit from the class, and which should be overridden locally.
Property classes are separate objects, and, as such, can be copied between modules as needed. Perhaps
more importantly, property classes can be subclassed in any number of modules.
Menu Item Types
Separator Menu Item :
A separator menu item is displayed as a horizontal line (or other platform-specific visual element), and
is useful for visually grouping related items on the same menu. For example, you could use a separator

to isolate the radio items of one radio group from other menu items. You must set a separator item's
Command Type property to Null. End users cannot select a separator menu item.
Magic Menu Item :
Magic items provide a way to quickly create menu items for standard functions available in most GUI
applications. Form Builder provides the following magic item types: About, Copy, Clear, Cut, Paste,
Help, Quit, Undo, Window.
Plain Menu Item : Default menu item.
Radio Menu Item
Check Menu Item
Registration of Forms.:
Create a New form with form builder and compile the form to get the custom.fmx (Executable form).
Copy appstand and template.fmb


Take a Backup of template and rename template as custom
16.Compile this form, you will get custom.fmx
17.Copy PLL files from oracle\prodappl\au\11.5.0\resource to


18.Register this form to Oracle Apps from Application Developer responsibility.

Navigation: Application -> Form
Enter the form name (custom) and custom application name,
User Form NameSave and Close
19.Create a Custom function.
Navigation: Application -> Function.
Enter the function name ,user function name and Description columns in Description Tab.
Go to Properites Tab and give type as Form.
Go to forms tab and enter the form name. Save and Close.
20.Create a Custom Menu
Navigation: Application -> menu.
And enter the menu name, user menu name
Enter the sequence number, prompt, function name(custom).
Save and close.
21. Create a new responsibility and attach the custom menu to the responsibility.
Navigation: Security-> responsibility->define.
22. Create a Custom user and attach the custom responsibility to the new user.
Navigation: Security -> User- > Define.


Login as the new User (Custom User) with custom responsibility and click on the menu item
to see the custom form.

Question: You have done forms personalization, now how will you move it from one environment to
Answer: Use FNDLOAD.
73) What is template?
a) The TEMPLATE form is the required starting point for all development of new Forms.
b) The TEMPLATE form includes platformindependent attachments of several Libraries.
APPSCORE: It contains package and procedures that are required of all forms to support the MENUS,
APPSDAYPK: It contains packages that control the oracle applications CALENDER FEATURES.
FNDSQF: It contains packages and procedures for MESSAGE DICTONARY, FLEX FIELDS,
CUSTOM: It allows extension of oracle applications forms with out modification of oracle application
code; you can use the custom library for customization such as zoom (such as moving to another form
and querying up specific records)
Question: What are the key benefits of forms personalization over custom.pll?
Answer: -->Multiple users can develop forms personalization at any given point in time.
-->It is fairly easy to enable and disable forms personalizations.
-->A programmer is not required to do simple things such as hide/disable fields or buttons.
-->Provides more visibility on customizations to the screen.
Question: Tell me some limitations of forms personalization when compared to CUSTOM.pll?
Answer: -->Can't create record group queries, hence cant implement LOV Query changes.
-->Can't make things interactive, i.e. cant have a message box that gives multiple choices for example
Proceed or Stop etc. many types of canvases?
Type of canvases
1. Content
2. Stacked
3. Tab
4. Vertical tool bar
5.horizontal toolbar
17.what the .pll u attach when u developed or customize form?
2 cusomm.pll

3 appstand
4 appdyppk etc.
19.How u customize a report tell me the step and what changes u have made?

Use of query find and how will u used it

35. What are the steps to taken when we are converting the forms from previous versions to say 2.5 to
new version 6i
a) We have to convert the reports or forms from older versions to new versions by step-by-step process
like if we take forms 2.5 to 3 first and then 3 to 4.5 and then from 4.5 to the form in the next
version compile it. But in the case of reports it is very unpredictable. We cannot convert the reports
from 2.0 to next version 2.5 but from 2.5 to next versions we can convert directly by opening the
reports in next version directly.
21.Use Of Format_Currency User Exit
it used for currency conversion