0% found this document useful (0 votes)
212 views52 pages

Form Customization:: AOL User References

The document provides instructions for customizing Oracle form templates. It describes how to modify blocks, canvases, windows and other form properties. It also discusses how to track data changes with the WHO feature by adding WHO columns to tables and including WHO logic in forms and stored procedures. Finally, it provides guidelines for setting properties of different widget objects like text items, buttons and lists of values used in forms.

Uploaded by

Sachin Ahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
212 views52 pages

Form Customization:: AOL User References

The document provides instructions for customizing Oracle form templates. It describes how to modify blocks, canvases, windows and other form properties. It also discusses how to track data changes with the WHO feature by adding WHO columns to tables and including WHO logic in forms and stored procedures. Finally, it provides guidelines for setting properties of different widget objects like text items, buttons and lists of values used in forms.

Uploaded by

Sachin Ahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 52

Form Customization:

1.Open template.fmb from c:\Apps10\fnd75\forms\us


in the Object navigator and save this file with u
r custom name before doing any changes to
template.fmb.
2.Delete the blocks BLOCKNAME and DETAILBLOCK.
3.Delete the canvas BLOCKNAME.
4.Delete the window BLOCKNAME.
5.Create the base table block with name EMP in the
canvas with name MYCAN in the window MYWIN.
6.Set the window and canvas properties for the
respective window and canvas.
7.Also set the First navigable block property of
the form to EMP.
8.Modify the pre_Form trigger as
app_window.set_window_position('MYWIN',
'FIRST_WINDOW');.
9.Modify the APP_CUSTOM(Package Body) as
if (wnd = 'MYWIN') then
app_window.close_first_window;
RETURN;
elsif (wnd = '<another window>') then.
10. Set property classes of all custom defined
objects to their respective property classes
defined apps.
11. To read the Apps Packaged procedures, Ex: ---
open the c:\Apps10\au10\res\plsql\fndsqf.pll (the
library module and then read the respective
package in PL/SQL editor).
12. Place that form in $AU_TOP in forms/US
directory.
13. Generate the form using the following command
at unix prompt.
f60gen module=xxxx.fmb apps/apps
It will create a xxxx.fmx file
14. Later move that xxxx.fmx into under the
particular application top $XX_TOP in forms/US
directory.

Page No: 1
AOL User References
15. Later in AOL u create a form for that form.
Navigation -> Application -> Form.
16. And create a form function to that form.
Navigation -> Application -> Function.
17. Finally attach that form function to the menu
which was already assigned to the
responsibity(Specific Application).
Navigation -> Application -> Menu.

Tracking Data Changes with WHO

The WHO feature reports information about who


created or updated rows in Oracle Applications
tables. Oracle Applications upgrade technology
relies on WHO information to detect and preserve
customizations. If you add special WHO columns to
your tables and WHO logic to your forms and stored
procedures, your users can track changes made to
their data. By looking at WHO columns, users can
differentiate between changes made by forms and
changes made by concurrent programs.
You represent each of the WHO columns as hidden
fields in each block of your form (corresponding to
the Who columns in each underlying table).

CREATE TABLE EMP WITH EXTRA WHO COLUMNS


1 CREATED_BY NUMBER(15) NOT NULL
2 CREATION_DATE DATE NOT NULL
3 LAST_UPDATED_BY NUMBER (15) NOT NULL
4 LAST_UPDATE_DATE DATE NOT NULL
5 LAST_UPDATE_LOGIN NUMBER (15)
6 REQUEST_ID NUMBER(15)
7 PROGRAM_APPLICATION_ID NUMBER(15)
8 PROGRAM_ID NUMBER(15)
9 PROGRAM_UPDATE_DATE DATE
10 Write the two block level triggers pre-update
and pre-insert
with the following code
fnd_standard.set_who

Page No: 2
AOL User References
11 For the blocks which don’t have who columns
disable the about menu using the following when-
new-block-instance block level trigger with style
property of the trigger override
app_standard.event(’WHEN–NEW–BLOCK–INSTANCE’);
app_special.enable(’ABOUT’, PROPERTY_OFF);
12 set the who columns class properties of date
columns to CREATION_OR_LAST_UPDATE_DATE and rest of
the columns to TEXT_ITEM class property.

Form properties

1. Property Class: Warning: Do not change any


values set by the MODULE
property class.

2. Module Names: Make sure that in each of your


forms, the Module Name matches the file name. For
example, if a form is called POXPOMPO.fmb, make
sure the Module Name (visible in Oracle Forms
Designer) is POXPOMPO.

3. First Navigation Block:Set this property to the


name of the first block that users visit when a
form is run. Do not set to a WORLD or CONTROL
block. This property also controls where the cursor
goes after a CLEAR_FORM, as well as the default
’Action–>Save and Proceed’ behavior.

4. From the APPSTAND form, windows automatically


inherit the proper look and feel of the GUI
platform on which they are running, such as
characteristics of the frame, title bar fonts, and
window manager buttons. This section describes
features common to all Oracle Applications windows,
as well as behaviors for modal and non–modal
windows.
ROOT_WINDOW
The ROOT_WINDOW is a special Oracle Forms window
that behaves differently from other windows. Do not

Page No: 3
AOL User References
use the ROOT_WINDOW, because it interferes with the
proper functioning of the Toolbar and other
standard Oracle Applications objects.

Blocks
Most standard Oracle Forms functions, such as
Save, Next Block, and
Clear All, do not apply in a dialog block.
Although the Oracle
Applications menu and toolbar may not be
accessible, Oracle Forms
functions can still be invoked from the
keyboard unless you disable
them. You should disable all KEY– triggers for
the block by coding a
KEY–OTHERS trigger that calls
APP_EXCEPTION.DISABLED, which
will cause a beep when the user attempts a
disabled function. You then
specifically enable some functions for the
block by coding the following
additional KEY– triggers:

An Example of a Dialog Block with a single


record is "Help about this record" menu(of WHO
columns details)

You may need to implement blocks that have no


base table or view.
Use transactional triggers (ON–INSERT, ON–LOCK,
etc.) if such a
block must process commits.
Do not base the block on a dummy table such as
FND_DUAL.

Drill Down Indicator

Page No: 4
AOL User References
If the multi–record block supports drilldown to
one or more detail
blocks, create a drilldown indicator as
follows: Create a text item in the
multi–record block. Name it
’DRILLDOWN_RECORD_INDICATOR’,
and apply the property class
’DRILLDOWN_RECORD_INDICATOR.’
Add an item–level WHEN–NEW–ITEM–INSTANCE
trigger (Execution
Style: Override) to the drilldown indicator
item. Call the same logic as
the button that corresponds to the drilldown
block. For Combination
blocks, this should move to the Detail window.
In other blocks, if there
are one or more child blocks, drilldown moves
you to one of them.

Ex:- In BOM while defining the bills.


Summary–Detail

Combination blocks are hybrid formats, where


fields are presented in
both multi–record (Summary) and single–record
(Detail) formats. The
Summary and Detail formats are each presented
in their own window,
but all of the fields of both formats are part
of a single block.
Attention: Do not confuse the Detail of
Summary–Detail with
the Detail of Master–Detail.

Master–Detail

Prevent Masterless Operations


A user cannot enter or query detail records
except in the context of a

Page No: 5
AOL User References
master record. Always set this property to
True.
Prevent Deletion of Detail Records
Because your form should be built using
underlying views instead of
actual tables, you should not allow the normal
Oracle Forms deletion of
detail records. Instead, set the Master Deletes
property of the relation
to Isolated. Then, delete your detail records
as part of your
Delete_Row procedure in the table handler for
the master table.
Other Behaviors
When a detail block is in a different window
than its master, but
the detail window is modal, the detail block
should only query

