Search Results fnd_flex_values_s




Overview

FND_FLEX_VALUES_PKG is a stored PL/SQL package in the APPS schema that encapsulates the core data manipulation logic for Oracle E-Business Suite key and descriptive flexfield value definitions. Its primary business function is to provide a controlled, reusable interface for maintaining records in the intersection of value sets and their member values, which together drive the validation and list-of-values behavior presented to users across every flexfield-enabled form and concurrent program in EBS.

Within the Flexfields architecture, a flexfield segment is validated against a value set, and that value set contains individual flexfield values. This package owns the insert, update, delete, and locking operations on those value records, ensuring that hierarchy information, enabled/disabled status, start and end dates, and translation rows remain internally consistent whenever a value is created or changed. The package body is documented as VALID in both ETRM 12.1.1 and 12.2.2 metadata and is classified as an OTHER API, meaning it is an internal utility package rather than a formally published public API.

Key Procedures and Functions

The ETRM documentation records seven procedures and functions in the package body:

  • INSERT_ROW — Creates a new flexfield value record, establishing the value itself along with its association to a value set and the attributes that govern its availability.
  • LOCK_ROW — Obtains a row-level lock on an existing flexfield value, used to serialize concurrent modification so that two sessions cannot update the same value simultaneously.
  • UPDATE_ROW — Modifies the attributes of an existing flexfield value, including descriptive and control information maintained at the value level.
  • DELETE_ROW — Removes a flexfield value and its dependent records, subject to the integrity rules enforced by the package and the underlying base tables.
  • ADD_LANGUAGE — Populates translation rows in the translated (TL) table for a flexfield value, supporting the multilingual deployment of value descriptions.
  • LOAD_ROW — Loads a flexfield value from an external or staged source, typically as part of data migration, seed data installation, or a bulk loading utility.
  • TRANSLATE_ROW — Handles the translation-specific portion of a row load, writing the language-dependent description for an existing value.

Tables Accessed

The package operates against the core flexfield value tables exposed through APPS synonyms:

  • FND_FLEX_VALUES — The principal table of flexfield values; the target of INSERT_ROW, UPDATE_ROW, DELETE_ROW, and LOCK_ROW.
  • FND_FLEX_VALUES_TL — The translated table holding language-specific value descriptions; written by ADD_LANGUAGE and TRANSLATE_ROW.
  • FND_FLEX_VALUES_S — The sequence used to generate unique value identifiers during insert operations.
  • FND_FLEX_VALUE_SETS — The parent value set table, referenced to validate the value set that a new or modified value belongs to.
  • FND_LANGUAGES — The installed language repository, consulted when creating translation rows.
  • DUAL — The standard single-row utility table used for expression evaluation.

The package also calls APP_EXCEPTION for error raising and FND_MESSAGE for message resolution, and it depends on FND_FLEX_LOADER_APIS, indicating its role in the loader toolchain.

Usage Notes

FND_FLEX_VALUES_PKG is invoked indirectly rather than by end users. Its most common execution paths are the Flexfield Values maintenance form, where a user creating or editing a value triggers the insert, lock, and update logic; and the flexfield loader and seed-data utilities, where LOAD_ROW, ADD_LANGUAGE, and TRANSLATE_ROW drive bulk population and translation loading. The ETRM metadata notes the package is referenced by four other packages, confirming it is a shared internal dependency of higher-level flexfield APIs.

Because it is classified as an OTHER (non-public) API, customizations should avoid calling these procedures directly where an officially supported interface exists; the underlying data model and side effects are subject to change between release levels. When direct invocation is unavoidable, callers must reproduce the locking discipline and translation handling that the packaged procedures implement, and should not assume atomic behavior across multiple procedure calls.