Search Results get_project_info_from_req




Overview

INV_PROJECT is a server-side PL/SQL package owned by APPS that centralizes Oracle Inventory's handling of project and task references within the Oracle E-Business Suite. Because Inventory transactions, move orders, receiving transactions, and requisitions can all be project-charged when Oracle Projects is implemented, Inventory requires a single, reusable set of APIs to determine whether project referencing is enabled for an organization, to resolve and validate project/task identifiers, and to propagate project and task information between related source and destination records. INV_PROJECT fulfills this role: it abstracts the logic that ties Inventory organizations to the Oracle Projects (PA) model, exposes utility queries against on-hand and pending balances, and provides session-level setup routines used by Inventory forms and concurrent programs.

The package declares AUTHID CURRENT_USER, meaning it executes with the privileges of the calling schema rather than the definer, which is consistent with Inventory's practice of relying on APPS synonyms and caller context. Its header carries a relatively old revision ($Header: INVPRJIS.pls 120.1, dated 2005), indicating that the interface has been stable across the 12.1.1 and 12.2.2 releases even as surrounding Inventory functionality evolved.

Key Procedures and Functions

  • RESOLVE_PROJECT_REFERENCES — Resolves project and task identifiers and numbers across source, destination, and "to" contexts, and returns the appropriate PA expenditure organization.
  • ORG_PROJECT_PARAMETERS — Returns organization-level project attributes, including whether project reference is enabled, whether PM cost collection is enabled, and the project control level.
  • ONHAND_QTY — Returns the on-hand quantity for a given organization, subinventory, and locator.
  • PENDING_IN_TEMP — Returns pending quantity held in the transaction temp table for a source location.
  • PENDING_IN_INTERFACE — Returns pending quantity sitting in the transactions interface.
  • ONHAND_PENDING_TRX — Determines whether on-hand and/or pending transactions exist for a given organization, subinventory, and locator.
  • POPULATE_PROJECT_INFO — Populates project and task identifiers during transfers between organizations, subinventories, and locators.
  • CALL_CUST_VAL — Invokes customer-defined validation logic for Inventory transactions.
  • UPDATE_PROJECT_TASK / UPDATE_PROJECT_TASK_NUMBER — Update project and task references on transaction records.
  • GET_PROJECT_INFO_FROM_REQ — Retrieves project information from requisition distributions.
  • GET_PROJECT_INFO_FOR_RCVTRX — Retrieves project information for receiving transactions.
  • GET_PROJECT_LOC_FOR_PRJ_REQ — Derives the project locator context for project-related requisitions.
  • SET_ORG_CLIENT_INFO / SET_SESSION_PARAMETERS — Establish organization and session context for subsequent project-aware operations.
  • GET_PROJ_TASK_FROM_LPN — Derives project and task from a license plate number.
  • IS_PROJECT_ENABLED — The function that directly answers whether project referencing is enabled for a given organization, and the object most frequently targeted by the search term "is_project_enabled."
  • GET_LOCATOR, GET_PROJECT_NUMBER, GET_TASK_NUMBER — Utility lookups for locators and for resolving project and task numbers from identifiers.

Tables Accessed

The package references the following tables via APPS synonyms: FND_FLEX_VALUE_SETS, FND_ID_FLEX_SEGMENTS, and FND_ID_FLEX_STRUCTURES (for key flexfield validation of project and task segments); MTL_ITEM_LOCATIONS (locator validation); MTL_MATERIAL_TRANSACTIONS_TEMP, MTL_ONHAND_QUANTITIES_DETAIL, and MTL_TRANSACTIONS_INTERFACE (pending and on-hand quantity determination); MTL_PARAMETERS (organization-level Inventory setup); MTL_TXN_REQUEST_LINES (move order project references); PO_REQ_DISTRIBUTIONS_ALL (requisition project context); RCV_TRANSACTIONS (receiving project context); and WMS_LICENSE_PLATE_NUMBERS (LPN-based project derivation).

Usage Notes

INV_PROJECT is invoked primarily from Inventory forms (such as transaction entry, move orders, and receiving), from concurrent programs that process the transactions interface, and from custom PL/SQL that must enforce project referencing rules before committing Inventory activity. Because it is referenced by 64 other packages across the E-Business Suite, it functions as a shared foundation utility rather than an end-user-facing API. Customizations should call IS_PROJECT_ENABLED and ORG_PROJECT_PARAMETERS to gate project validation, then use RESOLVE_PROJECT_REFERENCES and POPULATE_PROJECT_INFO to derive consistent project and task values; direct DML against the underlying tables should be avoided in favor of these packaged interfaces.