upon navigation to the block. Set Deferred to


True and
AutoQuery to True for the relation. Do not code
any logic for
this relation in the OPEN_WINDOW or
CLOSE_WINDOW
procedure.
The first master block of a form does not
autoquery unless
– only a very small number of records will be
returned
– the query will be fast
– most likely the user will operate on one or
more of the
queried records

To autoquery the first block of a form, code


the following:
Trigger: WHEN–NEW–FORM–INSTANCE
do_key(’execute_query’);

Page No: 6
AOL User References
Do not code anything specific to windows
being iconified, even
though iconifying a window that contains a
master block may
make it difficult to operate with a detail
block.
Do not use Master–Detail cascade delete
because it is an
inefficient operation on the client side. It
also generates triggers
with hardcoded messages.

Properties of Widget Objects

The following topics are covered:


Text Items
Display Items
Poplists
Option Groups
Check boxes
Buttons
Lists of Values (LOV)
Alerts
Editors
Flexfields
Setting Item Properties Dynamically

Data Type
For date fields, use the DATE data type unless the
user needs to enter
time. Use the DATETIME data type to require the
user to enter time.
To default a form field to the current date without
the time, use
$$DBDATE$$. To default a form field to the current
date and time, use
$$DBDATETIME$$.
Date Field Maximum Length
Create date fields as 11 characters without time,
or 20 characters with

Page No: 7
AOL User References
time. You do not need to specify a format mask in
the item. Oracle Forms
defaults the format correctly for each language
from the environment
variable NLS_DATE_FORMAT.
Oracle Applications currently requires an
NLS_DATE_FORMAT
setting of DD–MON–RR. Forms date fields that are 11
or 20 characters
long will display a four–character year (DD–MON–
RRRR)
automatically.

Date Field Validation


In general, validate your date fields at the record
level rather than at
the item level.
Record level validation allows the user to correct
errors more easily,
Especially in a From Date/To Date situation. After
entering an
Incorrect date (last year instead of next year),
the user should not need
to change first the To Date before correcting the
From Date.

Poplists

Poplists are used for two distinct purposes in


Oracle Applications: to
hold data in a small list of possible values, and
to set the displayed
region for a set of alternative regions.

Limits
The maximum width of a list element is 30
characters. Your longest

Page No: 8
AOL User References
value in English for a 30–character–wide poplist
should be no longer
than 23 characters to account for expansion of
values for some
languages.
Dynamic List Elements
You may need to populate a list at runtime. If so,
be aware of the
following issues:
Never use a list item if you expect more than
fifteen elements
Do not change a list on a per–record basis
Make sure each populated list has a value that
matches the
default value. You can dynamically change the
default by
specifying it as a reference to another field, as
opposed to a
hardcoded value.

Option Class(Radio buttons)


Property Class
Apply the RADIO_BUTTON property class to each
button of an option
group. There is no property class to assign to the
group itself.

Check Box
Property Class
Apply the CHECKBOX property class to each normal
check box (used
for data entry). Apply the CHECKBOX_COORDINATION
property
class to each coordination check box.

Buttons
Property Class
Textual buttons use the BUTTON property class.
Iconic buttons use the

Page No: 9
AOL User References
BUTTON_ICONIC property class and typically appear
only in the
toolbar or in folder forms.
Warning: Never override the height specified by the
BUTTON
property class.

Navigable and Mouse Navigate Properties


Single record block buttons are Navigable TRUE.
Multi–record block
buttons are Navigable FALSE. The exception is Clear
buttons, which
should always use Navigable FALSE. This is to
prevent users from
accidentally clearing records when they expect to
fire the default
button.
All buttons are Mouse Navigate False.

Enter–Query Mode
Most buttons do not apply in Enter–Query mode.
Users cannot leave
the current record while in this mode. You do not
need to explicitly
disable a button while in Enter–Query mode; instead
set the trigger
property ”Fire in Enter–Query mode” for the WHEN–
BUTTON–
PRESSED trigger to FALSE.

Call APP_STANDARD.APP_VALIDATE
Buttons should call APP_STANDARD.APP_VALIDATE and
pass a
scope before performing their action. This ensures
that your records
are valid before performing an action, and that the
button acts on the
expected block.

Page No: 10
AOL User References
Lists of Values (LOVs)
Use Lists of Values to provide validation on a text
item when you
expect to have more than fifteen values.

Auto Refresh
If the values displayed by the LOV are static
during a session and the number of rows is not
excessive, turn Auto Refresh off (False) to cache
the LOV values for the session. Caching the values
avoids database
hits and network round trips for subsequent
invocations of the LOV, and eliminating unnecessary
round trips is a key factor in producing a product
that can run on a wide area network. However, the
caching
consumes memory that is not recovered until the
form is closed.

Long List
If an LOV may show more than one hundred rows, then
the user must be prompted to reduce the list of
valid values first (Long List: True).Never have
Long List set to True, and Auto Refresh set to
False, on an
LOV. This combination would cause only the reduced
set of rows to be cached if the user enters
something in the reduction criteria window.With
Auto Refresh off, there is no way of returning to
the full set of
rows. Typically it is not wise to cache an LOV that
returns more than 100 rows.

Dependent Fields
An LOV on a dependent field should use the value in
the master field to reduce the list.
For example, if NAME is dependent on TYPE, the
entry LOV for NAME’s WHERE clause would include the
condition:
WHERE TYPE = :MY_BLOCK.TYPE

Page No: 11
AOL User References
LOVs in ENTER–QUERY Mode
LOVs in ENTER–QUERY mode should be used sparingly,
as Query
Find is the preferred method for a user to locate
records.
You should only code them where they dramatically
improve the
usability of ENTER–QUERY mode, and you expect this
mode to be
used regularly despite Query Find.

Attention: WHEN-VALIDATE-ITEM does not fire in


ENTER–QUERY mode. Therefore, you cannot depend on
the
WHEN–VALIDATE–ITEM trigger to clear hidden fields
when
selecting from an ENTER–QUERY LOV.

Implementation
To enable LOVs in ENTER–QUERY mode on an item,
create an
item–level KEY–LISTVAL trigger as follows:
Trigger: KEY–LISTVAL
IF (:SYSTEM.MODE != ’ENTER–QUERY’) THEN
LIST_VALUES;
ELSE SHOW_LOV(’query lov’);
END IF;

Alerts
Oracle Applications does not use the native Oracle
Forms alert object.
The Oracle Application Object Library Message
Dictionary feature is
used instead, as it provides full translation
capabilities and handles text
larger than 80 characters.

Page No: 12
AOL User References
Editors
Do not write special code for the editor. Rely on
native Oracle Forms
behavior.

CODING MASTER -DETAIL RELATIONSHIPS


When a detail block is in a different window than
its master, and each
window is non–modal, then the detail block must
provide a mechanism
for the user to toggle between immediate and
deferred coordination.
This allows a user to keep a block visible, but
control the performance
cost of coordinating detail records when the master
record is changed.
When a detail block is not visible, its
coordination should always be
deferred. Use the procedure
APP_WINDOW.SET_COORDINATION
to coordinate master–detail blocks in different
windows.

The sample code below uses the following objects:


