Aol Chamy
Aol Chamy
Aol Chamy
Application
The application short name is an abbreviated form of your application name used
to identify your application in directory and file names and in application code such as
PL/SQL routines.
Oracle Schema
Environment Variable
Application Basepath
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Server–side
Server–side is a term used to describe PL/SQL procedures that are stored in an Oracle
database (on the database server). Procedures and functions stored in the database are
also referred to as stored procedures and functions, and may also be referred to as being
database server–side procedures.
Client–side
Client–side is a term used to describe PL/SQL procedures that run in programs that are
clients of the Oracle database, such as Oracle Forms, Oracle Reports, and libraries. The
term ”client –side” in this manual usually refers to the forms server (where the forms
reside). ”Client–side” in this manual does not typically refer to the ”desktop client”,
which is usually a PC or other desktop machine running a Web browser.
Program Application
The application with which you register your report in the Concurrent Programs window.
Responsibility Application
The application with which you define your responsibility in the Responsibility form.
Value
What you enter as a parameter. A value can be a date, a name, text, or a number.
The Submit Request form provides you with lists of values for most parameters, to ensure
you choose valid values.
Value Set
A set of values against which Oracle Application Object Library validates values your
end user enters when running your program. You define your value set by specifying
validation rules, format constraints and other properties. For example, you could define a
value set to contain values that are character strings, validated from a table in your
application. You can specify that Oracle Application Object Library use the same value
set to validate different report parameters. You can also use value sets that you use in
your flex fields to validate your report parameters.
Parameter
A value you specify when you run a report. For example, if you run an audit
report, you might specify the audit date as a parameter when you run the report.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Application Object Library (AOL)
Earlier it is called by FND (Foundation). It’s a Library of objects, which are used
during development and customizations of Oracle Applications modules. These objects
maintain similar look and feel throughout the application and they can be accessed from
any of the modules.
Main Features
1. TEMPLATE Form
2. WHO Columns
3. QUERY-FIND
4. MESSAGE DICTIONARY
5. ZOOM
6. USER PROFILES
7. FLEX FIELDS
8. CONCURRENT PROCESSING
9. FUNCTION SECURITY
10. LOOKUPS
11. ATTACHMENTS.
I. TEMPLATE Form:
For building a Form a base table is essential. For making a table accessible for
Oracle Applications, there are some required steps. As usual a table is created in the
user’s schema. Oracle Applications is able to access data only from the specific schema,
which is attached to Applications through the data group. So, user has to grant all
privileges for the base table to the APPS schema. Create synonym for the base table in
the APPS schema. Next step is to register the table to the Application. For implementing
this step we need to use the Application developer module. Otherwise certain API is
available. AD_DD package supports for this. When we register the table the information
about the table has been stored in FND_TABLES. Similar is the case with views and
Indexes. For using any objects in Oracle Applications they have to be registered with
Applications through Application Developer.
Once the table is registered we can start with building of FORM. For building a
Form Oracle Applications provides us a template form.
The TEMPLATE form is the required starting point for all development of new
forms. Start developing each new form by copying this file located $AU_TOP/forms/US
to a local directory renaming it as appropriate.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
TEMPLATE contains the following:
When you customize your form delete these objects, create new. For all the
objects you create, attach the corresponding property classes. Once you complete the
building of form, the form has to be attached to Oracle Applications through AOL.
Before that generate the form and executable has to be placed at the appropriate folder.
Say $CMN_TOP/forms/US. Now a FORM has to be registered with Oracle Applications
through AOL for this executable. After that register a FUNTION for this FORM. When
you register the FUNCTION you can specify the parameters associated with the form.
Now attach the function to the menu, which is attached to your responsibility. Now the
form is ready to run.
Libraries:
Libraries allow code to be written once and used by multiple forms. The template form
contains the following:
FNDSQF contains packages and procedures for message dictionary, flexfields, profiles,
and the concurrent manager. It also has various other utilities for navigation, multi
currency, WHO, etc.
APPCORE contains the packages and procedures that are required of all forms to
support the menu, Toolbar, and other required standard behaviors.
APPDAYPK contains the packages that control the Applications Calendar.
APPFLDR contains all of the packages that enable folder blocks.
Oracle Applications does not support use of the APPFLDR library for custom
development.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
INTEGRATING APPLICATIONS WITH CUSTOM APPLICATIONS
The following steps given are for a UNIX system; just make the appropriate changes for
your specific operating system.
For example:
2. Create a custom directory tree for your custom schema as the APPLMGR user. Use the
basepath parameter from the Application registration f or the top-level directory. This top-
level directory will reside just under APPL_TOP. The subdirectories under the custom
directory may vary depending on the server type (forms server, concurrent processing
server, etc...). Make sure that the rights/protections are open for the world (rwx).
For example:
APPL_TOP (/appl/v1100000)
|
XXCUS_TOP (/appl/v1100000/XXCUS)--> other product directories
|
--------------------------------------------------
| | | | | | | |
bin forms html lib log mesg out reports
| |
US US
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
For example:
XXCUS_TOP = "/appl/v1100000/XXCUS"
export XXCUS_TOP
a. Create the user in the RDBMS database using SQL*Plus under the system account.
Give the user a default and temporary tablespace with quotas and then grant the
CONNECT role.
For example:
$ sqlplus system/manager
SQL> create user XXCUS identified by CUST default tablespace USER_DATA
temporary tablespace TEMP quota unlimited on USER_DATA quota unlimited on
TEMP;
SQL> grant connect to XXCUS identified by CUST;
XXCUS is the product short name, CUST is the passwo rd for the custom schema
then USER_DATA and TEMP are existing tablespaces.
b. Register the user with the Application Object Library. Log into Applications as the
System Administrator and navigate to:
Security --> ORACLE --> Register.
For example:
Database
Username Password Privilege Install Group Description
------------------------------------------------------------------------------------
XXCUS CUST Enabled 0 Custom Application
5. Add the custom schema to a data group. Log into Applications as the System
Administrator and navigate to: Security --> ORACLE --> Data Group.
For example:
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Application Oracle ID Description
-------------------------------------------------------------
Custom Application APPS Custom Application
It is recommended that you use the STANDARD data group and pair the custom schema
with APPS or you can add a new data group. This depends upon your own requirements.
6. Create your custom tables, indexes, views and sequences. It is suggested that you add
WHO columns to your custom tables so that Oracle Applications can keep track of
customizations.
Register your custom schema's tables (including flexfields) with the PL/SQL package
AD_DD. You use the procedure AD_DD.register_table for the custom schema tables and
AD_DD.register_column for the custom schema table columns.
Note: Flexfields and Oracle Alert are the only features or products that depend on this
information. If you alter the table later, then you may need to include revised or new calls
to the table registration routines. To alter a registration you should delete the registration,
and then reregister the table or column. You should delete the column registration first,
then the table registration. Though you create your tables in your own schema you should
run the AD_DD procedures against the APPS schema. You must commit your changes
for them to take effect. This API does not check for the existence of the registered table
or column in the database schema, but only updates the required AOL tables. You need
not register views.
Syntax: execute ad_dd.register_table (appl short name, table name, table type, next
extent, % free, % used)
For example:
$ sqlplus apps/apps
SQL> execute ad_dd.register_table ('XXCUS', 'CUST_TABLE’, 'T', 8, 10, 90)
Note:
1. Use ’T’ if it is a transaction table (almost all application tables), or ‘S’ for a
seed data table (used only by Oracle Application products).
2. pct_free: The percentage of space in each of the table’s blocks reserved for
future updates to the table (1-99). The sum of pct_free and pct_used must be
less than 100.
3. pct_used: Minimum percentage of used space in each data block of the table.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Syntax: execute ad_dd.register_column (appl short name, table name, column name,
column seq, column type, column width, null, translate)
For example:
$ sqlplus apps/apps
SQL> execute ad_dd.register_column ('XXCUS', 'CUST_TABLE’, 'CUST_NO', 1,
'NUMBER', 5,'N', 'N')
Syntax: execute ad_dd.delete_column (appl short name, table name, column name);
7. Run the custom schema against the APPS_DDL and APPS_ARRAY_DDL packages.
Run the scripts $AD_TOP/admin/sql/adaddls.pls, adaaddls.pls, adaddlb.pls and then
adaaddlb.pls (in this order) under SQL*Plus:
$ sqlplus apps/apps
SQL> @$AD_TOP/admin/sql/adaddls.pls system_pword custom_schema
custom_schema_pword
SQL> @$AD_TOP/admin/sql/adaaddls.pls system_pword custom_schema
custom_schema_pword
SQL> @$AD_TOP/admin/sql/adaddlb.pls system_pword custom_schema
custom_schema_pword
SQL> @$AD_TOP/admin/sql/adaaddlb.pls system_pword custom_schema
custom_schema_pword
8. Integrate your database objects with the APPS schema by granting APPS the access to
your custom schema's objects.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
For example:
$ sqlplus xxcus/cust
SQL> grant all on CUST_TABLE to APPS
For example:
$ sqlplus apps/apps
SQL> create synonym APPS.CUST_TABLE for XXCUS.CUST_TABLE
For example:
$ sqlplus apps/apps
SQL> create function CUST_FUNCTION…
9. Build your custom forms, menus and libraries as the APPLMGR user. Use the
TEMPLATE form located in $AU_TOP/forms/US directory as the required starting point
for your development work for your custom forms. Follow the form development steps
(which incorporate the development standards) that are described in the Oracle
Application Developers Guide. You will modify the form as needed, move the generated
form to its proper directory, register the form with the Oracle Application Object Library
and then add it to a menu. The following examples assume you are developing on the
forms server.
a. Make a copy of the TEMPLATE form and then rename it as the APPLMGR user.
For example:
$ cd $AU_TOP/forms/US
$ cp TEMPLATE.frm test.frm
b. In the forms designer attach any additional libraries to your custom form. The
TEMPLATE form already has the APPCORE, APPDAYPK, FNDSQF, GLOBE and
CUSTOM libraries attached. The only Oracle Applications library that you should
modify is the CUSTOM library. All the libraries need to reside in directory
$AU_TOP/resource/plsql and make sure that your FORM45_PATH includes
$AU_TOP/resource so that your form can find the libraries.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
c. Modify the form as desired following the development standards. You will be setting
the properties of container and widget objects, creating window layout, coding table
handler, item handler, event handler and code logic, enabling querying behavior, coding
messaging, adding flexfield logic and coding any other appropriate logic.
d. Generate the form on the forms server as the APPLMGR user. Make sure that the
$FORMS45_PATH is set and that the current directory is $AU_TOP/forms/us.
f45gen userid=apps/appspwd module=<form name>.fmb
output_file=<schema_top>/forms/<language>/<form name>.fmx
module_type=form batch=no compile_all=special
For example:
$ f45gen userid=apps/apps module=TEMP.fmb
output_file=/appl/v1100000/XXCUS/forms/US/TEMP.fmx
module_type=form batch=no compile_all=special
e. Test the form by itself. Create either a static html file that calls your form directly
(instead of the usual sign on form) or create a dynamic html file and cartridge.
For example:
g. Register the form as a function. If needed, register sub functions per the functionality
that you require. Log into Applications as the Application Developer responsibility and
navigate to: Application --> Function. Click on "Description" in the popup list.
For example:
-------------
| Description |
-------------
User
Function Function Name Type Description
--------------------------------------------------------------------------------------
TEST TEST FORM Custom Application
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Now click on "Form" in the popup list.
------
| Form |
------
Note: the Application field will be grayed out. It will automatically be filled in when
you enter the form name in the Form field.
h. Add your custom functions (forms and subfunctions) to an existing menu or create a
new one. The menu will be tied to a responsibility. Log into Applications as the
Application Developer responsibility and navigate to: Application --> Menu.
For example:
Menu: XXCUS_MAIN
User Menu Name: XXCUS_MAIN
Description: Main Custom Menu
Seq Prompt Submenu Function Description
----------------------------------------------------------------------
1 Custom TEST Custom Form
2 Requests Standard Request Submission Administer Requests
i. Create a custom request group that will hold your custom and/or standard requests for
your custom responsibility. Log into Applications as the System Administrator and
navigate to: Security --> Responsibility --> Request.
For example:
Group: XXCustom
Application: Custom Application
Description: Custom Application
Requests
--------
Type Name Application
-------------------------------------------------------------
Program Custom Report 1 Custom Application
Program Custom Report 2 Custom Application
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
j) Create a custom responsibility for your custom schema. Log into Applications as the
System Administrator and navigate to: Security --> Responsibility --> Define. Be sure to
add the responsibility to a user.
10. Build online help for your custom applications as the AP PLMGR user.
a. Make sure that your custom form refers to your custom application short name in the
call to the FND_STANDARD.FORM_INFO routine in the PRE-FORM trigger.
For example, in the forms designer open your custom form and navigate to:
Triggers --> PRE-FORM. XXCUS is the custom application short name and
BLOCKNAME is the name of the window:
Begin
FND_STANDARD.FORM_INFO ('$Revision: 99 $', 'Template Form', 'XXCUS'
'$Date: 99/05/25 12:01:01 $', '$Author: John Doe $');
app_standard.event('PRE_FORM');
app_window.set_window_position('BLOCKNAME','FIRST_WINDOW');
End;
b. Create a subdirectory for your help files using the application short name. This
subdirectory will reside under the directory path s pecified by the profile
HELP_BASE_URL plus the language that you are working under.
c. Create a subdirectory under your help files subdirectory to hold the links files. The
links allow Oracle Applications to find the correct help files.
d. Create your online help html files. Include the html target tags of the form near the
beginning of the file. The target name is comprised of the form name and the window
name.
d. Create your online help html files. Include the html target tags of the form near the
beginning of the file. The target name is comprised of the form name and the window
name.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.51 [en] (WinNT; I) [Netscape]">
<title>Custom Application Help </title>
</head>
<body bgcolor="#F8F8F8">
<a NAME="toc_"></a> <a NAME="custom.BLOCKNAME"></a>
e. Create your links file. The links file stores the connection between the target and
target i n the destination html file. You will have one links file for each form and it will be
named after the form. Copy an existing Oracle Applications links file to your links
subdirectory and modify it.
For example, copy an existing links file to your custom links subdirectory, modify
$OA_DOC/US/XXCUS/links/custom.htm using an html editor. The target is
CUSTOM_BLOCKNAME (form name=CUSTOM and window name=BLOCKNAME),
the html help file is custom.htm with a target tag of custom.BLOCKNAME:
var queryString
location.href.substring(location.href.indexOf('?')+1,location.href.length)
var newloc = '../' + eval(queryString)
location.replace(newloc)
</script></body></html>
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
f. If desired, a link to your custom application can be added to the Oracle Applications
online help file, library.html.
a. Make sure you have a message (mesg) subdirectory under your custom applications
basepath.
b. Define your messages following the message standards. Login as the Application
Developer and navigate to: Application --> Messages.
For example:
c. Create the message files. From the operating system run the Message Dictionary
Generator program (FNDMDGEN) as the APPLMGR user.
For example:
d. If needed make a copy of the generated file (located on the server) and transfer the
copy to the appropriate mesg directory f or the custom application on the client system.
e. Code the logic to set up messages. You will use calls to the FND_MESSAGE
package to retrieve and set up messages for display.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
f. Code the logic to display messages. You will either display the message to a user on
the client or write it to a file on the server. You will use calls to the FND_MESSAGE
package to display messages.
a. Write the concurrent program execution file and place it in the appropriate directory.
You can use a variety of methods such as C, Pro*C, SQL*Plus, PL/SQL, Oracle Reports
or a host language program (a shell script).
b. Define the concurrent program executable with the Oracle Application Object Library.
This links the execution file and the method used to execute it with a defined concurrent
program. Log into Applications as the System
Administrator and navigate to: Concurrent --> Program --> Executable.
c. Define the concurrent program with the Oracle Application Object Library along with
any program parameters or any incompatibilities. Log into Applications as the System
Administrator and navigate to: Concurrent --> Program --> Executable.
d. Add the request functionality for your concurrent program. The program can be called
from the run reports form, from a trigger within an application form or from a Pro*C
program. To use the run reports form, just add the submit request window to your custom
menu so that you have access to the Standard Request Submission Interface (SRS).
You must register your application name, application short name, application base
path, and application description with Oracle Application Object Library. Oracle
Application Object Library uses this information to identify application objects such as
responsibilities and forms as belonging to your application. This identification with your
custom application allows Oracle Applications to preserve your application objects and
customizations during upgrades.
When you register your application, your application receives a unique application
ID number that is included in Oracle Application Object Library tables that contain
application objects such as responsibilities. This application ID number is not visibl e in
any Oracle Applications form fields.
Form Registration:
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Steps involved in registering a FORM:
1. FTP the APPSTAND.fmb and TEMPLATE.fmb file to the local disk from the
Application path /u003/visappl/au/11.5.0/forms/US.
Note: - Before to copy the TEMPLATE file you should first copy the
APPSTAND.fmb file and then only your TEMPLATE file will run successfully
without bugs.
3. Open the TEMPLATE form and rename the form as you like and save it in the
same path.
4. Delete the ‘Detailblock & Blockname’ from the list of Data Block and a Canvas
called ‘Blockname’ and a Window called ‘Blockname’.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
5. Create a Window, Canvas and a Data Block based on Database tables and inherit
the property class of it. Window inherits the property class name window and
Canvas inherits the property class name canvas and same as like Data Block.
6. Customize the coding in the PRE_FORM Trigger and also in the package called
APP_CUSTOM according to the client Requirements.
You do not modify these form-level triggers, but you can write block or item level
triggers that override the form-level trigger.
1. KEY-LISTVAL
2. ON-ERROR.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
You do not modify the following triggers in any way.
1. STANDARD_ATTACHMENTS
2. ZOOM
3. FOLDER_ACTION
4. KEY-HELP
5. KEY-EXIT
6. KEY-EDIT
7. KEY-COMMIT
8. WHEN-WINDOW-CLOSED
9. CLOSE_WINDOW
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
9. Open the Oracle Application and switch to the Application Developer Responsibility
and navigate to ApplicationèForms.
10. Fill-up the fields in the Form Window and save it.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
11. Then switch to the Function menu as ApplicationèFunction from the same
Application Developer Responsibility and Fill-up the fields in the Description
canvas.
12. Then Click the Form canvas from the same window and fill-up the fields and save
it. Note: - The Form Name could be same as you denote in the Form menu.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
13. Then switch to the ApplicationèMenu and find the menu of the particular
Application Developer Responsibility and Register the Function name and save it.
Note: - The Function Name must be same as you denoted in the Function menu
14. Final step is that navigation to that particular responsibility. There in the menu
navigator you can see your form. Just enter into form it will be automatically executed
MASTER_DETAIL Relationship:
When the master and detail blocks are in different windows, then the user must provide a
mechanism for immediate and differed co-ordination. When the block is not visible keep the co-
ordination as differed.
Co-ordination: Maintaining a correspondence between the master block and detail block
is called co-ordination. Any event that makes a different Record, the current record of the
current block is called co-ordination-causing event.
There are two phases of block coordination, Clear phase and population phase.
During clear phase the control is navigated to the detail block and the detail records are
flushed off. During the Population phase forms issues a select statement to retrieve the
corresponding detail records for the current master record.
Co ordination properties:
1.Immediate:
When the co-ordination causing event occurs, the detail records are fetched
automatically (immediately)
2. Differed with auto query:
The detail records r not fetched immediately, but when navigated to the detail
block
3. Differed with no auto query:
The user has to execute a query explicitly after navigating to the detail block.
2. Create check box in the control block in the detail window to specify users preference
about immediate or differed co-ordination. It should be immediate when checked and
differed when unchecked. By default it must be immediate.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
3. Create your item handler procedures as follows:
If window='LINES' then
app_window.set_coordination('OPEN- WINDOW', :control.order_lines,
'ORDER_LINES');
End if;
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
3. Check whether the <file name.rdf> file could be placed on the corresponding TOP
File Name
Path
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
4. Switch to ‘Application Developer’ Responsibility from the list of ‘Applications’.
The following screen appears.
6. First Register your report in the Concurrent Executable Form by Click the menu
CONCURRENTèPROGRAMèEXECUTABLE.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
7. Double click the Concurrent Executable menu the following screen appears.
Then fill up the details, which are listed in the Concurrent Executable Form.
The Execution File Name’ Field contains the <Report File Name.rdf> and click
save icon
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
8. After Double clicking the ‘Program’ the following screen appears. Fill-up the Fields.
The ‘Executable Name’ contains the ‘Concurrent Executable Name’
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
10. After Double click the Request Field the screen appears. Fill-up the Request
Group Details as shown in the screen below. Create a new Request and refer the
Concurrent Program name in the Request Name Field.
11. Again switch to the Application Developer Responsibility and choose Other à
Request à Run
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
12. After double click the Run field a tab window appears. Choose Single Request option
and clisk OK
13. Then a Submit Request window appears. In the Name Field type the Concurrent
Program Name and Click the Submit button.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
14 Then choose ViewàRequest in the top of the menu bar.
16. The Following Request Window appears. Note that your Report could be in Normal
Status. If it is Normat then Click View Log and View Output.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
17. After clicking the View Output option the output screen will appers.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
2. TRACKING DATA CHANGES THROUGH WHO COLUMNS:
The WHO feature reports information about who created or updated rows in oracle
Applications tables. If you add special WHO columns to your tables and WHO logic to
your forms, your users can track changes made to their data. 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). Call FND_STANDARD.SET_WHO in PRE–
UPDATE and PRE–INSERT to populate these fields.
1. CREATED_BY
2. CREATION_DATE
3. LAST_UPDATED_BY
4. LAST_UPDATE_DATE
5. LAST_UPDATED_LOGIN
Do not use WHO columns to qualify rows for processing. Your form logic must
never depend upon WHO columns containing correct information. Do not resolve WHO
columns to HR_EMPLOYEES
Store the logic for setting WHO information in pre-insert and/or pre-update event
handlers. Call FND_STANDARD.SET_WHO in your event handlers. Call your event
handlers during insert or update in the pre-insert and pre-update triggers.
First Column
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Second Column
Third Column
Fourth Column
Fifth Column
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
3. QUERY FIND
This feature is used to query the data in Forms. There are two implementations
for query find.
1. Row–LOV -- shows the available rows and allows you to choose one.
2. FIND WINDOW --shows you the fields the user is likely to want to use for selecting
data.
Row–LOV
To implement a Row–LOV, create an LOV that selects the primary key of the row
the user wants into a form parameter, and then copy that value into the primary key field
in the results block right before executing a query.
1. Create a form parameter(s) to hold the primary key(s) for the LOV. Set the datatype
and length appropriately.
For example, for the DEPT block, create a parameter called DEPTNO_QF.
2. Create an LOV that includes the columns your user needs to identify the desired row.
Return the primary key for the row into the parameter.
Find Window
To implement a Find Window, create an additional window that contains the fields
a user is most likely to search by when they initiate the search and copy all the item
values from that block into the results block just before executing a query.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
To implement a Find Window, create an additional window that contains the fields a user
is most likely to search by when they initiate the search and copy all the item values from
that block into the results block just before executing a query.
1. 'Copy' the QUERY_FIND object group from the APPSTAND form to your form. After
copying, delete the object group. This is necessary, in case you have to copy it again, for
another find window.
2. Rename the Query_Find Block, Canvas, and Window. Set the query able property of
the block to FALSE.
5. Set the Previous Navigation Block property of the Query-Find to be the Results block.
So if you press previous block from the query block it will take you back to the results
block.
6. Edit the KEY-NXTBLK trigger on the Query-Find block so that it has the same
functionality as the FIND button.
:parameter.g_query_find :='TRUE' ;
app_find.find ('<results block>');
:parameter.g_query_find:='FALSE';
-- :parameter.G_query_find := 'TRUE';
-- app_find.find('TQUERY');
-- :parameter.G_query_find := 'FALSE';
9. Fit the Query-Find Window to your form. Resize the window, position, fields, and so
on.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
10. Create a block-level Pre-Query trigger in the Results block with Execution style
"Before" that copies query criteria from the Find Window block to the Results block.
list_values;
Select ename into :qfindblk.ename
from tquery where empno = :qfindblk.empno;
The number of records that might be The number of records that might be is
retrieved is large shown in the LOV is small.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
4. MESSAGE DICTIONARY
Message
Text your application displays or prints to an output file. You can define your
message to be up to about 1800 characters long (about 1260 in English to allow for
translation into longer languages such as German).
Message Dictionary
Message Dictionary lets you catalog messages for display from your application without
hard coding them into your forms and programs.
Variable Token
A keyword you create to represent a value when you define a message. You
specify the same variable token, along with its current value, when you call Message
Dictionary from your form or program module. Message Dictionary replaces each
variable token in your message with the current value you specify and then displays the
message.
3. Form level
a. Fnd_Message.Set_Name('Appl_Short_Name','Message_Name')
b. fnd_message.show
/* If you rewrite the message text, to make it active you have to reopen the application*/
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
5. ZOOM
Zoom feature is used when we need to navigate from one form to another.
Custom Library plays an important role in that.
You write code in the CUSTOM library, within the procedure ’shells’ that are Provided.
All logic must branch based on the form and block for which you want it to run.
Whenever the cursor changes blocks in the form, the ’ZOOM_AVAILABLE’ function in
the CUSTOM library is run. If this function returns TRUE, then the Zoom entries on the
menu and toolbar are enabled; if it returns FALSE, then they are disabled.
If the Zoom entries are enabled, then when the user invokes Zoom the message ’event
(’ZOOM’)’ is sent to the CUSTOM library.
You write code within this event that branches based on the current form and block.
Within that code, you are free to write (almost) any code supported by the
Developer/2000 toolset.
Multi Zoom:
Steps: -
1. Create Two Forms (calling and called) using the template.
2. Register the form in GUI
3. Create functions for the forms.
4. Attach the forms to the menu (at least the calling form).
5. Open the custom.pll library ($AU_TOP/resource/CUSTOM.pll).
6. Customize the library: -
a. Copy the custom.pll to any of your local directory (as back up copy).
b. Open the custom.pll library from $AU_TOP/resource/CUSTOM.pll as
1. function zoom_available
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
This function allows you to specify if zooms exist for the current
Context. If zooms are available for this block, then return TRUE;
Else return FALSE.
2. Function style
This function allows you to determine the execution style for some
Product-specific events. You can choose to have your code execute
Before, after, or in place of the code provided in Oracle
Applications.
The following package variables should be used as return values:
custom.before
custom.after
custom.override
custom.standard
By default this routine must return custom.standard
3. event
-----
This procedure allows you to execute your code at specific events
including:
* ZOOM
* WHEN-NEW-FORM-INSTANCE
* WHEN-NEW-BLOCK-INSTANCE
* WHEN-NEW-RECORD-INSTANCE
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
* WHEN-NEW-ITEM-INSTANCE
* WHEN-VALIDATE-RECORD
begin
if (event_name = 'ZOOM') then
if (form_name = 'KK_ZOOM' and block_name = 'DEPT') then
MESSAGE('ZOOMING TO THE NEW FORM ');
fnd_function.execute(FUNCTION_NAME=>'KK_ZOOM2',
OPEN_FLAG=>'Y',
OTHER_PARAMS=>'DEPTNO
="'||param_to_pass1||'"');
ELSE
NULL;
end if;
ELSE
NULL;
end if;
end event;
9. Create the parameters in the called form by the same name and data type as
passed by the calling form.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
6. USER PROFILES
A User Profile a set of changeable options that affects the way your Application runs.
Oracle Application Object Library establishes a value for each option in a user’s profile
or when he logs on or changes responsibility. A developer can define even more profile
options that affects Oracle Application object library based applications. And because
you may not want your users to be able to override values for each of your options you
can define them at one or more of four levels
Site Level:
Site Level is the lowest user profile level. Site Level option values affect the way
all the applications run at a given installation.
Application Level:
Application level is immediately above site level. Application level profile option
values affect the way a particular application runs.
Responsibility Level:
Responsibility is the user profile level immediately above Application Level.
Responsibility–level option values affect the way applications run for all users of a
responsibility.
User Level:
User is the highest user profile level and is immediately above Responsibility.
User–level option values affect the way applications run for an application user.
Flexfields: AutoSkip
You can save keystrokes when entering data in your flexfields by automatically skipping
to the next segment as soon as you enter a complete valid value into a segment.
"Yes" means after entering a valid value in a segment, you automatically move to the
next segment. "No" means after entering a valid value in a segment, you must press
[Return] to go to the next segment.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Note: You may still be required to use tab to leave some segments if the valid value for
the segment does not have the same number of characters as the segment. For example, if
a segment in the flex field holds values up to 5 characters and a valid value for the
segment is 4 characters, AutoSkip will not move you to the next segment.
This profile option controls the appearance of the flexfields window in Applications
running in Semitic languages. Possible values are "Left To Right" and "Right To Left".
If the profile option installation, the default value is "Right To Left", where the window
appears in a normal, left to right fashion, and the text and layout are reversed to
accommodate the right-to-left nature of the Semitic language environment.
You can control whether a descriptive flexfield window automatically opens when you
navigate to a customized descriptive flexfield.
"Yes" means that the descriptive flexfield window automatically opens when you
navigate to a customized descriptive flexfield."No" means that when you navigate to a
customized descriptive flexfield, you must choose Edit Field from the Edit menu or use
the List of Values to open the descriptive flexfield window.
Note: This profile option does not apply to descriptive flexfields in folders.
This profile option is reserved for a future release. You should not alter the value of this
profile option.
If shorthand flexfield entry is defined for your flexfield, you can use a shorthand alias to
automatically fill in values for some or all of the segments in a flexfield.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Not Enabled Shorthand Entry is not available for any flexfields for this user, regardless of
whether shorthand aliases are defined. New Entries Only Shorthand Entry is available for
entering new records in most foreign key forms. It is not available for combinations
forms, updating existing records, or entering queries. Query and New Entry Shorthand
Entry is available for entering new records or for entering queries. It is not available for
updating existing records.
All Entries Shorthand Entry is available for entering new records or updating old
records. It is not available for entering queries. Always Shorthand Entry is available for
inserting, updating, or querying flexfields for which shorthand aliases are defined.
If an alias defines valid values for all of the segments in a flexfield, and
Flexfields:Shorthand
Entry is enabled, when you enter the alias the flexfield window does not appear.
"Yes" displays the full flexfield window with the cursor resting on the last segment.
This profile option is set to "Yes" to enable server side, PL/SQL flexfields validation for
Key Flexfields. This improves performance when using Key Flexfields over a wide area
network by reducing the number of network round trips needed to validate the entered
segment combinations.
7. FLEXFIELDS
Oracle’s Application provides flex fields that represent flexible data fields you can
customize it for your business needs without programming.
A Flex field is a flexible field made up of segments. Each segment has a name and a set
of values. Mainly there are two types of Flex fields
Key flex field and
Descriptive Flex field
Key Flex fields
A key flexfield r epresents an intelligent key that uniquely identifies an application entity.
Oracle General Ledger’s Accounting Flexfield is an example of a key flexfield
used to uniquely identify a general ledger account. Same flexfield can be used in different
applications. Easy customization is another advantage of Flex field. Customizing a
flexfield means specifying the prompt, length and data type of each flexfield segment. It
also includes specifying valid values for each segment, and the meaning of each value to
your application. You or your end users can even define cross–validation rules to specify
valid combinations of segment values.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Descriptive Flex Fields
A descriptive flexfield describes an application entity, providing form and
database expansion space that you can customize. Each descriptive segment has a name
you assign. You can specify valid segment values or set up criteria to validate the entry of
any value.
Segment
For a key flexfield, a segment is a single piece of the complete code. For a
descriptive flexfield, a segment is a single field or a single attribute of the entity. A single
column in a table represents a segment.
Combination
For a key flexfield, a combination of segment values that make up the complete
code or key.
Structure
A flexfield structure is a particular arrangement of flexfield segments.
Combinations Table
For a key flexfield, a database table you include in your application to store valid
combinations of key flexfield segment values. For Example in GL (Accounting Flex
Field) combinations table is GL_CODE_COMBINATIONS.
Combinations Form
For a key flexfield, a combinations form is the form whose base table (or view) is
the combinations table.
Dynamic Insertion
Dynamic insertion is the insertion of a new valid combination into a key flexfield
combinations table from a form other than the combinations form.
Flexfield Qualifier
A flexfield qualifier identifies a segment your end user should define when
customizing your key flexfield. By specifying flex field qualifiers whe n you build your
application, you ensure your end user customizes your flex field to include key segments
that your application needs.
Segment Qualifier
A segment qualifier describes characteristics of key segment values. You use
segment qualifiers to obtain information about segment values your end user enters while
using your application.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Steps involved in implementing DFF:
For Example:
CONNECT INVDEMO/INV;
CREATE TABLE KK_DFF
(VEND_CD VARCHAR2(7),
VEND_NAME VARCHAR2(20),
VEND_ADD VARCHAR2(30),
ATTRIBUTE_CATEGORY VARCHAR2(30),
ATTRIBUTE1 VARCHAR2(30),
ATTRIBUTE2 VARCHAR2(30),
ATTRIBUTE3 VARCHAR2(30),
ATTRIBUTE4 VARCHAR2(30),
ATTRIBUTE5 VARCHAR2(30),
ATTRIBUTE6 VARCHAR2(30),
LAST_UPDATE_DATE DATE NOT NULL,
LAST_UPDATED_BY NUMBER(15) NOT NULL,
LAST_UPDATE_LOGIN NUMBER(15),
CREATED_BY NUMBER(15) NOT NULL,
CREATION_DATE DATE NOT NULL,
CONSTRAINT PK_VEND_CD PRIMARY KEY (VEND_CD));
declare
name varchar2(30) :=upper('&name');
j number :=0;
cursor c1
is
select column_name, data_type, data_length, nullable
from all_tab_columns
where table_name =name;
begin
ad_dd.register_table('inv',name,'t',512,15,78);
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
for i in c1 loop
j :=j+1;
ad_dd.register_column('inv',name,i.column_name,j,i.data_type,
i.data_length,i.nullable,'n');
end loop ;
j :=0;
name :=null;
commit;
end;
CONNECT APPS_APPDEMO/APPS
CREATE SYNONYM KK_DFF FOR INVDEMO.KK_DFF;
declare
Name varchar2(30) := upper('&name');
j number := 0;
cursor c1 is select column_name, data_type, data_length, nullable
from all_tab_columns where table_name = Name;
begin
ad_dd.DELETE_table('ITM1',NAME);
for i in c1 loop
j := j + 1;
ad_dd.DELETE_column('ITM1',NAME,i.column_name);
end loop;
j := 0;
name :=null;
commit;
end;
3. Develop your form with two additional non-database columns for invoking DFF.
KK_DFF.KK_FLEX ('WHEN-VALIDATE-ITEM');
KK_DFF.KK_FLEX ('WHEN-New-ITEM-Instance');
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
PACKAGE KK_DFF IS
PROCEDURE KK_FLEX (EVENT VARCHAR2);
END;
PROCEDURE KK_DFF_Q IS
BEGIN
FND_FLEX.EVENT ('POST-QUERY');
END;
PROCEDURE KK_ST IS
BEGIN
FND_DESCR_FLEX.DEFINE (BLOCK=>'KK_DFF',
FIELD=>'DFF_VALUES', DESCRIPTION=>'DFF_DESC',
APPL_SHORT_NAME=>'INV', DESC_FLEX_NAME=>'KK_DFF');
END;
* NOTE --> You have to write two Field level triggers for the field you want to populate
the DFF: --
When-New-Item-Instance
--FND_FLEX.EVENT ('WHEN-NEW-ITEM-INSTANCE)
When-Validate-Item
--FND_FLEX.EVENT ('WHEN-VALIDATE-ITEM')
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Steps involved in implementing a flexfield:
3. Create synonyms for the table as well as the sequence in the APPS_APPDEMO user.
Table is registered for unique index.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
KFF FOREGIN KEY FORM
Steps: --
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
8. CONCURRENT PROCESSING
Concurrent Manager:
Concurrent Process:
Concurrent Program
A concurrent program executable links an execution file or and the method used to
execute it with a defined concurrent program. Under Concurrent Processing, an execution
method may be a program written in a standard language, a reporting tool, or an
operating system language. An execution method can be a PL/SQL Stored Procedure, an
Oracle Tool such as Oracle Reports or SQL*Plus, a spawned process, or an operating
system host language.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
For example, you run a Pro*C program by invoking it on the command line. You
run a SQL script by running SQL*Plus and passing the name of the SQL script without
the sql extension.
Execution method
The execution method identifies the concurrent program executable type and the
method Oracle Application Object Library uses to execute it. An execution method can
be a PL/SQL stored procedure or Oracle tools such as Oracle Reports or SQL * Plus a
spawned process or an operating system host language.
A concurrent program that runs in a separate process (on most operating systems)
than that of the concurrent manager that starts it.
You write spawned concurrent programs as C or Pro*C stand–alone executable
files. On some operating systems, you can also write spawned concurrent programs in
your operating system language.
Spawned concurrent programs are the recommended execution method for new C
or Pro*C execution files.
A concurrent program, which runs in the same process as the concurrent manager,
that starts it. They are written as C or Pro*C subroutines and attach them to a concurrent
program Library. This concurrent program Library should be attached to the particular
concurrent manager.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Program Library
Request Type
A request type group’s similar concurrent programs to save time in defining and
maintaining concurrent managers.
Parent Request
Logical Database
A logical database is a set of logically related data stored in one or more ORACLE
IDs. Concurrent managers use logical databases to determine the scope of concurrent
program compatibilities. When you define a concurrent program, you specify what
programs are incompatible with this program and cannot run together with this program
in the same logical database.
A user in a logical database submits a concurrent request to run a concurrent
program. If a concurrent manager that can process your request finds that there are no
incompatible programs currently running in the user’s logical database, then the
concurrent manager processes the concurrent request. Concurrent managers use logical
databases to ensure that incompatible programs do not run together.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
9. FUNCTION SECURITY
1. Group the forms and functionality of an application into logical menu structures
that will appear in the Navigator
2. Assign a menu to one or more responsibilities
3. Assign one or more responsibilities to one or more users
Function
A form function (form) invokes an Oracle Forms form. Form functions have the
unique property that you may navigate to them using the Navigator window.
Menu
Menu Entry
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Responsibility
The functions that the user may access. The menu determines functions assigned to the
responsibility.
The concurrent programs such as reports that the user may run (request security Group).
The application database accounts that forms, concurrent programs, and reports connect
to (data group).
10. LOOKUPS:
It’s nothing but a set of codes with description. Lookups of AOL can replace list item of
FORMS. These values can be identified by a name. Since it is registered with AOL it’s
accessible throughout oracle applications. If the Lookup is registered in system level, you
cannot add more codes to it. Instead, if it’s in the user level you can add more codes.
When a lookup is registered with AOL, the values are stored in %_LOOKUPS table.
These lookups can be used for fields in the form. You just have to retrieve the data from
the corresponding table depending upon the lookup type. Lookup type will be the name
of your lookup.
11. ATTACHMENTS
The attachments feature enables users to link unstructured data, such as images,
word processing documents, spreadsheets, or text to their application data. For example,
users can link images to items or video to operations as operation instructions.
Document
Entity
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Attachment
Attachment Function
A form or form function in your application cannot use attachments until the
attachments feature is set up for that form or function; that is, it must be defined as an
”attachment function” in the Attachment Functions window.
Document Category
CODING STANDARDS
To develop a form that follows Oracle Applications standards, you organize your form
code into PL/SQL business rule procedures, field handlers, event handlers, and table
handlers.
You put very little PL/SQL code directly into form triggers because those triggers
do not represent a logical model; they are simply event points that Oracle Forms provides
for invoking procedural code. If you put most of your code in PL/SQL procedures, and
then call those procedures from your triggers, you will have modular form code that is
easy to develop and maintain.
You my write any PL/SQL procedure that helps you modularize your form code.
For example, a field handler, event handler, or business rule procedure may actually
consist of several smaller procedures.
Be sure to group these smaller procedures into logical packages so their purpose is
clear.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
General PL/SQL Coding Issues:
PL/SQL procedures should always be defined within packages. Create a package for each
block of a form, or other logical grouping of code.
Package Sizes:
A client–side PL/SQL program unit’s source code and compiled code together
must be less than 64K. (A program unit is a package specification or body or stand–alone
procedure.) This implies that the source code for a program unit cannot exceed 10K.
Keep the number of procedures in a package less than 25 to avoid exceeding the 10K
limit.
Always specify field names completely by including the block name (i.e.,
BLOCK.FIELD_NAME instead of just FIELD_NAME).
Pass field names to procedures and use COPY to update field values instead of
using IN OUT or OUT parameters. This method prevents a field from being marked as
changed whether or not you actually modify it in your procedure. Any parameter declared
as OUT is always written to when the procedure exits normally.
Using DEFAULT
Use DEFAULT instead of ”:=” when declaring default values for your parameters.
DEFAULT is more precise because you are defaulting the values; the calling procedure
can override the values.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Conversely, use ”:=” instead of DEFAULT when declaring values for your constant
variables. Using ”:=” is more precise because you are assigning the values, not defaulting
them; the values cannot be overridden.
Global Variables
Oracle Forms Global: a variable in the ”global” pseudo–block of a form PL/SQL Package
Global: a global defined in the specification of a package Oracle Forms Parameter: a
variable created within the Oracle Forms Designer as a Parameter
Procedures that call Oracle Forms built–ins (more generally, client built–ins) must reside
on the client.
If a procedure contains three or more SQL statements, or becomes very complicated, the
procedure usually belongs on the server.
Procedures that perform no SQL and that need no database access should reside wherever
they are needed.
If a procedure is called from the server, it must reside on the server. If a procedure is
called from both client and server, it should be defined in both places, unless the
procedure is very complicated and double maintenance is too costly.
In the latter case, the procedure should reside on the server.
Within a package, define private variables first, then private procedures, and finally
public procedures.
Always end procedures and packages by following the ”end” statement with the
procedure or package name to help delineate procedures.
Indent code logically. Using increments of two spaces provides an easy way to track your
nested cases.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Indent SQL statements as follows:
Example
DECLARE
CURSOR employees IS
SELECT empno
FROM emp
WHERE deptno = 10
AND ename IN (’WASHINGTON’, ’MONROE’)
AND mgr = 2701;
Use ”– –” to start comments so that you can easily comment out large portions of code
during debugging with ”/* ... */”.
Indent comments to align with the code being commented.
When commenting out code, start the comment delimiter in the leftmost column. When
the code is clearly no longer needed, remove it entirely.
Use uppercase and lowercase to improve the readability of your code (PL/SQL is case–
insensitive). As a guideline, use uppercase for reserved words and lowercase for
everything else.
Avoid deeply nested IF–THEN–ELSE control. Use IF–THEN–ELSIF instead.
View
If (error_condition) then
fnd_message.set_name('prod', 'message_name');
fnd_message.error;
RAISE FORM_TRIGGER_FAILURE;
end if;
If (error_condition) then
fnd_message.set_name('prod', 'message_name');
APP_EXCEPTION.RAISE_EXCEPTION;
end if;
Do not use CALL_FORM or OPEN_FORM
Use FND_FUNCTION.EXECUTE
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Handlers:
Handlers are centralized piece of code that deals with a specific event or item or table.
These are packaged procedures called from triggers.
Easy to work with self contained code. All the code that affects an entity appears
in one place for easy development and maintenance.
Types of handlers
Item handlers take an EVENT parameter that identifies the trigger calling the item
handler.
Named after the block (or form in the single block case).
Procedures named after their particular item.
Item handler
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Common item handler events include:
WHEN-VALIDATE-ITEM:
Call an item handler to validate and set the dynamic item attributes.
WHEN-NEW-RECORD-INSTANCE
INIT
Complex cross item behaviors indicate an event handler that calls item handlers when
necessary.
Name your event handler after the trigger (the event) it handles.
Event handler
Table handlers support Insert, Update, Delete and locks for your block level views.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Question and Answers
Major features
Ø Online requests.
Ø Automatic scheduling.
Ø Online request review.
Ø Simultaneous queuing.
Ø Multiple concurrent programs for each executable.
A concurrent program that runs in a separate process than that of the concurrent manager
that starts it.
Example:
Purging (Automatic deletion of files) process on backend. Because it started by oracle but
it is running on Unix Os.
A concurrent program that runs in the same process as the concurrent manager that starts
it. E.g. C & Pro *C routines.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
5. How Concurrent manager ensures that incompatible programs do not run
together?
Identify programs that should not run simultaneously with your concurrent program
because theymight interfere with its execution. You can specify your program as being
incompatible with itself.
It uses logical database (it is a set of logically related data). When you define a
concurrent program, you specify incompatible programs in the same logical database.
Ø Flex Report.
Ø Flex SQL.
Ø Host.
Ø Oracle Reports.
Ø PL/SQL Stored Procedure.
Ø SQL *Loader.
Ø SQL *Plus.
Ø Spawned (C or PRO* C).
Ø Immediate (PL/SQL or spawned C).
Ø Request set Stage Function.
7.What is a FlexField?
A FlexField is a field made up of segments. Each segment has a name, and a set of valid
values.
There are two types of FlexFields: Key FlexFields. Descriptive FlexFields.
8.What are the differences between Quick Pick & Quick Code?
Both are the different types of List of Values provided by Oracle Application Library.
Ø Quick Pick is variable because it selects values from user-defined tables.
Ø Quick Code is static. It selects values from system table called FND_LOOKUPS.
Quick Code is faster then Quick Pick because it uses internal CACHE.
9.What is MultiFlex?
MultiFlex lets you define multiple segment structures for the same FlexField. Your
FlexField can display different prompts and fields for different end users based on a data
condition in your form or application data. This feature is sometimes called MultiFlex.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
10.What is descriptive FlexField? Why do you need a descriptive FlexField?
A column you include in a generic combination table in which your FlexField derives a
segment qualifier value. You can specify the name of a derived column when you define
a segment qualifier.
12.What are the security rules? If you attach the same value set to two different
FlexField, will the security rule be applied?
Security rules are the rules, which contains set of values to be included and excluded for
a value set. You can restrict the user from entering those values, for which security rules
are attached for a responsibility and value set. There can be any number of security rules
for a value set. After assigning a security rule to a value set, you need to enable security
property in the value set and segment where that value set is attached, and freeze that
FlexField. Then only this security rule will be applied.
You can attach a value set to any number of segments, report parameters. Where you
have attached that value set, that security rule will be applied.
13.What will you do if you want to navigate to the next segment automatically after
entering a valid value to the current segment?
You or your end users can set up your FlexFields to save your user's keystrokes by
automatically skipping to the next segment as soon as they have entered a valid value into
a segment. Simply set the profile option FlexFields Autoskip property to ‘Yes’.
Set the profile option FlexFields: Autoskip to No if you want to type [Return] to get to
the next segment after entering a value.
14.What is a combination table? What are the types of combination table? Why do
you use it?
A database table you include in your application to store valid combinations of key
FlexField segment values. You create a combinations table for each key FlexField you
want to use. This is the same table you use as your entity table.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Key FlexFields support two types of combinations tables -- generic and specific. You
should use a generic combinations table if you want your application to accept new valid
combinations you or your end users have not predefined. You can use a specific
combinations table (or you can choose to not allow dynamic inserts when you set up your
key FlexField) if you want your application to accept only those combinations that you or
your end users have predefined.
15. Why do you need a structure id column? Is it a must that you should have a
structure id column in your table?
A column you include in a combination table or entity table so you can use the
MultiFlex feature. You can construct your application so that it places a value in a
structure-defining column to determine the FlexField segment structure your end
user sees.
No.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
18. What are the factors to be taken care if you want a dynamic insertion of the
combinations?
If you want your application to allow dynamic insertion of new valid combinations,
the following factors should be taken care
1.You must not include any mandatory application-specific columns in your
combinations table.
2. You can include non-mandatory columns to the table.
Popid pops up a key FlexField window so your end user can enter segment values,
loadid displays key segment descriptions when your end user queries your form,
and valid validates the segment values and checks cross-validation rules.
20.What option you give if you want your FlexField to display all but the first
segment?
You can use DISPLAYABLE as a toggle switch by specifying more than one
value, separated by \\0 delimiters. For example, if you want your flexfield to
display all but the first segment, you would specify:
DISPLAYABLE=> ’ALL\\01’
Note that \\0 separates 1 from ALL.
21.How can you prevent your user from updating or inserting values for any
segment?
You can enter UPDATEABLE => ‘’ and INSERTABLE => ‘’(two single quotes)
to prevent your user from updating and inserting values for any segments.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
22.What will you do if you want your user to be able to update all but the first
segment?
You can use UPDATEABLE as a toggle switch by specifying more than one
value, separated by \\0 delimiters. For example, if you want your flexfield to
display all but the first segment, you would specify:
UPDATEABLE => ’ALL\\01’
Note that \\0 separates 1 from ALL.
23.What is the default title of your FlexField popup window? How can you change
that?
24. If you have more than one structure how can you assign structure numbers to
your structure ids?
The structure number that identifies your key flexfield structure. You can specify the
non-displayed database :block.field that holds the identification number of your flexfield
structure. You may also specify :$PROFILES$.your_profile_option_name to retrieve a
value you set in a user profile option.
You can hardcode a structure number, such as 101, into this parameter instead of
providing a field reference, but such a number prevents you from using multiple
structures for your flexfield. You must use this option if you are using multiple structures.
You can use the following SQL statement to retrieve the structure identification numbers
for your FlexField:
Where FlexField code is the code you specify when you register your FlexField.
25.What will you do if you don’t want your user to query the existing code
combinations?
QUERY_SECURITY = “Y”
26.How can you give your own message if you enter an invalid combination?
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
27. If you give - value required is yes while defining and in the trigger you give allow
nulls = “Y”, which one will take a precedence?
28. Can you recompile all of your pr eviously defined frozen FlexFields at one time
without de freezing it?
Yes. In the operating system prompt you can do this. The command varies according to
the operating system.
29. How many DFFs and KFFs you can have in a table?
More than 1, according to the restrictions on the segment column and attribute columns
and max number of columns allowed in a table
30. Will there be any effect if you add additional segment columns in your table
after registering your FlexField.
31. What is the maximum number of attribute columns you can have in a table?
200
32. Can you give your Descriptive FlexField table name a string containing _srs_?
Why?
No. Oracle Application Object Library reserves table names that contain the string
"_SRS_" for the Standard Report Submission feature, so you should not give your
descriptive FlexField table name that includes this string.
33. Is it a must that in the Descriptive FlexField form you should have single
character Descriptive FlexFields?
34. How can you prevent displaying context value in the FlexField popup window?
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
35.Describe Running Totals.
For a form that has more than one of a particular numerical value (for example, the
monetary amount for each order line on an order form), a running sum is the total of all
the values. The running sum is updated every time a change is made to the amounts being
summed.
For a form that has more than one of a particular item (for example, the order lines on an
order form), a running count is the total number of all the items. The running count is
updated every time you insert or delete an item.
You can implement Running Totals using either a database or a non-database field to
store the running sum or count.
39.Which implementation gives better performance for a large record set- database
field or non-database?
When you select the running sum or counts of items into a non-database field, running
total calculates the sum or count each time the master record is queried.
When you query the master record, the sum or count is queried directly from the
database, and is not recalculated from the record set which comprises it.
#FND DEFINE_RUNTOT
RUNTOT_NAME="running_total_name"
SQL="SQL_select_statement"
[TOTAL=":master.sum"]
[COUNT=":master.count"]
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
[QUERY_TOTAL="{Y|N}"]
[QUERY_COUNT="{Y|N}"]
#FND FIELD_INFO
ZONENAME="detail_zone_name"
FIELDNAME="item_to_be_summed_or_counted_field_name"
RUNTOT_NAME="running_total_name"
40.How do you update running sum immediately when the line amount changes
rather than waiting until your user leaves the record?
41.To calculate running total for a order value which is in a control block
FND_STARTUP
Step 1
#FND DEFINE_RUNTOT
RUNTOT_NAME="my_running_total"
SQL="select sum(nvl(amount,0))
into:control.total
from order_lines
where order_id=:control.order_id"
TOTAL=":control.total"
QUERY_TOTAL="Y"
Step 2
#FND FIELD_INFO
ZONENAME="order_lines"
FIELDNAME="amount"
RUNTOT_NAME="my_running_total"
Now add trigger steps that cause Running Totals to execute the SQL statement to obtain a
new running total each time your user chooses a new value for "order_number".
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Method-1
If you need to update only one running sum or count when the value in a control zone
field changes, use a FIELD_INFO step in FND_STARTUP:
Trigger Name
FND_STARTUP
#FND FIELD_INFO
ZONENAME="control"
FIELDNAME="order_number"
QUERY_RUNTOT="my_running_total"
(Note - this is the required step)
Method-2
If you need to update more than one running total when the value in a control zone field
changes, then from your FND_POST_CHANGE trigger on that control zone field call the
user exit
Trigger Name
Step 1
#FND RUNTOT QUERY
RUNTOT_NAME="my_running_total_1"
Step 2
#FND RUNTOT QUERY
RUNTOT_NAME="my_running_total_2"]...
Step n
[#FND RUNTOT QUERY
RUNTOT_NAME="my_running_total_n"]
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
43. What is the advantage of using max (seq no col) over count (*) method?
If a user queries 3 records with seq no's 1,3,4 then count (*) sets next seq no to
4(duplicate) max seq no sets to 5 which implies that max (seq _col) method avoids
producing a duplicate seq no immediately upon query.
44. Is it possible to ZOOM from any field of source form to destination form?
Yes, by selecting only form name in ZOOM source and leave ZONENAME and
FIELDNAME blank.
Ø START ZOOM.
Ø QUERY.
Ø END ZOOM.
46.Is it possible to make the destination form as QUERY ONLY while ZOOM to
that form and allow all ope ration while go to that form through menu??
Ø Create two NDB fields, one in page 0 number field fnd_rec_id, other in the page 1
character field, in the same name of long column.
Ø In prefield trigger of NDB long column, check whether it is query mode and call
user exit fnd texted
Ø In fnd post_insert and post_update call the user exit store_long, to store the long
column value in the database.
Ø As the long column in the block is a NDB field, in the post change of that field, you
need to change the status of that block, so you need to copy the value of a DB field
into that same field, then block status will be changed.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
48. How do you add text lines to a long field?
49. How do you add temporary, non-updateable text lines to a long field?
50. How do you delete temporary text lines from a long field?
#FND DELTEMP
51. How do you add text lines from a file to a long text field?
#FND UNIQUEID
Max no's up to - two billion (2,000,000,000).
Trigger name:
FND_PRE_INSERT
#FND UNIQUEID table_name field
table_name = Name of the table that holds your unique ID column.
Field = :block.field to receive unique ID.
54. Why are seq no's faster than unique id's 'cause
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
55. What are the sequence parameters?
Ø Start With: Enter the first number that this sequence should generate. The value in
this field must always be between the minimum value and maximum value
inclusive.
Ø Minimum Value: This value is the lower bound for the sequence. You must enter a
Minimum Value that is less than the Maximum Value.
Ø Increment By: Enter the interval between sequence numbers. The increment can be
positive or negative. If you enter a negative value, then the sequence descends. If
you enter a positive value, the sequence ascends. You cannot enter a value of zero.
Ø Maximum Value: This value is the upper bound for the sequence. You must enter a
Maximum Value that is greater than the Minimum Value. The default value is
2,147,483,647.
Ø Cycle: Enter ‘Yes’ if you want the sequence to generate additional numbers when
the end of the sequence is reached.
Ø Guarantee Order: Enter ‘Yes’ if you want the sequence to generate numbers in
order of request. Otherwise enter No.
Ø Cache Size: Enter the number of sequence numbers to cache in memory, resulting in
faster generation of sequence numbers. You must enter a value greater than or equal
to 0. The default value is 20.
Two cases -
Ø Previous field uses autoskip attribute
Ø If a user leaves a record without entering a mandatory field then form places the
cursor into the field without firing key_prefield
57. What will happen in case, where your last field of a zone is Descriptive
FlexFields and there is a next zone as well? Your Descriptive FlexFields is not
enabled and you have used FND_FIELD attribute in second step.
The cursor will go in infinite loop and the form will appear to be hanged.
58. If your detail zone in a master details has first field as FlexField than what
happens.
The form does not function well as while navigation to detail zone the FlexField window
pops up. To avoid this you add a single character non-database field concatenated with
your first field of detail zone. For this echo should be off, and insert allowed.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
59. What is user exit and its advantages in AOL.
Its advantages:
Ø FND IF CALLQUERY
Ø FND IF ANYQUERY
Ø FND IF QUERY
1.2.Shared Zooms:
You can assign same zoom to several forms
1.3.Zoom Browse:
Allows the user to navigate anywhere in the application and return to the form
from which the browsing began.
1.4.Brief:
1.4.1.To suspend processing in one form and make a side trip to work in
another form then return to the original form and resume processing.
1.4.2.To easily move among related forms.
1.4.3.To carry data between forms and return to the original form without
sacrificing the data entered in the original form.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
63. What do you mean by EXAMINE and why it is used?
Examine is a development utility that helps you test and debug your forms. You can
use Examine to check the values of hidden and displayed fields, SQL *Forms system
variables, SQL *Forms global variables, user profile opt ions, SQL *Plus variables,
and operating system environment variables while you develop and test your form.
64. Automatically when you zoom to a form from a field, How do you restrict the
user to edit, but when you zoom through menu options no restriction to the user?
Using #FND IF ZOOM
66. How the data will be carried from fields in your source form to fields in your
destination form whenever a StartZoom occurs?
68. Can we use Examine to change the values in form fields, global variables,
environment variables, and certain profile options?
Yes
69. Can you have a SQL statement or other code in your Zoom steps?
No
If you choose "GENERIC", Oracle Application Object Library executes the particular
Zoom you specify in the [APPS = application_short_name] and [ZOOM =
zoom_name] arguments.
This option allows you to use a particular Zoom from any context. Typically, you
choose "GENERIC" if you want to execute your Zoom when your end user chooses a
menu option you define.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
71. To query the data automatically when your user enters the destination form,
which Zoom event we use?
Query event
72. To specify constant criteria for every query your user executes while in the
destination form, which option you select in the 'Execute' field of the Define
zoom form?
Always
73. Under which zoom event you write the code to copy data from the destination
form back to the source form.
Endzoom event
#FND UNIQUEID
Max no's upto - two billion (2,000,000,000).
Trigger name:
FND_PRE_INSERT
#FND UNIQUEID table_name field
When we are attaching the form to a menu in TYPE field we have to select ac tion
type as 'Query form'
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
79. How many Quick codes can be defined in a single quick code?
200
80. What are the steps to be followed while registering the new applications?
Before using 'Register application' form to register your application, you should
perform the following step:
You assign your custom forms to a particular application. When you register your
application, you give it a long name, a short name, a prefix, base path (Bin Directory
path where the applications files will be stored), description, as well as a place in your
system where Oracle Application object Library can find it.
ØUse your custom application's application short name as the ORACLE ID for easy
identification. You must register your ORACLE ID with Oracle Application
Object Library.
ØAdding Responsibilities.
You can define new responsibilities using the Define Responsibility form in the
System Administrator responsibility.
ØYou should create new responsibilities for your custom menus and forms. You can
associate these custom responsibilities with your custom application
ØDefine the user under the HR responsibility and attach the users to the required
responsibilities.
Ø During your implementation, you set a value for each user profile option in Oracle
Inventory to specify how Oracle Inventory controls access to and process data.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
81. To have our own quick codes table what are the steps to be followed?
ØCreate your own QuickCodes table called XXX_LOOKUPS, where XXX are
characters you choose that refer to your application. Your table name must end
with the string '_LOOKUPS' otherwise Oracle Application Object Library does
not recognise it as a QuickCodes table.
ØYour table must contain the same columns as FND_LOOKUPS.
Columns for XXX_LOOKUPS Table
LOOKUP_TYPE VARCHAR2(30) NOT NULL
LOOKUP_CODE VARCHAR2(30) NOT NULL
LAST_UPDATE_DATE DATE NOT NULL
LAST_UPDATED_BY NUMBER(15) NOT NULL
MEANING VARCHAR2(80) NOT NULL
ENABLED_FLAG VARCHAR2(1) NOT NULL
START_DATE_ACTIVE DATE
END_DATE_ACTIVE DATE
CREATED_BY NUMBER(15)
CREATION_DATE DATE
LAST_UPDATE_LOGIN NUMBER(15)
DESCRIPTION VARCHAR2(80)
83. What is the significant difference between descriptive FlexField and Key
FlexField?
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
84. Can you attach more than one segment qualifier to a FlexField qualifier? If yes
why do you do it? How does it differ?
Yes, You can assign one or more segment qualifiers to each FlexField qualifier. A
segment qualifier applies to specific values your end user defines using the Define
Key Segment Values form. Segment qualifiers expect QuickCode values.
For example, if you have a segment qualifier called "Account Type" you might want a
Special QuickCode type called "ACCOUNT_TYPE" that has several codes and
meanings.
You define Special QuickCode values using the Define Special QuickCode form.
You can also create a profile option at run-time with this routine.
Syntax: #FND PUTPROFILE NAME="option_name"
FIELD="block.field"
CREATE="{Y|N}"
WRITE="{Y|N}"
READ="{Y|N}"
CLEAR="{Y|N}"
Concurrent Programs who columns, Program Id, Program application id, request id,
Program Update Date.
All the tables of flex fields
DEFN - FND_ID_FLEXS
FLEXFIELD QUALIFIER - FND_SEGMENT_ATTRIBUTE_TYPES
SEG QUALIFIER - FND_VALUE_ATTRIBUTE_TYPES
STRUCTURES - FND_ID_FLEX_STRUCTURES
SEG DEFN - FND_ID_FLEX_SEGMENTS
VALUE SETS DEFN - FND_FLEX_VALUE_SETS
VALUE SETS VALUES - FND_FLEX_VALUES
CROSS VALIDN RULE - FND_FLEX_VALIDATION_RULES
CROSS VALIDN ELE - FND_FLEX_VALIDATION_RULE_LINES
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
93. What is FlexField qualifier? Where the values are stored?
FlexField Qualifier describes the key segments that your end users should define while
customising key FlexField, by specifying FlexField qualifier, you ensure that your end
users that when he customises he includes the key segments that your application needs.
Ex. If you are designing a accounting Key FlexField, you need to have one segment for
account, one for balancing, so you define two FlexField qualifier while designing Key
FlexField, so that you ensure that your FlexField should have these two segments.
The Values Are Stored in FND_SEGMENT_ATTRIBUTE_TYPES
Using Macros, you define a Macro calling CONCSUB program, and call that CONCSUB
macro from the Menu.
96. What are security rules? If I attach the same value set to two different FlexField,
will the security rule be applied?
Security Rules are the rules, which contains set of values to be included and excluded for
a value set. You can restrict that user cannot enter those values, security rules are
attached for a responsibility and for a value set, and there can be any number of security
rules for a value set.
After assigning a security rule to a value set, you need to enable security property in the
value set and segment where that value set is attached, and freeze that FlexField. Then
only this security rule will be applied.
You can attach a value set to any number of segments, report parameters. Where you
have attached that value set, that security rule will be applied.
97. What is the parameter you pass at runtime through sqlldr from a concurrent
program?
You can either pass a parameter; it will take data file mentioned in the control file or the
data file you pass.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
98. How you load data from a flat file to interface table through concurrent
program?
You define a concurrent program, executable as sqlloader, file name of control file, this
control file should be there in application's bin directory i.e GL_TOP/bin and you give
the parameter of data file name, and run that concurrent program
99. What are the requirements you need to know while registering an application?
100. You have 100 forms; you need to give access of 10 forms each to 10 users, and
all 100 forms to one user? How you do it?
I will define 10 menu's each with 10 forms, then I will define 10 responsibilities, and
attach 10 different menu's to 10 different responsibilities, and I define a menu in which I
will attach all the 10 menu's under that menu, and I create a responsibility under which I
will attach this menu.
Quick code loads the data into the cache memory, that's the reason it is very fast.
104. Suppose you are submitting 100's of reports through a month, now you want
status of the reports, from which table you can get that info?
fnd_concurrent_requests
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
105. Suppose you have submitted 1000 concurrent program, they are in queue.
Power goes off? What happens to your concurrent program?
It will be there in the queue, and when that Concurrent Manager becomes active, that
program will start running, as it will be there in concurrent_program_queue table it will
be re submitted.
106. How do you compile the menu dynami cally at run time?
#fnd menu check
107. How you will check that you are now in a form, which is called from menu or
zoomed?
#fnd if zoom
108. You have big complex query, you need to use it in your apps, at several places,
how?
Named Sql
109. What are the things you attach when you create a new responsibility?
ØApplication
ØStart Date
ØData Group
ØOracle Id
ØMenu
ØFirst form
ØReport Security Group.
It is the menu, which you attach to a responsibility, it is the menu which has Navigate as
first prompt, which will call all other submenus.
A responsibility defines:
ØApplication database privileges
ØAn application's functionality that is accessible
ØThe concurrent programs and reports that are available
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
113. When start zoom event will get fired?
fnd_standard_startup
Definition
- FND_DESCRIPTIVE_FLEXS
CONTEXT FLD VALUES - FND_DESCR_FLEX_VALUES
Segment definitions
- FND_DESCR_FLEX_COLUMN_USAGES
VALUE SETS - FND_FLEX_VALUE_SETS
REF FIELDS - FND_DEFAULT_CONTEXT_FIELDS
115. What are report groups? Where you define? How you define? What are the
zones in report groups declaration forms?
Report groups are used to control access to reports and concurrent programs. Only a
System Administrator can define a report group.
To identify the execution file for a concurrent program and in another way we can say as
follows:
Concurrent program executables allow you to use the same execution file for multiple
concurrent programs. To create specialized versions of a concurrent program, either
define a new concurrent program using the same executable, or copy the concurrent
program. You can specialize a concurrent program by required printers, specialization
rules, or application name so that the concurrent programs run using the same execution
file but with different parameters.
117. What does AOL do for Oracle Apps? or What is the role of AOL in APPS?
ØAdministration facilities
ØValue added features of Oracle Apps such as Easy Form & FlexFields
ØConcurrent processing
ØStandard Report submission
ØUser Profiles
ØSecurity of the Applications
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
118. Describe the Normal Cycle of Development using AOL's Easy Form?
119. Name few important AOL routines used for implementing Quick Pick
120. If you are not defining Quick Pick at form level which trigger needs to be
defined at field level?
FND_FKEY
122. What is the AOL routine, which executes a Quick Pick definition?
#FND FKEY LISTVAL
123. If you want different Quick Pick's to be displayed according to some condition,
how will you manage that?
124. If you want your users to enter new values for your Quick Pick field what will
you do?
Match = "N"
A SQL*Forms macro is a predefined form action that is invoked from a form trigger with
the "#EXEMACRO" command or, when registered with Oracle Application Object
Library, from application menus.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
126. Define a WHO column?
Columns you add to a table for display of information on creation and last update of a
row. If you add WHO columns to an existing table, you have to make even the mandatory
WHO column as NULL allowed. If the table is a Key FlexField combination table, you
should always define them as NULL allowed.
WHO columns help in display of creation/updation info of a row which helps in audit of
data in a business.
128. What are the possible registrations under Database category in AOL?
130. What is extended WHO info? How to provide Extended WHO info?
If you want to see extended Who information in the Who pop-up window, you must add
the LAST_UPDATE_LOGIN column to your tables. The additional Who information
includes the operating system logon, terminal identification, and session number of the
user who last updated a row. To see extended Who information, your system
administrator must turn on Sign-On Audit and set the profile option Who:Display Type to
"Extended".
131. If you need to place the message text in a form field, What needs to be done?
CLRZONE lists the zone names to be cleared when you query a new row / clear the zone
of context
This determines whether addition of new rows to be allowed or not. If the form is based
on a view which joins 2 or 3 tables, if you set this as N, you cannot navigate between the
queried rows so you should use NEWRECORDS=:block.database_field_name
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
134. How will you identify indexes of your table via AOL?
Some repeatedly used QuickPick logic is named and stored in the database. Forms can
reference this "Named SQL" logic in their QuickPick definitions. Named SQLs share
QuickPicks across forms. The stored logic includes a SELECT statement, ENTRY &
QUERY validation, and an ORDER BY clause. When form triggers reference the Named
SQL, the trigger specifies the application and name of the Named SQL, as well as the
fields to populate with the results of the SQL logic.
136. What are the two OS files created and maintained by AOL in connection to
Message dictionary?
usaeng.msb/usaeng.msg
You can run any report, report set or concurrent program that your system administrator
includes in your responsibility's RSG.
138. Will your cross-validation rules affect on FlexField combi nations that already
exist?
No.
No.
140. What you have to do if the user want to exit the FlexFields window without
entering any value in the segments?
Required = "N"
Note that even if REQUIRED="N", a user who starts entering segment values for this
FlexField must either fill out the FlexField in full, or abandon the FlexField.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
141. Name some mandatory/non mandatory WHO columns for Key FlexField?
142. How does AOL ensure that segments are attached to FlexField qualifier?
When you try to freeze the FlexField structure and compile that it gives error: Cannot
compile FlexField: FlexFields was unable to freeze FlexField data because of an error.
Template Form is a powerful Oracle Application Object Library feature that simplifies
many of the tedious tasks you perform when building application forms.
It allows you to build and maintain complex forms quickly and efficiently.
In addition, Template Form enforces a standard look throughout your application and
provides many Oracle AOL features within your forms without requiring any
programming.
calendar.show;
The Custom Library receives two different kinds of events, generic and
product-specific.Generic Events are common to all the forms in Oracle applications.
These events are:
When Form Navigate, When New Form Instance, When New Block Instance and etc.
Product Specific Events associated with the business rules of that product.
For example the Navigate event in Oracle Human Resources.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
147. What are the Naming conventions for tables?
Prod_objects: Where prod is the product short name, and objects are the name of the
objects stored in the table and should be plural. PO_VENDORS, AS_LOOKUPS.
No, it is to be written always as part of packages. The size of the package, both source
and object code, should not exceed 64K. Server side procedures do not have a size limit.
When you enter the values in the value set, which was attached to segment in Flex field
segments.
It depends on the number of zones (blocks) in the form. While defining the segments of
the registered DFF in 'Define Descriptive Flexfield Segments' Form, he restrict on dff for
one block by asking the application, form, zone names.
152. In Receivables (character), the 'Enter Credit Memos' (ARXMAECM) form has
two pre-defined flexfields that are currently being used. What are the steps required
to add a third flexfield to this character form?
If you need to add one more base table block(zone) in which you want to define the third
flexfield, you have to define the segment columns in the new table, register it in
apps_appdemo, register the flex field, define the segments and write your form routines.
If the third flexfield has to be in the existing zone (in the existing table) then if there is
any unused (not enabled) segments columns are there, they can be enabled under a new
flexfield and used.
153. What naming convention did you use to name the program, executable, short
name and execution file name?
First determine a short name such as RAX for your project. Use this for all associated
environment variables, etc.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
You can use the Oracle format of RAXSUMCS, where RAX, is for the application,
Revenue Accounting, or AR, SUMCS is for a Summary Customer Screen (not sure actual
title). This really depends on project standards or whatever has been determined for
consistency. You can build some meaning into the naming convention such as,
RAX110CE, where RAX, is short name, 110 is for an Update form only (you can use
100, 200, 300, etc. for different type forms), and CE could be for Customer Entry. Be
creative and consistent. Developers should be using project standards that are understood
by all. Keep it simple.
154. I have had to create some value sets to handle our parameter requirements.
What naming convention did you use to name the value set? What manual can I
reference to find more information on creating value sets?
Be consistent here as well. Has functional team members created any value sets? What
format have they used? You can prefix them with the short name you previously defined
and still keep to a consistent naming convention, either the Oracle defined value sets or
again be creative but consistent.
155. I am doing all this registering, defining, and attaching of custom and modified
reports in our development instance, as well as creating the value sets. Am I going
to have to manually do this in our test and production instances? Is there an
efficient method to keep track of this?
Have you tried to capture the keystrokes for all of the above in an out file using an event
logger? You can setup something like this, aiaf45.exe record=MYSETUPS - this will
capture the events from the above into a file which can be can be used in other
application instances. You can find more info about this in the Oracle forms documents.
Standard property classes for your runtime platform, it has object groups
STANDARD_PC_AND_VA which has the visual attributes and property classes for
implementing user interface, STANDARD_TOOLBAR which contains the windows,
canvasses, blocks and items of the Application.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Toolbar, STANDARD_CALENDAR that contains the windows, canvasses,
blocks, and items of the Application Calendar, QUERY_FIND that contains a window,
canvas, block and items used as a starting point for coding a Find Window.
This object group is copied into each form, rather than referenced so that it can be
modified. It has got additional objects for internal use by Oracle Application only, and
their use is not supported. Specifically the object group STANDARD_FOLDER is not
supported.
APPCORE contains the packages and procedures that are required of all forms to
support the menu, Toolbar, and other required standard behaviors. Additionally it
contains packages that should be called to achieve specific runtime behaviors in
accordance with the Oracle Applications User Interface Standards, such as the way in
which fields are enabled, behaviors of specific types of windows, and the dynamic
’Special’ menu. Finally, it contains various other utilities for exception handling, message
levels, etc.
160. He advises you to use vi ews for LOVs. But in some occasions he doesn't. What
are the occasions?
161. I have implemented Zoom logic. The form is not working properly. Is there
any way to check whether the error is because of wrong application code or the
custom library?
162. What are the generic events that CUSTOM library receives?
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
163. Are there any mandatory settings to be done at form generation time?
Designate the character set designed for you language in the NLS_LANG variable in
your oracle.ini file. You should not set USER_NLS_LANG.
On MS Windows:
Add the line in [Oracle] section of your oracle.ini file:
DEVELOPER_NLS_LANG = "AMERICAN_AMERICA.US7ASCII"
For Unix,
Place the command in the environment script
setenv DEVELOPER_NLS_LANG AMERICAN_AMERICA.US7ASCII.
164. Which are the triggers from which you call the flexfield?
165. What precaution you should take if you write them at block-level?
Set the trigger execution style to "Before" or include these procedure calls in those form
level trigger as well.
166. Which is the property class that TEMPLATE form automatically applies to the
module?
167. Which is the procedure with which you call the flexfield?
FND_FLEX.EVENT (EVENT)
168. In which library the flexfield packages and procedures are included?
FNDSQF
169. Can I set the trigger execution style of any trigger as after?
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
171. What are the important arguments you specify in flexfield definition?
Locations of the ff - block, field including the concatenated values field, and description
field, specific registered ff you want and structure if necessary and any additional
arguments.
FND_KEY_FLEX.DEFINE, FND_DESCR_FLEX.DEFINE.
173. Why do my PLSQL stored procedure concurrent programs error out with:
'Invalid number of Arguments’?
To customize existing reports, the following steps should be taken in 10.6. However, if
you are on 10.7, substitute ar25desb for ar20desb.
4. Modify the program but do not attempt to run the program from within the "ar20desb"
environment because it will fail. Compile the program and exit ar20desb.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
8. If ar20desb is not available, follow the steps below to create it from the "adrelink"
utility:
9. If the report does not run successfully from the concurrent manager, the developer
should go back to an Xwindows session, re-open the report, modify it, and then move
back to the concurrent manager -- repeating until the report performs as expected.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
176. How do I compile a custom C program?
Spawned programs:
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
179. How to register a shell Script as a concurrent Program?
2. Place your unix script in $....._TOP/bin. Add a ".prog" extension to the end of it.
$PO_TOP/bin/extract.prog
Setting this up, means that when you run the "extract" script from the current
manager, the fndcpesr program is run first which splits the parameters and then sends
them to your .prog script (i.e. your actual unix script) as individual parameters rather than
as complete string.
Argument1 $1 user_name/password"
Argument 2 $2 user_id
Argument3 $3 user name
Argument4 $4 Conc Request ID
The above four arguments are created by oracle applications when u create a concurrent
program for any shell script.
The sequence of this argument is same as mentioned above. All the user-defined
arguments are starts from argument5 ($5)
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Shell Script To Run CONCSUB
Argument1 $1 user_name/password"
Argument 2 $2 user_id
Argument3 $3 user name
Argument4 $4 Conc Request ID
The above four arguments are created by oracle applications when u create a concurrent
program for any shell script.
The sequence of this argument is same as mentioned above. All the user-defined
arguments are starts from argument5 ($5)
Argument1 $1 user_name/password"
Argument 2 $2 user_id
Argument3 $3 user name
Argument4 $4 Conc Request ID
The above four arguments are created by oracle applications when u create a concurrent
program for any shell script.
The sequence of these arguments is same as mentioned above. All the user-defined
arguments are starts from argument5 ($5)
For Example:
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Shell Script to send log file contents to a particular user as a mail
tot_read=0
tot_bad=0
tot_dis=0
success=0
tot_read=`cat $INV_TOP/out/l$5\.req|grep read|cut -d":" -f2`
tot_bad=`cat $INV_TOP/out/ l$5\.req|grep rejected|cut -d":" -f2`
tot_dis=`cat $INV_TOP/out/l$5\.req|grep discarded|cut -d":" -f2`
success=`expr $tot_read - $tot_bad - $tot_dis`
echo "total Number of records read...."$tot_read > \tmp\chkmail
echo "total Number of records sucessfully uploaded...."$sucess >>\tmp\chkmail
echo "total Number of records which are bad ...."$tot_bad >>\tmp\chkmail
echo "total Number of records which are discarded...."$tot_dis >>\tmp\chkmail
echo "\n\nThis report is Generated by Vivek ">>\tmp\chkmail
mail $6 < \tmp\chkmail
Note $6 is user mail id
FND_REQUEST.SUBMIT_REQUEST('INV','VV_MAIL','VV_MAIL',
argument1=>to_char(sub_return1),argument2=>user);
If Sub_return = 0 then
Errbuf := 'Error While Sending the Mails to the respective Users’;
retcode := 100;
Return;
Else
Commit;
End if;
Wait_for_req := FND_CONCURRENT.WAIT_FOR_REQUEST(
sub_return, sub_interval,
sub_max_wait,
sub_phase,
sub_status,
sub_dev_phase,
sub_dev_status,
sub_message);
If sub_dev_phase != 'COMPLETED' and sub_dev_status != 'NORMAL' Then
errbuf := 'Error Occured while sending mails to the Users’;
retcode := 103;
return;
end if;
commit;
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
180. How many parameters can be passed to Concurrent Programs?
Determines whether NULLs should be allowed into any segment. ALLOWNULLS only
overrides the segment definition (Value Required is Yes) for each segment if you specify
PARTIAL or NONE for the VALIDATE parameter.
Problem Description
Entering any sort of information into this form will give you the following error:
FRM-40200 Field is protected against update error
Problem Explanation
The form FNDADDTC is a view only form hence the FRM-40200 error occurs.
Solution Description
Register custom tables using the PL/SQL procedures register_table and register_column
in the AD_DD package.
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
182. How to solve the following Problem:
I registered the program properly and when I run the program, I am getting following
message in Log File:
ORA-06512: PL/SQL: numeric or value error
ORA-06512: at "APPS.TEST", 1
Solution:
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited
Oracle APPS Tech
Prepared by
M.KARUPPUCHMAY OCP
This Document is a property of Quest Software Pvt. Ltd. Unauthorized use is prohibited