Wednesday, July 7, 2010

Forms (Quick Interview Guide)

1) Oracle Forms Developer, a component of the Oracle iDS i.e. internet Developer Suite. Oracle Forms Developer applications can be automatically generated from business requirements designed in Oracle Designer modeling environment. This models are stored in Oracle Repository. Code level changes made within the Oracle Forms Developer.

2) Oracle Forms Services is a component of Oracle9i Application Server for Delivering Oracle Forms Developer applications to the Internet. Oracle Forms Services used 3 Tier Architecture to deploy database applications.
a) Client Tier contains the Web Browser
b) Middle Tier is the application Server
c) Database Tier is the Database Server.

3) 9iAS consists of set of services & utilities that can be used to implement applications in a distributed environment
a) Communication Services (Handle Incoming Request received by 9iAS)
b) Presentation Services (Outputs some kind of graphical presentation)
c) Business Logic Services (Develop Business logic using Java, EJB.etc)
d) Data Management Services(To reduce load on back end database instance)
e) System Services (Oracle Enterprise Manager & Oracle Advance security)

4) Forms services consists of 4 Major Components:
a) Java Client: It is an Applet that is downloaded at Runtime from an Application server to an end users Web Browser.
b) Forms Listener: Establishes a connection between the Forms Client & Forms Services Runtime Engine.
c) Forms CGI or Servlet: Dynamically creates an HTML page to be sent back to the user’s Browser.
d) Forms Runtime Engine: It is the process that maintains a connection to the database on behalf of Java Client.
When a user runs a forms session over the Web, a thin, Java-based Forms Applet is dynamically downloaded from the application server & automatically cached on the Java client Machine. The same Java Applet code can be used for any form, regardless of size & complexity.

5) Form Builder is the main application building component of Oracle Forms Developer.

6) Object Navigator: It is a hierarchical browsing & editing interface that enable you to locate & manipulate applications objects quickly & easily.
Property Palette: All objects in a module, including the module itself, have properties that you can see & modify in the Property Palette
Layout Editor: It is a graphical design facility for creating & arranging interface items and graphical objects in your applications.
PL/SQL Editor: It is the integrated functionality of Oracle Procedure Builder that exists within the Form Builder.

7) Preference File: Oracle Forms Developer & Oracle Reports Developer share the same preference file named ‘D:\D2K\cauprefs.ora’. This file is an editable text file. Oracle Forms & Reports Developer can read this file whenever Oracle Form or Report Builder is invoked.

8) Oracle Forms Developer uses many Environment Variables. These have Default values & can be modified in our own environment for different applications.
Some of the variables are,
a) FORMS60_PATH (Path that Form Builder searches for files at run time)
b) UI_ICON (Path that all builder search for icon files at run time)

9) Menu Toolbar: It contains buttons corresponding to menu items.

10) Console: It is the generic name for the standard features that provide information at runtime. The console is displayed at the bottom of Runtime Window & Consists of Message line that displays both Form builder & Application specific messages & Status line that displays a variety of indicators like Record status.

11) There are 2 modes of operation in Form Builder:
a) Enter Query Mode: It is used to retrieve selected Records using Query/Where Dialog box and cannot be used to perform DML Operations. We can Retrieve Records before fetching them from Database by using Queryà Count Hits
b) Normal Mode: It is used to Retrieve all Records, performs DML operations, Commit & Rollback Records. But it is not used to retrieve Restricted number of Records.

12) Four Major objects in a form are,
a) Blocks: Block is the intermediate building unit of form which is the logical owner of items . Each form consists of more than one block.
b) Items: These are interface objects that present data values to the user or enable the user to interact with form, depending upon the item type. Items are logically grouped into blocks & visibly arranged on Canvases
c) Canvases: A Canvas is a Surface where visual objects, such as graphics & items are arranged. To see a Canvas & its items, you must display the canvas in a Window. By default, all Canvases in a form appears in the same Window but we can assign several Canvases to different Windows.
d) Window: It is a Container for all visual objects that make up a Form Builder Application. It is similar to an Empty Picture Frame.

13) A Form Builder Module (Files) can be of following types:
a) Form: As the main component of an Application, the form module presents the objects & data that users can see or interact with. Data items in a form are arranged into records.
b) Menu: A Menu Module can consist of a hierarchy of menus, each with selectable items
c) PL/SQL Library: It is a collection of PL/SQL Program units whose code can be referenced & called from other modules.
d) Object Library: It is a collection of Form objects that you can use in other modules. You can create it to store, maintain & distribute standard objects that can be reused across the entire development organization.

