# Oracle EBS Application Object Library (AOL) FND Tables Reference

> Source: https://netray.co/tools/oracle-ebs-application-object-library-fnd-tables-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

The AOL FND_ tables for applications, users, responsibilities, menus, functions, concurrent processing, messages and profiles in EBS 12.1/12.2.

## Category

oracle

## Erp

Oracle E-Business Suite

## Audience

- Apps DBA
- Oracle EBS developer
- System administrator
- Security auditor

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Table/View

**Key:** tbl

**Type:** text

#### Area

**Key:** area

**Type:** select

**Options:**

- Applications
- Users and security
- Menus and functions
- Concurrent processing
- Messages
- Install and patch

#### Holds

**Key:** holds

**Type:** text

#### Key columns

**Key:** keys

**Type:** text

#### Joins

**Key:** joins

**Type:** text

#### Notes

**Key:** notes

**Type:** text

**Rows:**

**Tbl:** FND_APPLICATION

**Area:** Applications

**Holds:** Registered applications (products), including custom ones

**Keys:** APPLICATION_ID; APPLICATION_SHORT_NAME (unique)

**Joins:** APPLICATION_ID is carried by most FND tables

**Notes:** APPLICATION_SHORT_NAME such as ONT, PO, SQLGL, AR, XXCUST; BASEPATH is the top directory variable, for example ONT_TOP

**Tbl:** FND_APPLICATION_TL

**Area:** Applications

**Holds:** Translated application names

**Keys:** APPLICATION_ID, LANGUAGE

**Joins:** APPLICATION_ID = FND_APPLICATION.APPLICATION_ID

**Notes:** APPLICATION_NAME, for example Order Management

**Tbl:** FND_APPLICATION_VL

**Area:** Applications

**Holds:** View joining FND_APPLICATION with its _TL row for the session language

**Keys:** APPLICATION_ID

**Joins:** As FND_APPLICATION

**Notes:** Use in reports to get short name and name together

**Tbl:** FND_PRODUCT_INSTALLATIONS

**Area:** Install and patch

**Holds:** Install status and patch level per product

**Keys:** APPLICATION_ID

**Joins:** APPLICATION_ID = FND_APPLICATION.APPLICATION_ID; ORACLE_ID = FND_ORACLE_USERID

**Notes:** STATUS I (installed), S (shared), N (not installed); PATCH_LEVEL such as R12.ONT.B.delta.n

**Tbl:** FND_PRODUCT_GROUPS

**Area:** Install and patch

**Holds:** Instance-level release and flags

**Keys:** PRODUCT_GROUP_ID

**Joins:** Single row in a normal instance

**Notes:** RELEASE_NAME gives the EBS release, for example 12.2.10; APPLICATIONS_SYSTEM_NAME; MULTI_ORG_FLAG

**Tbl:** FND_USER

**Area:** Users and security

**Holds:** Application user accounts

**Keys:** USER_ID; USER_NAME (unique)

**Joins:** EMPLOYEE_ID = PER_ALL_PEOPLE_F.PERSON_ID; PERSON_PARTY_ID = HZ_PARTIES.PARTY_ID; USER_ID = CREATED_BY on every table

**Notes:** START_DATE, END_DATE, LAST_LOGON_DATE, EMAIL_ADDRESS; never update password columns directly, use FND_USER_PKG

**Tbl:** FND_RESPONSIBILITY

**Area:** Users and security

**Holds:** Responsibilities and what they point to

**Keys:** APPLICATION_ID + RESPONSIBILITY_ID; RESPONSIBILITY_KEY

**Joins:** MENU_ID = FND_MENUS.MENU_ID; REQUEST_GROUP_ID + GROUP_APPLICATION_ID = FND_REQUEST_GROUPS; DATA_GROUP_ID

**Notes:** VERSION 4 (Oracle Applications forms), W (self-service web), M (mobile); START_DATE, END_DATE

**Tbl:** FND_RESPONSIBILITY_TL

**Area:** Users and security

**Holds:** Translated responsibility names