Master block ’DEPT’, in window DEPTWIN
Detail Block ’EMP’, in window ’EMPWIN’
Relation DEPT_EMP
Coordination check box ’CONTROL.CO_ORD
Button to navigate to the EMP block
’CONTROL.EMPLOYEES’

Step 1
Create a button to navigate to the detail block.

Step 2
Create a coordination check box in a control block
in the detail window
to specify the user’s preference of immediate or
deferred coordination

Page No: 13
AOL User References
when the window is open. The check box should have
the
CHECKBOX_COORDINATION property class, which
provides a value
of ”IMMEDIATE” when checked and ”DEFERRED” when
unchecked.

The check box value should default to checked


(IMMEDIATE).

Step 3
Create your item handler procedures as follows:
PACKAGE BODY CONTR IS

PROCEDURE EMP_PACK(EVENT VARCHAR2) IS


BEGIN
IF (EVENT = 'WHEN-BUTTON-PRESSED')
THEN
app_custom.open_window('EMPWIN');
END IF;
END EMP_PACK;
PROCEDURE CO_ORD_PACK(EVENT VARCHAR2) IS
BEGIN
IF (EVENT = 'WHEN-CHECKBOX-CHANGED')
THEN

APP_WINDOW.SET_COORDINATION(EVENT,:control.CO_ORD,'
DEPT_EMP');
END IF;
END CO_ORD_PACK;

END;

Step 4
CLOSE WINDOW
if (wnd = 'DEPTWIN') then
app_window.close_first_window;
RETURN;

Page No: 14
AOL User References
elsif (wnd = 'EMPWIN') then
--defer relations
--close related windows
APP_WINDOW.SET_COORDINATION('WHEN-WINDOW-
CLOSED',:CONTROL.CO_ORD,'DEPT_EMP');

elsif (wnd = '<yet another window>') then


--defer relations
--close related windows
null;
end if;
OPEN WINDOW
if (wnd = 'EMPWIN') then
--position the window
--reset master-detail relations
--navigate to a block in the window
APP_WINDOW.SET_COORDINATION('OPEN-
WINDOW',:CONTROL.CO_ORD,'DEPT_EMP');
GO_BLOCK('EMP');

Step 5
Call your field and event handler procedures in:
Trigger: WHEN–BUTTON–PRESSED on control.EMPLOYEE
control.EMP_PACK(’WHEN–BUTTON–PRESSED’);
Trigger: KEY–NXTBLK on ORDER:
control.EMP_PACK(’WHEN–BUTTON–PRESSED’);
Trigger: WHEN–CHECKBOX–CHANGED on control.CO_ORD:
control.CO_ORD_PACK(’WHEN–CHECKBOX–CHANGED’);

Calendar: Properties
1 In order to show the calendar in the date field
Raise Item level key-listval Trigger and type
the code
Calendar.show;
2 in order to disable the date ranges then in the
item level key-listval trigger write the >>

Page No: 15
AOL User References
syntax >>calendar.setup(<30 char identifying
name>, <low_date>,
3 <high_date>); >>> following code>>
4 calendar.setup('kamalakar', '02-MAY-00','10-MAY-
00');
5 calendar.show;

Disable Weekends in the Calendar Window


To disable weekends (where the weekend is defined
as Saturday and
Sunday):
calendar.setup(’WEEKEND’);

Display Only Mode


calendar.setup( ’DISPLAY ’ );

Adding 30 Days
Enter a date in demand_date
Call this in the hiredate key-listval to add 30
days to demand and assign to hiredate field >>
calendar.show(:EMP.demand_date + 30);

Menus
If the menu item is not controlled by the default
menu control, use any
trigger (typically PRE–BLOCK or WHEN–NEW–BLOCK–
INSTANCE),
adding the code:
app_special.enable( ’ the menu item’,
PROPERTY_OFF);
Turn the menu item back on when you leave
(typically POST–BLOCK)
by calling:
app_special.enable(’ the menu item’, PROPERTY_ON);
Include the full name of the menu item in this
call, for example:
app_special.enable(’EDIT.CLEAR_FIELD’,
PROPERTY_OFF);

Page No: 16
AOL User References
If the menu item is controlled by the default menu
control, use the
trigger listed (either WHEN–NEW–BLOCK–INSTANCE,
WHEN–NEW–RECORD–INSTANCE, or WHEN-NEW-ITEM-
INSTANCE). Make the trigger style ”Override” and
add the following
code:

app_standard.event(’ TRIGGER_NAME’);
app_special.enable(’ Menu_item’, PROPERTY_OFF);

If at any time you need to change a property and


need to force a refresh
of the menu (because the appropriate WHEN– trigger
will not fire after
the change you made), call
APP_STANDARD.SYNCHRONIZE.

The Toolbar and menu are automatically updated by


the standard
form–level WHEN–NEW–RECORD–INSTANCE, WHEN-NEW-
BLOCK-INSTANCE, and WHEN-NEW-ITEM-INSTANCE
triggers. If
you code these triggers at the item or block level,
be sure to set
execution style to ’Before.’

10 – 7 Controlling the Toolbar and the Default Menu


The Special Menu
You can customize the menu to display application–
specific values.
The menu supports up to fifteen entries under the
’Special’ entry.
APP_SPECIAL: Menu and Toolbar Control (See page
10 – 9)
Step 1
Example Special Menu Entry
Suppose you have a special function called ’Book
Order’ that you want

Page No: 17
AOL User References
to add to the menu and the Toolbar. To add ’Book
Order’ as the first
entry on the Special menu and as an icon on the
Toolbar, such that they
are only available in the ’Header’ block of a form,
do the following:
Modify the form level PRE-FORM trigger:
PRE-FORM
app_special.instantiate(’SPECIAL1’, ’&Book Order’,
’bkord’);

If you plan to translate your form, you should use


Message Dictionary,
a parameter, or a static record group cell to store
the Special Menu
entry. You then retrieve the value (which is
translated when the
application is translated) into a variable and pass
the variable to the
APP_SPECIAL routine. For example:
app_special.instantiate(’SPECIAL1’, my_menu_entry,
’bkord’);

Step 2
Add a form–level PRE-BLOCK trigger:
PRE-BLOCK
app_special.enable(’SPECIAL1’,PROPERTY_OFF);

Step 3
Add a block level PRE-BLOCK trigger to the block in
which you want
to enable your special menu entries:
PRE-BLOCK in HEADER block
app_special.enable(’SPECIAL1’,PROPERTY_ON);

Step 4

Page No: 18
AOL User References
Add a block level SPECIAL1 user–named trigger that
contains code to
actually perform your ’Book Order’ function. It
executes when the
user chooses this menu entry.

Disabling the Special Menu


To disable all special menu entries (for example,
when entering
Query-mode), call
APP_SPECIAL.ENABLE(’SPECIAL’,PROPERTY_OFF);

Use the APP_SPECIAL package to enable and customize


buttons on the
toolbar.
This call constructs the special menu according to
your specifications.
Call this function in the PRE–FORM trigger, after
the call to
APP_STANDARD.EVENT(’PRE-FORM’).

Example 1
APP_SPECIAL.INSTANTIATE(’SPECIAL3’,’&Book Order’,
’POBKORD’,
TRUE);

query_find window

1.copy the object group called query_find


from the appsstand form
(c:\apps10\au10\res\forms\us\appsstand.fm
b) so that the query_find block,canvas,
window and corresponding triggers will be
copied.
2.In that query_find block create your own
search fields
And attach the respective property
classes.,

Page No: 19
AOL User References
3.Write the block level (pre-query)trigger
in master block not in the control block
IF :parameter.G_query_find='TRUE' THEN
/IF u want specific range of values to
query /
APP_FIND.QUERY_RANGE(:LOWDATE,:HIGHDATE,'EM
P.HIREDATE');
END IF;
/if u want specific values\
create parameter
if :parameter.g_query_find = 'TRUE' then
:emp.ename := :parameter.empname;
:p:parameter.g_query_find := 'FALSE';
end if;

IMPORTANT: CHANGE THE QUERY_LENGTH TO 255


AND MAX LENGTH TO 11 OR 9 FOR EACH DATE
FIELD.
4.write user defined block level trigger
named query_find
APP_FIND.QUERY_FIND('EMP_WIN','EMP_QF_WIN'
,'EMP_QF');

To attach calendar list to any of


the date field :

Create a key-listval trigger on the field


And just write
Calendar.show;

Submitting a Transaction Worker Directly as a


Concurrent Process
The transaction worker can be directly called
either from an Oracle
Form or a c program. You can also launch a worker
from the operating
system using the Application Object library CONCSUB
utility. You

Page No: 20
AOL User References
need to specify the following parameters in the
given order.
HEADER_ID This is the transaction_header_id that
you want the
worker to process. If no header id is passed the
worker will assign itself.

TABLE Pass 1 for the Interface table and 2 for the


temp
table.
SOURCE_HEADER_ID This column will be used to
select rows to process
if HEADER_ID is not specified.
SOURCE_CODE This column is used to select rows to
process if
header id is not specified.

CODING ALTERNATE REGION

1 Create a Control block based on the EMP Window


and Create dummy text item with
width=0,length=1,height=0.navigable=false.create a
list item with name lines_regions
2 Create a block based on the EMP table , EMP
Canvas with class Content and EMP window
 Create two canvases stacked in its property sheet
DEPT and DETAIL
4 Put ename and empno in EMP Canvas
3 Put job,mgr,hiredate items in DETAIL Canvas
4 Put Sal,comm,deptno items in the DEPT Canvas.
5 put these stacked canvas in appropriate place
from view >Stacked view
6 drag and put
7 in the list elements of the list item give the
stacked canvas names in the list elements and
also same for the List item values.
8 Write the procedure name CONTROL
9 PACKAGE BODY CONTROL IS

Page No: 21
AOL User References
10 g_canvas_name VARCHAR2(30) := null;
11PROCEDURE lines_regions(event varchar2) IS
12target_canvas_name VARCHAR2(30);
13curr_canvas_name VARCHAR2(30) :=
14get_item_property(:system.cursor_item,ITEM_CANVAS
);
15BEGIN
16IF (event = 'WHEN-NEW-ITEM-INSTANCE') THEN
17IF ((curr_canvas_name in ('DEPT', 'DETAIL')) AND
18(curr_canvas_name != :control.lines_regions))
THEN
19:control.lines_regions := curr_canvas_name;

20g_canvas_name := curr_canvas_name;
21END IF;
22ELSIF (event = 'WHEN-LIST-CHANGED') THEN
23target_canvas_name := :control.lines_regions;
24IF (:SYSTEM.MODE = 'ENTER-QUERY') THEN
25null;
26ELSE
27IF (:EMP.EMPNO is null) THEN
28FND_MESSAGE.SET_NAME('APP',
'EMPNO_ENTER_ITEM_FIRST');
29FND_MESSAGE.ERROR;
30:control.lines_regions := g_canvas_name;
31RAISE FORM_TRIGGER_FAILURE;
32END IF;
33END IF;
34IF curr_canvas_name in ('DEPT','DETAIL') THEN
35hide_view(curr_canvas_name);
36END IF;
37show_view(target_canvas_name);
IF (:system.cursor_block = 'EMP') THEN
iF (target_canvas_name = 'DEPT') THEN
38go_item('EMP.SAL');
ELSIF (target_canvas_name = 'DETAIL') THEN
39go_item('EMP.JOB');
40END IF;
41END IF;
42g_canvas_name := target_canvas_name;

Page No: 22
AOL User References
43ELSE
44fnd_message.debug('Invalid event passed to
control.lines_regions');
45END IF;
46END lines_regions;
47END control;
48
49Call this Procedure in the item handlers in the
list item trigger >when-list-changed
50CONTROL.LINES_REGIONS('WHEN-LIST-CHANGED');
51
52Write a block level trigger on EMP >when-new-
item-instance
53CONTROL.LINES_REGIONS('WHEN-NEW-ITEM-INSTANCE');
54
55Write a block level trigger on EMP >key-menu
56IF
APP_REGION.ALT_REGIONS('CONTROL.LINES_REGIONS')
THEN
57CONTROL.LINES_REGIONS('WHEN-LIST-CHANGED');
58END IF;
59
60In the form level write two triggers>when-new-
form-instance
61GO_BLOCK('EMP');
62GO_BLOCK('CONTROL');
63
64In the form level write two triggers>key-clrfrm
65GO_BLOCK('EMP');

66GO_BLOCK('CONTROL');
All the blocks and the canvas are dependent on the
same EMP Window

CODING KEY FLEX FIELDS

Create a table for key flex fileds, which is based


on the foreign key
1 create a table kfemp with the following columns
as

Page No: 23
AOL User References
CCID NOT
NULL NUMBER(38) PRIMARY KEY
SEGMENT1
VARCHAR2(40)
SEGMENT2
VARCHAR2(40)
SUMMARY_FLAG VARCHAR2(1)
default ‘Y’ not null
ENABLED_FLAG VARCHAR2(1)
default ‘N’ not null
START_DATE_ACTIVE DATE
END_DATE_ACTIVE DATE
STID NOT NULL
NUMBER(38)
CREATED_BY
NUMBER(15)
CREATION_DATE DATE
LAST_UPDATED_BY NOT NULL
NUMBER(15)
LAST_UPDATE_DATE NOT NULL DATE
LAST_UPDATE_LOGIN NUMBER(15)

2 CREATE A SEQUENCE KEY_FLEX_S BASED ON THE


KEY_FLEX TABLE.

3 CREATE SEQUENCE KEY_FLEX_S START WITH 1 INCREMENT


BY1 MAXVALUE 100000;

4 CREATE A FOREIGN KEY TABLE KFEMP WITH THE FOREIGN


KEY FIELD CCID REFERENCES KEY_FLEX(CCID)
EMPNO
NUMBER(4)
ENAME
VARCHAR2(10)
DEPTNO
NUMBER(10)
CCID
NUMBER(38) REFERENCES KEY_FLEX(CCID)
STID
NUMBER(38)

Page No: 24
AOL User References
6 REGISTER YOUR TABLES IN AOL(APPLICATION OBJECT
LIBARY).
7 REGISTER YOUR KEY_FLEX TABLE TABLE_TYPE AS
SPECIAL KEYFLEX.
8 Give The Unique id column (CCID),STRUCTURE
COLUMN(STID).SAVE IT
9 U WILL GET ALL THE SEGMENTS1 TO SEGMENTn ENABLED.
10Give the code for flexfield KFX and Dynamic
Insert Feasible YES
11REGISTER ALL THE PRIMARY KEY KEY COLUMNS (CCID)
12CREATE A INDEX ON THE SAME COLUMN (CCID)
13REGISTER CUSTOM TABLE KFEMP AND THE SAME SEQUENCE
AND TABLE TYPE AS TRANSACTION TYPE
14REGISTER YOUR FOREIGN KEY FIELD (CCID)
15CREATE A FORM BASED ON THE CUSTOM TABLE (KFEMP)
16PUT ALL THE (CCID AND STID )COLUMNS IN THE NULL
CANVAS
17ADD TWO NON BASE TABLE COLUMNS AS (KFDESCRIPTION
>>TEXT_ITEM AND DESCRIPTION>DISPLAY ITEM)
18WRITE THE HANDLERS
19KFDESCRIPTION >>> WHEN-NEW-ITEM-INSTANCE

20FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');
21FND_FLEX.EVENT('KEY-EDIT');
22FORM LEVEL
23>>PRE-QUERY
24FND_FLEX.EVENT('PRE-QUERY');
25>>POST-QUERY
26FND_FLEX.EVENT('POST-QUERY');
27WHEN -NEW-FORM-INSTANCE
28FND_KEY_FLEX.DEFINE(
29BLOCK=>'KFEMP',
30FIELD=>'KFDESCRIPTION', **** KFEMP code
combination will come
31DESCRIPTION=>'DESCRIPTION', *** KFEMP
description will automatically come
32ID=>'CCID',
33APPL_SHORT_NAME=>'INV',
34CODE=>'KFX', **** KEY_FLEX

Page No: 25
AOL User References
35NUM=>'101'); ****DEFAULT
36CALL THIS IN THE FORM LEVEL
PRE-QUERY>>FND_FLEX.EVENT(’PRE–QUERY’);
POST-QUERY>> FND_FLEX.EVENT(’POST–QUERY’);
PRE-INSERT>> FND_FLEX.EVENT(’PRE–INSERT’);
PRE-UPDATE >>FND_FLEX.EVENT(’PRE–UPDATE’);
WHEN-VALIDATE–RECORD>>FND_FLEX.EVENT(’WHEN–
VALIDATE–
RECORD’);
WHEN-NEW–ITEM–INSTANCE >>FND_FLEX.EVENT(’WHEN–
NEW–ITEM–INSTANCE’);
WHEN-VALIDATE–ITEM>>FND_FLEX.EVENT(’WHEN–
VALIDATE–ITEM’);

34 in keyflexfields registration > segments >Create


a STRUCTURE for this KEY_FLEX AND ASSIGN ALL THE
SEGMENTS1 TO SEGMENTn TO THIS STRUCTURE AND ASSIGN
ALL THE VALUE SETS CREATED WITH VALUES TO THIS
VALUE SET AND VALUE SET TO THE SEGMENTS1 to
SEGMENTSn

CODING DESCRIPTIVE FLEX FIELDS

1.Create a table,for example ORDER_DETAIL for


Descriptive Flex field as :
ORDER_NO NOT NULL
NUMBER(5)
NAME
VARCHAR2(20)
ATTRIBUTE_CATEGORY VARCHAR2(30)
ATTRIBUTE1
VARCHAR2(150)
ATTRIBUTE2
VARCHAR2(150)
ATTRIBUTE3
VARCHAR2(150)
ATTRIBUTE4
VARCHAR2(150)

Page No: 26
AOL User References
ATTRIBUTE5
VARCHAR2(150)
MY_CONTEXT VARCHAR2(30)
CREATED_BY
NUMBER(15)
CREATION_DATE DATE
LAST_UPDATED_BY NOT NULL
NUMBER(15)
LAST_UPDATE_DATE NOT NULL DATE

LAST_UPDATE_LOGIN NUMBER(15)

Grant all privileges to the table.

2.In the form, create an item DESCFF for the


Descriptive Flex field.
Change the properties of the item as :
Query length=2000, Base
table=False,Class=Text_Item_Desc_Flex,
LOV=Enable_list_lamp, LOV_For_Validation=False.

3.Modify the layout.

4.Register the table created above.

5.Register the Desc Flex field with AOL as:


App:AOL
Name:MYDESC(User-defined)
Title:<user-defined>
Table App:AOL
Table-name:ORDER_DETAIL
Struct Col:Attribute_Category(from your table)
Context_prompt:<user-defined>

6.Attach Segments for MYDESC as:


You can enter a default value for the
Context field.
In the Context field values, Global Data
Elements is present by default which can’t

Page No: 27
AOL User References
be disabled. Add one or more context field names
and enable them.
In the Segments window, attach the
attributes1 to 5(created in table) and the Value
Sets to the segments.

7.Save, Freeze and Compile the Flexfield.

8.In the form create a new Program Unit :

Order_detail package spec

PACKAGE ORDER_DETAIL IS
PROCEDURE DESCFF (EVENT VARCHAR2);
END;

Order_detail package body

PACKAGE BODY ORDER_DETAIL IS


PROCEDURE DESCFF (EVENT VARCHAR2) IS
BEGIN
IF EVENT=’WHEN-NEW-FORM-INSTANCE’ THEN

FND_DESCR_FLEX.DEFINE(BLOCK=>’ORDER_DETAIL’,

FIELD=>’DESCFF’,APPL_SHORT_NAME=>’FND’,
DESC_FLEX_NAME=>’MYDESC’);
END IF;
END DESCFF;
END;

9.Form level W-N-F-I :


ORDER_DETAIL.DESCFF(‘WHEN-NEW-FORM-INSTANCE’);
Save and compile.

10. Form level W-N-I-I:


FND_FLEX.EVENT(‘WHEN-NEW-ITEM-INSTANCE’);

11. Save and Generate the form.

Page No: 28
AOL User References
12. Register the form, Define form function, attach
to a menu and run.

ENABLING THE FOLDERS FEATURE

STEPS:

1.Copy the Template form into your top directory


and save with a different name.

2.Create a window, a content canvas and a stacked


canvas. Attach the content canvas to the window.
In our example, our window is named as Folder and
the canvases are named as Main and Folder
respectively.

3. Attach the respective class properties to the


canvases and the window you created.

4.Create one base table block and one non-base


table block. In our example, the blocks are
Folder and Prompt respectively. The base table
block items are to be placed on the stacked
canvas.

5.Attach respective class properties to the blocks


and their items. It may be noted here that the
items in the Prompt block have a class of Dynamic
Prompt.

6.Delete the APPDAYPK library from your form. After


this, copy the APPDAYPK and APPFLDR attached
libraries from the APPSTAND form.

7.Copy the object group Standard Folder from the


APPSTAND form.

Page No: 29
AOL User References
8.Create an item called SWITCHER or FOLDER_SWITCHER
in the FOLDER block with class property as
SWITCHER. This item contains a
WHEN_NEW_ITEM_INSTANCE trigger with the following
code :

app_folder_move
_cursor('1');
synchronize;

9.Create the following buttons and other items in


the Prompt block:

Buttons:
a.) Order_by1
(Class will be Folder_orderby).
b.) Order_by2 ( - do
-).

c.) Order_by3 (-do-).


d.) Folder_open (Class will be Folder
Open).

Display Item:
a.)Folder_title ( Class is Dynamic
Title).

Text Item :
a.)Folder Dummy (Class is Folder Dummy).

