Search Results fetch_ic_tran_pnd




Overview

GMI_TRAN_PND_DB_PVT is a private PL/SQL package in the Oracle E-Business Suite Process Manufacturing (OPM) module. It belongs to the APPS schema and is classified as a PVT (private) API, meaning it is intended for internal use by other packages rather than direct invocation by end users or external integrations. The package encapsulates the Data Manipulation Language (DML) operations for the IC_TRAN_PND table, which serves as the pending inventory transactions table in Oracle Process Manufacturing. It provides the low-level persistence layer used when creating, retrieving, updating, and deleting inventory transaction records. The package is declared with AUTHID CURRENT_USER, so it executes with the privileges of the calling schema rather than the definer. Per the source header, the package was authored by Oracle's TVP development group in Reading, England, and the current version dates from 2002. Its stated purpose is to contain private definitions for DML actions against IC_TRAN_PND, acting as the database access layer for the broader inventory transaction engine.

Key Procedures and Functions

The package exposes four documented program units, all declared as functions returning BOOLEAN to signal success or failure:

  • INSERT_IC_TRAN_PND — Inserts a new pending inventory transaction row into IC_TRAN_PND. It accepts the transaction row as input and returns the populated row via an IN OUT NOCOPY parameter, allowing the caller to receive any values populated during insertion (such as generated keys or defaults). The NOCOPY hint, added under Bug#2643440 in version 11.5.1J, avoids copying the large record structure.
  • FETCH_IC_TRAN_PND — Retrieves a pending transaction record. It takes an input record of type GMI_TRANS_ENGINE_PUB.ictran_rec and returns the fetched record through an IN OUT NOCOPY parameter of the same type, bridging the private table structure with the public transaction engine record type.
  • DELETE_IC_TRAN_PND — Removes an existing pending inventory transaction row from IC_TRAN_PND based on the supplied row identifier.
  • UPDATE_IC_TRAN_PND — Modifies an existing pending transaction row in IC_TRAN_PND with the values supplied in the input record.

Together these four functions form a complete CRUD interface over the pending transactions table.

Tables Accessed

The package operates against IC_TRAN_PND, the core pending inventory transactions table, which holds inventory movements awaiting validation, costing, and posting to the permanent transaction tables. It also references GEM5_TRANS_ID_S, the sequence used to generate unique transaction identifiers, and DUAL for scalar evaluations. All references are made through APPS synonyms, consistent with the APPS-owned package. The sequence supplies primary keys during inserts, while the table itself is the target of all four DML operations.

Usage Notes

Because this is a private package, it is not intended for direct calls from forms, concurrent programs, or custom code. It is invoked internally by the transaction engine and related processing packages; the ETRM metadata records that it is referenced by ten other packages. The documented public counterpart for creating inventory transactions is the GMI_TRANS_ENGINE_PUB package, which calls into this private layer. Developers extending or troubleshooting OPM inventory transaction processing should interact with the public engine APIs rather than this package. Any customization that calls GMI_TRAN_PND_DB_PVT directly risks breaking on patching or upgrade, as Oracle does not guarantee the private interface across releases. When diagnosing pending transaction issues in EBS 12.1.1 or 12.2.2, this package is best understood as the persistence mechanism beneath the public transaction creation API.