**Keys:** APPLICATION_ID, RESPONSIBILITY_ID, LANGUAGE

**Joins:** APPLICATION_ID + RESPONSIBILITY_ID = FND_RESPONSIBILITY

**Notes:** RESPONSIBILITY_NAME is what users pick in the navigator

**Tbl:** FND_RESPONSIBILITY_VL

**Area:** Users and security

**Holds:** View of FND_RESPONSIBILITY plus its name in the session language

**Keys:** APPLICATION_ID + RESPONSIBILITY_ID

**Joins:** As FND_RESPONSIBILITY

**Notes:** Convenient for access reports

**Tbl:** FND_USER_RESP_GROUPS_DIRECT

**Area:** Users and security

**Holds:** Responsibilities assigned directly to users

**Keys:** USER_ID, RESPONSIBILITY_ID, RESPONSIBILITY_APPLICATION_ID, SECURITY_GROUP_ID

**Joins:** USER_ID = FND_USER.USER_ID; RESPONSIBILITY_ID + RESPONSIBILITY_APPLICATION_ID = FND_RESPONSIBILITY

**Notes:** START_DATE, END_DATE; maintained by Define User and FND_USER_PKG.ADDRESP

**Tbl:** FND_USER_RESP_GROUPS_INDIRECT

**Area:** Users and security

**Holds:** Responsibilities a user gets through roles (UMX role inheritance)

**Keys:** USER_ID, RESPONSIBILITY_ID, RESPONSIBILITY_APPLICATION_ID, SECURITY_GROUP_ID

**Joins:** Same as the _DIRECT table

**Notes:** Access reviews must read both _DIRECT and _INDIRECT, or the FND_USER_RESP_GROUPS view that combines them

**Tbl:** FND_MENUS

**Area:** Menus and functions

**Holds:** Menus, including permission sets

**Keys:** MENU_ID; MENU_NAME (unique)

**Joins:** MENU_ID = FND_RESPONSIBILITY.MENU_ID and FND_MENU_ENTRIES.MENU_ID

**Notes:** USER_MENU_NAME in FND_MENUS_TL; TYPE distinguishes standard menus, permission sets and others

**Tbl:** FND_MENU_ENTRIES

**Area:** Menus and functions

**Holds:** Lines of a menu: a submenu, a function, or both

**Keys:** MENU_ID, ENTRY_SEQUENCE

**Joins:** SUB_MENU_ID = FND_MENUS.MENU_ID; FUNCTION_ID = FND_FORM_FUNCTIONS.FUNCTION_ID

**Notes:** GRANT_FLAG = 'N' entries do not grant access; PROMPT in FND_MENU_ENTRIES_TL; walk with CONNECT BY on SUB_MENU_ID

**Tbl:** FND_FORM_FUNCTIONS

**Area:** Menus and functions

**Holds:** Functions: forms with parameters, OA pages, subfunctions

**Keys:** FUNCTION_ID; FUNCTION_NAME (unique)

**Joins:** FORM_ID + APPLICATION_ID = FND_FORM; FUNCTION_ID = FND_MENU_ENTRIES.FUNCTION_ID

**Notes:** TYPE (FORM, SUBFUNCTION, JSP, SSWA and others), PARAMETERS, WEB_HTML_CALL; USER_FUNCTION_NAME in FND_FORM_FUNCTIONS_TL

**Tbl:** FND_FORM

**Area:** Menus and functions

**Holds:** Registered Oracle Forms

**Keys:** APPLICATION_ID + FORM_ID; FORM_NAME

**Joins:** = FND_FORM_FUNCTIONS.APPLICATION_ID + FORM_ID

**Notes:** FORM_NAME is the fmx name, for example OEXOEORD for Sales Orders or POXPOEPO for Purchase Orders

**Tbl:** FND_RESP_FUNCTIONS

**Area:** Menus and functions

**Holds:** Function and menu exclusions on a responsibility

**Keys:** APPLICATION_ID, RESPONSIBILITY_ID, RULE_TYPE, ACTION_ID

