Search Results wms_rule_9




Overview

WMS_RULE_9 is a PL/SQL package owned by the APPS schema in Oracle E-Business Suite, classified as a non-public (OTHER) API within the Warehouse Management System (WMS) module. The package belongs to the family of numbered rule packages in the WMS rule engine architecture, which in turn depend on the central WMS_RULE_PVT package for their shared logic. Its core business purpose is to support rule-based decision processing within warehouse operations — evaluating the data attributes of inventory locations, subinventories, and items against configured rules so that put-away, picking, and locator determination logic can return a compliant result.

The package is structured with a package specification and a package body, and the ETRM metadata confirms its Status as VALID in the 12.1.1 / 12.2.2 code lines. Its dependency on WMS_RULE_PVT indicates that the individual rule package delegates common rule-evaluation utilities, rather than reimplementing them. WMS_RULE_9 is itself referenced by WMS_RULE_9 (self-reference, through the body) and by WMS_RULE_PUT_PKG1, establishing it as a component consumed by put-away processing logic.

Key Procedures and Functions

The documented public interface comprises three procedures, all of which are cursor-control primitives. Their naming and the package's dependency pattern indicate a rule evaluation implementation that drives a stored cursor over the candidate inventory data:

  • OPEN_CURS — Opens the cursor that selects the candidate rows (such as eligible locators or item/subinventory combinations) to which the rule predicate is applied. It establishes the query context before per-row evaluation begins.
  • FETCH_ONE_ROW — Fetches a single row from the open cursor so that the rule logic can inspect the retrieved attributes and decide whether the row satisfies the rule condition. It is the iterative evaluation step.
  • CLOSE_CURS — Closes the cursor and releases its resources once evaluation is complete or the desired match has been found.

No parameter lists are documented in the ETRM metadata; the procedures should be treated as an internal cursor-management API invoked through the rule framework rather than as a standalone called interface.

Tables Accessed

All table access is made through APPS synonyms. The documented tables and their role in the rule evaluation are:

  • MTL_ITEM_LOCATIONS — The inventory locator definition; supplies the location-level attributes (physical locator, locator type, capacity indicators) evaluated by the rule.
  • MTL_ITEM_SUB_INVENTORIES — The item-to-subinventory assignment; determines in which subinventories an item is permitted or defaulted.
  • MTL_SECONDARY_INVENTORIES — Subinventory definitions, including subinventory type, asset flag, and locator-control attributes.
  • MTL_SECONDARY_LOCATORS — The relationship linking locators to subinventories, used to constrain candidate locations to the relevant subinventory.
  • MTL_SYSTEM_ITEMS — The item master; provides item-level attributes such as unit of measure, lot control, and status.
  • MTL_UNITS_OF_MEASURE — Validates and interprets the unit of measure associated with the item and location.

Usage Notes

WMS_RULE_9 is an internal engine component, not a user-invocable API. It is typically executed indirectly when warehouse operations require a rule-driven decision — most notably during put-away, where WMS_RULE_PUT_PKG1 invokes the rule package to determine the appropriate destination locator for received material. It may also be reached from the WMS mobile/desktop inventory flows and from customized code that participates in the WMS rule framework.

Because the package relies on WMS_RULE_PVT for shared services and is tightly coupled to the numbered-rule framework, direct calls from custom code are discouraged. Customizations should invoke the framework through WMS_RULE_PUT_PKG1 or the supporting WMS rule APIs, leaving the individual rule package to be managed by Oracle. Any modification risks invalidating dependent packages; the dependency chain must be recompiled after patching in either 12.1.1 or 12.2.2.