Search Results process_invoice_holds




Overview

IGI_SIA is an Oracle E-Business Suite PL/SQL package owned by the APPS schema and declared with AUTHID CURRENT_USER, meaning its SQL statements execute under the privileges of the invoking user rather than the package owner. The package belongs to the Oracle Public Sector / federal extensions family (the IGI prefix) and provides the server-side logic for programmatically setting invoice identifiers and managing supplier invoice holds. In Oracle Payables, holds are recorded against invoices to block payment until a condition is resolved — for example, quantity variances on a matched purchase order, or matched receipts. IGI_SIA exposes a controlled, batch-oriented interface for populating an in-memory table of invoice identifiers and then driving hold processing and hold release across that set, allowing callers to act on many invoices in a single pass rather than one at a time.

Key Procedures and Functions

  • SET_INVOICE_ID — Populates the package's internal invoice identifier collection. This is the entry point targeted by the user search term "set_invoice_id." The procedure records an invoice against which subsequent processing will be performed, in conjunction with the calling user and a status value. SET_INVOICE_ID seeds the package-level tables (l_InvoiceIdTable, l_UpdatedByTable, l_StatusTable) and increments the row counter l_TableRow, so that a session can accumulate a working set of invoices.
  • PROCESS_INVOICE_HOLDS — Processes holds for a single supplied invoice, taking the invoice identifier and the updating user as inputs. It evaluates the applicable hold conditions for that invoice and applies the resulting hold records.
  • REVERSE_HOLDS — Reverses holds previously applied to the specified invoice, using the invoice identifier and updating user as inputs. This is typically used when the underlying exception (for example, a quantity or matching discrepancy) has been corrected.
  • PROCESS_HOLDS — Operates over the accumulated set of invoices gathered through SET_INVOICE_ID, invoking hold processing for each entry in the internal collections. This is the bulk counterpart to PROCESS_INVOICE_HOLDS.
  • RELEASE_HOLDS — Releases holds across the accumulated invoice set, working from the package-level collections and the released-hold flags G_QTY_REC_HOLD_RELEASED and G_MATCH_PO_HOLD_RELEASED, which track whether quantity-receipt and match-to-PO holds have been cleared during the run.

Tables Accessed

  • AP_INVOICES — The invoice header records against which hold status and identifier information is read and validated.
  • AP_INVOICE_DISTRIBUTIONS_ALL — Invoice distribution lines, needed to evaluate distribution-level quantity and matching conditions that drive hold decisions.
  • AP_HOLDS / AP_HOLDS_ALL / AP_HOLDS_S — The Payables holds definition and hold-instance tables. These are read to identify which holds apply and are written when holds are applied or released by the package.

Usage Notes

IGI_SIA is not an Oracle-supported public API documented under standard Payables API conventions; classification is OTHER, and it is referenced by five other packages, indicating internal reuse within the IGI extensions rather than direct customer invocation. Typical invocation patterns are through Payables forms logic, concurrent programs that batch-process invoice holds, or custom code that needs to reapply or release supplier invoice holds in bulk. Because the package uses AUTHID CURRENT_USER, callers must hold the underlying AP object privileges. The intended sequence when processing multiple invoices is to call SET_INVOICE_ID once per invoice to build the working set, then invoke PROCESS_HOLDS or RELEASE_HOLDS to act on the whole set. Direct calls into these procedures should be validated carefully, since the package manipulates live AP_HOLDS records and an incorrect invocation can affect payment eligibility for the invoices involved.