/*API to import Daily Currency Conversion Rates in General Ledger of EBS R12*/
DECLARElv_from_currency VARCHAR2(5) := 'USD';
lv_to_currenty VARCHAR2(5) := 'INR';
ln_conversion_rate NUMBER := 85.57;
ln_batch_number NUMBER := 10001;
ln_dummy_char NUMBER;
lv_request_id NUMBER;
lv_result BOOLEAN;
lv_phase1 VARCHAR2(100);
lv_status1 VARCHAR2(100);
lv_dev_phase1 VARCHAR2(100);
lv_dev_status1 VARCHAR2(100);
lv_message1 VARCHAR2(100);
BEGIN
-- check whether the from currency exists and enabled
BEGIN
SELECT 1
INTO ln_dummy_char
FROM fnd_currencies
WHERE currency_flag = 'Y'
AND enabled_flag = 'Y'
AND currency_code = Upper(lv_from_currency);
EXCEPTION
WHEN no_data_found THEN
dbms_output.Put_line('Error: From Currency is not valid');
END;
-- check whether the from currency exists and enabled
BEGIN
SELECT 1
INTO ln_dummy_char
FROM fnd_currencies
WHERE currency_flag = 'Y'
AND enabled_flag = 'Y'
AND currency_code = Upper(lv_to_currenty);
EXCEPTION
WHEN no_data_found THEN
dbms_output.Put_line('Error: To Currency is not valid');
END;
-- Initialize the enviroment
fnd_global.Apps_initialize (user_id => 2739 --User Id
, resp_id => 20434 --Responsibility Id
, resp_appl_id => 101 --Responsibility Application Id
);
-- Insert into Interface table
INSERT INTO gl_daily_rates_interface
(from_currency,
to_currency,
from_conversion_date,
to_conversion_date,
user_conversion_type,
conversion_rate,
mode_flag,
inverse_conversion_rate,
user_id,
launch_rate_change,
error_code,
batch_number)
VALUES (lv_from_currency,
lv_to_currenty,
'25-JAN-2025',
'25-JAN-2025',
'Corporate',
ln_conversion_rate,
'I',
( 1 / ln_conversion_rate ),
fnd_profile.Value('USER_ID'),
NULL,
NULL,
ln_batch_number );
-- Submit Program - Daily Rates Import and Calculation
lv_request_id := fnd_request.Submit_request(
application => 'SQLGL',
program => 'GLDRICCP', --Program - Daily Rates Import and Calculation
description => NULL,
program => 'GLDRICCP', --Program - Daily Rates Import and Calculation
description => NULL,
start_time => NULL,
sub_request => NULL,
argument1 => ln_batch_number);
COMMIT;
IF lv_request_id = 0 THEN
dbms_output.Put_line(' Failed to submit Process GLDRICCP.'|| fnd_message.get);
ELSE
lv_result := fnd_concurrent.Wait_for_request(lv_request_id, 1, 0, lv_phase1, lv_status1, lv_dev_phase1, lv_dev_status1, lv_message1);
END IF;
IF NOT lv_result THEN
dbms_output.Put_line('No Status returned for the request Id: '|| lv_request_id);
ELSE
dbms_output.Put_line('The Req-Id of GLDRICCP Process is '|| lv_request_id);
END IF;
END;
sub_request => NULL,
argument1 => ln_batch_number);
COMMIT;
IF lv_request_id = 0 THEN
dbms_output.Put_line(' Failed to submit Process GLDRICCP.'|| fnd_message.get);
ELSE
lv_result := fnd_concurrent.Wait_for_request(lv_request_id, 1, 0, lv_phase1, lv_status1, lv_dev_phase1, lv_dev_status1, lv_message1);
END IF;
IF NOT lv_result THEN
dbms_output.Put_line('No Status returned for the request Id: '|| lv_request_id);
ELSE
dbms_output.Put_line('The Req-Id of GLDRICCP Process is '|| lv_request_id);
END IF;
END;
gl_daily_rates_interface => "Program - Daily Rates Import and Calculation" => GL_DAILY_RATES table
No comments:
Post a Comment