Results for “validation_engine”

8 results




AI-generated from documented ETRM metadata — verify critical details on the linked pages.

Overview

FND_FLEX_SERVER is the core server-side validation engine for Oracle E-Business Suite Key Flexfields and Descriptive Flexfields. It encapsulates the runtime logic that determines whether a combination of flexfield segment values is valid, resolves segment values into their internal concatenated IDs, and returns the descriptive information required by forms, concurrent programs, and interfaces. In releases 12.1.1 and 12.2.2 the package is still the principal entry point for flexfield validation performed outside the client-side Forms layer, and it underpins the "flex_values" style lookups that users encounter when they query or enter flexfield combinations in the EBS user interface.

The package is classified as OTHER in the ETRM repository, meaning Oracle does not publish it as a supported public API. Oracle's own source header explicitly states that its internal functions are used only within the flexfield subsystem and that their arguments and behavior are subject to change without notice. Application code, nevertheless, relies on its behavior indirectly through every form and program that validates key or descriptive flexfields.

Key Procedures and Functions

The ETRM metadata documents forty procedures and functions. The most significant are the following:

  • VALIDATION_ENGINE — The central routine that performs the actual validation of a flexfield combination. It accepts the flexfield application, flexfield code, segment values, validation date, and a large set of behavioral flags, and returns arrays of displayed values, stored values, segment identifiers, descriptions, segment column names, column types, and derived and qualified values.
  • FIND_COMBINATION — Locates an existing valid combination and returns its identifier and related attributes.
  • VALIDATE_COMBINATION and VALIDATE_DESCFLEX — Wrapper entry points that validate key flexfield and descriptive flexfield combinations respectively.
  • PARSE_DISPLAYED — Decomposes a concatenated displayed flexfield string into its constituent segment values.
  • CONCATENATE_VALUES, CONCATENATE_IDS, and CONCATENATE_DESCRIPTIONS — Build the concatenated segment string from values, IDs, or descriptions.
  • HASH_LOCK and CLIENT_HASH_LOCK — Manage the hashing and locking mechanism used to detect concurrent structure changes.
  • V_COMB, V_DESC, P_WIN, PRE_WINDOW — Supporting routines used by the flexfield windows and value retrieval logic.
  • S_MAPS, SEGMENT_MAPS, SEGS_SECURED, S_SEC — Segment mapping and security-check routines that enforce value set and cross-segment security rules.
  • GET_NSQL and GET_SQL — Return dynamically generated SQL used to query flexfield value sets.

Tables Accessed

The package reads and writes the principal flexfield definition and value tables through APPS synonyms. Structure definitions come from FND_ID_FLEXS, FND_ID_FLEX_SEGMENTS, FND_DESCRIPTIVE_FLEXS, FND_DESCRIPTIVE_FLEXS_TL, FND_COMPILED_ID_FLEX_STRUCTS, and FND_COMPILED_DESCRIPTIVE_FLEXS. Value set membership and rules are drawn from FND_FLEX_VALUE_SETS, FND_FLEX_VALUE_RULES_TL, and FND_FLEX_VALIDATION_TABLES. Descriptive flexfield context and column information is held in FND_DESCR_FLEX_CONTEXTS and FND_DESCR_FLEX_COLUMN_USAGES, while FND_FLEX_HASH supports change detection. General metadata such as FND_APPLICATION, FND_APPLICATION_TL, and FND_COLUMNS supplies application and column names.

Usage Notes

FND_FLEX_SERVER is invoked primarily from Oracle Forms when a user enters or queries a flexfield, from concurrent programs that validate interface data, and from custom PL/SQL that must confirm combination validity before inserting into a flexfield-enabled table. Because the package is unsupported and referenced by at least eighteen other packages, custom code should generally call the supported APIs in FND_FLEX_APIS or FND_FLEX_KEYVAL rather than invoking FND_FLEX_SERVER directly. Where direct calls are unavoidable, parameters and return types must be treated as volatile across patches and upgrades.