Search Results g_allow_neg_inv




Overview

GMIUTILS is a utility package in the Oracle E-Business Suite Process Manufacturing (OPM / GMI) schema, owned by APPS and classified as an OTHER API. It provides shared low-level services consumed across the OPM inventory and order management modules rather than exposing a single business transaction. Its responsibilities span three distinct areas: document number generation, inventory item identification, and the enforcement of negative-inventory and lot-status validation rules. The package header comment records an origin with the OPM development team and a subsequent history driven by bug fixes and customer enhancements (notably B3415691 for Serono and B3862819 for OMSO transactions), indicating that the utility evolved in response to specific operational requirements rather than as a designed public interface.

Key Procedures and Functions

  • GET_DOC_NO — Retrieves a document number from the OPM document sequence tables and commits it immediately so that no lock is held on the sequence table. It is declared as an AUTONOMOUS_TRANSACTION, meaning the commit occurs before the caller's main transaction completes; this design permits document numbering to survive a rollback of the surrounding business transaction. It delegates to GMA_GLOBAL_GRP.GET_DOC_NO and returns the number via a function return value, with standard FND_API return status and message count/data OUT parameters.
  • GET_INVENTORY_ITEM_ID — Returns the inventory item identifier for a given item. The history notes two revisions: the function was introduced under BUG#3071034, then modified under BUG#3197801 so that the inventory_item_id is fetched only once when the function is called repeatedly for the same item. This caching behavior is the primary reason the function is referenced directly by name, and it makes the routine suitable for loops processing many lines of the same item.
  • SET_ALLOW_NEG_INV and RESTORE_ALLOW_NEG_INV — A paired set of procedures added for the Serono enhancement that save and reinstate the global variable holding the value of the GMI: Allow Negative Inventory profile option, allowing a calling program to override the profile temporarily and restore it afterwards.
  • NEG_INV_CHECK — Re-evaluates negative inventory conditions, used in conjunction with the set/restore pair to validate transactional quantities against the temporarily applied profile setting.
  • LOT_STATUS_CHECK — Validates lot status, modified in B3862819 to handle OMSO (order management sales order) transactions.

Tables Accessed

  • SY_DOCS_SEQ — Read/written by GET_DOC_NO as the source of document sequence numbers, keyed by document type and organization code.
  • IC_ITEM_MST and IC_ITEM_MST_B — OPM item master and its base table, used to resolve the inventory item identifier within GET_INVENTORY_ITEM_ID.
  • MTL_SYSTEM_ITEMS and MTL_SYSTEM_ITEMS_B — Oracle Inventory item definitions, consulted for cross-reference between OPM item records and the discrete inventory item identifier.
  • IC_LOCT_INV — OPM lot/location inventory balances, referenced by the negative inventory check.
  • IC_LOTS_MST and IC_LOTS_STS — Lot master and lot status tables, supporting LOT_STATUS_CHECK.

Usage Notes

GMIUTILS is an internal utility layer rather than an end-user API. GET_DOC_NO is typically invoked during OPM transaction processing where a sequence number must be reserved independently of the caller's commit scope, and it is the only routine documented as autonomous. GET_INVENTORY_ITEM_ID is the most commonly referenced entry point, since callers searching on that name require conversion between OPM item records and MTL_SYSTEM_ITEMS identifiers. The negative inventory and lot status routines are invoked from OPM inventory and order management flows, including sales order transactions. The package is referenced by one other package and is generally called from custom PL/SQL, concurrent program logic, and forms-based processing within the Process Manufacturing modules. Because several routines depend on saved global state, callers using SET_ALLOW_NEG_INV must ensure RESTORE_ALLOW_NEG_INV is executed on every exit path, including exception handlers, to avoid leaving the profile override in place.