Search Results pjm_unit_eff




Overview

PJM_UNIT_EFF is a valid PL/SQL package body owned by the APPS schema in Oracle E-Business Suite 12.1.1 and 12.2.2. It belongs to the Oracle Project Manufacturing (PJM) product family and encapsulates the logic that resolves and manages unit effective information, commonly referred to as unit numbers or unit effectivity. In Project Manufacturing environments, a unit number identifies an individual tracked unit of a manufactured or procured item, and the effective range associated with that unit determines which engineering configuration, bill of material, or routing revision applies during a given transaction. The PJM_UNIT_EFF package serves as the central utility that determines the correct unit number and effective configuration for a source document, validates serial-to-unit relationships, and records unit and serial history across the supply chain lifecycle.

Because the package is classified as OTHER rather than as a public API, it is intended primarily as internal infrastructure. It is not referenced by any database object according to the documented dependency information, but it is itself a heavy consumer of core EBS tables and is referenced by 28 other packages, indicating that many PJM and adjacent modules depend on it to derive unit effectivity at transaction time.

Key Procedures and Functions

The documented interface exposes 17 procedures and functions:

  • ENABLED — Determines whether unit effectivity functionality is active for the current operating context, typically by evaluating organization parameters or profile options.
  • ALLOW_CROSS_UNITNUM_ISSUES — Indicates whether an issue transaction may cross from one unit number to another, honoring the configured cross-unit issue policy.
  • UNIT_EFFECTIVE_ITEM — Confirms whether an item is unit effective and therefore subject to unit number tracking.
  • SET_UNIT_NUMBER, CURRENT_UNIT_NUMBER, PREV_UNIT_NUMBER, NEXT_UNIT_NUMBER — Manage a session-level or context-level pointer to the unit number, allowing callers to establish, retrieve, and navigate between visited unit numbers within a transaction or conversation.
  • WIP_UNIT_NUMBER and WIP_UNIT_NUMBER_CACHED — Derive the unit number associated with a work in process entity, with the cached variant avoiding repeated resolution.
  • RCV_UNIT_NUMBER — Resolves the unit number for a receiving transaction.
  • OE_LINE_UNIT_NUMBER and OE_LINE_UNIT_NUMBER_CACHED — Return the unit number tied to an order entry line, again with a cached form for performance.
  • RMA_RCPT_UNIT_NUMBER — Determines the unit number for a return material authorization receipt.
  • VALIDATE_SERIAL — Confirms that a serial number is valid for the unit and item in question.
  • SERIAL_UNITNUM_LINK and OE_ATTRIBUTE — Establish the link between a serial number and its unit number and retrieve the unit number attribute attached to an order entry line.
  • UNIT_SERIAL_HISTORY — Records unit and serial usage into the history table for audit and traceability.

Tables Accessed

The package reads and writes a broad set of application tables through APPS synonyms. Manufacturing and inventory data is drawn from MTL_SYSTEM_ITEMS and MTL_SYSTEM_ITEMS_B for item attributes, MTL_MATERIAL_TRANSACTIONS and MTL_UNIT_TRANSACTIONS for inventory movement and unit activity, MTL_SERIAL_NUMBERS and MTL_TRANSACTION_LOT_NUMBERS for serialization and lot linkage. Order management data comes from OE_ORDER_LINES_ALL. Purchasing and receiving data is accessed through PO_DISTRIBUTIONS_ALL, PO_REQ_DISTRIBUTIONS_ALL, and RCV_TRANSACTIONS. Work in process context is obtained from WIP_DISCRETE_JOBS, WIP_ENTITIES, and WIP_FLOW_SCHEDULES. PJM-specific configuration and tracking reside in PJM_ORG_PARAMETERS, PJM_UNIT_NUMBERS, and PJM_UNIT_SERIAL_HISTORY. Utility services are provided by FND_GLOBAL, FND_MESSAGE, and FND_PROFILE.

Usage Notes

PJM_UNIT_EFF is typically invoked indirectly. Oracle forms, concurrent programs, and the transaction processors for inventory, WIP, purchasing, receiving, and order management call the package to determine unit effectivity and to validate serial associations. Given that 28 packages reference it, custom extensions that create unit-driven transactions should also route unit number resolution through this package rather than querying PJM_UNIT_NUMBERS directly, so that caching, validation, and history insertion remain consistent. Developers extending the supplied interface should not alter its internal logic; instead they should call the documented functions and rely on the configured organization parameters and profile options that govern enabled status and cross-unit issue behavior.