Tuesday, October 7, 2008

All About 'FND_GLOBAL' in Oracle

Before calling a concurrent request from the backend, we need to set the Oracle Applications Context. Use the API FND_GLOBAL.APPS_INITIALIZE to set the applications context in standalone sessions that were not initialized through normal means. Typically, you would use this API in external custom programs that are establishing their own connections.

FND_GLOBAL.APPS_INITIALIZE
Procedure APPS_INITIALIZE (user_id in number, resp_id in number, resp_appl_id in number security_group_id in number);

Description:
This procedure sets up global variables and profile values in a database session. Call this procedure to initialize the global security context for a database session. You can use it for routines such as PL/SQL or other programs that are not integrated with either the Oracle Applications concurrent processing facility or Oracle Forms (both of which already do a similar initialization for a database session).

The typical use for this routine would be as part of the logic for launching a separate non-Forms session from an established Oracle Applications form session. You can also use this procedure to set up a database session for manually testing application code using SQL*Plus. This routine should only be used when the session must be established outside of a normal form or concurrent program connection.

You can obtain valid values to use with this procedure by using profile option routines to retrieve these values in an existing Oracle Applications form session.

Arguments (input)
1. USER_ID - The User ID number.

SELECT *
FROM FND_USER
WHERE USER_NAME='SYSADMIN'

2. RESP_ID - The ID number of the responsibility.

SELECT *
FROM FND_RESPONSIBILITY_TL
WHERE RESPONSIBILITY_NAME ='Bills of Material'
AND LANGUAGE='US'

3. RESP_APPL_ID - The ID number of the application to which the responsibility belongs.

SELECT *
FROM FND_APPLICATION
WHERE APPLICATION_ID=702

4. SECURITY_GROUP_ID - The ID number of the security group. This argument is automatically defaulted by the API. The caller should not pass a value for it.

Example:
fnd_global.APPS_INITIALIZE (1010, 20417, 201);

No comments: