Search Results is_trx_allowed_wrap
Overview
APPS.INV_MATERIAL_STATUS_GRP is the material status validation and maintenance group package within Oracle Inventory. It centralizes the business rules that govern what a material status permits, how statuses propagate across locators, subinventories, lots, serials, and LPNs, and how status transitions are recorded. In Oracle EBS 12.1.1 and 12.2.2 the package belongs to the API classification GRP, indicating it is a grouping package that consolidates related status-handling logic consumed by other Inventory APIs rather than serving as a standalone transaction entry point.
The package is most closely associated with Warehouse Management (WMS) functionality introduced in the 11i/12.x lineage, where LPN (License Plate Number) status validation became a first-class concern. Its functions answer two fundamental questions: whether a given transaction type is permitted against a given status, and whether performing that transaction would cause a mixed-status condition within an LPN, an outer LPN, or the surrounding inventory structure. The package header carries the revision identifier INVMSGRS.pls 120.6.12010000.2, confirming its presence across the 12.1.1 and 12.2.2 code lines.
Because status control is enforced at multiple levels, the package is referenced by a large number of dependent objects — the documented metadata records 59 referencing packages. This makes it a foundational dependency for on-hand validation, move-order processing, and receiving flows.
Key Procedures and Functions
The documented interface contains twenty procedures and functions. The core validation routines include IS_TRX_ALLOWED, which returns whether a status permits a transaction type, and IS_TRX_ALLOW_LPNS and IS_TRX_ALLOWED_WRAP, which extend that check to LPN-specific contexts. IS_STATUS_APPLICABLE_LPNS evaluates whether an on-hand status is valid for a transaction and detects mixed-status outcomes, returning a code where 0 signifies success and non-zero values signal mixed status across the LPN, other LPNs in the outer LPN, or the outer LPN itself. IS_STATUS_APPLICABLE and STATUS_COMMINGLE_CHECK perform the equivalent applicability and comingling checks outside the LPN-specific path.
For the user's search term, GET_LPN_STATUS is the relevant function: it retrieves the material status associated with an LPN, enabling callers to resolve the effective status of a license plate before applying validation or update logic.
Status resolution and assignment are handled by GET_DEFAULT_STATUS and its concurrent counterpart GET_DEFAULT_STATUS_CONC, GET_ONHAND_STATUS_ID, and GET_ACTION_ID. UPDATE_STATUS performs the actual status change, while INSERT_STATUS_HISTORY records the audit trail.
Control-level lookups include GET_LOT_SERIAL_STATUS_CONTROL, GET_LOCATOR_CONTROL, LOC_VALID_FOR_ITEM, SUB_VALID_FOR_ITEM, and SUB_LOC_VALID_FOR_ITEM, which determine whether lots, serials, locators, and subinventories are valid status carriers for a given item. CHECK_MOVE_DIFF_STATUS supports move-order scenarios where source and destination statuses differ.
Tables Accessed
The package reads and writes the core status definition and history tables: MTL_MATERIAL_STATUSES and MTL_MATERIAL_STATUS_HISTORY. On-hand and transaction context is drawn from MTL_ONHAND_QUANTITIES_DETAIL, MTL_MATERIAL_TRANSACTIONS, and MTL_MATERIAL_TRANSACTIONS_TEMP.
Item and location validation relies on MTL_ITEM_LOCATIONS, MTL_ITEM_SUB_INVENTORIES, MTL_SECONDARY_INVENTORIES, MTL_SECONDARY_LOCATORS, and MTL_PARAMETERS. Lot, serial, and installation attributes are sourced from MTL_LOT_NUMBERS, MTL_SERIAL_NUMBERS, MTL_SERIAL_NUMBERS_TEMP, and CSI_INSTALL_PARAMETERS. The MTL_STATUS_TRANSACTION_CONTROL table supplies the transaction-type-to-status control matrix that drives IS_TRX_ALLOWED and related checks.
Usage Notes
INV_MATERIAL_STATUS_GRP is invoked indirectly rather than directly by end users. Inventory forms, move-order processing, receiving, and WMS-directed put-away and picking flows call into this package through the Inventory transaction APIs. Concurrent programs such as default status assignment use the concurrent variant GET_DEFAULT_STATUS_CONC. Custom extensions performing on-hand moves, LPN operations, or status-sensitive validations should call the appropriate validation function before committing a transaction and should consult GET_LPN_STATUS when the status of an LPN must be resolved. Given the 59 documented referencing packages, changes to this package carry broad regression risk.