14) There are 2 types of Blocks:
a) Data Block: It is associated with a specific database table(or view), a stored procedure, a From Clause query, or transactional Triggers.
b) Control Block: It is not associated with a database, and its items do not relate to any columns within any database table.

15) While creating Data block through Wizard, Select Enforce Data Integrity check box if you want the wizard to enforce the database integrity constraints.

16) When we save the form module .fmb file is created but after compilation .fmx file i.e. executable file is created.

17) There are 3 types of Master-Detail Relationship:
a) Non-isolated (We cannot delete master record if detail record exists)
b) Isolated (We can delete master & detail records independent of each other)
c) Cascading (If we delete master record, detail record also gets deleted)
We can create more that 1 Detail Block for Single Master Block.

18) Master-Detail Relationship Triggers are:
a) On Clear Details(Form Level Trigger)
b) On Populate Details(Detail Block Level)
c) On Check Delete Master(Detail Block Level)
d) Pre Delete(Detail Block Level)

19) There are 3 types of Co-ordination Property:
a) Default (No Deferred & No Auto Query)
b) Deferred with Auto Query
c) Deferred without Auto Query
d) Prevent Masterless Operations

20) Visual Attributes: It is font, color & Pattern Properties that you set for form & Menu objects. It has 2 main properties:
a) Visual Attribute Group or Current Record Visual Attribute Group
b) Prompt Visual Attribute Group

21) Each property in a property palette has an icon to its left. Summary of all icons,
a) Circle (Property value is the default value)
b) Square (Property value has been changed from default value)
c) Arrow (Property value is Inherited)
d) Arrow with Cross (Property value was inherited but has been overridden)

22) Property Classes: When you display a list of properties in the property palette, the list of property names & associated values can be saved for future application to other objects. This is known as property class, which is a Form Builder object

23) When Datablock is Deleted its subordinate objects, Relationship gets deleted. However the frame border & its title will remain. Delete the frame manually in the Layout Editor.

24) Text Item: It usually corresponds to a column in the database table. When an item is first created, its default type is text. Prompts specify the text label that is associated with an item. Text item has 2 main properties:
a) Distance between Records
b) Number of Items Displayed
c) Keyboard Navigable
(Yes—You can Navigate to an item with keyboard & Mouse
No—Form Builder skips over the item & enters next navigable item in navigation sequence)
d) Enabled (Yes—You can Navigate to an item & Manipulate it with the mouse
No—The item is disabled & appears grayed out)
e) Multiline (Multiple Line Text item)
f) Hint (Write Help Text for Item which is displayed on message line at run time)
g) Display Hint Automatically(Set it to Yes for displaying Hint when focus is on item)
h) Tooltip (Displays the text when Mouse Pointer is on Item)

25) Format Mask Property specifies the format in which the user sees the item value.
There are 2 SQL Formats:
b) L099G99D99

26) Use any one of the following to issue an initial item value whenever a new record is created:
a) Raw Value (Eg:340, Richmond)
b) System Variable:
($$DATE$$, $$DATETIME$$, $$TIME$$)—For Operating System
($$DBDATE$$, $$DBDATETIME$$, $$DBTIME$$)—For Database
c) Global Variable (:Global.Customer_Id)
d) Form parameter (:Parameter.Sales_Id)
e) Form item (:Order.Id)
f) Sequence (:Seq.S-Ord.Nextval)
Note: We can use Erase Built in to remove global variable

27) LOV & Editors: This are objects in the form Module that open their own window when activated at Run time. For Activation of LOV Press F9 & For Editor Ctrl+E· Editors are generally used for Multiline Text item. They are of 3 Types:
a) Form Builder Editor (By Default)
b) Customized Editor (User Defined Editor)
c) System Editor
· LOVs are used to display List of values. LOV are of 2 Types:
a) Static LOV ( Contains Predetermined Values)
b) Dynamic LOV (Contains Values that Come at Runtime)

28) Record Group: It is a Column & Row structure stored within Forms Runtime Memory and is similar to the structure of a database table. They are of 3 Types:
a) Static : A Record Group without an Associated Query. The Columns & Rows of Record Group are Designed at Design Time & Cannot be Modified Programmatically at Runtime.

b) Query: A Record Group with an Associated Select Statement. The Columns in the Record Group Derive their Properties from the column in the Select Statement. The Rows in the Record Group are Rows Retrieved in Select Statement. You can Create this type of Record Group at the Design Time & Runtime using Built ins like Create_Group_From_Query, Populate_Group.etc.

c) Non-Query: A Record Group Without an Associated Query. The Columns & Rows of Record Group are defined Programmatically at Runtime & also Modified at Runtime. Built ins used are ADD_GROUP_ROW, etc.