All the order_by items will go to the stacked


canvas and the others will go to the
Main canvas.

10. Check the Layouts of the blocks.

11. Make changes to the following triggers :

a.) Form Level Triggers :

Page No: 30
AOL User References
WHEN_WINDOW_RESIZED – uncomment the
code and fill in the

appropriate window name.


FOLDER_ACTION – comment the message
and uncomment the

app_folder.event call.
KEY_CLRFRM - uncomment the
app_folder.event call.
PRE_FORM – enter your form name, your
application shortname,
author name
and also your first window name.
WHEN_NEW_FORM_INSTANCE - Fill in the
parameters for the
a
pp_folder.define_folder_block procedure.
b.) Block Level Triggers :
KEY_NEXT_ITEM – write the following code
:
app_f
older.event('KEY-NEXT-ITEM');
KEY-PREV-ITEM - write the following code
:
app_folder
.event('KEY-PREV-ITEM');
POST_BLOCK – write the
following code :
app_folder.event('POST-
BLOCK');
PRE_BLOCK - write the
following code :

app_folder.event('PRE-BLOCK');
PRE-QUERY - write the
following code :
app_folder.event('PRE-
QUERY');

Page No: 31
AOL User References
WHEN_NEW_BLOCK_INSTANCE -
write the following code :

DECLARE
block_already_initialized BOOLEAN :=
FALSE;
BEGIN
app_folder.event('WHEN-NEW-BLOCK-
INSTANCE');
IF ( (Get_Block_Property('FOLDER',
Status) = 'NEW')
AND (NOT
block_already_initialized)
) THEN
execute_trigger('QUERY_FIND');
END IF;

block_already_initialized := TRUE;
END;

KEY_EXEQRY – write the following code :


FOLDER_EVENT.key_exeqry;

12. Add the following program units :


a) FOLDER_EVENT Package: write the following
code :

PROCEDURE key_exeqry IS
BEGIN
app_folder.event('KEY-EXEQRY');

-- Save the query


IF (Form_Success) THEN
FOLDER_REQUERY.save;
END IF;
END key_exeqry;

b) FOLDER_REQUERY Package : write the


following code :

Page No: 32
AOL User References
-- PRIVATE VARIABLES
-- Holds the where clause of the last
query on the folder
-- block
last_where VARCHAR2(3000) := null;

-- Holds the default where clause of the


folder
-- block
folder_default_where VARCHAR2(3000) :=
null;

-- Keeps track of whether or not we are


in the process
-- of requerying
doing_requery_flag BOOLEAN;

--
-- PUBLIC FUNCTIONS
--
PROCEDURE requery IS
BEGIN
-- If this is the first query, then do
a blind query
IF (last_where IS NULL) THEN
Go_Block('FOLDER');
Execute_Query;
RETURN;
END IF;

-- Set everything up to execute the


last query
Set_Block_Property('FOLDER',
Default_Where, last_where);

-- Execute the query. Set the doing


requery flag

Page No: 33
AOL User References
-- so that pre-query does not modify
the query
Go_Block('FOLDER');
doing_requery_flag := TRUE;
Execute_Query;
doing_requery_flag := FALSE;

-- Restore the default where clause


Set_Block_Property('FOLDER',
Default_Where,
folder_default_where);
EXCEPTION
WHEN OTHERS THEN
-- Restore the default where clause
Set_Block_Property('FOLDER',
Default_Where,
folder_default_where);

app_debug.setpoint('FOLDER_REQUERY.r
equery');
RAISE;
END requery;

FUNCTION doing_requery RETURN BOOLEAN IS


BEGIN
return(doing_requery_flag);
END doing_requery;

PROCEDURE save IS
pos NUMBER;
query_text VARCHAR2(3000);
BEGIN
-- Remove everything before the where
clause
pos :=
instr(upper(:System.Last_Query), 'WHERE')
+ 5;
query_text :=
substr(:System.Last_Query, pos);

Page No: 34
AOL User References
-- Remove the order by, if there is
one.
IF
(length(Get_Block_Property('FOLDER',
Order_By))
> 0
) THEN
pos := instr(upper(query_text),
'ORDER BY', -1) - 1;
query_text := substr(query_text, 1,
pos);
END IF;

-- Remove any spaces before or after


query_text :=
ltrim(rtrim(query_text));

last_where := query_text;
END save;

PROCEDURE init IS
BEGIN
null;
END init;

FUNCTION initial_where RETURN VARCHAR2


IS
BEGIN
RETURN(folder_default_where);
END initial_where;

BEGIN
folder_default_where
:= Get_Block_Property('FOLDER',
Default_Where);

doing_requery_flag := FALSE;
END folder_requery;

Page No: 35
AOL User References
CODING ZOOM

STEP1: CREATE TWO TABLES LIKE DEPT AND EMP


create table dept(
DEPTNO NUMBER(2)
PRIMARY KEY,
DNAME
VARCHAR2(14),
LOC
VARCHAR2(13))
/
create table emp(
EMPNO NUMBER(4)
primary Key,
ENAME
VARCHAR2(10),
JOB
VARCHAR2(9),
MGR
NUMBER(4),
HIREDATE
DATE,
SAL
NUMBER(7,2),
COMM
NUMBER(7,2),
DEPTNO
NUMBER(2) references dept(deptno))
/

STEP2:REGISTER TABLES WITH AOL


EXECUTE ad_dd.register_table('SQLGL', 'EMP',
'T', 8, 10, 90);

EXECUTE ad_dd.register_column('SQLGL', 'EMP',


'EMPNO',1, 'NUMBER',4, 'N', 'N');

Page No: 36
AOL User References
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'ENAME',2, 'VARCHAR2',10, 'Y', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'JOB',3, 'VARCHAR2',9, 'Y', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'MGR',4, 'NUMBER',4, 'Y', 'N');

EXECUTE ad_dd.register_column('SQLGL', 'EMP',


'HIREDATE',5, 'DATE',9, 'Y', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'SAL',6, 'NUMBER',9, 'Y', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'COMM',7, 'NUMBER',9, 'Y', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'EMP',
'DEPTNO',8, 'NUMBER',2, 'N', 'N');

EXECUTE ad_dd.register_table('SQLGL', 'DEPT',


'T', 8, 10, 90);

EXECUTE ad_dd.register_column('SQLGL', 'DEPT',


'DEPTNO',1, 'NUMBER',2, 'N', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'DEPT',
'DNAME',2, 'varchar2',14, 'N', 'N');
EXECUTE ad_dd.register_column('SQLGL', 'DEPT',
'LOC',3, 'varchar2',13, 'N', 'N');
commit;

STEP3:
CREATE TWO FORMS BY COPYING TEMPLATE.FMB
1) FORM_NAME =ZDEPT | BLOCK_NAME =DEPT
2) FORM_NAME =ZEMP | BLOCK_NAME =EMP
a)CREATE A PARAMETER IN DEPT BLOCK as
DEPTNO
b)change the DEFAULT VALUE property of
ZDEPT(DEPTNO)
SET IT TO :PARAMETER.DEPTNO
c)change the default value property of
dept(block level)
SET IT TO : WHERE (:parameter.DEPTNO is
null or DEPT.DEPTNO LIKE

Page No: 37
AOL User References
:parameter.DEPTNO)

