Search Results insert_range_serial




Overview

INV_SERIAL_EO_PVT is a private (PVT) PL/SQL package body in the Oracle E-Business Suite Inventory module. It provides the internal serial-number processing logic used by the Inventory serial number APIs during "Enterprise Operations" (EO) transactions, such as receiving, moving, and issuing serial-controlled items. The package encapsulates serial validation, creation, update, deletion, and record-selection routines that are not exposed directly to end users but are invoked indirectly by public APIs and forms.

The package header comment identifies the source file as INVSNEOB.pls (version 120.5, dated 2005/08/01), indicating it has been stable across releases and is present in both 12.1.1 and 12.2.2. A global debug flag (g_debug) is set from the profile INV_DEBUG_TRACE, and a private MYDEBUG helper writes trace messages through INV_MOBILE_HELPER_FUNCTIONS.TRACELOG when debugging is enabled at level 1.

Key Procedures and Functions

  • PREPROCESS_SERIAL — Determines whether a supplied serial number already exists in MTL_SERIAL_NUMBERS for the given organization and item. If the serial is found, processing returns with x_is_new_serial = 'N'; if not found, it sets x_is_new_serial = 'Y'. A savepoint (inv_new_serial) is established so that subsequent creation work can be rolled back independently. The excerpt shows a commented call to INV_SERIAL_NUMBER_PUB.INSERT_RANGE_SERIAL, which is the public API the user searched for; the private package performs the surrounding logic instead of calling it directly.
  • DELETE_SERIAL — Removes a serial number record as part of an EO transaction reversal or correction.
  • INSERT_SERIAL — Creates a single new serial number row, used when the range-insert public API is not applicable.
  • UPDATE_SERIAL — Modifies attributes of an existing serial number, such as revision, lot, or locator context.
  • ROSETTA_TABLE_COPY_IN_P0 / _P1 / _P2 and ROSETTA_TABLE_COPY_OUT_P0 / _P1 / _P2 — Paired copy routines that move serial-related data between the PL/SQL collection structures and the Rosetta staging table PLITBLM. The _IN_ variants load data into the table; the _OUT_ variants read it back. The P0/P1/P2 suffixes denote separate payload or partition groups handled by the same pattern.

Tables Accessed

  • MTL_SERIAL_NUMBERS — The primary serial number table. The package reads it in PREPROCESS_SERIAL to check for existence (joined on current_organization_id, inventory_item_id, and serial_number) and writes to it in the insert, update, and delete routines.
  • PLITBLM — A Rosetta/interface staging table used to persist serial data during bulk copy operations. The ROSETTA_TABLE_COPY_IN_* routines load rows here and the ROSETTA_TABLE_COPY_OUT_* routines retrieve them.

Usage Notes

Because this is a PVT package, it is not part of the supported public API surface and should not be called directly by custom code. It is referenced internally by the Inventory serial number public APIs (such as INV_SERIAL_NUMBER_PUB) and by EO transaction flows triggered from the Inventory and Mobile Supply Chain forms. The presence of the commented INSERT_RANGE_SERIAL call indicates that serial-range creation from the public layer ultimately delegates the validation and persistence work to this package. The package is referenced by zero other packages per the ETRM metadata, confirming it sits at the bottom of the call stack and is invoked as a leaf utility.

When troubleshooting serial-number issues, enable the INV_DEBUG_TRACE profile to level 1 to capture trace output. Because exceptions in PREPROCESS_SERIAL are trapped on NO_DATA_FOUND rather than propagated as errors, an unrecognized serial is treated as a new serial rather than as a failure — a behavior worth remembering when diagnosing unexpected serial creation during receipt or move transactions.