Sei sulla pagina 1di 5

CREATE OR REPLACE PACKAGE BODY APPS.

XXCBL_BUDGET_IMPORT_PKG IS
PROCEDURE XXCBL_BUDGET_IMPORT_PROC(ERRBUF OUT VARCHAR2,RETCODE OUT VARCHAR2) IS
L_BUDGET_NAME VARCHAR2(240); --Budget version name
L_BUDGET_VERSION_ID NUMBER(15);
L_BUDGET_ENTITY_NAME VARCHAR2(240); --Budget organization name
L_CURRENCY_CODE VARCHAR2(5);
L_FISICAL_YEAR NUMBER(15):=2010;
L_UPDATE_LOGIC_TYPE VARCHAR2(1):='A'; --Method used to update budget b
alances ('A' for add, 'R' for replace)
L_BUDGET_ENTITY_ID NUMBER(15); --Budget organization defining c
olumn
L_SET_OF_BOOKS_ID NUMBER(15):=2023; --Ledger defining column
L_CODE_COMBINATION_ID NUMBER(15); --Key flexfield combination defi
ning column
L_PERIOD_TYPE VARCHAR2(15):='YTD'; --Accounting period type
L_ACCOUNT_TYPE VARCHAR2(25):='Entered'; --Key flexfield combi
nation type (Asset, Liability, etc.)
L_LEDGER_ID VARCHAR2(15):=2023; --Ledger defining column
L_STATUS VARCHAR2(1);
L_COUNT NUMBER(15):=0;
L_COUNT1 NUMBER(15):=0;
A NUMBER(15);

CURSOR C1 IS SELECT A.ROWID,A.* FROM XXCBL_BUDGET_STG A WHERE A.STATUS='N';


BEGIN
FOR CREC IN C1 LOOP
L_STATUS:='S';
L_COUNT:=L_COUNT+1;
-- ===========================================
-- Budget Name
-- ===========================================
BEGIN
A:=0;
SELECT 1 into A FROM DUAL WHERE EXISTS(
select BUDGET_NAME
from gl_budgets
WHERE BUDGET_NAME='CBL_OPEX_BUD10');
if A=1 THEN
L_BUDGET_NAME:='CBL_OPEX_BUD10';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'No data found for BUDGET Name in EBS');
WHEN OTHERS THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'Unhandled exception while fetching the
BUDGET Name');
END;
-- ===========================================
-- Version ID
-- ===========================================
BEGIN
select BUDGET_VERSION_ID
into L_BUDGET_VERSION_ID
from gl_budget_versions
WHERE BUDGET_NAME='CBL_OPEX_BUD10';
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'No data found for BUDGET VERSION ID in
EBS');
WHEN OTHERS THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'Unhandled exception while fetching the
BUDGET VERSION ID');
END;

--===========================================
--ORGANIZATION_NAME
--===========================================
BEGIN
SELECT BUDGET_ENTITY_ID , NAME
INTO L_BUDGET_ENTITY_ID, L_BUDGET_ENTITY_NAME
FROM GL_BUDGET_ENTITIES
WHERE NAME='Test';--CREC.Category;
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'No data found for ORGANIZATION NAME in
EBS');
WHEN OTHERS THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'Unhandled exception while fetching the
ORGANIZATION NAME AND ID');
END;
--==============================================
--CURRENCY CODE
--==============================================
BEGIN
SELECT CURRENCY_CODE
INTO L_CURRENCY_CODE
FROM FND_CURRENCIES_TL
WHERE CURRENCY_CODE='UGX';
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'No data found for CURRENCY CODE in EBS'
);
WHEN OTHERS THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'Unhandled exception while fetching the
CURRENCY CODE');
END;
-- ===========================================
-- Fetching the Expense CCID
-- ===========================================
BEGIN
SELECT CODE_COMBINATION_ID
INTO L_CODE_COMBINATION_ID
FROM GL_CODE_COMBINATIONS
WHERE segment1
|| '-'
|| segment2
|| '-'
|| segment3
|| '-'
|| segment4
|| '-'
|| segment5
|| '-'
|| segment6
|| '-'
|| segment7
|| '-'
|| segment8 =CREC.GL_ACCOUN_CODE
AND ENABLED_FLAG = 'Y'
AND END_DATE_ACTIVE IS NULL;
EXCEPTION
WHEN NO_DATA_FOUND THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'No data found for A/C CCID in EBS');
WHEN OTHERS THEN
L_STATUS:='E';
FND_FILE.PUT_LINE(FND_FILE.LOG,'Unhandled exception while fetching the
A/C CCID');
END;

IF L_STATUS ='S' THEN


BEGIN
INSERT INTO GL_BUDGET_INTERFACE
(
BUDGET_NAME,
BUDGET_ENTITY_NAME,
CURRENCY_CODE,
FISCAL_YEAR,
UPDATE_LOGIC_TYPE,
BUDGET_ENTITY_ID,
SET_OF_BOOKS_ID,
CODE_COMBINATION_ID,
BUDGET_VERSION_ID,
PERIOD_TYPE,
ACCOUNT_TYPE,
PERIOD1_AMOUNT,
PERIOD2_AMOUNT,
PERIOD3_AMOUNT,
PERIOD4_AMOUNT,
PERIOD5_AMOUNT,
PERIOD6_AMOUNT,
PERIOD7_AMOUNT,
PERIOD8_AMOUNT,
PERIOD9_AMOUNT,
PERIOD10_AMOUNT,
PERIOD11_AMOUNT,
PERIOD12_AMOUNT,
LEDGER_ID )
values
(
L_BUDGET_NAME,
L_BUDGET_ENTITY_NAME,
L_CURRENCY_CODE,
L_FISICAL_YEAR,
L_UPDATE_LOGIC_TYPE,
L_BUDGET_ENTITY_ID,
L_SET_OF_BOOKS_ID,--Set of BOOK ID
L_CODE_COMBINATION_ID,
L_BUDGET_VERSION_ID,
L_PERIOD_TYPE,
L_ACCOUNT_TYPE,
CREC.PERIOD1_AMOUNT,
CREC.PERIOD2_AMOUNT,
CREC.PERIOD3_AMOUNT,
CREC.PERIOD4_AMOUNT,
CREC.PERIOD5_AMOUNT,
CREC.PERIOD6_AMOUNT,
CREC.PERIOD7_AMOUNT,
CREC.PERIOD8_AMOUNT,
CREC.PERIOD9_AMOUNT,
CREC.PERIOD10_AMOUNT,
CREC.PERIOD11_AMOUNT,
CREC.PERIOD12_AMOUNT,
L_LEDGER_ID
);
COMMIT;
FND_FILE.PUT_LINE(FND_FILE.LOG, L_COUNT||'. Record Inserted');
L_COUNT1:=L_COUNT1+1;
UPDATE XXCBL_FA_STG
SET STATUS='P'
WHERE ROWID=CREC.ROWID;

EXCEPTION
WHEN OTHERS THEN
FND_FILE.PUT_LINE(FND_FILE.LOG,L_COUNT||'. insert failed code: '||S
QLCODE||' Error message: '||SQLERRM);
END;

ELSE
FND_FILE.PUT_LINE(FND_FILE.LOG,L_COUNT||'.Error Occured');

END IF;
END LOOP;
FND_FILE.PUT_LINE(FND_FILE.LOG,'OUT OF THE LOOP');
FND_FILE.PUT_LINE(FND_FILE.LOG,'Total Records Inserted :' || L_COUNT1);
END;
END;
/

Potrebbero piacerti anche