Search Results add_row




Overview

The APPS.IGW_PROP_SCIENCE_CODES_PKG package is a PL/SQL API that manages the relationship between proposals and their associated science codes within the Oracle E-Business Suite Grants and Proposal (IGW) module. In the research administration workflow, a proposal frequently must be classified against one or more scientific or technical discipline codes — for example, to route reviews to appropriate subject-matter experts, to support sponsor reporting, or to enable downstream analytical reporting. This package centralizes the data manipulation logic that maintains those associations in the IGW_PROP_SCIENCE_CODES table.

The package header was authored with AUTHID CURRENT_USER, meaning executing privileges are resolved against the calling schema rather than the defining schema. The source header indicates a legacy build (Version 115.6, dated 2002), which is consistent with the long-standing stability of the IGW data model across releases 12.1.1 and 12.2.2. It is classified as an OTHER API rather than a formal public interface, and it is not referenced by any other documented package, indicating that its consumers are primarily client-side forms and custom extensions rather than other server-side PL/SQL units.

Key Procedures and Functions

The package exposes five documented procedures, all of which operate on a single proposal-to-science-code association:

  • INSERT_ROW — Creates a new association record. It accepts a row identifier, a proposal identifier, a science code, and an operating mode, with the mode defaulting to 'R'. The row identifier is declared IN OUT, allowing the procedure to return the generated ROWID to the caller.
  • ADD_ROW — Provides an add-or-update style entry point. Its signature mirrors INSERT_ROW, including the IN OUT row identifier and the default mode parameter. The existence of both INSERT_ROW and ADD_ROW is a recurring pattern in Oracle Forms-generated APIs, where ADD_ROW typically supports form-driven inserts (often checking for an existing row before inserting), while INSERT_ROW performs the unconditional insert. The user query "add_row" corresponds to this procedure.
  • LOCK_ROW — Acquires a row-level lock on an existing association to support form-level concurrency control. It takes the row identifier together with the proposal identifier and science code for validation.
  • UPDATE_ROW — Modifies an existing association record. It receives the row identifier, proposal identifier, science code, and default mode, and applies the changed values to the target row.
  • DELETE_ROW — Removes an association record identified solely by its row identifier.

Tables Accessed

The package operates exclusively against the IGW_PROP_SCIENCE_CODES table, accessed through an APPS synonym. This table stores the intersection between proposals and science codes, with the proposal identifier and science code forming the logical key of each association. All five procedures read or write this table: LOCK_ROW and DELETE_ROW locate rows by ROWID, while the insert and update procedures supply the proposal and science code values. No other tables are documented as referenced.

Usage Notes

This package is characteristically invoked from the Oracle Forms interface that maintains proposal science-code assignments in the Grants/Proposal module. The Forms client calls LOCK_ROW when a user queries a record, ADD_ROW or INSERT_ROW when a record is created, UPDATE_ROW on modification, and DELETE_ROW on removal. Because the package is not referenced by any other documented API, custom code should call these procedures directly and honor the same transaction and locking conventions used by the standard forms. Developers should note the AUTHID CURRENT_USER declaration, which means the executing user must possess the necessary privileges on the underlying table. The default mode parameter of 'R' should be preserved unless a specific form context requires otherwise.