Libraries – Core

($) Download from $AU_TOP/resource
($) Set FORMS60_PATH on desktop to location of local libraries
($) APPCORE.pll Application Standards, toolbar
   VERT.pll Specific industry features
   GLOBE.pll Global or regional features
     JA.pll Asia/Pacific features
     JE.pll Europe/Middle East/Africa features
     JL.pll Latin America Code
   CUSTOM.pll Customizations of standard forms
($) FNDSQF.pll Flexfields, Profiles, Currency, Concurrent Request Submission, Record History, Message Dictionary
($) APPDAYPK.pll Calendar
($) APPFLDR.pll Packages for Folder Blocks

Libraries – Application Specific

($) Additional libraries attached to TEMPLATE.fmb
($) All libraries are available in $AU_TOP/resource
($) FV.pll Federal Financials
($) HRKPI.pll Human Resources Knowledge Provider
($) GHR.pll Global Human Resources
($) GMS.pll Encumbrances
($) IGILUTIL.pll International Public Sector
($) IGILUTIL2.pll International Public Sector
($) PSAC.pll Public Sector Applications
($) PQH_GEN.pll Public Sector Human Resources
($) PSA.pll Public Sector Applications
($) PSB.pll Public Sector Budgeting
($) OPM.pll Process Manufacturing
($) APPCORE2.pll Application standards (for CUSTOM.pll)
($) List of application specific libraries are not all inclusive
($) Additional libraries are attached based on your implementation
   Multiple Countries
   Oracle Industry Applications
($) Oracle does not support the use of APPFLDR, VERT, GLOBE, PSAC, PQH_GEN, GHR, JA, JE and JL for custom forms


APPCORE: APPCORE contains the packages and procedures that are responsible for the standard ‘Oracle Applications’ behavior of the forms. The forms have to support the menu, toolbar, and other required standard behaviors in compliance with oracle applications. The Oracle Applications forms also have to display specific runtime behaviors in accordance with the Oracle Applications Interface Standards, such as the way in which fields are enabled, behaviors of specific types of windows etc. APPCORE contains the procedures to support this standard runtime behavior. APPCORE also contains various other utilities for exceptional handling, message levels, and so on.

GLOBE: The GLOBE library allows Oracle Applications developers to incorporate global or regional features into Oracle Applications forms
without modification of the base Oracle Applications form. Oracle Applications sends events to the GLOBE library. Regional code can
take effect based on these events. The GLOBE library calls routines in
the JA, JE, and JL libraries.

JE: The JE library contains code specific to the EMEA (Europe/ MiddleEast/ Africa) region and is called by the GLOBE library.

FNDSQF: FNDSQF contains packages and procedures for Message Dictionary, flexfields, profiles, and concurrent processing. It also has various other utilities for navigation, multicurrency, WHO, etc.

JL: The JL library contains code specific to the Latin America region and is called by the GLOBE library.

JA: The JA library contains code specific to the Asia/Pacific region and is called by the GLOBE library.

VERT: The VERT library allows Oracle Applications developers to incorporate vertical industry features (for automotive, consumer packaged goods, energy, and other industries) into Oracle Applications forms without modification of the base Oracle Applications form. Oracle Applications sends events to the VERT library. Vertical industry code can take effect based on these events. The VERT library calls routines in various other libraries.

GHR: The GHR library contains code specific to Event Dispatcher  for HRMS Localization

APPCORE2: There is no basic difference between appcore.pll and appcore2.pll. Appcore2.pll is a replica of appcore.pll. While using custom.pll we can’t reference appcore.pll as it cause cross reference problem so to use appcore.pll in custom.pll we make use of appcore2.pll

HRKPI: This HRKPI library contains packages for humary resource knowledge provider. If the HR_STAND is attached with the form, then this may be must.
PQH_GEN.pll The PQH_GEN library contains code specific to Public Sector Human Resources
PSAC.pll The PSAC library contains code specific to Public Sector Applications
PSB.pll The PSB library contains code specific to Public Sector Budgeting
PSA.pll The PSA library contains code specific to Public Sector Applications
GMS.pll The GMS library contains code specific to Encumbrances
FV.pll The FV library contains code specific to Federal Financials

IGILUTIL.pll The IGILUTIL library contains code specific to International Public Sector