Because LOVs & Record Groups are separate objects, you can create multiple LOVs based on the same Record Group.

29) Some of the Important Properties of LOV are,
a) Filter before Display (User should be prompted with a dialog box that enables them to enter search value before LOV is Invoked)
b) Automatic Display (LOV should be invoked automatically when cursor enters an item)
c) Automatic Refresh ( No: Record group query fires only 1st time Lov is invoked
Yes: Record group reexecutes its query every time Lov is invoked)
d) Return Item (Specifies the name of the item or variable to which Form Builder should assign
the column value)

30) Input Items: This are the items which accepts User Input. Through this items We can Insert, Update, Delete & Query Existing Values. They are of 3 Types:

a) Check Box: A check box is a 2 state interface object that indicates whether a certain value is ON or OFF. The display state of check box is always either checked or unchecked. Some of the main Properties are,
1) Value when Checked
2) Value when Unchecked
3) Check Box Mapping of Other Values (Checked or Unchecked)

b) Radio Group: It is a set of Radio Buttons. Each Radio Button represents a different value. Consider List items instead of radio groups if there are more than 4 or 5 choices. Some of the main Properties are,
1) Radio Button Value
2) Mapping of Other Values(Name of the Radio Button, Property of Radio Group)

c) List Item: It is an Interface Object that displays predefined set of choices, each corresponding to a specific data value. They are of 3 Types:
1) Poplist ( Do not Accept User Input)
2) Tlist
3) Combo Box (Accepts User Input)
Some of the Main Properties are,
1) Elements In List (List Elements & List Item Value)
2) Mapping of Other Values (Determines how other values are processed)

31) Non Input Items: Items that do not accept user input. They are divided into 2 main groups:
a) Non Input Items that can Display Data:
· Display Items
· Image Items
· Calculated Items
b) Non Input Items that Cannot Display Data:
· Sound Items
· Push Buttons

32) Display Item: It is similar to Text item, except that it cannot be edited or navigated to at Runtime. It required less memory than text items. It is non-Database Item.

Image Items
: It displays Automatically & Cannot be Manipulated at Runtime. It can be Imported from the database or the file system. When we insert images into the database by means of a Form Builder they are automatically compressed using Oracle Image Compression. Some of the Image Formats are BMP, GIF, JPEG, TIFF, CALS. It can be Database or Control Item.

Sound Items: It is a special interface control that can play & record sound data. Some of the types are AU, AIFF, WAV, AIFF-C. Some of the properties are Play, Record, Rewind, Fast Forward, Volume, Time Indicator, Slider. It can be Database or Control Item.

Push Button: It is an interface object that is clicked to Initiate an Action. They are of 2 Types: Text Button & Iconic Button. Iconic Button do not have Labels

Calculated Items: This are read only items like display items. Any item that can store a value can be used as a calculated item. It supports 2 Calculation Modes:
a) Formula (Result of a horizontal calculation)
b) Summary (Vertical Calculation that uses Group Functions)

Hierarchical Tree Item: It is an item that displays data in the form of standard Navigator.

33) Viewport: It is an attribute of a Canvas. It is effectively the visible portion of view onto the Canvas. There are Various Types of Canvases:
a) Content Canvas: It is the Default Base Canvas that occupies the entire content pane of the window in which it displays.
b) Stacked Canvas: It is displayed on top or stacked on the Content Canvas assigned to window. This are usually smaller than the window in which they display. By placing important items on Content Canvas & placing the items that can be scrolled out of sight on a Stacked Canvas, the Stacked Canvas becomes the scrolling region, rather than window itself.
c) Toolbar Canvas: It is created to hold buttons & other frequently used GUI elements. They are of 2 types: Horizontal & Vertical Toolbar Canvas
d) Tab Canvas: It is used to Organize & Display Related Information on Separate Tabs.

34) Trigger: Trigger is a Program unit that is executed or fired whenever an event is generated. Triggers are used to add or modify form functionality in a procedural way. There are 3 main components of Triggers:
a) Trigger Type (Defines specific event that cause the trigger to fire)
b) Trigger Code (Body of PL/SQL that defines action of the trigger)
c) Trigger Scope (Level in the form module i.e. Form/Block/Item level trigger)

35) When there is more than one trigger of the same type Form Builder normally fires the trigger most specific to the cursor location. ‘Smart Triggers’ are common triggers that are appropriate to the selected object.

36) Multiple Split Views: We can create up to 4 separate views of the current program unit in the PL/SQL editor by using split bars.

Syntax Palette: It enables you to display & copy the constructs of PL/SQL language elements & build packages into an editor. To invoke select Programà Syntax Palette from menu system.