d)CREATE A PARAMETER IN EMP BLOCK as


DEPTNO
e)change the DEFAULT VALUE property of
ZEMP(DEPTNO)
SET IT TO :PARAMETER.DEPTNO
f)change the default value property of
emp(block level)
SET IT TO : WHERE (EMP.DEPTNO LIKE
:parameter.DEPTNO)

STEP4:
OPEN LIBRARY CUSTOM.PLL
WHICH IS IN
C:APPS10\AU10\RES\PLSQL\CUSTOM.PLL.
MODIFY IT AS :

package body custom is


--
-- Customize this package to provide
specific responses to events
-- within Oracle Applications forms.
--
-- Do not change the specification of the
CUSTOM package in any way.
-- You may, however, add additional packages
to this library.
--
--------------------------------------------
------------------------

function zoom_available return boolean is

form_name varchar2(30) :=
name_in('system.current_form');
block_name varchar2(30) :=
name_in('system.cursor_block');

Page No: 38
AOL User References
begin
if (form_name = 'ZDEPT' and block_name =
'DEPT') then
return TRUE;
else
return FALSE;
end if;
end zoom_available;

-------------------------------------------
-------------------------

function style(event_name varchar2) return


integer is
begin
if event_name = 'ZOOM' then
return custom.override;
else
return custom.standard;
end if;
return custom.standard;
end style;