**Joins:** RULE_TYPE 'F': ACTION_ID = FND_FORM_FUNCTIONS.FUNCTION_ID; RULE_TYPE 'M': ACTION_ID = FND_MENUS.MENU_ID

**Notes:** An excluded function is removed even if the menu tree grants it; check this before saying a user can run a function

**Tbl:** FND_EXECUTABLES

**Area:** Concurrent processing

**Holds:** Concurrent executables: what file or procedure runs

**Keys:** APPLICATION_ID + EXECUTABLE_ID; EXECUTABLE_NAME

**Joins:** = FND_CONCURRENT_PROGRAMS.EXECUTABLE_APPLICATION_ID + EXECUTABLE_ID

**Notes:** EXECUTION_METHOD_CODE: P Oracle Reports, I PL/SQL stored procedure, Q SQL*Plus, H host, L SQL*Loader, K Java concurrent program, A spawned; EXECUTION_FILE_NAME is the package.procedure, script or report name

**Tbl:** FND_CONCURRENT_PROGRAMS

**Area:** Concurrent processing

**Holds:** Concurrent program definitions

**Keys:** APPLICATION_ID + CONCURRENT_PROGRAM_ID; CONCURRENT_PROGRAM_NAME (short name)

**Joins:** EXECUTABLE_APPLICATION_ID + EXECUTABLE_ID = FND_EXECUTABLES; = FND_CONCURRENT_REQUESTS.PROGRAM_APPLICATION_ID + CONCURRENT_PROGRAM_ID

**Notes:** ENABLED_FLAG, OUTPUT_FILE_TYPE, RUN_ALONE_FLAG; parameters are a descriptive flexfield named $SRS$.<short name>

**Tbl:** FND_CONCURRENT_PROGRAMS_TL

**Area:** Concurrent processing

**Holds:** User-visible program names

**Keys:** APPLICATION_ID, CONCURRENT_PROGRAM_ID, LANGUAGE

**Joins:** Same key as FND_CONCURRENT_PROGRAMS

**Notes:** USER_CONCURRENT_PROGRAM_NAME is what users submit

**Tbl:** FND_CONCURRENT_REQUESTS

**Area:** Concurrent processing

**Holds:** Every submitted request and its outcome

**Keys:** REQUEST_ID

**Joins:** PROGRAM_APPLICATION_ID + CONCURRENT_PROGRAM_ID = FND_CONCURRENT_PROGRAMS; REQUESTED_BY = FND_USER.USER_ID; CONTROLLING_MANAGER = FND_CONCURRENT_PROCESSES.CONCURRENT_PROCESS_ID; PARENT_REQUEST_ID

**Notes:** PHASE_CODE, STATUS_CODE, ACTUAL_START_DATE, ACTUAL_COMPLETION_DATE, ARGUMENT_TEXT, LOGFILE_NAME, OUTFILE_NAME, COMPLETION_TEXT

**Tbl:** FND_CONC_REQ_SUMMARY_V

**Area:** Concurrent processing

**Holds:** View of requests with program name and requester resolved

**Keys:** REQUEST_ID

**Joins:** Built on FND_CONCURRENT_REQUESTS

**Notes:** Quick ad hoc checks; for heavy reports query the base table

**Tbl:** FND_CONCURRENT_QUEUES

**Area:** Concurrent processing

**Holds:** Concurrent managers (ICM, Standard Manager, custom managers)

**Keys:** APPLICATION_ID + CONCURRENT_QUEUE_ID; CONCURRENT_QUEUE_NAME

**Joins:** = FND_CONCURRENT_PROCESSES.QUEUE_APPLICATION_ID + CONCURRENT_QUEUE_ID

**Notes:** MAX_PROCESSES (target), RUNNING_PROCESSES (actual), TARGET_NODE, CACHE_SIZE, ENABLED_FLAG; names in FND_CONCURRENT_QUEUES_TL

**Tbl:** FND_CONCURRENT_PROCESSES

**Area:** Concurrent processing

**Holds:** Manager processes that have run, with OS and database process IDs

**Keys:** CONCURRENT_PROCESS_ID