37) Form Builder accepts 2 types of variables:
a) PL/SQL Variables: These must be declared in a Declare Section & remain available until the end of declaring block. They are not prefixed by colon.
b) Form Builder Variables: These are seen by PL/SQL as external variables, & require a colon (:) prefix to distinguish them from PL/SQL objects. They are not formally declared in Declare section & can exist outside scope of PL/SQL block.

38) Form Builder Built in subprogram belongs to one of the following:
a) Standard Extension Packages: You can call them directly, without any package prefix. You can use more than 100 standard Built ins.
b) Other Form Builder Packages: This require package name as prefix when called.

Note: All Uncompiled triggers are compiled when form module is compiled.

39) Built ins are divided into 2 groups:
a) Unrestricted Built ins: It do not affect logical or physical Navigation & can be called from any trigger, or from any subprogram.
b) Restricted Built ins: It affects Navigation in your form either External or Internal Screen Navigation. We can call these built ins from Triggers while no Internal navigation is occurring. We can Call Restricted Built ins from When Button Pressed, When Checkbox Changed, When New ‘object’ Instance Triggers & Key Triggers but not from Pre & Post Triggers

40) Expand Built in Packages node in Object Navigator & select Built in we need to use.
Select Navigator - Paste Name (To include only Built in name) from Menu
Select Navigator - Paste Argument (To include Built in alongwith Arguments)

41) Form Builder displays Messages at Runtime to inform the Operator of events that occur in the session:
a) Informative Message: We can suppress its appearance with On-Message Trigger.
b) Error Message: We can suppress Message Line Errors with On-Error Trigger
c) Working Message: This type of message can be suppressed by setting system variable Supress_Working to True.
d) Application Message: This are messages that we build into our application using Message Built-in
e) Application Alert: This are designed a part of application, and issue to the operator for a response by using Show_Alert Built-ins.

42) Query Array Processing: Form Builder Supports both Array Fetch Processing & Array DML Processing. For both Querying & DML Operations, you can determine the array size to optimize performance for your needs.
Some of the Properties are,
a) Query Array Size Property: It specifies maximum number of records that Form Builder should fetch from the database at one time. A size of 1 provides fastest perceived response time.
b) Query All Records Property:
Yes: Fetches All Records from query
No: Fetches No. of Records specified by Query Array Size Block Property.

43) Sequence of firing Triggers are,
a) Pre Form e) When New Record Instance
b) Pre Block f) When Validate Record
c) When New Form Instance g) Post Block
d) When New Block Instance h) Post Form

44) System Variables: It is an Form Builder Variable that keeps track of internal Form Builder state. We can reference the value of System Variable to control the way an application behaves. Some of the available System Variables are,


Note: All System Variables are Read only Variables except 4 ending with * to which You can assign values explicitly.

45) Object Group: An Object Group is a Container for a group of objects. Object Group is defined when we want to package related objects so that we can copy or reference them in another module. Following points are important:
a) We can create object groups in form & menu modules. Once we create object group we can add remove objects to it as desired
b) Program units cannot be placed in an object group
c) Object group cannot be placed in an object group
d) Object owned by blocks i.e. Items, Item level Triggers, Block level triggers and Relations cannot be placed in an object group. To include these objects we have to include whole block in object group.
e) The objects in a group must all be defined in the same module, we cannot place objects from 2 different forms in the same object group
f) Deleting an object group from a module does not delete the objects it contains from the module, whereas deleting the object from module also delete the object from object group. Because object group do not store copies of objects but rather pointer to the objects.

46) Alerts: An ‘Alert’ is a Modal Window that displays a Message Notifying operator of some Application Condition.

47) Parameters: Parameters provide a simple mechanism for defining and setting the values of Inputs that are required by a form at startup. Form parameters are variables of Type char, number, date that you define at design time.

You can pass parameter values to a form when an application executes the Call_form, New_form, Open_form or Run_product. The maximum no of chars the parameter can store is only valid for char parameters, which can be upto 64K. Number parameters default to 23 Bytes and Date parameter default to 7 Bytes.
There are 2 types of Parameters:
1) Text Parameters
2) Data Parameters
Data Parameters (Pointers to Record Groups) can only be passed to Report Builder & Graphics Builder in Synchronous Mode through Run_Product Built in.
Note: We can create Table, Indexes, Sequences in Forms using Forms_DDL Built in


  1. awesome information..Thanks a lot...keep it up

  2. The post is very well useful. This post includes lots of interview questions which you find very informative. It includes most of the questions on Forms. In this post you have enough questions to practice. Thanks for providing the questions for your users.
    sap upgrade


Note: Only a member of this blog may post a comment.