Search Results wms_rule_2
Overview
WMS_RULE_2 is a PL/SQL package owned by the APPS schema in Oracle E-Business Suite, classified under the ETRM repository as an "OTHER" API. It forms part of the Oracle Warehouse Management (WMS) rule engine infrastructure, the subsystem responsible for evaluating user-defined business rules that govern warehouse execution decisions such as put-away, picking, replenishment, and location selection. The package operates as a cursor management utility: rather than encapsulating business logic itself, it supplies the procedural machinery that opens, advances, and closes a server-side cursor over the set of records that satisfy a given WMS rule. In doing so, it isolates the mechanics of row-by-row retrieval so that rule-evaluation routines elsewhere in the WMS stack can iterate over candidate records — for example, eligible inventory locations, lots, or serial numbers — without embedding raw cursor definitions in their own bodies. The package is documented as VALID in the 12.2.2 ETRM data set and depends directly on APPS.WMS_RULE_PVT, the primary private rule-processing package, and on the SYS.STANDARD library. Its presence across 12.1.1 and 12.2.2 reflects the long-standing stability of the WMS rule framework between those releases.
Key Procedures and Functions
The ETRM metadata documents four procedures in WMS_RULE_2, all concerned with the lifecycle of a server-side cursor:
- OPEN_CURS — Initializes the cursor handle used by the package. It establishes the query context that subsequent fetch operations consume.
- FETCH_ONE_ROW — Retrieves a single row from the open cursor. It is the mechanism by which callers advance through the result set one record at a time, typically within a loop that evaluates each candidate against rule criteria.
- CLOSE_CURS — Releases the cursor and its associated resources once iteration is complete. Proper invocation of this procedure is required to avoid leaking open cursors within a session.
- FETCH_AVAILABLE_ROWS — Retrieves the full set of rows currently available in the cursor, providing a bulk-style alternative to the single-row fetch for callers that need the entire candidate population in one pass.
These four routines constitute a conventional open-fetch-close cursor protocol. Parameter lists are not exposed in the available metadata and should be confirmed against the live package specification before any custom integration is attempted.
Tables Accessed
WMS_RULE_2 references six base tables through APPS synonyms, all central to inventory and lot/serial control:
- MTL_ITEM_LOCATIONS — The definition of warehouse subinventory locations; rule evaluation frequently filters candidate locations by picking or put-away order, capacity, and locator attributes.
- MTL_SECONDARY_INVENTORIES — Subinventory definitions, used to constrain rule results to eligible subinventories.
- MTL_ONHAND_QUANTITIES_DETAIL — The detailed on-hand quantity ledger, supplying the quantity and locator-level availability that drives availability-based rules.
- MTL_LOT_NUMBERS — Lot master data, required for lot-controlled items where rules must respect lot attributes such as expiration or grade.
- MTL_SERIAL_NUMBERS — Serial number master data, used when rules apply to serial-controlled inventory.
- PLITBLM — The PL/SQL integer table type used as a collection structure, typically to pass or accumulate numeric identifiers (such as location or inventory item IDs) between the package and its callers.
Together these objects indicate that the cursor surfaced by WMS_RULE_2 operates over location and on-hand inventory data, qualified by lot and serial constraints where applicable.
Usage Notes
WMS_RULE_2 is an internal, non-public utility package rather than an Oracle-published integration API, and the ETRM repository records it as referenced by only one other package: WMS_RULE_PICK_PKG1. This dependency indicates that its principal documented consumer is the picking rule processing layer, which requires an ordered, iterable set of candidate inventory records during pick-wave and pick-slip generation. Because WMS_RULE_PICK_PKG1 in turn participates in the WMS picking workflow, WMS_RULE_2 is most commonly executed indirectly — as a result of warehouse operations initiated through the WMS mobile radio-frequency (RF) forms, the Oracle Warehouse Management concurrent programs, and pick-release processing — rather than being called directly by end users or standard Oracle Forms. Custom code should not invoke WMS_RULE_2 directly: the package is undocumented as an extension point, carries no compatibility guarantee, and its cursor state is shared with WMS_RULE_PVT. Any customization that requires rule-based inventory selection should instead use supported APIs or views. Where diagnostic work is required, DBMS_UTILITY.FORMAT_ERROR_BACKTRACE and dependency queries against ALL_DEPENDENCIES can confirm which routines in the WMS rule stack are active on a given version.
-
PACKAGE: APPS.WMS_RULE_2
12.2.2
owner:APPS, object_type:PACKAGE, object_name:WMS_RULE_2, status:VALID,
-
PACKAGE BODY: APPS.WMS_RULE_2
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:WMS_RULE_2, status:VALID,
-
PACKAGE: APPS.WMS_RULE_2
12.1.1
owner:APPS, object_type:PACKAGE, object_name:WMS_RULE_2, status:VALID,
-
PACKAGE BODY: APPS.WMS_RULE_2
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:WMS_RULE_2, status:VALID,
-
PACKAGE: APPS.WMS_RULE_2
12.2.2
-
PACKAGE: APPS.WMS_RULE_2
12.1.1
-
PACKAGE: APPS.WMS_RULE_PVT
12.2.2
owner:APPS, object_type:PACKAGE, object_name:WMS_RULE_PVT, status:VALID,
-
PACKAGE: APPS.WMS_RULE_PVT
12.1.1
owner:APPS, object_type:PACKAGE, object_name:WMS_RULE_PVT, status:VALID,
-
PACKAGE BODY: APPS.WMS_RULE_PICK_PKG1
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:WMS_RULE_PICK_PKG1, status:VALID,
-
PACKAGE: APPS.INV_DETAIL_UTIL_PVT
12.2.2
owner:APPS, object_type:PACKAGE, object_name:INV_DETAIL_UTIL_PVT, status:VALID,
-
PACKAGE: APPS.INV_DETAIL_UTIL_PVT
12.1.1
owner:APPS, object_type:PACKAGE, object_name:INV_DETAIL_UTIL_PVT, status:VALID,
-
PACKAGE BODY: APPS.WMS_RULE_PICK_PKG1
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:WMS_RULE_PICK_PKG1, status:VALID,
-
PACKAGE: APPS.WMS_SEARCH_ORDER_GLOBALS_PVT
12.1.1
owner:APPS, object_type:PACKAGE, object_name:WMS_SEARCH_ORDER_GLOBALS_PVT, status:VALID,
-
PACKAGE: APPS.WMS_SEARCH_ORDER_GLOBALS_PVT
12.2.2
owner:APPS, object_type:PACKAGE, object_name:WMS_SEARCH_ORDER_GLOBALS_PVT, status:VALID,
-
12.1.1 DBA Data
12.1.1
-
SYNONYM: APPS.MTL_MATERIAL_STATUSES
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_MATERIAL_STATUSES, status:VALID,
-
12.2.2 DBA Data
12.2.2
-
PACKAGE BODY: APPS.WMS_RULE_PICK_PKG1
12.1.1
-
PACKAGE BODY: APPS.WMS_RULE_PICK_PKG1
12.2.2
-
12.2.2 DBA Data
12.2.2
-
12.1.1 DBA Data
12.1.1
-
SYNONYM: APPS.MTL_ONHAND_QUANTITIES_DETAIL
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_ONHAND_QUANTITIES_DETAIL, status:VALID,
-
VIEW: APPS.WMS_TRX_DETAILS_TMP_V
12.2.2
owner:APPS, object_type:VIEW, fnd_design_data:WMS.WMS_TRX_DETAILS_TMP_V, object_name:WMS_TRX_DETAILS_TMP_V, status:VALID,
-
VIEW: APPS.WMS_TRX_DETAILS_TMP_V
12.1.1
owner:APPS, object_type:VIEW, fnd_design_data:WMS.WMS_TRX_DETAILS_TMP_V, object_name:WMS_TRX_DETAILS_TMP_V, status:VALID,
-
SYNONYM: APPS.MTL_ONHAND_QUANTITIES_DETAIL
12.2.2
owner:APPS, object_type:SYNONYM, object_name:MTL_ONHAND_QUANTITIES_DETAIL, status:VALID,
-
SYNONYM: APPS.MTL_ITEM_LOCATIONS
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_ITEM_LOCATIONS, status:VALID,
-
SYNONYM: APPS.MTL_ITEM_LOCATIONS
12.2.2
owner:APPS, object_type:SYNONYM, object_name:MTL_ITEM_LOCATIONS, status:VALID,
-
SYNONYM: APPS.MTL_LOT_NUMBERS
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_LOT_NUMBERS, status:VALID,
-
SYNONYM: APPS.MTL_LOT_NUMBERS
12.2.2
owner:APPS, object_type:SYNONYM, object_name:MTL_LOT_NUMBERS, status:VALID,
-
SYNONYM: APPS.MTL_SERIAL_NUMBERS
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_SERIAL_NUMBERS, status:VALID,
-
SYNONYM: APPS.MTL_SERIAL_NUMBERS
12.2.2
owner:APPS, object_type:SYNONYM, object_name:MTL_SERIAL_NUMBERS, status:VALID,
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_2
12.1.1
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_2
12.2.2
-
PACKAGE BODY: APPS.WMS_RULE_2
12.1.1
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_2
12.1.1
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_2
12.2.2
-
PACKAGE BODY: APPS.WMS_RULE_2
12.2.2
-
SYNONYM: APPS.MTL_SECONDARY_INVENTORIES
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_SECONDARY_INVENTORIES, status:VALID,
-
SYNONYM: APPS.MTL_SECONDARY_INVENTORIES
12.2.2
owner:APPS, object_type:SYNONYM, object_name:MTL_SECONDARY_INVENTORIES, status:VALID,
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_3
12.1.1
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_3
12.2.2
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_4
12.1.1
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_4
12.2.2
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_PVT
12.2.2
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_PVT
12.1.1
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_1
12.2.2
-
APPS.WMS_RULE_PICK_PKG1 dependencies on WMS_RULE_1
12.1.1
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_PVT
12.1.1
-
SYNONYM: APPS.MTL_PARAMETERS
12.1.1
owner:APPS, object_type:SYNONYM, object_name:MTL_PARAMETERS, status:VALID,
-
APPS.WMS_RULE_2 dependencies on WMS_RULE_PVT
12.2.2