Search Results elin_numbers_exhausted




Overview

PON_CLO_RENUMBER_PKG is a public PL/SQL package owned by the APPS schema in Oracle E-Business Suite Release 12.1.1 and 12.2.2. Its business purpose is the management and renumbering of contract line identifiers within Oracle Purchasing and Oracle Contract Lifecycle Management. Specifically, the package governs the assignment and recycling of Clinical Line Numbers (CLINs), Exhibit Line Numbers (ELINs), and subordinate line numbers (Info and Priced Sub-Line Numbers, or SLINs) associated with contract documents, exhibits, and auction line structures.

The package is declared with AUTHID CURRENT_USER, executing with the privileges of the invoking user rather than the definer. It exposes a comprehensive set of public methods and user-defined exceptions, the latter of which include NO_MORE_LINES_CAN_BE_ADDED, CLIN_NUMBERS_EXHAUSTED, ELIN_NUMBERS_EXHAUSTED, INVALID_CLIN_NUMBER, INVALID_ELIN_NUMBER, INVALID_INPUT_CLIN_ARRAY, INFO_SLIN_NUM_EXHAUSTED, and PRICED_SLIN_NUM_EXHAUSTED. These exceptions are central to the package's contract: when the pool of assignable line identifiers is depleted, the calling application receives a deterministic, catchable signal rather than a corrupt or duplicate number. This is the direct context in which the search term elin_numbers_exhausted arises.

Key Procedures and Functions

The package documents twenty-three procedures and functions. The numeric assignment functions form the core of the API:

  • NEXT_CLIN_NUM — Accepts an array of already-assigned CLIN numbers and returns the next lowest available CLIN number. This is the only method noted as requiring a pure PL/SQL implementation.
  • NEXT_CLIN_NUM_WRAPPER and NEXT_CLIN_NUM_WRAPPER2 — Server-side wrappers that resolve the next CLIN from a document context. The second variant additionally accepts newly created line numbers from the current session to derive the latest possible next CLIN. The use of wrappers indicates these routines are invoked from Java or middle-tier code as well as from PL/SQL.
  • NEXT_ELIN_NUM_WRAPPER and NEXT_ELIN_NUM_WRAPPER2 — Equivalent wrappers for deriving the next available ELIN within a document, product code, and exhibit number.
  • ELIN_TO_DECIMAL and DECIMAL_TO_ELIN — Conversion utilities that translate between the alphanumeric ELIN representation and its internal decimal equivalent, enabling ordered comparison and increment logic.
  • INCREMENT_CLIN_NUMBER, INCREMENT_ELIN_NUMBER, INCREMENT_INFO_SLIN_NUMBER, INCREMENT_PRICED_SLIN_NUMBER — Increment routines for each numbering series, supporting the sequential allocation of identifiers.
  • FIRST_INFO_SLIN_NUMBER — Returns the initial Info SLIN number for a structure.
  • GETNEXTSLINNUMBER — Returns the next available SLIN.
  • VALIDATE_CLIN_NUMBER — Validates a supplied CLIN number against numbering rules.
  • RENUMBERALLLINES, RENUMBERSLIN, RENUMBERSLINSTRUCTURE — Bulk renumbering routines that rebuild the complete line-numbering scheme of a contract or its SLIN structure.
  • TESTINCREMENTCLINNUM, TESTINCREMENTPRICEDSLINNUM, TESTINCREMENTINFOSLINNUM — Test entry points for the increment logic.

Tables Accessed

The package references the following objects through APPS synonyms: PON_AUCTION_ITEM_PRICES_ALL, which holds auction item pricing and line data relevant to CLIN/ELIN assignment; PO_LINES_INTERFACE, the Purchasing open interface table used when lines are loaded or renumbered prior to import; DUAL, used for scalar evaluation and numeric derivation; and PLITBLM, the PL/SQL table mapping utility used to pass array structures between the PL/SQL and Java tiers.

Usage Notes

PON_CLO_RENUMBER_PKG is referenced by eleven other packages, indicating that it is a shared numbering service for contract-line processing rather than a standalone utility. It is typically invoked when a user adds a line to a contract or auction in the Purchasing/CLM forms, when the SLIN structure is regenerated, or when line data is processed through the PO_LINES_INTERFACE. Because the wrappers are callable from the middle tier, the package may also be invoked from Java-based contract authoring components.

The user-defined exceptions are the most operationally significant aspect of the API. When ELIN_NUMBERS_EXHAUSTED is raised, the assignable ELIN sequence for the document or exhibit has been consumed, and the calling application must surface an error or extend the numbering range. Custom code that calls these routines should explicitly handle all eight declared exceptions to avoid unhandled propagation.