Search Results pa_multi_currency
Overview
PA_MULTI_CURRENCY is the central multi-currency utility package in Oracle Projects (PA). It consolidates the currency conversion, rate-type validation, and amount-formatting logic required throughout the Projects suite, so that project transactions, budgets, expenditures, and reporting can be expressed in currencies other than the ledger currency. The package body is owned by APPS and is classified in ETRM as an OTHER API rather than a formal Open Interface.
The package derives its behavior from installation-level defaults. The header reflects version 120.3.12010000.2 (2009/03/12), which is the shipping version relevant to both EBS 12.1.1 and 12.2.2. Because conversion behavior is driven by PA_IMPLEMENTATIONS rather than hard-coded values, the package supports the full range of Oracle Projects currency setups, including user-defined rate types.
Its footprint is broad: PA_MULTI_CURRENCY is referenced by roughly 85 other packages, making it one of the most reused utilities in the Projects schema. Any change to its logic therefore has wide-reaching implications.
Key Procedures and Functions
ETRM documents 13 routines. Their purposes are as follows:
- CHECK_RATE_DATE_CODE — Returns the default rate date code configured for the installation (the body initializes it to 'E'), indicating whether the conversion date defaults to the expenditure item date, the transaction date, or another basis.
- GET_RATE_TYPE — Returns the installation's default rate type from PA_IMPLEMENTATIONS, used when no explicit rate type is supplied.
- GET_ACCT_CURRENCY_CODE — Returns the accounting (ledger) currency code by delegating to PA_CURRENCY.GET_CURRENCY_CODE.
- IS_USER_RATE_TYPE_ALLOWED — Determines whether user-defined rate types are permitted by the current Projects configuration.
- CONVERT_AMOUNT — Performs the core PL/SQL currency conversion, applying a supplied rate type and date to translate an amount between currencies.
- CONVERT_AMOUNT_SQL — Provides a SQL-callable form of the conversion so that set-based statements can convert amounts without a PL/SQL context switch.
- CONVERT_CLOSEST_AMOUNT — Returns the converted amount rounded to the closest valid unit for the target currency, honoring that currency's minimum accounting unit. This routine is the subject of the user's search and is commonly invoked when exact precision is required for display or posting.
- FORMAT_AMOUNT — Applies currency-specific formatting to an amount for presentation.
- VALIDATE_RATE_TYPE — Verifies that a given rate type exists and is valid for the installation.
- VALIDATE_CURRENCY_CODE — Verifies that a currency code is enabled and usable.
- INIT — Initializes package-level state, including the P_DEBUG_MODE flag inherited from PA_CC_UTILS.G_DEBUG_MODE.
- GET_CONVERSION_TYPE — Returns the conversion type applicable to the current context.
- GET_USER_CONVERSION_TYPE — Returns the conversion type associated with a user-defined rate type.
Tables Accessed
The package body touches four objects through APPS synonyms:
- PA_IMPLEMENTATIONS — The primary source of defaults; read by CHECK_RATE_DATE_CODE and GET_RATE_TYPE to retrieve the default rate date code and default rate type.
- FND_CURRENCIES — The Oracle Application Object Library currency repository, consulted to validate currency codes and to obtain currency attributes such as the minimum accounting unit used by CONVERT_CLOSEST_AMOUNT and FORMAT_AMOUNT.
- DUAL — Used by GET_ACCT_CURRENCY_CODE to return the calling context's accounting currency.
- PLITBLM — An internal PL/SQL table type used within the package body for in-memory currency or rate collections.
Usage Notes
PA_MULTI_CURRENCY is invoked primarily as a utility layer rather than by end users directly. Oracle Projects forms call it whenever a currency field is validated or an amount is displayed in a non-ledger currency, and other Projects packages (the ~85 documented callers) depend on it for rate resolution and conversion. Encumbrance, costing, and billing routines rely on CONVERT_AMOUNT and CONVERT_AMOUNT_SQL, while reporting paths favor CONVERT_AMOUNT_SQL for set-based processing. Custom code extending Oracle Projects should likewise call these routines to guarantee consistent handling of rate types, rate dates, and rounding. Because defaults are read from PA_IMPLEMENTATIONS on each call, behavior follows the installation's Projects configuration and is consistent across 12.1.1 and 12.2.2.
-
PACKAGE BODY: APPS.PA_MULTI_CURRENCY
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_MULTI_CURRENCY, status:VALID,
-
PACKAGE BODY: APPS.PA_MULTI_CURRENCY
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_MULTI_CURRENCY, status:VALID,
-
VIEW: APPS.PA_CONVERSION_TYPES_V
12.1.1
owner:APPS, object_type:VIEW, fnd_design_data:PA.PA_CONVERSION_TYPES_V, object_name:PA_CONVERSION_TYPES_V, status:VALID,
-
VIEW: APPS.PA_CONVERSION_TYPES_V
12.2.2
owner:APPS, object_type:VIEW, fnd_design_data:PA.PA_CONVERSION_TYPES_V, object_name:PA_CONVERSION_TYPES_V, status:VALID,
-
PACKAGE: APPS.PA_MULTI_CURRENCY
12.1.1
owner:APPS, object_type:PACKAGE, object_name:PA_MULTI_CURRENCY, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWLCO_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWLCO_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWLCR_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWLCR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXAGAST_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXAGAST_XMLP_PKG, status:VALID,
-
PACKAGE: APPS.PA_MULTI_CURRENCY
12.2.2
owner:APPS, object_type:PACKAGE, object_name:PA_MULTI_CURRENCY, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWSBR_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWSBR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXEXTAR_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXEXTAR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWLCR_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWLCR_XMLP_PKG, status:VALID,
-
PACKAGE: APPS.GL_DAILY_CONV_TYPES_PKG
12.1.1
owner:APPS, object_type:PACKAGE, object_name:GL_DAILY_CONV_TYPES_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXEXCPS_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXEXCPS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGPBS_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGPBS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PWP_SUMM_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PWP_SUMM_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWSBR_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWSBR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWPTY_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWPTY_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWLCO_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWLCO_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXEXCPS_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXEXCPS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGPBS_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGPBS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXPCIFS_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXPCIFS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXEXTAR_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXEXTAR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXPCIDF_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXPCIDF_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXPCIDF_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXPCIDF_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXPCRFD_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXPCRFD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAAPIMPR_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAAPIMPR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAAPIMPR_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAAPIMPR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXINGEN_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXINGEN_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXCPCAL_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXCPCAL_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXPCPRS_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXPCPRS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACCGLTR_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACCGLTR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGTSD_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGTSD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACRCBDT_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACRCBDT_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACCINTG_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACCINTG_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXEXCPD_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXEXCPD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACCINTG_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACCINTG_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_FORECAST_COST
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_FORECAST_COST, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXCPGAL_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXCPGAL_XMLP_PKG, status:VALID,
-
PACKAGE: APPS.GL_DAILY_CONV_TYPES_PKG
12.2.2
owner:APPS, object_type:PACKAGE, object_name:GL_DAILY_CONV_TYPES_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_INVOICE_CURRENCY
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_INVOICE_CURRENCY, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGPSD_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGPSD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACCGLTR_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACCGLTR_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGPSD_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGPSD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXMGTSD_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXMGTSD_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXRWPTY_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXRWPTY_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACRCAPS_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACRCAPS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PACRCAPS_XMLP_PKG
12.2.2
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PACRCAPS_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXAGAST_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXAGAST_XMLP_PKG, status:VALID,
-
PACKAGE BODY: APPS.PA_PAXCPGAL_XMLP_PKG
12.1.1
owner:APPS, object_type:PACKAGE BODY, object_name:PA_PAXCPGAL_XMLP_PKG, status:VALID,