**Joins:** QUEUE_APPLICATION_ID + CONCURRENT_QUEUE_ID = FND_CONCURRENT_QUEUES

**Notes:** PROCESS_STATUS_CODE, OS_PROCESS_ID, ORACLE_PROCESS_ID, NODE_NAME, LOGFILE_NAME (manager log)

**Tbl:** FND_REQUEST_GROUPS

**Area:** Concurrent processing

**Holds:** Request groups attached to responsibilities

**Keys:** APPLICATION_ID + REQUEST_GROUP_ID; REQUEST_GROUP_NAME

**Joins:** = FND_RESPONSIBILITY.GROUP_APPLICATION_ID + REQUEST_GROUP_ID

**Notes:** Controls which programs a responsibility can submit through Submit Request

**Tbl:** FND_REQUEST_GROUP_UNITS

**Area:** Concurrent processing

**Holds:** Programs, request sets or whole applications in a request group

**Keys:** APPLICATION_ID, REQUEST_GROUP_ID, REQUEST_UNIT_TYPE, UNIT_APPLICATION_ID, REQUEST_UNIT_ID

**Joins:** REQUEST_UNIT_TYPE 'P': REQUEST_UNIT_ID = CONCURRENT_PROGRAM_ID; 'S': = FND_REQUEST_SETS.REQUEST_SET_ID; 'A': all programs of the application

**Notes:** Answer 'which responsibilities can run program X' by joining this to FND_RESPONSIBILITY

**Tbl:** FND_REQUEST_SETS

**Area:** Concurrent processing

**Holds:** Request set definitions

**Keys:** APPLICATION_ID + REQUEST_SET_ID; REQUEST_SET_NAME

**Joins:** Stages and programs in FND_REQUEST_SET_STAGES and FND_REQUEST_SET_PROGRAMS

**Notes:** USER_REQUEST_SET_NAME in FND_REQUEST_SETS_TL

**Tbl:** FND_CONCURRENT_PROGRAM_SERIAL

**Area:** Concurrent processing

**Holds:** Program incompatibilities

**Keys:** RUNNING_APPLICATION_ID, RUNNING_CONCURRENT_PROGRAM_ID, TO_RUN_APPLICATION_ID, TO_RUN_CONCURRENT_PROGRAM_ID

**Joins:** Both program pairs = FND_CONCURRENT_PROGRAMS

**Notes:** INCOMPATIBILITY_TYPE D (domain) or G (global); TO_RUN_TYPE P (program) or S (request set); incompatibilities make requests wait on the Conflict Resolution Manager

**Tbl:** FND_NEW_MESSAGES

**Area:** Messages

**Holds:** Message dictionary: every APP- and product message text

**Keys:** APPLICATION_ID, MESSAGE_NAME, LANGUAGE_CODE

**Joins:** APPLICATION_ID = FND_APPLICATION

**Notes:** MESSAGE_NUMBER is the number in APP-ONT-123456 style errors; MESSAGE_TEXT has the tokens

**Tbl:** FND_LOGINS

**Area:** Users and security

**Holds:** Login sessions recorded by Sign-On Audit

**Keys:** LOGIN_ID

**Joins:** USER_ID = FND_USER.USER_ID; LOGIN_ID = LAST_UPDATE_LOGIN on transaction tables

**Notes:** START_TIME, END_TIME, LOGIN_TYPE; detail in FND_LOGIN_RESPONSIBILITIES and FND_LOGIN_RESP_FORMS depending on the Sign-On:Audit Level profile

**Tbl:** FND_NODES

**Area:** Install and patch

**Holds:** Application and database nodes registered by AutoConfig

**Keys:** NODE_ID; NODE_NAME

**Joins:** NODE_NAME = FND_CONCURRENT_QUEUES.TARGET_NODE and FND_CONCURRENT_PROCESSES.NODE_NAME

**Notes:** SUPPORT_CP, SUPPORT_FORMS, SUPPORT_WEB, SUPPORT_ADMIN, SUPPORT_DB flags; stale nodes after cloning are cleaned with FND_CONC_CLONE.SETUP_CLEAN

