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.
-
APPS.IGS_PS_NOTE_TYPE_PKG SQL Statements
12.1.1
-
APPS.IGS_OR_INSTITUTION_PKG SQL Statements
12.1.1
-
APPS.IGS_OR_INST_ADDR_PKG SQL Statements
12.1.1
-
APPS.IGS_OR_ADDR_PKG SQL Statements
12.1.1
-
PACKAGE BODY: APPS.IGS_TR_GROUP_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_RET_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_TR_NOTE_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_WORK_SET_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_LOV_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_STAGE_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PE_PERS_RELN_TYP_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_UNIT_PKG
12.1.1
-
APPS.IGS_OR_UNIT_PKG SQL Statements
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_GOVT_SPL_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_TAC_AUSCED_AS_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_CAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_TAC_LVL_OF_QF_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_TYPE_GRP_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_UNIT_CAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_TR_GROUP_MEMBER_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PE_PERSON_IMAGE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_TAC_LV_OF_COM_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_GROUP_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_SET_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_EN_UNIT_SET_STAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_SET_MEMBER_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_GOVT_ATD_MODE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_GE_S_DSB_TAB_TRG_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_COURSE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_WORK_SET_MBR_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PE_GOV_ABRGRESCD_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_CALL_RULE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PE_GOV_COUNTRYCD_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_GE_JOB_TEXT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_GOVT_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_GOV_BAS_FR_TY_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_GE_MEASUREMENT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_GE_S_ERROR_LOG_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_DISBL_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_GOVT_ATD_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_UNIT_STAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_AD_TAC_AD_CD_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_STAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_RU_TURIN_FNC_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_GOVT_DSCP_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_OR_INST_STAT_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_GE_SPL_REQ_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_OR_STATUS_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_EN_NOTE_TYPE_PKG
12.1.1
-
PACKAGE BODY: APPS.IGS_PS_UNT_INLV_HIST_PKG
12.1.1