Saturday, 25 January 2025

Script/API to import Daily Currency Conversion Rates in General Ledger of EBS R12

 /*API to import Daily Currency Conversion Rates in General Ledger of EBS R12*/

DECLARE
    lv_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, 
                     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, 0lv_phase1lv_status1lv_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