The following Oracle Forms Interview Question and Answers created based on my person experience,
I hope it will use for you while you are facing Oracle Forms interview, These are very frequently
asking question and answers (FAQS)
in Oracle Forms interview.
What is a display item?
What is a display item?
Display items are similar to
text items but store only fetched or assigned values. Operators cannot
navigate to a display item or edit the value it contains.
What is a list item?
It is a list of text elements.
What are the display styles of
list items?
Poplist: The poplist style list
item appears initially as a single field (similar to a text item
field). When the end user selects the list icon, a list of available
choices appears.
Tlist: The Tlist style list item
appears as a rectangular box, which displays a fixed number of
values. When the Tlist contains values that cannot be displayed (due
to the displayable area of the item), a vertical scroll bar appears, allowing
the end user to view and select undisplayed values.
Combo Box: The combo box style list
item combines the features found in poplists and text items. It displays fixed
values and can accept a user-entered value.
What is a radio Group?
Radio groups display a fixed
no of options that are mutually exclusive.
User can select one out of n
number of options.
How many maximum number of
radio buttons can you assign to a radio group?
Unlimited no of radio buttons
can be assigned to a radio group
Can you change the default
value of the radio button group at run time?
No.
What triggers are associated
with the radio group?
Only when-radio-changed
trigger associated with radio group
What is a visual attribute?
Visual Attributes are the
font, color and pattern characteristics of objects that operators see and
intract with in our application.
What are the types of visual
attributes?
Common,
Prompt,
Title.
How to change Visual Attribute
at Runtime
You can programmatically
change an object's named visual attribute setting to change the font, color,
and pattern of the object at runtime. E.g. using SET_CANVAS_PROPERTY,
Set_Item_Property (‘Blockname.Itemname’, VISUAL_ATTRIBUTE,
‘VisualAttributeName’);
Where 'VisualAttributeName' is
either the name of a visual attribute you've set up in the form (which has
foreground, background, font, etc.), or is the name of a logical visual
attribute from the resource file.
What are the types of visual
attribute settings?
Custom Visual
attributes
Default visual
attributes
Named Visual
attributes.
What is a master detail
relationship?
A master detail relationship is an association
between two base table
blocks- a master block and a detail
block. The relationship between the blocks reflects
a primary key to foreign key
relationship between the tables on which the blocks are based
Master-Detail Relation
(Triggers/Procedures/Properties)
On-Check-Delete-Master: - Fires when Form Builder
attempts to delete a record in a block that is a master block in a
master-detail relation.
On-Clear-Details: - Fires when Form Builder needs to clear records in a block that is a
detail block in a master-detail relation because those records no longer
correspond to the current record in the master block.
On-Populate-Details: - Fires when Form Builder needs to fetch records into a block that
is
the
detail block in a master-detail relation so that detail records
are
synchronized
with the current record in the master block.
(i) Isolated: - Masters Can be
deleted when Child is existing
Triggers: - On Populate
details Block
On
Clear
Details Form
Procedure
Check
Package Failure
Clear
all master Detail
Query
Master Detail
(ii) Non- Isolated: - Masters
Cannot be deleted when Child is existing.
Triggers: - On Populate details Block
On
Check Delete
master Block
On
Clear
Details Form
Procedure
Check
Package Failure
Clear
all master Detail
Query
Master
Detail
(iii) Cascading: - Child Record
Automatically Deleted when Masters is deleted.
Triggers: - On Populate
details Block
Pre
Delete Block
On Clear
Details Form
Procedure
Check
Package Failure
Clear
all master Detail
Query
Master
Detail
What is canvas?
Canvases guide the layout of the blocks / records / items. A Content Canvas
View (or simply Content View) is the base view that occupies the entire content
pane of the window
in which it is displayed. You will usually define at least one content
canvas view for each
window in your application.
A canvas is an object that can be displayed on the screen. The canvas may
contain buttons,
graphics, display items and text items.
The canvas may be smaller or larger than the screen size. One canvas may be
stacked on top of another canvas so that the user might see several canvases at
the same time.
A large canvas might only be partially visible to the user. This is known
as a "view" of the
canvas. If the cursor navigates to an enterable item on a canvas, then the
canvas becomes
visible to the user. However, when the cursor leaves the items on the
canvas, the canvas
will not automatically be hidden from view unless another canvas covers it.
How many types of canvas are
there in a form?
There are 5 types are canvas
are there in a form
a) Content Canvas.
b) Stacked Canvas.
a) Horizontal Tool Bar.
b) Vertical Toll Bar.
c) Tab Canvas.
(i) Content Canvas (Default Canvas) [A content
canvas is the required on each window you create]
(ii) Stack Canvas [you can display more
then one stack canvas in a window at the same time]
(iii) Tab Type Window [In Tab canvas
that have tab pages and have one or more then tab page]
(iv) Toolbar Canvas [A toolbar canvas often is used
to create Toolbar Windows. There are two type of Toolbar window.
a. Horizontal Toolbar Canvas: - Horizontal Toolbar
canvases are displayed at the top of the window, just under the Main Menu Bar.
b. Vertical Toolbar Canvas: - While vertical Toolbar are
displayed along the Left Edge of the window.
Can you have a form without a
Canvas?
No, Canvas Object Physical
represents table columns.
Does a stacked canvas require
a content canvas?
Yes, Sometime the number of columns in the table cannot contained on a
standared canvas or the system require that information on the form be
displayed either on a click of a button or on some condition being set for the
system.
Multiple canvases can be placed on the same form. Additional items can be
included in the second canvas and code can be written to make the canvas
visible/ invisible when a button is pressed.
Since the canvas is placed on the window the size of the canvas is
restricted to the size of the window. Similarly if the window is resized, the
canvas must be resized. The type of the canvas determined the canvas-resizing
behavior. The default value for the canvas type is "content".
This property value ensures that the canvas is automatically resized
horizontally and vertically based on the size of the window.
There may be a need to place some items on the content canvas and other
items on a new canvas such that the content canvas and the new canvas are
stacked one on top of the other.
A canvas that can be stacked on the content canvas is called a
"Stacked Canvas". The stacked canvas is displayed in the same window
along with the window's content canvas. There can be any number of stacked
canvases placed on the content canvas.
If the form includes multiple canvases, a common practice is to make the
stacked canvas visible or invisible programmatically.
What is tab canvas?
Just like the paper form is made of multiple pages, the data entry form
could also be created
with multiple pages. The type of canvas that can include multiple tab pages
is called "Tab canvas".
What are the basic concepts of
Oracle Forms?
Forms functionality is driven
by user events (such as pressing a key) and navigation events
(Such as the cursor about to
enter/leave a field). These events are identified by triggers in
a form.
These triggers fall into
several groups:
PRE - Fires prior to an event
POST - Fires after an event
WHEN - Fires when an event
occurs
KEY - Fires when the
corresponding key is pressed
ON - Replaces
default event processing
These triggers include events such as:
1. PRE and POST triggers for the form, block, row, and item.
2. PRE and POST triggers for row inserts, updates, and deletions.
3. WHEN triggers fire as a direct result of an event such as the user
clicking on a
button (WHEN-BUTTON-PRESSED) or the cursor navigating to a new item and
readying for user input (WHEN-NEW-ITEM-INSTANCE).
4. Keys the user can press on their keyboard like the Tab button
(KEY-NEXT-ITEM) or
F10 (KEY-COMMIT).
5. ON triggers fire when an event occurs. For example, ON-MESSAGE fires
when forms is about to issue a message. This gives the developer an opportunity
to trap and replace particular messages with custom messages.
By adding PL/SQL code to a
trigger you can:
1. Alter the way a trigger would ordinarily work. For instance, by creating
a KEY-ENTQRY on a field with: null; you will prevent the user from pressing F8.
2. Supplement the way something works - for instance by creating a
KEY-DELREC trigger on a block with code that asks the user if they
"really" want to delete that record before
issuing the delete_record;.
Trigger Scope: If you create a KEY-EXEQRY on a field with: null; then you
will prevent the user from pressing F8 while the cursor is in that field. If,
instead, you attach the same trigger to a block, then you will prevent the user
from pressing F8 while the cursor is anywhere in that block. If, instead, you
attach the same trigger to the form, then you will prevent the user from
pressing F8 anywhere within the form.
You can override high level triggers at a lower level. For example, if you
have disabled F7 at the form level, you can add a KEY-ENTQRY to a block with:
enter_query; that will allow the user to press F7 to enter a query while the
cursor is in that block. This means that F7 will work in that block but nowhere
else in the form.
What is the difference between
base table block and control block?
Blocks (Base Table vs.
Control): A most basic concept in a form is blocks. Blocks are
basically comprised of 2
types:
1. Control block - A block not
associated with a table. This block is usually a single row block that has no
interaction with the database.
2. Base table block - this is
associated with a table. You do not have to code any SQL statements. Forms will
automatically:
A. Query rows of data from the
table (execute_query)
B. Insert a new row below the
current row (create_record)
C. Delete the current row
(delete_record)
D. Update rows (by the user
typing values on a queried row)
E. Handle row locking
F. Make all these database
changes permanent at commit time
Base Table and Control Items: An item in a base table block that relates directly to a base
table column is a base table item. An item that does not relate to a
database column is a
control item. Base table blocks can contain both base table items and
control items.
For example, a base table block might contain four base table items that
display queried
database values and a fifth item that displays calculated values but does
not correspond to any column in the base table. The fifth item would be a
control item populated by an assignment statement in the trigger that does the
calculation.
Because control blocks are not associated with database tables, none of the
items they contain can be base table items. (You can, however, populate control
items with database values by writing your own SQL statements in trigger code.)
Control items can be used to do the following:
* Display totals, averages, rankings, and other summary information
calculated from values
in base table items and database tables.
* Accept input from operators that is required by the application, but that
is not stored
in the database.
* Display "look-up values," that is, database values derived from
a table other than the base
table of the block.
You can also reference the values of control items in code, much like local
and global variables.
Buttons and chart items are always control items. Because these items do
not store values,
they cannot relate to columns in the database.
Item in a block -Items are the interface objects that display information
to operators and
allow them to interact with
your application. A field in the base table in the database or
another field, other fields
may be buttons, check boxes, etc.
1. Button: A rectangle with a text label
or an icon graphic inside.
2. Chart item: A bordered rectangle
of any size that can display a chart or other display
generated
by Oracle Graphics. Operators cannot navigate to or manipulate chart items.
3 Check box: A text label with a
graphic state indicator that displays the current value as
either
checked or unchecked. Selecting a check box toggles it to the opposite state.
4. Display item: A read-only text box whose
value must be fetched or assigned
programmatically.Operators
cannot navigate to a display item or edit the text it contains.
5. Image item: A bordered rectangle of
any size that can display images fetched from the
database
or read in from the file system.
6. List item: A list of choices
displayed as either a poplist (sometimes called a drop list),
a
t-list (sometimes called a list box), or a combo box.
7. Radio group: A group of radio
buttons, one of which is always selected.
8. Text item: A single- or multi-line
text box that supports a variety of data types,
format
masks and editing capabilities.
9. OLE container: An area that stores and
displays an OLE object that is created from an
OLE
server application.
10. VBX control: A custom control that
simplifies the building and enhancing of user
interfaces.
Each item in a form (text item, image item, radio group, and so on),
belongs to a block.
Blocks are logical containers that have no physical representation--only
the items contained
in a block are visible in the application interface. However, like other
objects,
blocks have properties, and can be created, copied, and modified in the
Designer.
Blocks provide a mechanism for
grouping related items into a functional unit for storing,
displaying, and manipulating
records. Just as tables in the database consist of related
columns and rows blocks
contain related items that display data records.
There is no practical limit to
the number of blocks that can be defined in a form.
A block is a logical grouping
only; the items in a block can be placed on different
Canvas-views and can be
displayed in different windows.
How to attach same LOV to
multiple items
We can use the same LOV for 2
columns by passing the return values in global values
and using the global values in the code.
Static & Dynamic LOV
The static LOV contains the
predetermined values while the dynamic LOV contains values that come at run
time
Sequence of Firing of
Triggers:
Pre-Logon
On-Logon
Post-Logon
Pre-Form
When-Create-record
Pre-Block
Pre-Record
Pre-Text-item
Item Level Trigger Sequence
Pre-text-Item
When-New-Item-Instance
Key-Next-Item
Post-Change
When-Validate-Item
Post-Text_item
When-New-Record-Instance
When-New-Item-Instance
After pressing F10
Key-Commit
Post-Text-Item
Post-Record
Post-Block
Pre-Commit
Form-Exit Triggers
Post-Text-Item
Post-Record
Post-Block
Post-Form
On-Logout
Post-Logout
When a form is run, which are
the triggers fire, and in what sequence they fire?
PRE-FORM
WHEN-NEW-FORM-INSTANCE
PRE-BLOCK
WHEN-NEW-BLOCK-INSTANCE
WHEN-NEW-ITEM-INSTANCE
POST-BLOCK
POST-FORM
Property class & visual attribute?
Property Class: 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 a powerful feature that allows you to quickly
define objects that conform to your own interface and functionality standards.
Property classes also allow
you to make global changes to applications quickly.
Property class assignment cannot be changed programmatically. By simply
changing the definition of a property class, you can change the definition of
all objects that inherit properties from that class.
For example we can create a property class object, with properties
mentioned below and attach it to all the push buttons in the product form.
Name: PClass_Button.
Width: 23
Height: 23
Iconic: Yes
Background Color: Gray
Canvas: Product_can
Visual attribute: 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:
1. Font properties: Font Name, Font Size, Font Style, Font Width, Font
Weight
2. Color and pattern properties: Foreground Color, Background Color, and
Fill Pattern,
Char mode Logical Attribute.
What is a Property Class?
Different methods of creating property class?
Property Class is defining properties of objects along with their
settings. The property class inheritance allows the user to perform
global changes very quickly and efficiently.
Methods:
Object Navigator Method
Properties Window Method
Diff. between VAT and Property
Class?
Named visual attributes define only font, color, and pattern attributes;
property classes can
contain these and any other properties.
You can change the appearance of objects at runtime by changing the named
visual attribute programmatically; property class assignment cannot be changed
programmatically.
When an object is inheriting from both a property class and a named visual
attribute, the
named visual attribute settings take precedence, and any visual attribute
properties in the
class is ignored.
If you have property class
attached to an item and you have same trigger written for the item. Which will
fire first?
Item level trigger fires, if
item level trigger fires, property level trigger won't fire.
Triggers at the lowest level
are always given the first preference. The item level trigger
fires first and then the block
and then the Form level trigger.
What are record groups? Can
record groups created at run-time?
A record group is an internal Oracle Forms data structure that has a
column/row framework
similar to a database table. However, unlike database tables,
record groups are separate
objects that belong to the form module in which they are defined. A record
group can have
an unlimited number of columns of type CHAR, LONG, NUMBER, or DATE provided
that the total number of columns does not exceed 64K.
Record group column names cannot exceed 30 characters. Programmatically,
record groups can be used whenever the functionality offered by a two-dimensional
array of multiple data types is desirable.
TYPES OF RECORD GROUP:
1. Query Record Group: A query record group is a record group that has an
associated SELECT statement.
The columns in a query record group derive their default names, data types,
and lengths from the database columns referenced in the SELECT
statement. The records in a query record group are the rows
retrieved by the query associated with that record group.
2. Non-query Record Group: A non-query record group is a group that does
not have an associated query, but whose structure and values can be modified
programmatically at runtime.
3. Static Record Group: A static record group is not associated with a
query; rather, you define its structure and row values at design time, and they
remain fixed at runtime.
WHEN-NEW-FORM trigger written at Form Level, Block Level and Item Level
which one will fire first?
The trigger written at the
lower level Item Level Fires first.
How do blocks relate to each
other?
The relationship between block
represent the relationships of an ER schema.
It can also represent
relationship between tables in the relational data model based on
foreign keys. It can specify a
"join condition" between a "master" and "detail"
blocks.
How to use Dynamic SQL in
Form?
The reason why you would want do to do this is because, like in database
procedures,
you can't use DDL such as DROP TABLE 'table_name' directly in PL/SQL with
Forms.
The way to do it is with the built-in EXEC_SQL package.
The same thing can also be accomplished with the FORMS_DDL built-in but
that only applies to the current database connection, with the EXEC_SQL package
it’s possible to have database connections to multiple databases and also
execute non-oracle database procedures.
What the relationships were
between canvases, views and windows?
a) Multiple canvases with only one window: The most common problem I've
found in this scenario is that you click a button on your main canvas or some
other action is performed, the result of which is you expect to see a secondary
canvas popping up containing some sort of useful information for the user to
see or act upon. The thing is the user only sees it for about 100th of a
second, if they're lucky, before it miraculously disappears again.
What's going on here, after all your button or whatever does a SHOW_VIEW
('CANVAS_NAME');
It’s supposed to display the secondary canvas isn't it? Yes, and it does
however it will only
work correctly if the secondary canvas is of type STACKED. Changing the
property to
this should solve your problem. Another way of doing it without changing
the property of
the canvas depends on your canvas having an item on it that you can do a
GO_ITEM on.
If it does then do your GO_ITEM just before the SHOW_CANVAS and it should
work correctly.
You will find though that using this method means the secondary canvas
takes up the whole
of your window obscuring all of your primary canvas and you can't use its
view port properties as you can with stacked canvases.
b) Multiple canvases and multiple windows: This is similar to the previous
problem in
that you click a button on your main window or some other action is
performed and you
expect to see a secondary canvas popping up in a separate window of its
own.
This time though the user only sees the window itself with none of the
useful information on it.
What's going on here, after
all your button or whatever does a SHOW_WINDOW ('WINDOW_NAME');
it's supposed to display the
secondary window isn't it? It does, however it will only
work correctly if you also do a SHOW_VIEW('CANVAS_NAME') too. Note that the
calling window will still have the focus (i.e. be on top). If you want the
called window to be on top you either need to click on it or do a GO_ITEM to an
appropriate navigable field on the called window. If there isn't one available
a work-around is to create a dummy item and disguise it by making its
background colour the same as the called window and ensuring its BORDER BEVEL
is set to NONE. One last check if things still aren't going right is to make
sure that your secondary canvas window property is pointing to the correct
window.
While I was on the subject I thought I'd just bring up a couple of points
on the relationships
between canvases, view ports and windows which is crucial to remember if
you want to write great forms applications.
From a developer’s standpoint, canvases and forms are interchangeable in as
much as canvases are where you put your form items, buttons, and text and so
on. Whether or not the user sees all those things is another matter of course
and that's where windows and view ports come in.
In general, content canvases don't have view ports associated with them and
will display in the whole of the window they are assigned to. Therefore if the
window is big enough, the user will see everything that's on them. Stacked
canvases on the other hand can have a view port that can be thought of as being
a sub-window within the canvas. The user will only see things on the canvas
which are inside the viewport. And because you can programmatically control the
size and position of the viewport it means that you can choose to display, or
not, as the case may be, only the things you want your user to see.
What are the types of triggers and how the sequence of firing in text item?
Triggers can be classified as Key Triggers, Mouse Triggers, Navigational
Triggers,
1. Key Triggers: Key Triggers are fired as a result of Key action.
a) Key-next-Item: Tab or Enter.
b) Key-ExeQry: F8
c) Key-NxtBlk: Shift F5
d) Key-Commit: F10
2. Action Trigger: Trigger that gets
executed due to user interaction is called Action Triggers. action triggers are
associated with specific objects.
a) When-Button-Pressed:
Pressing a button.
b) When-CheckBox-Changed:
Clicking a check box.
c) When-Image-Pressed:
Clicking the image.
d) When-List-Changed: A List
item is selected.
e) When-Radio-Changed:
Clicking on a Radio Button.
f) When-Window-Activated: When
focus is on a specific window.
g) When-Window-Closed- When a
window is closed.
3. Mouse Triggers: Mouse Triggers are fired
as a result of the mouse navigation.
a) When-Mouse-Click
b) When-Mouse-Double-Click
c) When-Mouse-Down
d) When-Mouse-Enter
e) When-Mouse-Leave
f) When-Mouse-Move
g) When-Mouse-Up
4. Navigational Triggers: These Triggers are fired as a result of Navigation. for example when
the cursor navigates out of a text item to another text item the Post-Text-Item
trigger for the current text item and Pre-Text-Item trigger for the next text
item it moves to will both fire in sequence.
1 Pre-Text-Item and Post-Text-item.
2. When-New-Instance.
We cannot call restricted procedures like go_to ('my_block.first_item') in
the Navigational
triggers but can use them in the Key-next-item.
The Difference between Key-next and Post-Text is a very important question.
The key-next is fired as a result of the key action while the post text is
fired as a result of the mouse movement. Key next will not fire unless there is
a key event.
Example (1) The sequence of
firing in a text item are as follows:
a) pre-text-item
b) when-new-item-instance
c) key-next-item
d) when-validate-item
e) post-text-item
Example (2) if there are two text items in a block, say text1 and text2. If
the focus is on text2 and user moves the cursor to text1 by doing shift tab,
then which triggers will fire? In what order?
a) Key-Prev-item
b) When-validate-item
c) post-text-item
d) Pre-text-item
e) When-new-item-instance
Example (3) As soon as form open in the memory, a series of navigational
triggers are executed.
The sequence of trigger that fire when a form is invoked are as follows-
1. Pre-Form
2. Pre-Block
3. Pre-Record
4. Pre-Text-Item
5. When-New-Form-Instance
6.
When-New-Block-Instance
7. When-New-Record-Instance
8. When-New-Item-Instance
The difference between
when_validate_item trigger and key_next_item trigger in Oracle Forms?
WHEN-VALIDATE-ITEM trigger fires to check the value of an item to insure it is valid.
The timing of this event may vary but one of the most common is when the user
enters a value and causes the cursor to try to exit the item by pressing the
TAB key or using the mouse to click elsewhere in the form. This trigger can
also fire when then user attempts to leave a record that has been marked for
insertion or change.
KEY-NEXT-ITEM fires only when the user presses the TAB key. You should also note
that WHEN-VALIDATE-ITEM trigger is a restricted procedure, so you cannot use
navigation built-ins (such as GO_BLOCK). There are no such
restrictions with KEY-NEXT-ITEM. So we should not validation code in
KEY-NEXT-ITEM.
What is mouse navigate property of button?
When Mouse Navigate is True (the default), Oracle Forms performs standard
navigation to
move the focus to the item when the operator activates the item with the
mouse.
When Mouse Navigate is set to False, Oracle Forms does not perform
navigation (and the
resulting validation) to move to the item when an operator activates the
item with the mouse.
What is MDI form? How u will
attach vertical toolbar in the form?
MDI (Multiple Document Interface): Specifies whether the window is a
Document window or a Dialog window. Document and dialog windows are
displayed differently on window managers that support a Multiple Document
Interface (MDI) system of window management.
Attachment Of vertical
toolbar.
On Microsoft Windows,
specifies the toolbar canvas that should be displayed as a vertical
toolbar on the MDI application
window. The canvas specified must have the Canvas Type property set to Vertical
Toolbar.
Applies to form
Set Form Builder
Default Null
Required/Optional optional
Can object group have a block?
Yes, object group can have
block as well as program units.
What are user-exits? What is
foreign function?
It invokes 3GL programs.
Foreign functions are subprograms written in a 3GL programming language
that allow you to customize your Oracle Forms applications to meet the unique
requirements of your users.
Foreign functions are often used to enhance performance or provide
additional functionality to Oracle Forms.
In Oracle Forms, you can invoke a foreign function from a user exit
interface. A user exit
interface allows you to call a foreign function by using the USER_EXIT
built-in from a trigger or a user-named subprogram. Invoking a foreign function
from the USER_EXIT built-in returns an integer value to Oracle Forms indicating
success, failure, or a fatal error. Following the execution of the USER_EXIT
built-in, the values of the error variables in Oracle Forms--FORM_FAILURE,
FORM_FATAL, and FORM_SUCCESS--are set accordingly.
Foreign functions that you invoke from a user exit interface are contained
in an Oracle Forms dynamic link library or linked with Oracle Forms Runform.
Creating a user exit interface to a foreign function requires you to link
additional files to Oracle Forms dynamic link libraries or Oracle Forms
Runform. The additional files provide information about the user exit
interfaces and the entry points that allow Oracle Forms to invoke foreign
functions from a user exit interface.
Can you pass values to-and-fro
from foreign function? How?
Yes. You obtain a return value from a foreign function by assigning the
return value to an
Oracle Forms variable or item. Make sure that the Oracle Forms
variable or item is the same data type as the return value from the foreign
function.
After assigning an Oracle Forms variable or item value to a PL/SQL
variable, pass the PL/SQL variable as a parameter value in the PL/SQL interface
of the foreign function. The PL/SQL variable that is passed as a
parameter must be a valid PL/SQL data type; it must also be the appropriate
parameter type as defined in the PL/SQL interface.
What is IAPXTB structure?
The entries of Pro*C and user
exits and the form which simulate the Pro*C or user_exit
are stored in IAPXTB table in
database.
Can you call WIN-SDK thru user
exits?
Yes.
Does user exits supports DLL
on MSWINDOWS ?
Yes.
What is path setting for DLL?
Make sure you include the name of the DLL in the FORMS45_USEREXIT variable
of the
ORACLE.INI files, or renames the DLL to F45XTB.DLL. If you
rename the DLL to F45XTB.DLL, replace the existing F45XTB.DLL in the
\ORAWIN\BIN directory with the new F45XTB.DLL.
How is mapping of name of DLL and function done?
The dll can be created using the Visual C++ / Visual Basic Tools and then
the dll is put in
the path that is defined the registery.
What is pre compiler?
It is similar to C pre
compiler directives.
What are key-mode and locking
mode properties? Level?
1. Key Mode: Specifies
how oracle forms uniquely identify rows in the database. This is
property includes for application that will run against NON-ORACLE data
sources.
Key setting: unique (default.), updateable, n-updateable.
2. Locking mode: Specifies when Oracle Forms should attempt to obtain database locks
on rows that correspond to queried records in the form.
a) Immediate b) delayed
What are save point mode and cursor mode properties? Level?
1. Save point mode- Specifies whether Oracle Forms should
issue save points during a session. This property is included primarily for
applications that will run against non-ORACLE data sources. For applications
that will run against ORACLE, use the default setting.
2. Cursor mode - define cursor state
across transaction Open/close.
What is transactional trigger
property?
Identifies a block as
transactional control block. I.e. non - database block that oracle
forms should manage as
transactional block. (NON-ORACLE data source) default - FALSE.
What is OLE automation?
OLE automation allows an OLE server application to expose a set of commands
and functions that can be invoked from an OLE container application. OLE
automation provides a way for an OLE container application to use the features
of an OLE server application to manipulate an OLE object from the OLE container
environment. (FORMS_OLE)
What are OPEN_FORM, CALL_FORM,
and NEW_FORM? Diff?
OPEN FORM: When
one form invokes another form by executing OPEN_FORM, the first form remains
displayed, and operators can navigate between the forms as desired. An opened
form can share the same database session as the form from which it was invoked,
or it can create a separate session of its own. For most GUI applications,
using OPEN_FORM is the preferred way to implement multiple-form functionality.
CALL_FORM: It
calls the other form. But parent remains active, when called form completes the
operation, it releases lock and control goes back to the calling form. When you
call a form, Oracle Forms issues a savepoint for the called form. If
the CLEAR_FORM function causes a rollback when the called form is current,
Oracle Forms rolls back uncommitted changes to this savepoint.
When one form invoke another from by executing CALL_FORM, when form A call
form B, form B becomes the active form in the session, but from A remain in
memory. If the operator exits from form B forms A again become the active form.
NEW_FORM: When
one form invokes another form by executing NEW_FORM, Oracle Forms exits the
first form and releases its memory before loading the new form. Calling
NEW_FORM completely replaces the first form with the second. If there are
changes pending in the first form, the operator will be prompted to save them
before the new form is loaded.
What is call form stack?
When successive forms are
loaded via the CALL_FORM procedure, the resulting module hierarchy is known as
the call form stack.
Can u port applications across
the platforms? How?
Yes we can port applications across platforms. Consider the form developed
in a window
system. The form would be generated in UNIX system by using f60gen
my_form.fmb scott/tiger
Can a button have icon and
lable at the same time?
NO
What is library where do use?
A library is a collection of subprograms, including user-named procedures,
functions, and packages. Libraries provide a convenient means of storing
client-side program units and sharing them among multiple applications.
Once you create a library, you can attach it to any other form, menu, or
library module.
Then, you can call library program units from triggers, menu item commands,
and user-named routines you write in the modules to which you have attached the
library.
The same library can be attached to multiple forms and
menus. Conversely, a single form or menu can have more than one
attached library.
What is Current record
attribute property?
Specifies the named visual
attribute used when an item is part of the current record.
Current Record Attribute is
frequently used at the block level to display the current row in a
multi-record If you define an
item-level Current Record Attribute, you can display a
pre-determined item in a
special color when it is part of the current record, but you cannot
dynamically highlight the
current item, as the input focus changes.
Can u change VAT at run time?
Yes. You can programmatically
change an object's named visual attribute setting to change the font, color,
and pattern of the object at runtime.
Can u set default font in
forms?
Yes. Change windows registry
(regedit). Set form45_font to the desired font.
Can u have OLE objects in
forms?
Yes.
Can u have VBX and OCX
controls in forms?
Yes.
What r the types of windows
(Window style)?
Specifies whether the window
is a Document window or a Dialog window.
What is OLE Activation style
property?
Specifies the event that will
activate the OLE containing item.
Can u change the mouse
pointer? How?
Yes. Specifies the mouse
cursor style. Use this property to dynamically change the shape
of the cursor.
What are the Various Block
Coordination Properties?
The various Block Coordination
Properties are
a) Immediate Default
Setting- The Detail records are shown when the Master Records are
shown.
b) Differed with Auto
Query- Oracle Forms defer fetching the detail records until the
operator navigates to the detail block.
c) Differed with No
Auto Query- The operator must navigate to the detail block and
explicitly execute a query
How do you use the same lov
for 2 columns?
We can use the same lov for 2
columns by passing the return values in global values and using the global
values in the code.
What is the difference between
static and dynamic lov?
The static lov contains the
predetermined values while the dynamic lov contains values that
come at run time.
Can you issue DDL in forms?
Yes, but you have to use
FORMS_DDL.
DDL (Data Definition Language) commands like CREATE, DROP and ALTER are not
directly supported from Forms because your Forms are not supposed to manipulate
the database structure.
A statement like CREATE TABLE X (A DATE); will result in error:
Encountered the symbol "CREATE" which is a reserved word.
However, you can use the FORMS_DDL built-in to execute DDL statements. Eg:
FORMS_DDL ('CREATE TABLE X (A DATE)'). FORMS_DDL can also be used to create
dynamic SQL statements at runtime. The FORMS_SUCCESS built-in can be used to
determine if the last executed built-in was successful.
We can use the FORMS_DDL built-in or call the DBMS_SQL database package
from Forms for dynamic SQL statement.
Eg: FORMS_DDL ('INSERT INTO X
VALUES (' || col_list || ')');
Just note that FORMS_DDL will
force an implicit COMMIT and may de-synchronize the Oracle Forms COMMIT
mechanism.
What is the difference between
Query->Execute and Query->Enter->Query->Execute?
Query->Execute: It will
retrieve ALL records from a base table.
In SQL SELECT * from tablename
Query->Enter->Query->Execute: Allows you to select particular
tuples of a base table.
SELECT * FROM tablename WHERE condition
Are you familiar with all the varieties of search possible in the
Query->Enter->Query->Execute mode?
Relational operators for comparison, wild cards
Are you aware of the different techniques that you can use for the data
entry process?
a) You can manually enter a value.
a) You can set up a LOV and select values from the LOV into specified items
of a block.
What kind of item is item-id? How is it different from other items in the
base-table block?
The item item_id is a text item whose Navigation Enabled property is set to
False.
This property is set to False since the value is not entered by the user
but is obtained by
executing some code in the form to automatically generate its value.
Is item-id the same as the
item labeled Total Value in the item block?
I think they are both text
items but the Navigation Enabled property is true.
I believe in this case data
entry by the user is also allowed.
If you wanted to make sure
there was no data entry from the user or from a program unit then you can use a
Display item instead of a text item.
What other kind of special
items are supported?
Radio group, list items, etc.
Do you understand the
functionality of a LOV?
A list of values is similar to a List Box in Access: A user
selects one of the data records
from the list, and the selected record values are inserted into one or more
data fields on the
form.
For the purchase order, we will create a list box to display the supplier
name, city and state.
This will allow the end-user to select the supplier from the list, rather
than memorize the
supplier codes.
Do you understand how Oracle
supports referential integrity based on foreign keys?
Through the join condition in
the master block and detail block specification.
The forms environment will
force you to delete all rows in a detail block that make a
reference to a row in a master
block.
Do you know how to modify the
number of records displayed in a multi-record block?
1) Click on the Block you wish
to modify
2) Open the properties window
3) Find the Records Displayed
Field and enter in the # of rows.
Do you know how to change
font, color, etc., for any item?
1) Click on the item whose ***
you wish to change (navigator or layout).
2) Choose Format->Font,
Color, etc, or do it through properties.
What are the two modes
available in runtime?
1) Normal -- this is where you
do new data entry
2) Query -- this is where you
work with existing records
What is a trigger? What are the three levels of triggers, and when does
each get "fired" or execute?
Item level trigger - fires when a specific item is used
Block level trigger - fires when any item in the block is used
Form - fires when any item in the form is used
List three examples of
triggers you could use (1 at each level).Do you understand their functionality?
Update a field - item level
Update a record - block level
Filling in all of the fields
in the form - form level
How do you make an item
"read only"?
1) Choose the item
2) Open the properties window
and find the field Item Type.
3) Double click on the field
until Display Item is shown.
What is SECURE property?
Hides characters that the
operator types into the text item. This setting is typically
used for password protection.
Can you store pictures in
database? How?
Yes, in long Raw datatype.
Which system variables can be
set by users?
SYSTEM.MESSAGE_LEVEL
SYSTEM.DATE_THRESHOLD
SYSTEM.EFFECTIVE_DATE
SYSTEM.SUPPRESS_WORKING
What are object group?
An object group is a container for a group of objects. You define an object
group when
you want to package related objects so you can copy or reference them in
another module.
What are referenced objects? Can you store objects in library?
Referencing allows you to create objects that inherit their functionality
and appearance from other objects.
Referencing an object is similar to copying an object, except that the
resulting reference
object maintains a link to its source object. A reference object
automatically inherits any
changes that have been made to the source object when you open or
regenerate the module that contains the reference object.
What are timers? When
when-timer-expired does not fire?
The When-Timer-Expired trigger
can not fire during trigger, navigation, or transaction
processing.
What is ALERT?
An ALERT is a modal window
that displays a message notifying operator of some application condition. There
are three styles do alert: Stop, Caution, and Note.
SQL Practice Queries
You May Like:
Salama Aleikum,
ReplyDeleteZoooooooom! That’s how speedy and easy this read was! Looking forward to more of such powerful content on Oracle Forms Interview Questions and Answers.
I need your help please, I am new at PL/SQL
I need to run a select command with multiple values, if a break down this query into 3 pieces and run them,they works perfectly, but Ive got problems whenever i execute this query because there are multiple values into the where clause and i think its necessary to create lines break so it may work perfectly
how can I get through this?
SELECT job_name, command,description,days_of_week,start_mins,machine, J2.CREATE_STAMP, J2.MODIFY_STAMP
FROM MDBADMIN.UJO_JOBROW JR JOIN MDBADMIN.ujo_job2 J2
ON (JR.JOID = J2.JOID)
WHERE job_name IN ('coscl_PM_zip_log','coscl_PM_clear_log','coscl_PM_alarma_fs','coscl_PM_pmapp1_PM_up','coscl_PM_control_recargas_cod_11','coscl_PM_control_recargas_ingreso','coscl_PM_control_rec_error_cc_agrup_v1'.'coscl_PM_control_procesos_diarios','coscl_PM_rep_recar_x_estado','coscl_PM_control_tiempos_recargas',
'coscl_PM_control_porcentaje','coscl_PM_control_puertos_bloq','coscl_PM_control_errores', 'coscl_PM_control_java','coscl_PM_control_error_cache');
Thank you very much and will look for more postings from you.
,Merci
Radhey
Oracle Apps R12 and Oracle Fusion Cloud Self Paced Online Training Videos Published on Udemy with Life Time Access & Live Meeting Support to Clear your Queries. Avail 25% to 80% discount. Please Check https://www.oracleappstechnical.com for Never Before Offers and Discount Coupon Codes.
ReplyDelete