**Tbl:** FND_PROFILE_OPTIONS

**Area:** Users and security

**Holds:** Profile option definitions

**Keys:** APPLICATION_ID + PROFILE_OPTION_ID; PROFILE_OPTION_NAME

**Joins:** = FND_PROFILE_OPTION_VALUES.APPLICATION_ID + PROFILE_OPTION_ID

**Notes:** USER_PROFILE_OPTION_NAME in FND_PROFILE_OPTIONS_TL; SQL_VALIDATION; which levels are updatable

**Tbl:** FND_PROFILE_OPTION_VALUES

**Area:** Users and security

**Holds:** Profile values set at each level

**Keys:** APPLICATION_ID, PROFILE_OPTION_ID, LEVEL_ID, LEVEL_VALUE (+ LEVEL_VALUE_APPLICATION_ID)

**Joins:** LEVEL_VALUE = USER_ID, RESPONSIBILITY_ID, APPLICATION_ID, NODE_ID or ORGANIZATION_ID depending on LEVEL_ID

**Notes:** LEVEL_ID 10001 site, 10002 application, 10003 responsibility, 10004 user, 10005 server, 10006 organization; PROFILE_OPTION_VALUE

**Tbl:** AD_BUGS

**Area:** Install and patch

**Holds:** Patches (bugs) recorded as applied by AD utilities

**Keys:** BUG_ID; BUG_NUMBER

**Joins:** Related AD_APPLIED_PATCHES and AD_PATCH_DRIVERS

**Notes:** Check a patch: WHERE BUG_NUMBER = '12345678'; BUG_NUMBER is VARCHAR2

**Notes:** Scope: Application Object Library objects in EBS 12.1 and 12.2 (APPLSYS schema, used through APPS synonyms). Confirm columns at your patch level in eTRM. Never insert or update these tables directly; use the AOL forms or public APIs.

## Content

**Intro:** A searchable reference for the Application Object Library (AOL) FND_ tables in Oracle EBS 12.1/12.2: applications, users, responsibilities, menus and functions, concurrent processing, messages and profiles. Each row lists key columns and the join that connects it to the rest of AOL.

**Sections:**

#### How responsibility, menu and function security chains

**Body:** A user can open a function when a responsibility assigned to them grants it. The chain is FND_USER to FND_USER_RESP_GROUPS_DIRECT (and _INDIRECT for role-inherited access) on USER_ID, then to FND_RESPONSIBILITY on RESPONSIBILITY_ID plus RESPONSIBILITY_APPLICATION_ID, then MENU_ID to FND_MENUS. The menu is a tree in FND_MENU_ENTRIES: each entry has a SUB_MENU_ID, a FUNCTION_ID or both, so walk it with START WITH menu_id = :m CONNECT BY PRIOR sub_menu_id = menu_id. Entries with GRANT_FLAG = 'N' do not grant. Finally remove exclusions in FND_RESP_FUNCTIONS (RULE_TYPE 'F' for functions, 'M' for menus). Concurrent program access follows a separate chain: FND_RESPONSIBILITY.REQUEST_GROUP_ID to FND_REQUEST_GROUP_UNITS.

**Bullets:**

- Check both _DIRECT and _INDIRECT assignment tables in access reviews
- Respect START_DATE and END_DATE on users, assignments and responsibilities
- Data access (operating units, ledgers) is controlled by profiles, not by the menu

#### Where a program's executable lives

**Body:** Start from the program users see: FND_CONCURRENT_PROGRAMS_TL.USER_CONCURRENT_PROGRAM_NAME gives APPLICATION_ID and CONCURRENT_PROGRAM_ID. FND_CONCURRENT_PROGRAMS gives the short name and EXECUTABLE_APPLICATION_ID plus EXECUTABLE_ID, which lead to FND_EXECUTABLES. There, EXECUTION_METHOD_CODE says what runs and EXECUTION_FILE_NAME names it. For PL/SQL (I) it is package.procedure in the database. For Oracle Reports (P) it is the rdf name under $<APP>_TOP/reports/<language>. For SQL*Plus (Q) a .sql under $<APP>_TOP/sql, for host (H) a script under $<APP>_TOP/bin, for SQL*Loader (L) a .ctl under $<APP>_TOP/bin. The <APP>_TOP is the BASEPATH of the executable's application in FND_APPLICATION. Parameters are the descriptive flexfield $SRS$.<short name>.

