Search Results p_base_currency




Overview

AR_UNPOSTED_ITEM_UTIL is a utility package in the Oracle Receivables (AR) module, owned by APPS and classified in ETRM as a UTIL-type object. Its name and contents indicate that it serves the unposted item processing flow within Receivables, providing shared currency-handling and rounding logic consumed by other Receivables programs. The package body encapsulates a set of internal caching and conversion routines rather than exposing a business transaction API; it is a support library whose routines are called internally by the Receivables programs that build, validate, or post transactions arising from unposted items.

A significant part of the package is dedicated to currency metadata handling. The body declares three associative array structures — CurrencyCodeType, PrecisionType, and MauType — indexed by BINARY_INTEGER, together with a package-level counter (NextElement) used to track how many currency codes have already been cached in the session. This design allows the package to remember currency precision and minimum accountable unit values for the currencies encountered during a run, avoiding repeated queries against FND_CURRENCIES.

Key Procedures and Functions

  • GETCURRENCYDETAILS — Retrieves the precision and minimum accountable unit (MAU) for a given currency code. It first checks the package-level cache arrays; if the currency has not yet been loaded, it opens a cursor against FND_CURRENCIES to fetch the precision and minimum accountable unit, stores those values in the cache, and returns them through its OUT parameters. This caching behavior is the central mechanism of the package.
  • FUNCTIONAL_AMOUNT — Computes the functional (ledger) amount for a transaction amount given a currency code, exchange rate, precision, and minimum accountable unit. It uses an internal cursor over FND_CURRENCIES to obtain currency information where required and returns the converted, precision-applied value.
  • CURRROUND — Applies currency-specific rounding to a numeric value, using precision and minimum accountable unit information so that amounts conform to the currency's defined rounding rules.
  • SET_BUCKETS — Establishes or initializes the internal buckets/collections used by the package, supporting the caching and grouping logic that the other routines rely on.

The user search term p_base_currency aligns with this package's role: routines such as FUNCTIONAL_AMOUNT operate on a base (functional) currency concept, converting foreign-currency amounts into the ledger's base currency using the supplied exchange rate and rounding conventions.

Tables Accessed

  • FND_CURRENCIES — Read to obtain PRECISION and MINIMUM_ACCOUNTABLE_UNIT (and CURRENCY_CODE) for a given currency. This is the primary reference table for the package's rounding and conversion logic, and it is accessed both through the CurrencyCursor in GETCURRENCYDETAILS and the curr_info cursor in FUNCTIONAL_AMOUNT.
  • RA_CUSTOMER_TRX — Referenced through a package-level record declared as RA_CUSTOMER_TRX%ROWTYPE (g_cust_inv_rec), indicating the package works in the context of customer transaction data during unposted item processing.

Usage Notes

As a UTIL-classified object, AR_UNPOSTED_ITEM_UTIL is not intended to be called directly by end users. It is invoked by Receivables application logic — including the other packages that ETRM records as referencing it (three in total) — to perform currency lookup, rounding, and functional-amount conversion consistently across unposted item handling. Typical invocation contexts are Receivables forms processing customer transactions, concurrent programs that process unposted items or AutoInvoice output, and custom extensions that require the same currency rounding and conversion semantics used by standard Receivables code. Because the routines rely on session-level caching, behavior is stable within a database session but the cache is not persisted across sessions. Custom code calling these routines should pass valid currency codes from FND_CURRENCIES and handle NO_DATA_FOUND, which the package may raise when a currency code is not defined.