IGILUTIL2.pll The IGILUTIL2 library contains code specific to International Public Sector

OPM.pll The OPM library contains code specific to Process Manufacturing

Overview of the Template Form

The TEMPLATE form is the starting point for all development of new forms. The first step in creating a form for use in Oracle Applications is to copy the template form from $AU_TOP/forms/US, to a local directory and renaming it.

The Template form is unique because it contains some special libraries and triggers that render the application using the template form some standard characteristics. The components of the template form are:

  • References to object groups: The template form contains platform–independent references to predefined standard object groups in the APPSTAND form(STANDARD_PC_AND_VA,STANDARD_TOOLBAR, and STANDARD_CALENDAR).
  • Libraries: The template form contains platform–independent attachments of several libraries (including FNDSQF, APPCORE, and APPDAYPK).
  • Special triggers: The template form contains several form–level triggers with required code. These are responsible for standard the behavior of the form.
  • Predefined Program Units: The template form contains predefined program units that include a spec and a body for the package APP_CUSTOM, which contains default behavior for window opening and closing events.
  • Applications Color Palette: The template form contains the application color palette. This gives the forms developed using the template form the look and feel of Oracle applications.
  • Many referenced objects (from the object groups) that support the Calendar, the toolbar, alternative regions, and the menu. These objects include LOVs, blocks, parameters, and property classes, and so on.
  • The TEMPLATE form contains sample objects that can be seen as examples for the expected layout cosmetics. These samples can be completely removed from theform later as they are only examples and are not required. The following objects are the samples and can be removed:
    • Window: BLOCKNAME
    • Canvas–view: BLOCKNAME
Hence, the template form comes along with many attachments, predefined program units, and defined visual attributes as well as examples that not only give the forms that are developed using the template.fmb a standard look and feel, but also make it easier to develop forms with consistent and standard functionality.
FND_GLOBAL.APPS_INITIALIZE is used for initializing the session before calling any public or private API’s in Oracle Ebusiness suite. Its not required for all the API’s but its recommended that you set this profile before making any calls to either private or public API. 

Listed below is a sample call to FND_GLOBAL.APPS_INITIALIZE function


l_user_id is the fnd user ID which will be utilized during the call. 
l_resp_id is the responsibility ID 
l_resp_appl_id is the responsibility application ID. 
You can use either sysadmin or use some user who has all the above listed responsibilities.

For SYSADMIN, utilize the following query to get the respective values

select fnd.user_id , 
from   fnd_user fnd 
,      fnd_responsibility_tl fresp 
where  fnd.user_name = ‘SYSADMIN’ 
and    fresp.responsibility_name = ‘Order Management Super User’;

Another option is Help > Diagnostics > Examine and get the values from $profile session values.

As we all know there are two mandatory parameters that need to be pased for all the procedures called

Based on the business process if there is any undefined exeception occured while running concurrent program, we can end the concurrent program with Error/Warning.

Define ERRBUFF as the first parameter and Retcode as the second one. Mention the OUT variable type.

                                 retcode OUT VARCHAR2)

The retcode has three values returned by the concurrent manager
1–Success & warning

we can set the concurrent program to any of the three status by using these values in the retcode parameter


        FND_FILE.PUT_LINE(FND_FILE.LOG,’Unhandled exception occurred in package. ErrMsg: ‘||SQLERRM);

Even you can use fnd_concurrent.set_completion_Status to send the concurrent program to more status than success,error and warning.

Recently i got a requirement to create request and attach all the standard reports of GL to these request groups. It seems a lot tedious task to do manually. So i developed this script to copy the request group content to other request groups.

This is very useful if you have to create multiple request groups and attach reports to all.

SELECT b.concurrent_program_name programname,c.application_name appname
FROM fnd_request_group_units a
,fnd_concurrent_programs b
,fnd_application_tl c
,fnd_request_groups d
WHERE a.request_Group_id=d.request_Group_id
AND a.request_unit_id=b.concurrent_program_id
AND b.application_id=c.application_id
AND d.request_Group_name=’GL Concurrent Program Group’;
FOR rec IN c1 LOOP
fnd_program.add_to_group(program_short_name =>rec.programname
,group_application=>’Custom Application’);