Search Results after_dml




Overview

IGS_TR_GROUP_PKG is a table-handler API package in the Oracle E-Business Suite (12.1.1 / 12.2.2) owned by the APPS schema and classified under ETRM as an "OTHER" API. It encapsulates the data-manipulation logic for the IGS_TR_GROUP_ALL table, which stores tracking group definitions used by the Oracle Student System (formerly iGS) tracking functionality. The package follows the standard EBS table-handler pattern: it isolates low-level DML, row locking, primary key derivation, constraint checking, and the "before-DML" hook that populates WHO columns and derives surrogate keys. By exposing procedural entry points rather than allowing direct SQL against the base table, it enforces consistent validation, auditing, and multi-org security (note the ORG_ID column in the rowtype and set_column_values signature) for every insert, update, and delete affecting tracking groups.

Key Procedures and Functions

The package body declares eight documented program units:

  • INSERT_ROW — Performs the physical insert of a new row into IGS_TR_GROUP_ALL using the column values assembled by the API.
  • LOCK_ROW — Issues a SELECT ... FOR UPDATE against the target row to serialize concurrent modification, returning the locked row for subsequent processing.
  • UPDATE_ROW — Applies changes to an existing tracking group row, preserving creation-audit columns while refreshing last-update WHO columns.
  • ADD_ROW — The higher-level "add" wrapper that combines key generation, before-DML processing, and insertion in a single call.
  • DELETE_ROW — Removes a tracking group row from IGS_TR_GROUP_ALL.
  • GET_PK_FOR_VALIDATION — Derives or validates the primary key (TRACKING_GROUP_ID) used to identify a tracking group.
  • CHECK_CONSTRAINTS — Validates business and referential constraints (accepting a COLUMN_NAME discriminator) before persistent DML is committed.
  • BEFORE_DML — The pre-DML hook that populates derived and audit columns. The body excerpt shows this logic surfaced through set_column_values, which loads OLD references via a ROWID cursor and NEW references, raising FORM_RECORD_DELETED when the target row is missing on non-insert actions.

Tables Accessed

The package reads and writes a single documented base table, IGS_TR_GROUP_ALL (referenced through its APPS synonym). It is read in LOCK_ROW and in the set_column_values OLD-reference cursor (SELECT * ... WHERE ROWID = x_rowid), and it is written by INSERT_ROW, UPDATE_ROW, ADD_ROW, and DELETE_ROW. The table holds tracking-group identifier, description, ORG_ID, and the standard WHO audit columns (creation_date, created_by, last_update_date, last_updated_by, last_update_login).

Usage Notes

IGS_TR_GROUP_PKG is invoked in three principal ways. First, Oracle Forms-based maintenance screens for tracking groups call the table-handler procedures to service insert, update, query, and delete events, relying on BEFORE_DML to stamp audit values and CHECK_CONSTRAINTS to enforce validation. Second, concurrent programs and batch loaders that create tracking groups call ADD_ROW or INSERT_ROW rather than inserting directly, guaranteeing constraint conformance. Third, custom PL/SQL code should call the public procedures instead of issuing DML on IGS_TR_GROUP_ALL; direct manipulation bypasses the locking, key-derivation, and constraint logic. Because BEFORE_DML is the routine most commonly associated with the search term "after_dml," note that in this package only BEFORE_DML is documented — no AFTER_DML procedure exists here, so any application logic that must run following a DML operation on tracking groups must be handled by the calling form, trigger, or custom wrapper.