Search Results jai_ap_tds_pan_changes_s




Overview

APPS.JAI_PAN_UPDATE_PKG is an Oracle E-Business Suite PL/SQL package body owned by the APPS schema. It is classified under the ETRM as an "OTHER" API object and forms part of the Oracle Financials for India localization layer, specifically the Tax Deducted at Source (TDS) functionality. The package provides the technical mechanism for propagating a change of a vendor's Permanent Account Number (PAN) across the dependent TDS and withholding records that reference that vendor. Because the PAN is the statutory identifier under which Indian TDS thresholds, sections, and tax withholding groups are validated, any correction or re-issue of a vendor PAN must be cascaded consistently through the India-localized TDS tables; otherwise withholding calculations, threshold tracking, and statutory reporting would reference a stale identifier. The package encapsulates this cascade behind a single callable entry point so that forms, concurrent programs, or custom code need not perform the multi-table update manually.

Key Procedures and Functions

The ETRM metadata documents one public procedure, PAN_UPDATE, together with an internal helper, PRINT_LOG. Parameter lists are not repeated here.

  • PAN_UPDATE — The principal entry point of the package. It accepts the vendor to be processed, the existing (old) PAN number, the replacement (new) PAN number, and a debug flag, and returns a standard concurrent-program error buffer and return code. Internally it locks the affected withholding threshold group rows with a cursor declared FOR UPDATE ... NOWAIT, guaranteeing that no concurrent process can modify the same vendor/threshold records mid-update. The documented comment within the source states the update order explicitly: (1) JAI_AP_TDS_VENDOR_HDRS, (2) JAI_AP_TDS_THHOLD_GRPS, and (3) JAI_AP_TDS_THHOLD_XCEPS. Local variables are maintained to accumulate the identifiers of updated vendor sites, threshold groups, and threshold exceptions.
  • Print_Log — A private logging utility. It writes a message to the concurrent manager log file only when the debug parameter is set to 'Y'. Long messages are chunked into 80-character segments before being emitted through FND_FILE.PUT_LINE(FND_FILE.LOG, ...). The exception handler suppresses the internal SQLAP/AP_DEBUG error and re-raises via APP_EXCEPTION.RAISE_EXCEPTION. This routine is the direct answer to a search for "print_log": it is the diagnostic output path used by PAN_UPDATE when a debug flag is supplied.

Tables Accessed

The package reads and writes the following India-localized TDS tables, referenced through APPS synonyms:

  • JAI_AP_TDS_VENDOR_HDRS — Holds vendor-level TDS header information, including the PAN number; the primary target of the PAN substitution.
  • JAI_AP_TDS_THHOLD_GRPS — Withholding threshold group definitions. Rows matching the vendor and old PAN are locked with FOR UPDATE and updated with the new PAN, preserving threshold slab and accumulated amount tracking.
  • JAI_AP_TDS_THHOLD_XCEPS — Withholding threshold exceptions, updated to keep exception records aligned with the new PAN.
  • JAI_AP_TDS_PAN_CHANGES and JAI_AP_TDS_PAN_CHANGES_S — The PAN change audit/transaction tables and their sequence, recording the history of PAN modifications applied by the process.

Usage Notes

PAN_UPDATE is designed to be invoked as a concurrent program or from a supporting Oracle Forms session, since its signature returns P_errbuf and P_return_code in the standard concurrent-program convention. The debug flag can be passed as 'Y' to force PRINT_LOG output into the request log, which is useful when diagnosing why a particular vendor, threshold group, or exception was or was not updated. The NOWAIT lock on the threshold group cursor means that concurrent execution against the same vendor can fail with an Oracle resource-busy error; callers should therefore submit one PAN change per vendor and avoid parallel runs against the same vendor identifier. Custom code may call the package directly, but the caller must supply a valid vendor ID and a consistent old/new PAN pair; the audit tables in the JAI_AP_TDS_PAN_CHANGES family provide the trail of what was changed. Because the package is documented as referenced by zero other packages, it is a top-level utility rather than a shared library, and any dependency on it is through direct invocation from forms, concurrent manager, or bespoke PL/SQL. No ETRM-documented parameter lists are published beyond the metadata above; integrators should confirm the exact signature in the APPS schema of their specific release (12.1.1 or 12.2.2) before calling it.