Search Results update_quantity_allocations




Overview

APPS.INV_MO_LINE_DETAIL_UTIL is a utility PL/SQL package in the Oracle E-Business Suite Inventory module. Its classification within the ETRM metadata is UTIL, reflecting its role as a shared, low-level service layer rather than a business-facing API. The package encapsulates the reusable logic required to create, maintain, lock, and query the line-detail records that underpin move orders, pick waves, replenishment transactions, and warehouse execution activities. In Oracle EBS 12.1.1 and 12.2.2, move order line details represent the granular allocation and reservation records associated with a move order line, including lot, serial, and quantity allocation information. INV_MO_LINE_DETAIL_UTIL centralizes operations on those records so that higher-level public APIs do not duplicate persistence logic. The package is documented as VALID in the APPS schema and is referenced by fourteen other packages, confirming its foundational role in the inventory and warehouse management stack.

Key Procedures and Functions

The package exposes ten documented procedures and functions, organized around standard CRUD, concurrency, and allocation management patterns:

  • INSERT_ROW — creates a new move order line detail record.
  • UPDATE_ROW — modifies an existing line detail record.
  • DELETE_ROW — removes a line detail record.
  • LOCK_ROW — acquires a row-level lock to serialize concurrent modification.
  • QUERY_ROW — retrieves a single line detail record, typically by primary key.
  • QUERY_ROWS — retrieves a set of line detail records based on selection criteria.
  • UPDATE_QUANTITY_ALLOCATIONS — adjusts the allocated quantity across detail records associated with a line.
  • REDUCE_ALLOCATION_QUANTITY — reduces an existing allocation quantity, supporting partial backorder, cancellation, or reallocation scenarios.
  • DELETE_ALLOCATIONS — removes allocation detail records, commonly during cancellation or reversal processing.
  • IS_LINE_DETAILED — a Boolean-style function that determines whether a given move order line has associated detail records.

Together these procedures implement the full lifecycle of allocation detail data, from creation through query, lock, quantity adjustment, and deletion, with IS_LINE_DETAILED serving as a decision point for upstream conditional logic.

Tables Accessed

The package operates against several core Inventory tables accessed through APPS synonyms. MTL_SYSTEM_ITEMS and MTL_SYSTEM_ITEMS_B provide item validation and attribute retrieval. MTL_LOT_NUMBERS supports lot-controlled inventory, while MTL_SERIAL_NUMBERS and MTL_SERIAL_NUMBERS_TEMP support serialized item handling during transaction preparation. MTL_MATERIAL_TRANSACTIONS_TEMP, MTL_TRANSACTION_LOTS_TEMP, and related temporary structures hold pending transaction and lot data during allocation updates. The package also references DBMS_SQL and PLITBLM, indicating dynamic SQL and PL/SQL table (index-by table) processing for set-based operations. These tables collectively represent the item, lot, serial, and pending transaction data required to maintain accurate move order line details.

Usage Notes

INV_MO_LINE_DETAIL_UTIL is not intended for direct invocation by end users or via standard concurrent program parameters. It is called internally by higher-level packages. The documented dependency list shows that INV_PICK_WAVE_PICK_CONFIRM_PUB — the object associated with the user's search term "inv_pick_wave_pick_confirm_pub" — references this utility, meaning pick confirmation processing relies on it to update line detail and allocation records. Other callers include INV_MO_BACKORDER_PVT, INV_MO_CANCEL_PVT, INV_REPLENISH_DETAIL_PUB, INV_TRANSFER_ORDER_PVT, GMI_MOVE_ORDER_LINE_UTIL, GME_COMMON_PVT, WMS_TASK_DISPATCH_GEN, WMS_TASK_MGMT_PUB, and WSH_PICK_LIST. Customizations that need to manipulate move order line details should prefer the public APIs that wrap this utility, such as INV_PICK_WAVE_PICK_CONFIRM_PUB, to preserve transactional integrity and standard business validation. Direct calls should be reserved for controlled extensions that require the same low-level detail maintenance behavior.