GL Daily Rates Upload

Description

GL Daily Rates Upload creates and updates GL daily currency conversion rates from Excel. You enter the from and to currency, the conversion type, a date range and the rate, and the upload stages the rows and runs Oracle’s standard Daily Rates Import and Calculation program to write them into General Ledger.

When to use it

  • Load a batch of new daily exchange rates for one or many currency pairs.
  • Apply a single rate across a date range instead of entering each day.
  • Update existing rates: download them, edit the rate, and upload again.
  • Maintain rates for several conversion types in one spreadsheet.

Before you start

  • Access to Blitz Report from a General Ledger responsibility that can maintain daily rates.
  • The conversion type and both currencies exist and are enabled.

Step 1 – Set the parameters

Open GL Daily Rates Upload in Blitz Report and set the parameters:

ParameterMeaning
Upload ModeCreate opens an empty sheet; Create, Update downloads existing rates for editing and lets you add new rows.
Default User Conversion TypePre-fills the User Conversion Type on new rows.
From Currency / To CurrencyRestrict which existing rates are downloaded.
Conversion TypeRestricts the download to one conversion type.
From Date / To DateRestrict the download to a date range.

For a Create, Update download, enter a From and/or To Currency and a From/To Date range.

Blitz Report run screen for GL Daily Rates Upload with Upload Mode Create, Update, currencies EUR to USD, conversion type Corporate and a November date range

Step 2 – Run to download the Excel file

Click Run. The Excel file downloads and opens, with one row per existing rate for Create, Update, or an empty sheet for Create.

Downloaded GL Daily Rates Upload workbook with existing EUR to USD Corporate rates

Step 3 – Enter or change the rates

Change the Conversion Rate of a downloaded row, or add rows with the From Currency, To Currency, User Conversion Type, the From Conversion Date and To Conversion Date the rate applies across, and the Conversion Rate. Enter an Inverse Conversion Rate only when profile Daily Rates Window: Enforce Inverse Relationship During Entry is set to No; otherwise it is ignored and calculated for you.

A changed conversion rate marked Update and a new rate row marked Create

Step 4 – Validate and Save

Click Validate and Save. This checks for missing required values and saves the file. Correct any rows it flags before uploading.

Changed and new rate rows with Status Valid after Validate and Save

Step 5 – Upload the file

In Blitz Report click Upload and select the saved file. This submits the upload request, which stages the rows and runs Oracle’s Daily Rates Import and Calculation program to write the rates into General Ledger.

File Upload page with the saved GL Daily Rates Upload workbook selected

Step 6 – Review the result report

When the requests complete, a result report opens listing every row with its status and message, showing the rates as stored in General Ledger, including the calculated inverse rates.

Upload result with both rates loaded and the inverse rates calculated by General Ledger

What’s produced

  • Daily conversion rates created or updated in General Ledger.
  • A result report listing every row with a status (success or error) and a message.

Common questions

Does it create or update?
Both. New currency, type and date combinations are created; existing ones are updated. To change existing rates, download them in Create, Update mode and upload the edited values.

How does the rate get into GL?
The upload stages each row, then runs Oracle’s standard Daily Rates Import and Calculation program, which does the final validation and writes the rates. Upload success therefore depends on that program completing normally.

Why was my Inverse Conversion Rate ignored?
Your instance enforces the inverse relationship during entry, so the inverse is calculated and any value you enter is discarded. Enter an inverse rate only when that profile is set to No.

Can one rate cover several days?
Yes. Set the From Conversion Date and To Conversion Date and the rate applies across that range.

Why can’t I pick a currency I expected?
The currency must be enabled and active; statistical and EMU-derived currencies are excluded, and the To Currency cannot equal the From Currency.

Troubleshooting

MessageCauseWhat to do
Daily Rates Import and Calculation not submittedThe import request could not be submitted.Check the reason shown and your access to run the program.
Daily Rates Import and Calculation completed in errorThe import program ended in error or warning.Open the named Oracle request log for the data errors, correct the rows and upload again.
Invalid, disabled or statistical currencyA currency on the row is not valid for daily rates.Use an enabled, active currency (not statistical or EMU-derived).
Negative conversion rateThe Conversion Rate or Inverse Conversion Rate is negative.Enter a positive rate.
Date range too large / duplicate rowsThe date range is too wide, or the same currency, type and date appears twice.Narrow the range or remove the duplicate rows.
select
null action_,
null status_,
null message_,
null request_id_,
null modified_columns_,
null row_id,
gdr.from_currency,
gdr.to_currency,
gdct.user_conversion_type,
gdr.conversion_date from_conversion_date,
gdr.conversion_date to_conversion_date,
gdr.conversion_rate,
1/gdr.conversion_rate inverse_conversion_rate,
xxen_util.display_flexfield_context(101,'GL_DAILY_RATES',gdr.context) attribute_context,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE1',gdr.rowid,gdr.attribute1) gl_daily_rate_attribute1,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE2',gdr.rowid,gdr.attribute2) gl_daily_rate_attribute2,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE3',gdr.rowid,gdr.attribute3) gl_daily_rate_attribute3,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE4',gdr.rowid,gdr.attribute4) gl_daily_rate_attribute4,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE5',gdr.rowid,gdr.attribute5) gl_daily_rate_attribute5,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE6',gdr.rowid,gdr.attribute6) gl_daily_rate_attribute6,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE7',gdr.rowid,gdr.attribute7) gl_daily_rate_attribute7,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE8',gdr.rowid,gdr.attribute8) gl_daily_rate_attribute8,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE9',gdr.rowid,gdr.attribute9) gl_daily_rate_attribute9,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE10',gdr.rowid,gdr.attribute10) gl_daily_rate_attribute10,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE11',gdr.rowid,gdr.attribute11) gl_daily_rate_attribute11,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE12',gdr.rowid,gdr.attribute12) gl_daily_rate_attribute12,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE13',gdr.rowid,gdr.attribute13) gl_daily_rate_attribute13,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE14',gdr.rowid,gdr.attribute14) gl_daily_rate_attribute14,
xxen_util.display_flexfield_value(101,'GL_DAILY_RATES',gdr.context,'ATTRIBUTE15',gdr.rowid,gdr.attribute15) gl_daily_rate_attribute15,
fu.user_name created_by,
gdr.creation_date creation_date,
null batch_number,
xxen_util.meaning('I','GL_CRM_DR_MODE_FLAG',101) mode_flag,
xxen_util.meaning('N','YES_NO',0) launch_rate_change
from
gl_daily_rates gdr,
gl_daily_conversion_types gdct,
fnd_user fu
where
1=1 and
:p_upload_mode like '%' || xxen_upload.action_update and
nvl(:p_user_conv_type,'?') = nvl(:p_user_conv_type,'?') and
gdr.conversion_type = gdct.conversion_type and
gdr.created_by = fu.user_id (+)
Parameter NameSQL textValidation
Upload Mode
 
LOV
Default User Conversion Type
:p_user_conv_type=:p_user_conv_type
LOV
From Currency
gdr.from_currency=:p_fr_curr
LOV
To Currency
gdr.to_currency=:p_to_curr
LOV
Conversion Type
gdct.user_conversion_type=:p_rate_type
LOV
From Date
gdr.conversion_date>=trunc(:p_fr_date)
Date
To Date
gdr.conversion_date<trunc(:p_to_date)+1
Date