--------------------------------------------
------------------------

procedure event(event_name varchar2) is


form_name varchar2(30) :=
name_in('system.current_form');
block_name varchar2(30) :=
name_in('system.cursor_block');
param_to_pass1 varchar2(255);
begin
if (event_name = 'ZOOM') then
if (form_name = 'ZDEPT' and block_name =
'DEPT') then
param_to_pass1 :=
name_in('DEPT.DEPTNO');

Page No: 39
AOL User References
fnd_function.execute(FUNCTION_NAME=>'Z
EMP',
OPEN_FLAG=>'Y',
SESSION_FLAG=>'Y'
,
OTHER_PARAMS=>'DE
PTNO='||param_to_pass1);

end if;
elsif (event_name = 'OE_LINES_PRICING')
then
null;
elsif (event_name = 'WHEN-VALIDATE-
RECORD') then
if (form_name = 'APXVENDR') then
if (block_name = 'VENDOR') then
copy(upper(name_in('VENDOR.NAME')),
'VENDOR.NAME');
end if;
end if;
else
null;

end if;
null;
end event;

end custom;

STEP5:
SAVE CUSTOM.PLL AND GENERATE IT FROM FORMS
GENERATE
[x] COMPILE ALL
NOTE :WHEN GENERATING LIBRARY CLOSE ALL
FORMS WHICH MIGHT USE THE LIBRARY INCLUDING
ORACLE APPS.

STEP6:
WHEN-NEW-BLOCK-INSTANCE: DEPT
DO_KEY('EXECUTE_QUERY');

Page No: 40
AOL User References
WHEN-NEW-BLOCK-INSTANCE: EMP
CLEAR_FORM;
EXECUTE_QUERY;

ATTACH CUSTOM.PLL TO ZDEPT FORM.

STEP7:
SAVE ,COMPILE AND GENERATE BOTH THE FORMS
IN APPS, REGISTER FORMS & DEFINE FORM FUNCTION
ATTACH IT TO A MENU .
NOTE:DO NOT GIVE NAVIGATOR PROMPT FOR
DESTINATION FORM ZEMP

---------------------------------------------------
---------------------------------------------------
------

GLOSSARY

Alternative region - An alternative region is


one of a collection of regions that occupy the
same space in a window where only one region
can be displayed at any time. You identify an
alternative region by a poplist icon that
displays the region title, which sits on top
of a horizontal line that spans the region.

AutoReduction - A feature in the list window


that allows you to shorten a list so that you
must scan only a subset of values before
choosing a final value. Just as AutoReduction
incrementally reduces a list of values as you
enter additional character(s), pressing
[Backspace] incrementally expands a list.

AutoSelection - A feature in the list window


that allows you to choose a valid value from
the list with a single keystroke. When you

Page No: 41
AOL User References
display the list window, you can type the
first character of the choice you want in the
window. If only one choice begins with the
character you enter,

AutoSelection selects the choice, closes the


list window, and enters the value in the
appropriate field.

AutoSkip - A feature specific to flexfields


where Oracle Applications automatically moves
your cursor to the next segment as soon as you
enter a valid value into a current flexfield
segment. You can turn this feature on or off
with the user profile option
Flexfields:AutoSkip.

Balancing Segment - An Accounting Flexfield


segment that you define so that Oracle General
Ledger automatically balances all journal
entries for each value of this segment. For
example, if your company segment is a balancing
segment, Oracle General Ledger ensures that,
within every journal entry, the total debits to
company 01 equal the total credits to company
01.

Block - Every Oracle Applications window


(except root and modal windows) consists of one
or more blocks. A block contains information
pertaining to a specific business entity.
Generally, the first or only block in a window
assumes the name of the window. Otherwise, a
block name appears across the top of the block
with a horizontal line marking the beginning of
the block.

Business Entity- A person, place, or thing that


is tracked by your business. For example, a

Page No: 42
AOL User References
business entity can be an account, a customer,
or a part.

Button - You choose a button to initiate a


predefined action. Buttons do not store values.
A button is usually labeled with text to
describe its action or it can be an icon whose
image illustrates its action.

Check Box - You can indicate an on/off or yes/no


state for a value by checking or unchecking its
check box. One or more check boxes can be
checked since each check box is independent of
other check boxes.

Child request – A concurrent request submitted


by another concurrent request (a parent
request.) For example, each of the reports
and/or programs in a report set are child
requests of that report set.

Combination Block - A combination block displays


the fields of a record in both multi-record
(summary) and single-record (detail) formats.
Each format appears in its own separate window
that you can easily navigate between.

Combination of segment values - A combination of


segment values uniquely describes the
information stored in a field made up of
segments. A different combination of segment
values results when you change the value of one
or more segments. When you alter the
combination of segment values, you alter the
description of the information stored in the
field.

Combination query - A feature specific to key


flexfields in data entry mode that allows you to
enter query criteria in the flexfield to bring

Page No: 43
AOL User References
up a list of matching predefined combinations of
segment values to select from.

Concurrent Manager - A unique facility that


manages many time-consuming, non-interactive
tasks within Oracle Applications for you, so you
do not have to wait for their completion. When
you submit a request in Oracle Applications that
does not require your interaction, such as
releasing shipments or running a report, the
Concurrent Manager does the work for you,
enabling you to complete multiple tasks
simultaneously.

Concurrent Process - A non-interactive task that


you request Oracle Applications to complete.
Each time you submit a non-interactive task, you
create a new concurrent process. A concurrent
process runs simultaneously with other
concurrent processes (and other interactive
activities on your computer) to help you
complete multiple tasks at once.

Concurrent queue - A list of concurrent requests


awaiting completion by a concurrent manager.
Each concurrent manager has a queue of requests
waiting to be run. If your system administrator
sets up your Oracle Application to have
simultaneous queuing, your request can wait to
run in more than one queue.

Concurrent Request - A request to Oracle


Applications to complete a non-interactive task
for you. You issue a request whenever you
submit a non-interactive task, such as releasing
a shipment, posting a journal entry, or running
a report. Once you submit a request, Oracle
Applications automatically takes over for you,
completing your request without further

Page No: 44
AOL User References
involvement from you, or interruption to your
work.

Current Record Indicator - Multi-record blocks


often display a current record indicator to the
left of each record. A current record indicator
is a one character field that when filled in,
identifies a record as being currently selected.

Descriptive Flexfield - A field that your


organization can extend to capture extra
information not otherwise tracked by Oracle
Applications. A descriptive flexfield appears
on your form as a single character, unnamed
field. Your organization can customize this
field to capture additional information unique
to your business.

Dynamic Insertion - A feature specific to key


flexfields that allows you to enter and define
new combinations of segment values directly into
a flexfield pop-up window. The new combination
must satisfy any cross-validation rules, before
your flexfield accepts the new combination.
Your organization can decide if a key flexfield
supports dynamic insertion. If a flexfield does
not support dynamic insertion, you can only
enter new combinations of segment values using a
combinations form (a form specifically used for
creating and maintaining code combinations).

Existing combinations - A feature specific to


key flexfields in data entry mode that allows
you to enter query criteria in the flexfield to
bring up a list of matching predefined
combinations of segment values to select from.

Field - A position on a form that you use to


enter, view, update, or delete information. A

Page No: 45
AOL User References
field prompt describes each field by telling you
what kind of information appears in the field,
or alternatively, what kind of information you
should enter in the field.

Flexfield - An Oracle Applications field made up


of segments. Each segment has an assigned name
and a set of valid values. Oracle Applications
uses flexfields to capture information about
your organization. There are two types of
flexfields: key flexfields and descriptive
flexfields.

Folder - A flexible entry and display window in


which you can choose the fields you want to see
and where each appears in the window.

Form - A logical collection of fields, regions,


and blocks that appear on a single screen.
Oracle Applications forms look just like the
paper forms you use to run your business. All
you need to do to enter data is type onto the
form.

Key Flexfield - An intelligent key that uniquely


identifies an application entity. Each key
flexfield segment has a name you assign, and a
set of valid values you specify. Each value has
a meaning you also specify. You use this Oracle
Applications feature to build custom fields used
for entering and displaying information relating
to your business. The Accounting Flexfield in
your Oracle General Ledger application is an
example of a key flexfield used to uniquely
identify a general ledger account.

Lamp - A single word message that appears on the


message line to indicate whether a function such
as <Insert> or <List> is available for the
current field.

Page No: 46
AOL User References
Master-Detail relationship - A master-detail
relationship is an association between two
blocks a master block and its detail block.
When two blocks are linked by a master-detail
relationship, the detail block displays only
those records that are associated with the
current (master) record in the master block, and
querying between the two blocks is always
coordinated. Master and detail blocks can often
appear in the same window or they can each
appear in separate windows.

Message line - A line on the bottom of your form


that displays helpful hints or warning messages
when you encounter an error.

Option Group - An option group is a set of


option buttons. You can choose only one option
button in an option group at a time, and the
option group takes on that button's value after
you choose it. An option button or option group
is also referred to as a radio button or radio
group, respectively.

Parent Request - A concurrent request that


submits other concurrent requests (child
requests). For example, a report set is a
parent request that submits reports and/or
programs (child requests.)

Pop-Up window - An additional window that


appears on an Oracle Applications form when your
cursor enters a particular field.

Poplist - A poplist lets you choose a single


value from a predefined list. To choose a
value, press your left mouse button while on the
poplist icon to display the list of choices,

Page No: 47
AOL User References
then drag your mouse through the list to the
desired value. Release your mouse button to
choose the value you highlight and display it in
the poplist field. A poplist is also sometimes
known as a list.

Query - A search for applications information


that you initiate using an Oracle Applications
form.

Record - A record is one occurrence of data


stored in all the fields of a block. A record
is also referred to as a row or a transaction,
since one record corresponds to one row of data
in a database table or one database transaction.

Region - A collection of logically-related


fields set apart from other fields by a dashed
line that spans a block. Regions help to
organize a block so that it is easier to
understand.

Report - An organized display of Oracle


Applications information. A report can be
viewed online or sent to a printer. The content
of information in a report can range from a
summary to a complete listing of values.

Report Security Group - A feature that helps


your system administrator control your access to
reports and programs. Your system administrator
defines a report security group which consists
of a group of reports and/or programs and
assigns a report security group to each
responsibility that has access to run reports
using Standard Report Submission. When you
submit reports using Standard Report Submission,
you can only choose from those reports and
programs in the report security group assigned
to your responsibility.

Page No: 48
AOL User References
Report Set - A level of authority in an
application. Each responsibility lets you
access a specific set of Oracle Applications
forms, menus, reports, and data to fulfill your
role in an organization. Several users can
share the same responsibility, and a single user
can have multiple responsibilities.

Responsibility - A level of authority in an


application. Each responsibility lets you
access a specific set of Oracle Applications
forms, menus, reports, and data to fulfill your
role in an organization. Several users can
share the same responsibility, and a single user
can have multiple responsibilities.

Root window - The root window displays the main


menu bar and tool bar for every session of
Oracle Applications. In Microsoft Windows, the
root window is titled "Oracle Applications" and
contains all the Oracle Applications windows you
run. In the Motif environment, the root window
is titled "Toolbar" because it displays just the
toolbar and main menu bar.

Row - One occurrence of the information


displayed in the fields of a block. A block may
show only one row of information at a time, or
it may display several rows of information at
once, depending on its layout. The term "row"
is synonymous with the term "record".

Scrollable Region - A region whose contents are


not entirely visible in a window. A scrollable
region contains a horizontal or vertical scroll
bar so that you can scroll horizontally or
vertically to view additional fields hidden in
the region.

Page No: 49
AOL User References
Segment - A single sub-field within a flexfield.
You define the structure and meaning of
individual segments when customizing a
flexfield.

Short-hand flexfield entry - A quick way to


enter key flexfield data using shorthand aliases
(names) that represent valid flexfield
combinations or patterns of valid segment
values. Your organization can specify
flexfields that will use shorthand flexfield
entry and define shorthand aliases for these
flexfields that represent complete or partial
sets of key flexfield segment values.

Shorthand window - A single-segment customizable


field that appears in a pop-up window when you
enter a key flexfield. The shorthand flexfield
pop-up window only appears if you enable
shorthand entry for that particular key
flexfield.

Sign-on - An Oracle Applications username and


password that allows you to gain access to
Oracle Applications. Each sign-on is assigned
one or more responsibilities.

Standard Request Submission - A standard


interface in Oracle Applications in which you
run and monitor your application's reports and
other processes.

Status Line - A status line appearing below the


message line of a root window that displays
status information about the current window or
field. A status line can contain the following:
^ or v symbols indicate previous records before
or additional records following the current
record in the current block; Enter Query
indicates that the current block is in Enter

Page No: 50
AOL User References
Query mode, so you can specify search criteria
for a query; Count indicates how many records
were retrieved or displayed by a query (this
number increases with each new record you access
but does not decrease when you return to a prior
record); the <Insert> indicator or lamp informs
you that the current window is in insert
character mode; and the <List> lamp appears when
a list of values is available for the current
field.

Structure - A structure is a specific


combination of segments for a key flexfield. If
you add or remove segments, or rearrange the
order of segments in a key flexfield, you get a
different structure.

Toolbar - The toolbar is a collection of iconic


buttons that each perform a specific action when
you choose it. Each toolbar button replicates a
commonly-used menu item. Depending on the
context of the current field or window, a
toolbar button can be enabled or disabled. You
can display a hint for an enabled toolbar button
on the message line by holding your mouse
steadily over the button. The toolbar generally
appears below the main menu bar in the root
window.

User Profile - A set of changeable options that


affect the way your applications run. You can
change the value of a user profile option at any
time.

Window - A box around a set of related


information on your screen. Many windows can
appear on your screen simultaneously and can
overlap or appear adjacent to each other.

Page No: 51
AOL User References
Windows can also appear embedded in other
windows. You can move a window to a different
location on your screen.

Window title - A window title at the top of each


window indicates the name of the window, and
occasionally, context information pertinent to
the content of the window. The context
information, contained in parenthesis, can
include the organization, set of books, or
business group that the window contents is
associated with.

Zoom - An Oracle Applications feature that


enables you to suspend processing in one form,
access another form, then return to the original
form and resume processing where you left off.
A ZOOM lamp appears when you enter a field from
which you can zoom. Zoom defines the form that
you can access from the current field.

Page No: 52
AOL User References

You might also like