Search Results pn_var_abatements_s




Overview

The APPS.PN_VAR_ABATEMENTS_PKG package body is the core application programmatic interface (API) for managing variable rent abatements within the Oracle Property Manager (PN) module of Oracle E-Business Suite. In commercial lease administration, an abatement represents a negotiated concession in which the tenant is relieved of rental obligations for a specified span of periods — commonly structured as free-rent periods, step-down allowances, or reduced-payment windows during the early term of a lease. This package encapsulates the business logic required to create, maintain, validate, and propagate those abatements across the schedule-driven entities that Property Manager relies upon.

The object is registered in the E-Business Technical Reference Manual (ETRM) as a VALID package body owned by the APPS schema, classified as an OTHER API rather than a formally published open interface. It is listed as being referenced by two other database objects and internally references the PN_VAR_ABATEMENTS_S sequence, indicating that it acts as the master mutation layer for the PN_VAR_ABATEMENTS_ALL base table. Because rent abatements affect billing, revenue recognition, and period-level rent generation, the package also coordinates changes with the rent, rent invoice, group date, and period tables.

Key Procedures and Functions

The ETRM documents twelve callable units within this package body, organized to support both low-level row operations and higher-level lease recalculation logic:

  • INSERT_ROW — creates a new abatement record, drawing the primary key from the PN_VAR_ABATEMENTS_S sequence.
  • LOCK_ROW — acquires a row-level lock used prior to in-place modification, preventing concurrent-update contention during form editing or batch processing.
  • UPDATE_ROW — applies changes to an existing abatement record.
  • DELETE_ROW — removes an abatement from the base table.
  • CHECK_CALC_INV_EXISTS — validates whether calculated rent invoices exist for the affected periods, guarding against destructive updates once billing has been computed.
  • ROLL_FWD_ON_UPD — rolls forward dependent rent and period data when an abatement is updated, ensuring downstream schedules remain synchronized.
  • ROLL_FWD_FST_ON_UPD — a specialized forward-roll variant, typically applied to first-period or initial-term aspects of the lease.
  • ABTMT_EXISTS — boolean-style existence check used by callers to determine whether an abatement is already defined for the given lease, group, or period context.
  • RESET_UPDATE_FLAG — resets internal or record-level update indicators after processing completes, supporting idempotent re-execution.
  • GET_INCLUDE_TERM — retrieves the include-term flag governing whether term information is incorporated during abatement calculation.
  • GET_INCLUDE_INCREASES — retrieves the include-increases flag controlling whether scheduled rent escalations are factored into abated amounts.
  • CHECK_TRUE_UP_INVOICE — determines whether a true-up invoice exists, an important gate before retroactive abatement adjustments are permitted.

Tables Accessed

The package operates against a tightly related set of Property Manager tables. PN_VAR_ABATEMENTS_ALL is the primary base table holding abatement records; PN_VAR_ABATEMENTS_S supplies the surrogate key sequence. PN_VAR_RENTS_ALL, PN_VAR_RENT_INV_ALL, and PN_VAR_PERIODS_ALL hold the generated rent, invoice, and period schedules that must be recalculated or rolled forward when abatements change. PN_VAR_GRP_DATES_ALL provides group-date definitions that establish the effective window for abatement application. PN_PAYMENT_TERMS_ALL supplies payment-term context, while DUAL is used for scalar lookups. The package also calls PN_VAR_RENT_PKG for rent recalculation and PNP_DEBUG_PKG for diagnostic logging, and reads profile options through FND_PROFILE.

Usage Notes

PN_VAR_ABATEMENTS_PKG is not a public interface but an internal implementation package. It is invoked primarily by the Property Manager rent-abatement maintenance form, where INSERT_ROW, UPDATE_ROW, LOCK_ROW, and DELETE_ROW are bound to user actions, and by concurrent programs or batch recalculation routines that perform roll-forward after lease restructuring. Custom extensions should not call the row-level units directly; instead they should invoke the forms or use the surrounding PN_VAR_RENT_PKG flow, so that validation routines such as CHECK_CALC_INV_EXISTS and CHECK_TRUE_UP_INVOICE execute in the correct sequence. Because the package writes to invoice-related tables, changes made outside the supported UI path risk inconsistent billing schedules.