#### The base, _TL and _VL pattern

**Body:** AOL separates language-independent data from translated text. The base table (FND_RESPONSIBILITY, FND_CONCURRENT_PROGRAMS, FND_MENUS) holds IDs, flags and codes. The _TL table holds one row per installed language with the names users see (RESPONSIBILITY_NAME, USER_CONCURRENT_PROGRAM_NAME, USER_MENU_NAME) and the same key plus LANGUAGE. The _VL view joins the two for the session language using USERENV('LANG'). In ad hoc SQL either use the _VL view or join the _TL table and filter LANGUAGE explicitly; forgetting the filter on a multi-language instance multiplies rows. Product tables follow the same pattern, which is why OE_TRANSACTION_TYPES_TL and WF_ITEM_TYPES_TL exist.

#### Version and release query

**Body:** SELECT release_name FROM fnd_product_groups returns the EBS release, for example 12.2.10. For a product's code level use SELECT a.application_short_name, i.status, i.patch_level FROM fnd_product_installations i JOIN fnd_application a ON a.application_id = i.application_id WHERE a.application_short_name IN ('ONT','PO','INV'). STATUS I means installed (licensed and in use), S shared, N not installed. To check a single patch, query AD_BUGS by BUG_NUMBER; in 12.2 the more complete check across nodes is AD_PATCH.IS_PATCH_APPLIED, so confirm with that before reporting a patch as missing. Registered nodes and their roles are in FND_NODES, which AutoConfig maintains.

**Cta:** If you want admins to ask Oracle EBS who can run what, which programs failed and what is installed, in plain English on your own servers, we can build that read-only over AOL.

**Faq:**

#### What is the Application Object Library in Oracle EBS?

**Answer:** Application Object Library (AOL, product short name FND) is the foundation layer of EBS. It stores application registration, users, responsibilities, menus and functions, concurrent programs and managers, flexfields, profile options, lookups and the message dictionary. Its tables are owned by APPLSYS and accessed through APPS synonyms, and every product depends on it.

#### Which table holds the application short name?

**Answer:** FND_APPLICATION.APPLICATION_SHORT_NAME, keyed by APPLICATION_ID, for example SQLGL for General Ledger, AR for Receivables, ONT for Order Management and PO for Purchasing. The full name is in FND_APPLICATION_TL.APPLICATION_NAME, and FND_APPLICATION_VL shows both. BASEPATH gives the top directory variable such as ONT_TOP.

#### Which table stores concurrent programs in R12?

**Answer:** FND_CONCURRENT_PROGRAMS holds the definition and short name (CONCURRENT_PROGRAM_NAME); FND_CONCURRENT_PROGRAMS_TL holds the user name. The executable is in FND_EXECUTABLES, joined on EXECUTABLE_APPLICATION_ID and EXECUTABLE_ID. Each run is a row in FND_CONCURRENT_REQUESTS, and incompatibilities are in FND_CONCURRENT_PROGRAM_SERIAL.

#### Which table lists responsibilities assigned to users?

**Answer:** FND_USER_RESP_GROUPS_DIRECT for direct assignments and FND_USER_RESP_GROUPS_INDIRECT for those inherited through roles; the FND_USER_RESP_GROUPS view covers both. Join USER_ID to FND_USER and RESPONSIBILITY_ID plus RESPONSIBILITY_APPLICATION_ID to FND_RESPONSIBILITY_VL for the name. Check START_DATE and END_DATE to report only active access.

## Search terms

application object library in oracle ebs, aol in oracle ebs, oracle ebs application short name table, oracle concurrent program table, concurrent programs table in oracle apps r12, oracle ebs responsibilities table, fnd_user_resp_groups_direct, fnd_executables execution_method_code

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
