Search Results fnd_flex_value_rules_pkg




Overview

The APPS.FND_FLEX_VALUE_RULES_PKG package encapsulates the database-tier logic that governs validation and security rules applied to key flexfield value sets in Oracle E-Business Suite. Its focus is the value rule construct: the mechanism by which intersections of a key flexfield are permitted or restricted for specific value set combinations. In EBS, value rules define which combinations of segment values are valid for a given flexfield, and this package provides the CRUD and loader entry points needed to create, modify, lock, translate, and migrate those rule definitions.

The package is closely associated with the Flexfield Loader/API infrastructure. Per the ETRM dependency data, FND_FLEX_VALUE_RULES_PKG references APPS.FND_FLEX_LOADER_APIS, and conversely FND_FLEX_LOADER_APIS references this package, indicating a bidirectional relationship used to support programmatic loading and upload of flexfield metadata. The package is classified as OTHER (not a public, published API), and is referenced by only one other package, consistent with its role as an internal building block rather than an end-user API.

Key Procedures and Functions

The ETRM metadata documents seven procedures/functions within the package. Their names follow the standard EBS table-handler naming convention, and each maps to a well-understood purpose:

  • INSERT_ROW — Creates a new value rule record across the base, _S, and _TL tables, establishing a new rule definition for a value set.
  • LOCK_ROW — Obtains a pessimistic lock on an existing rule row, used to serialize concurrent edits before an update or delete.
  • UPDATE_ROW — Modifies the attributes of an existing value rule record and its associated translation rows.
  • DELETE_ROW — Removes a value rule record, typically cascading across the base, _S, and _TL tables.
  • ADD_LANGUAGE — Inserts translation rows for an additional language into the _TL (translated) table, supporting multilingual deployments.
  • LOAD_ROW — The loader entry point used by the flexfield loader/concurrent load process to insert or update a rule from an external definition or uploaded dataset.
  • TRANSLATE_ROW — Populates or updates translated (language-specific) text for an existing rule row.

Parameter lists are not enumerated in the ETRM documentation and should not be assumed; callers should reference the package specification directly for signatures.

Tables Accessed

Per the documented table references (accessed via APPS synonyms):

  • FND_FLEX_VALUE_RULES — The base table holding value rule definitions (rule name, description, value set linkage, error/severity settings).
  • FND_FLEX_VALUE_RULES_S — The _S shadow/secure table that stores the same rule rows for the security/maintenance view layer, used to protect direct DML against the base table.
  • FND_FLEX_VALUE_RULES_TL — The translation table holding language-specific rule text; populated by ADD_LANGUAGE, TRANSLATE_ROW, and LOAD_ROW.
  • FND_FLEX_VALUE_SETS — The parent value set table, read to validate the value set to which the rule belongs and to derive flexfield context.
  • FND_LANGUAGES — Read to validate and manage the set of installed languages for translation handling.
  • DUAL — Used for single-row expressions such as sequence lookups or SYSDATE assignments.

The companion _S and _TL tables reflect the standard EBS translated-table pattern, ensuring both runtime and translated data remain in sync.

Usage Notes

FND_FLEX_VALUE_RULES_PKG is not intended for direct invocation by end users or external integrations. It is invoked in three principal contexts:

  • Flexfield Loader / Upload — When value rules are loaded or uploaded through the Flexfield Loader concurrent program or the associated loader APIs, LOAD_ROW (and the underlying INSERT/UPDATE handlers) is called to materialize the rules. The bidirectional dependency with FND_FLEX_LOADER_APIS confirms this is the primary caller path.
  • Forms and maintenance screens — Administrative forms that maintain key flexfield value rules call LOCK_ROW, INSERT_ROW, UPDATE_ROW, and DELETE_ROW to persist changes safely.
  • Custom code and migrations — Custom PL/SQL that programmatically seeds or migrates value rules may invoke these procedures, typically after acquiring locks and observing the _S/_TL pattern.

Because the package is classified as OTHER and references the loader API layer, custom implementations should call it only where the EBS-supported loader mechanisms cannot be used, and should follow the documented lock-before-update sequence to avoid concurrency issues. Multilingual environments must ensure ADD_LANGUAGE or TRANSLATE_ROW is invoked for each installed language.