Search Results validate_currency_code
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
-
PACKAGE BODY: APPS.PA_MULTI_CURRENCY
12.2.2
-
PACKAGE: APPS.AS_ISSUE_UTIL_PVT
12.2.2
-
PACKAGE: APPS.AS_ISSUE_UTIL_PVT
12.1.1
-
PACKAGE: APPS.RCV_ROI_HEADER
12.1.1
-
PACKAGE: APPS.RCV_ROI_HEADER
12.2.2
-
PACKAGE: APPS.JTF_RESOURCE_UTL
12.1.1
-
PACKAGE: APPS.JTF_RESOURCE_UTL
12.2.2
-
PACKAGE: APPS.PA_MULTI_CURRENCY
12.2.2
-
PACKAGE: APPS.PA_MULTI_CURRENCY
12.1.1
-
PACKAGE BODY: APPS.AS_ISSUE_UTIL_PVT
12.1.1
-
PACKAGE BODY: APPS.AS_ISSUE_UTIL_PVT
12.2.2
-
PACKAGE: APPS.HR_EFC_INFO
12.1.1
-
PACKAGE: APPS.HR_EFC_INFO
12.2.2
-
PACKAGE BODY: APPS.CSC_PROF_MODULE_GROUPS_PVT
12.1.1
-
PACKAGE BODY: APPS.CSC_PROF_MODULE_GROUPS_PVT
12.2.2
-
PACKAGE BODY: APPS.OKE_PARTY_PVT
12.2.2
-
PACKAGE BODY: APPS.OKE_PARTY_PVT
12.1.1
-
APPS.ARP_BR_REMIT_BATCHES SQL Statements
12.1.1
-
PACKAGE BODY: APPS.ARP_BR_REMIT_BATCHES
12.1.1
-
PACKAGE BODY: APPS.OKE_POOL_PVT
12.2.2
-
PACKAGE BODY: APPS.OKL_LAP_PVT
12.2.2
-
PACKAGE: APPS.PV_PROCESS_RULE_PVT
12.2.2
-
PACKAGE BODY: APPS.OKE_POOL_PVT
12.1.1
-
PACKAGE BODY: APPS.OKL_LAP_PVT
12.1.1
-
PACKAGE: APPS.PV_PROCESS_RULE_PVT
12.1.1
-
APPS.ARP_BR_REMIT_BATCHES SQL Statements
12.2.2
-
PACKAGE BODY: APPS.OKL_LOP_PVT
12.1.1
-
PACKAGE BODY: APPS.OKL_LOP_PVT
12.2.2
-
PACKAGE BODY: APPS.OKL_IRH_PVT
12.1.1
-
PACKAGE: APPS.PA_FP_WEBADI_UTILS
12.1.1
-
PACKAGE: APPS.PA_FP_WEBADI_UTILS
12.2.2
-
PACKAGE BODY: APPS.OKL_LRT_PVT
12.1.1
-
PACKAGE BODY: APPS.OKL_IRH_PVT
12.2.2
-
PACKAGE: APPS.AS_SALES_LEADS_PVT
12.1.1
-
PACKAGE BODY: APPS.OKL_LRT_PVT
12.2.2
-
PACKAGE BODY: APPS.ARP_BR_REMIT_BATCHES
12.2.2
-
PACKAGE: APPS.AS_SALES_LEADS_PVT
12.2.2
-
PACKAGE BODY: APPS.OKL_QQH_PVT
12.2.2
-
PACKAGE BODY: APPS.OKL_QQH_PVT
12.1.1
-
PACKAGE: APPS.CSC_PROF_MODULE_GROUPS_PVT
12.1.1
-
PACKAGE: APPS.CSC_PROF_MODULE_GROUPS_PVT
12.2.2
-
PACKAGE BODY: APPS.HR_EFC_INFO
12.2.2
-
PACKAGE BODY: APPS.HR_EFC_INFO
12.1.1
-
PACKAGE BODY: APPS.OKS_CDT_PVT
12.1.1
-
PACKAGE BODY: APPS.OKS_CDT_PVT
12.2.2
-
PACKAGE BODY: APPS.OKS_BTN_PRINT_PREVIEW_PVT
12.1.1
-
PACKAGE BODY: APPS.OKS_BTN_PRINT_PREVIEW_PVT
12.2.2
-
PACKAGE BODY: APPS.OKS_BTN_PVT
12.1.1
-
PACKAGE BODY: APPS.PV_PROCESS_RULE_PVT
12.1.1