Search Results info_slin_num_exhausted
Overview
APPS.PON_CLO_RENUMBER_PKG is a PL/SQL package body within the Oracle E-Business Suite Purchasing module that supports the Contract Line-Out (CLO) renumbering requirements of Oracle Procurement Contracts and the associated solicitation/auction line structures. Its principal business function is to generate and maintain sequential identifier numbers for contract lines, externally referenced lines (ELINs), and the "info" and "priced" sub-line structures (SLINs) that underpin negotiated contract documents. The package provides a deterministic, ordered renumbering capability that preserves the relationship between lines, sub-lines, and their associated pricing when lines are added, deleted, or resequenced during the contract authoring lifecycle.
The package belongs to the ETRM classification "OTHER" and is owned by APPLSYS/APPS. The header revision ($Header: PONCLORNB.pls 120.27.12020000.2) indicates maintenance through the 12.2 code line, consistent with 12.1.1 and 12.2.2 installations. The exception identifiers raised by the package — PON_CLIN_NUMBERS_EXHAUSTED (-20900) and PON_INVALID_CLIN_NUMBER (-20901) — are the documented error codes surfaced to the calling form or concurrent program. The user search term "info_slin_num_exhausted" corresponds directly to this exhaustion logic, which prevents overflow of the four-digit CLIN/SLIN numbering space.
Key Procedures and Functions
The package exposes 23 documented procedures and functions. The core line-numbering logic includes INCREMENT_CLIN_NUMBER, INCREMENT_ELIN_NUMBER, INCREMENT_INFO_SLIN_NUMBER, and INCREMENT_PRICED_SLIN_NUMBER, each responsible for advancing the respective identifier by one and enforcing the numeric ceiling. NEXT_CLIN_NUM, NEXT_ELIN_NUM_WRAPPER, NEXT_ELIN_NUM_WRAPPER2, NEXT_CLIN_NUM_WRAPPER2, and NEXT_CLIN_NUM_WRAPPER2 expose the successor value to callers.
- INCREMENT_CLIN_NUMBER — Converts the input CLIN to a number, increments it, raises an exhaustion exception when the ceiling is exceeded, and returns a zero-padded four-character value. This is the pattern mirrored for the ELIN, info-SLIN, and priced-SLIN increments.
- FIRST_INFO_SLIN_NUMBER — Establishes the initial info SLIN identifier for a line structure.
- ELIN_TO_DECIMAL / DECIMAL_TO_ELIN — Convert between the externally referenced line identifier and its decimal equivalent, enabling arithmetic comparison and sorting.
- VALIDATE_CLIN_NUMBER — Checks a supplied CLIN against the expected format and bounds.
- RENUMBERALLLINES, RENUMBERSLIN, RENUMBERSLINSTRUCTURE — Perform the bulk resequencing of contract lines and the SLIN hierarchy after line insertions or deletions.
- GETNEXTSLINNUMBER — Retrieves the next available SLIN number for allocation.
- TESTINCREMENTCLINNUM, TESTINCREMENTPRICEDSLINNUM, TESTINCREMENTINFOSLINNUM — Diagnostic functions retained for internal verification of the increment logic.
Two private functions are declared as helper routines: SORT_TABLE, which orders a collection of identifier strings, and the internal increment/validation logic reused across the public wrappers.
Tables Accessed
The package references four documented objects, accessed through APPS synonyms:
- PON_AUCTION_ITEM_PRICES_ALL — Pricing records for auction items, consulted when renumbering priced SLINs so that price rows remain aligned with their line identifiers.
- PO_LINES_INTERFACE — The purchasing lines interface table, used when renumbering affects staged line data awaiting import.
- PLITBLM — The purchasing line interface interim table that holds line detail during processing.
- DUAL — Used for numeric conversion and zero-padding operations within the increment functions.
The read/write pattern preserves consistency between the contract line identifiers and the derived pricing and interface rows.
Usage Notes
PON_CLO_RENUMBER_PKG is invoked by the Procurement Contracts and Purchasing line-authoring forms during save and renumber actions, and by concurrent programs that rebuild line structures. It is referenced by eleven other packages, indicating it is a shared utility rather than an entry-point-only API. Custom code integrating with the CLO renumbering flow should call the public wrappers (NEXT_CLIN_NUM, NEXT_ELIN_NUM_WRAPPER, GETNEXTSLINNUMBER) rather than the increment routines directly, and should handle the PON_CLIN_NUMBERS_EXHAUSTED and PON_INVALID_CLIN_NUMBER exceptions, which surface as the exhaustion condition associated with the info-SLIN search term.