Search Results mark_all




Overview

APPS.FND_FUNCTION is the core Oracle E-Business Suite package responsible for function security and menu compilation. It provides the runtime and administrative logic that determines whether a given function is accessible under the current responsibility, and it maintains the compiled menu-function structures that all EBS forms, self-service pages, and concurrent programs consult when building navigation menus and enforcing function-level security. The package bridges the definition-time metadata stored in FND_FORM_FUNCTIONS, FND_MENUS, and FND_MENU_ENTRIES with the flattened, performance-optimized structures cached in FND_COMPILED_MENU_FUNCTIONS. Because menu compilation is an expensive operation, FND_FUNCTION also manages a fast-compile mechanism and a queue of pending marks so that changes to functions or menus can be applied incrementally rather than through full recompilation. The package header carries the customary $Header RCS identifier and a package-level boolean state variable, G_ALREADY_FAST_COMPILED, initialized to 'F', used to prevent redundant invocations of FAST_COMPILE. The symbol MARK_ALL, the term of interest to the searcher, is one of the documented procedures and is the mechanism by which the entire function-security structure is flagged for recompilation.

Key Procedures and Functions

The package exposes eighteen documented procedures and functions. The security-checking routines are TEST, TEST_ID, TEST_INSTANCE, and TEST_ID_SLOW, which return a boolean indicating whether a function (identified by name or id, or in the instance-aware case by object instance) is accessible. IS_FUNCTION_ON_MENU determines whether a named function appears on the active menu. AVAILABILITY and GET_FUNCTION_ID are utility accessors for maintenance-mode availability and function-id lookup respectively.

The compilation family is the operational heart of the package. COMPILE, COMPILE_CHANGES, COMPILE_ALL_MARKED, COMPILE_ALL_FROM_SCRATCH, COMPILE_MENU, COMPILE_MENU_MARKED, and FAST_COMPILE rebuild the compiled structures. Support routines ADD_QUEUED_MARKS, QUEUE_MARK, and MARK_ALL record which functions, menus, or the full set of objects require recompilation, while MARK_MENU marks a specific menu entry for rebuild. Together these procedures implement an incremental, mark-then-compile model that avoids recompiling the entire function tree every time a menu or function changes.

Tables Accessed

The package reads and writes FND_FORM_FUNCTIONS, which holds the function definitions and their security properties; FND_MENUS and FND_MENU_ENTRIES, which define the menu hierarchy and the functions and submenus attached to it; FND_RESPONSIBILITY and FND_RESP_FUNCTIONS, which link responsibilities to their granted functions; and FND_COMPILED_MENU_FUNCTIONS, the denormalized compile target. DBMS_LOCK is used to serialize concurrent compilation, PLITBLM is the obsolete indexed table type package, and V$INSTANCE is referenced for instance-level identification. Because these tables are referenced through APPS synonyms, all access occurs within the standard EBS schema context.

Usage Notes

FND_FUNCTION is invoked implicitly by the EBS framework during sign-on and menu rendering, by the System Administrator concurrent programs that compile menu and function security, and by forms that perform responsibility-based navigation. The package is referenced by 103 other packages, and the header comment instructs dependent packages to test G_ALREADY_FAST_COMPILED and call FAST_COMPILE during their initialization blocks. Custom code should prefer TEST_INSTANCE when the object id or instance primary key is known, reserving TEST and TEST_ID for performance-critical or legacy paths. MARK_ALL is typically called before a batch of changes so that COMPILE_ALL_MARKED can process the accumulated queue in a single pass; after marking, the compilation procedures rebuild the affected entries in FND_COMPILED_MENU_FUNCTIONS. Administrators should expect compilation activity to be lock-serialized, and custom logic that mutates function or menu definitions should mark and compile rather than updating the compiled table directly.