Search Results aso_quote_line_number




Overview

ASO_LINE_NUM_INT is an internal PL/SQL package within the Oracle E-Business Suite Order-to-Cash (ASO) schema that governs the derivation and presentation of quote line numbers in the Oracle Quoting module. In Oracle EBS 12.1.1 and 12.2.2, the Oracle Quoting user interface does not expose the raw primary key QUOTE_LINE_ID stored in ASO_QUOTE_LINES_ALL to end users. Instead, it presents a human-readable, sequentially generated "UI line number" of up to ten characters. This package encapsulates the business logic that converts between the underlying database identifier and the user-visible line number, ensuring consistency across the quoting user interface, serviceability scenarios, and configuration-related line items.

The package is classified as an OTHER API within the ETRM (E-Business Suite Technical Reference Manual) repository, indicating it is intended primarily for internal consumption by Oracle Quoting forms and dependent packages rather than as a public integration interface. Its header comment block is minimal, and the source revision identifier (asoilnms.pls 120.1) confirms it has been a stable component since the earlier 11i lineage, carried forward into the 12.x releases.

Key Procedures and Functions

The package exposes four documented subprograms, organized around two core capabilities: generating UI line numbers and resetting cached numbering state.

  • ASO_UI_LINE_NUMBER — The principal procedure. It accepts an input collection of line number records (each carrying a Quote_Line_ID) and returns an output collection of VARCHAR2(10) values representing the corresponding UI line numbers. This bulk, set-based design allows the Oracle Quoting forms layer to resolve line numbers for an entire quote in a single round trip rather than row by row.
  • RESET_LINE_NUM — A utility procedure that clears or reinitializes the package's internal numbering state. It is typically invoked at the start of a quoting session or when a quote is refreshed, ensuring that line numbers are regenerated cleanly and do not carry over stale values from a prior context.
  • ASO_QUOTE_LINE_NUMBER — A function that computes a UI line number for a single quote line. Its parameter set spans the line's item type, serviceable product and service item flags, service reference type, and configuration header/revision identifiers — reflecting the fact that line numbering in Oracle Quoting must account for serviceable products and configured items, not merely simple catalog lines.
  • GET_UI_LINE_NUMBER — A convenience function that returns the UI line number for a given Quote_Line_Id. It is the simplest retrieval entry point and is suitable for callers that already hold the internal identifier and need only its display counterpart.

Tables Accessed

The package operates against two documented data sources. ASO_QUOTE_LINES_ALL is the base table for Oracle Quoting line items and is the authoritative source for QUOTE_LINE_ID values, item type codes, serviceability flags, and configuration attributes referenced by ASO_QUOTE_LINE_NUMBER. PLITBLM is an Oracle Application Object Library table commonly used for temporary or indexed PL/SQL table storage. Notably, the package does not maintain a persistent mapping table for UI line numbers; the numbering is derived on demand from the line records plus the package's in-memory state, which is why RESET_LINE_NUM is required to clear that state.

Usage Notes

ASO_LINE_NUM_INT is referenced by nine other packages in the APPS schema, confirming its role as a shared internal service. It is invoked most prominently from the Oracle Quoting forms stack when rendering the quote lines block, where ASO_UI_LINE_NUMBER is called in bulk to populate the displayed line number field. Customizations and extensions that manipulate quote lines directly — particularly those that insert or renumber lines outside the standard forms flow — should call RESET_LINE_NUM before and after their processing to avoid inconsistencies between the internal identifiers and the numbers shown to users. Because the package is classified as an internal API with a terse header and no documented public extension contract, developers should treat its signature and behavior as Oracle-controlled and avoid forming hard dependencies on it in custom code where an alternative public API exists.