Search Results init_struct




Overview

AR_MRC_ENGINE is a public PL/SQL package in the APPS schema that serves as the central plumbing layer for Oracle Receivables' participation in Multiple Reporting Currencies (MRC). MRC allows a single Oracle E-Business Suite transaction to be maintained and reported in more than one functional currency. In the Receivables context, every base transaction stored in an AR base table must be shadowed by corresponding rows in a currency-specific MRC table so that reporting can be produced under each secondary ledger's functional currency. AR_MRC_ENGINE is the designated "initial entry point for all AR code in order to maintain, create, and delete any MRC data," as stated in the package header comments. Rather than embedding currency-propagation logic throughout AR forms, APIs, and concurrent programs, the application funnels all such requests through this single engine, which in turn calls the appropriate lower-level MRC application programming interfaces. The header ($Header: ARMCENGS.pls 120.1) and modification history indicate the package was authored in 2000 and subsequently reworked in 2001 to align with a complete rewrite of the underlying MRC APIs and with changes first implemented for Oracle Payables.

Key Procedures and Functions

Three procedures are documented in the ETRM metadata.

  • MAINTAIN_MRC_DATA — The principal public entry point. It accepts an event mode indicating the operation to perform against the MRC tables (for example, insert, update, or delete), the base table name, a processing mode distinguishing single-record from batch processing, an optional primary key value, and an optional key value list. The procedure dispatches to the appropriate MRC API based on these inputs and is the routine that all Receivables code should call to create, maintain, or remove MRC data.
  • INIT_STRUCT — An initialization routine associated with the package's public record type ar_mrc_init_rec_type, which carries the base table name, the corresponding MRC table name, the application identifier (222 for Receivables), the processing mode, a key value, and a key value array. This procedure initializes or populates that structure so calling code can pass consistent context into the engine.
  • MRC_BULK_PROCESS — A set-oriented procedure supporting batch maintenance of MRC rows. It complements the single-record path in MAINTAIN_MRC_DATA and is intended for volume processing. Its history reflects performance-driven changes, including removal of dynamic SQL.

Tables Accessed

The ETRM metadata for this package does not enumerate specific base or MRC tables accessed. The package is designed generically: it is passed a base table name and a corresponding MRC table name at runtime and operates on them through the MRC APIs. Consistent with its role, it is referenced by 19 other packages within Receivables — the surrounding modules that publish MRC data. Any actual table manipulation is therefore performed by the delegated MRC APIs rather than by hard-coded statements inside the engine.

Usage Notes

AR_MRC_ENGINE is an internal integration component, not a user-facing interface. It is invoked indirectly whenever an AR transaction is created, changed, or deleted while MRC is enabled: standard AR forms, the Receivables transaction and autoinvoice APIs, and concurrent programs ultimately call MAINTAIN_MRC_DATA or MRC_BULK_PROCESS so that the secondary-currency tables remain synchronized with the base tables. The 19 dependent packages confirm it sits beneath much of the Receivables MRC footprint. Custom code extending AR should follow the same convention and route MRC maintenance through this engine rather than writing directly to MRC tables, preserving the integrity and consistency guarantees the package provides. The presence of this object and its ETRM documentation reflects long-standing support for multi-currency reporting requirements, including implementations associated with M and R Technologies and similar consulting practices that configure MRC for Receivables.