Search Results po_validation_result_set_id_s




Overview

PO_VALIDATIONS is an internal validation engine package body in the APPS schema that underpins the integrity of the entire Oracle Purchasing document hierarchy, from requisitions through purchase order headers, lines, shipments, and distributions. Its principal business function is to execute the full battery of business rules that determine whether a purchasing document or modification is semantically valid before it is committed to the database, and to accumulate the resulting messages in a structured validation result set. Rather than embedding validation logic directly in each Oracle Forms block or API layer, Oracle centralizes it here so that identical rules are enforced regardless of the entry point — the Purchasing forms, the PO document open interface (PDOI), HTML-based iProcurement or supplier-facing ordering, and PL/SQL API callers all route through the same code path.

The package supports the notion of a validation result set, keyed by a system-generated identifier, which groups all errors, warnings, and informational messages raised during a single validation pass. The dependency on the sequence PO_VALIDATION_RESULT_SET_ID_S (referenced in the search term as PO_VALIDATION_RESULT_SET_ID_S) reflects this design: each validation execution allocates a distinct result set id, and results are staged in the global temporary table PO_VALIDATION_RESULTS_GT before being surfaced to the caller. Because the package is documented as referenced by 26 other packages but not itself referenced by any database object at the schema level, it functions as a leaf-level service consumed exclusively by PL/SQL callers and forms.

Key Procedures and Functions

The ETRM metadata documents ten procedures and functions within the package body. NEXT_RESULT_SET_ID returns the next available identifier from PO_VALIDATION_RESULT_SET_ID_S and establishes the result set context for a validation run. RESULT_TYPE_RANK assigns a severity ranking to each result type, enabling callers to determine the highest-severity message produced during validation. DELETE_RESULT_SET_AUTO removes a previously generated result set, typically invoked after the caller has consumed and displayed the messages.

The core validation entry points are VALIDATE_HTML_ORDER and VALIDATE_HTML_AGREEMENT, which apply the rule set to documents originating from HTML/self-service channels; VALIDATE_PDOI, which validates records entering through the Purchasing Documents Open Interface; and VALIDATE_MODIFICATION_SYNC, which enforces rules specific to synchronized or changed order modifications. VALIDATE_UNIT_PRICE_CHANGE performs targeted validation when a line's unit price is altered, addressing price tolerance and change-control rules. CHECK_ENCUMBERED_AMOUNT verifies fund reservation status in budgetary control contexts. LOG_VALIDATION_RESULTS_GT persists messages held in the global temporary table into the durable result set. Together these procedures allow callers to invoke either a full document validation or a narrow, single-attribute check.

Tables Accessed

The package reads and writes the core transactional purchasing tables: PO_DISTRIBUTIONS_ALL, PO_LINES_ALL, and PO_LINE_LOCATIONS_ALL provide the header, line, and shipment detail against which rules are evaluated. PO_SYSTEM_PARAMETERS supplies organizational validation options and defaults that conditionally enable or suppress particular checks. PO_VALIDATION_RESULTS_GT serves as the in-session staging area for messages generated during validation, while PO_VALIDATION_RESULT_SET_ID_S provides the unique identifiers that group those messages into coherent result sets. DUAL is used for trivial anonymous queries, and PLITBLM is the standard PL/SQL table-to-message buffer used when raising exceptions and displaying errors. The declared dependencies also include numerous strongly typed collection types (PO_TBL_NUMBER, PO_TBL_VARCHAR1, PO_TBL_VARCHAR30, PO_TBL_VARCHAR2000, PO_TBL_VARCHAR4000) and validation helper packages such as PO_VALIDATION_HELPER, PO_VAL_CONSTANTS, and the PO_VAL_* family of validation routines.

Usage Notes

PO_VALIDATIONS is not intended for direct invocation by end users. It is called by the Purchasing and iProcurement forms, by the Purchasing Documents Open Interface concurrent program, and by the 26 dependent packages that delegate their rule checking to this centralized engine. Custom code requiring PO validation should call the documented procedures rather than reimplementing rules, preserving currency with Oracle's evolving business logic. Because validation results are staged in a global temporary table and identified by PO_VALIDATION_RESULT_SET_ID_S, callers must retrieve the result set id via NEXT_RESULT_SET_ID before invoking a validation procedure, then read results and optionally invoke DELETE_RESULT_SET_AUTO to release them. The package body is documented as VALID in both EBS 12.1.1 and 12.2.2, and no schema object depends on it, so changes to its internals carry a contained impact limited to its PL/SQL consumers.