0% found this document useful (0 votes)
83 views

Create A Staging Table For Item Upload..: Avtec - Test - Item - STG Avtec - Test - Item - STG

The document describes the process of loading item and item category data from CSV files into Oracle staging tables. It then details the creation of PL/SQL procedures to validate and populate reference data in the staging tables from live tables. Finally, it outlines the creation of interface tables and procedures to load the staged data into the live Oracle application tables.

Uploaded by

Atul Ramteke
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
83 views

Create A Staging Table For Item Upload..: Avtec - Test - Item - STG Avtec - Test - Item - STG

The document describes the process of loading item and item category data from CSV files into Oracle staging tables. It then details the creation of PL/SQL procedures to validate and populate reference data in the staging tables from live tables. Finally, it outlines the creation of interface tables and procedures to load the staged data into the live Oracle application tables.

Uploaded by

Atul Ramteke
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 12

** Create a staging table for Item Upload..

select * from AVTEC_TEST_ITEM_STG CREATE TABLE APPS.AVTEC_TEST_ITEM_STG ( TEMPLATE_ID NUMBER, TEMPLATE_NAME VARCHAR2(30 BYTE), SET_PROCESS_ID NUMBER, ORGANIZATION_ID NUMBER, SUMMARY_FLAG VARCHAR2(1 BYTE), ENABLED_FLAG VARCHAR2(1 BYTE), SEGMENT1 VARCHAR2(40 BYTE), DESCRIPTION VARCHAR2(240 BYTE), ITEM_TYPE VARCHAR2(30 BYTE), EXPENSE_ACCOUNT VARCHAR2(70 BYTE), LONG_DESCRIPTION VARCHAR2(4000 BYTE), COST_OF_SALES_ACCOUNT VARCHAR2(70 BYTE), SALES_ACCOUNT VARCHAR2(70 BYTE), PRIMARY_UOM_CODE VARCHAR2(3 BYTE), PRIMARY_UNIT_OF_MEASURE VARCHAR2(25 BYTE), INVENTORY_ITEM_STATUS_CODE VARCHAR2(10 BYTE) NOT NULL, ATTRIBUTE_CATEGORY VARCHAR2(70 BYTE), ATTRIBUTE1 VARCHAR2(10 BYTE), ATTRIBUTE2 VARCHAR2(10 BYTE), ATTRIBUTE3 VARCHAR2(40 BYTE), ATTRIBUTE4 VARCHAR2(40 BYTE), ATTRIBUTE5 VARCHAR2(40 BYTE), ATTRIBUTE7 VARCHAR2(40 BYTE), ATTRIBUTE8 VARCHAR2(40 BYTE), ATTRIBUTE11 VARCHAR2(40 BYTE), ATTRIBUTE12 VARCHAR2(40 BYTE), PROCESS_FLAG NUMBER, ORGANIZATION_CODE VARCHAR2(30 BYTE), ORGANIZATION_NAME VARCHAR2(240 BYTE), BATCH_ID NUMBER(10) )

select * from APPS.AVTEC_TEST_ITEM_CAT_STG

CREATE TABLE APPS.AVTEC_TEST_ITEM_CAT_STG ( INVENTORY_ITEM_ID NUMBER, CATEGORY_SET_ID NUMBER, CATEGORY_ID NUMBER, ORGANIZATION_ID NUMBER(15), PROCESS_FLAG NUMBER, CATEGORY_SET_NAME VARCHAR2(30 BYTE), CATEGORY_NAME VARCHAR2(81 BYTE), ORGANIZATION_CODE VARCHAR2(10 BYTE), ITEM_NUMBER VARCHAR2(81 BYTE), TRANSACTION_TYPE VARCHAR2(10 BYTE), SET_PROCESS_ID NUMBER )

NOT NULL

Now Run the control file to transfer the csv data to Staging check the staging table -- AVTEC_TEST_ITEM_STG options(skip = 1) LOAD DATA INFILE 'E:\Atul - Avtec\Migration\Avtec_Item/TEST_ITEMS.csv' TRUNCATE INTO TABLE AVTEC_TEST_ITEM_STG FIELDS TERMINATED BY ',' optionally enclosed by '"' TRAILING NULLCOLS ( TEMPLATE_ID "TRIM(:TEMPLATE_ID)" TEMPLATE_NAME "TRIM(:TEMPLATE_NAME)" SET_PROCESS_ID "TRIM(:SET_PROCESS_ID)" ORGANIZATION_ID "TRIM(:ORGANIZATION_ID)" SUMMARY_FLAG "TRIM(:SUMMARY_FLAG)" ENABLED_FLAG "TRIM(:ENABLED_FLAG)" SEGMENT1 "TRIM(:SEGMENT1)" DESCRIPTION "TRIM(:DESCRIPTION)" ITEM_TYPE "TRIM(:ITEM_TYPE)" EXPENSE_ACCOUNT "TRIM(:EXPENSE_ACCOUNT)" LONG_DESCRIPTION "TRIM(:LONG_DESCRIPTION)" COST_OF_SALES_ACCOUNT "TRIM(:COST_OF_SALES_ACCOUNT)" SALES_ACCOUNT "TRIM(:SALES_ACCOUNT)" PRIMARY_UOM_CODE "TRIM(:PRIMARY_UOM_CODE)" PRIMARY_UNIT_OF_MEASURE "TRIM(:PRIMARY_UNIT_OF_MEASURE)" INVENTORY_ITEM_STATUS_CODE "TRIM(:INVENTORY_ITEM_STATUS_CODE)" ATTRIBUTE_CATEGORY "TRIM(:ATTRIBUTE_CATEGORY)" ATTRIBUTE1 "TRIM(:ATTRIBUTE1)" ATTRIBUTE2 "TRIM(:ATTRIBUTE2)" ATTRIBUTE3 "TRIM(:ATTRIBUTE3)" ATTRIBUTE4 "TRIM(:ATTRIBUTE4)" ATTRIBUTE5 "TRIM(:ATTRIBUTE5)" ATTRIBUTE7 "TRIM(:ATTRIBUTE7)" ATTRIBUTE8 "TRIM(:ATTRIBUTE8)" ATTRIBUTE11 "TRIM(:ATTRIBUTE11)" ATTRIBUTE12 "TRIM(:ATTRIBUTE12)" PROCESS_FLAG "1", ORGANIZATION_CODE "TRIM(:ORGANIZATION_CODE)", ORGANIZATION_NAME "TRIM(:ORGANIZATION_NAME)", BATCH_ID "-999" )

, , , , , , , , , , , , , , , , , , , , , , , , , ,

-- AVTEC_TEST_ITEM_CAT_STG options(skip = 1) LOAD DATA INFILE 'E:\Atul - Avtec\Migration\Avtec_Item/TEST_ITEM_CAT.csv' TRUNCATE INTO TABLE AVTEC_TEST_ITEM_CAT_STG FIELDS TERMINATED BY ',' optionally enclosed by '"' TRAILING NULLCOLS ( INVENTORY_ITEM_ID "TRIM(:INVENTORY_ITEM_ID)", CATEGORY_SET_ID "TRIM(:CATEGORY_SET_ID)", CATEGORY_ID "TRIM(:CATEGORY_ID)", ORGANIZATION_ID "TRIM(:ORGANIZATION_ID)", PROCESS_FLAG "TRIM(:PROCESS_FLAG)", CATEGORY_SET_NAME "TRIM(:CATEGORY_SET_NAME)", CATEGORY_NAME "TRIM(:CATEGORY_NAME)", ORGANIZATION_CODE "TRIM(:ORGANIZATION_CODE)", ITEM_NUMBER "TRIM(:ITEM_NUMBER)", TRANSACTION_TYPE "TRIM(:TRANSACTION_TYPE)", SET_PROCESS_ID CONSTANT "1" )

*************************************************************************** after the data come into staging table validate few of the columns of the staging table like Template ID,Org Id,CATEGORY_SET_ID,CATEGORY_ID Validation ***************************************************************** CREATE OR REPLACE procedure APPS.AVTEC_TEMPLATE_ID_ASSIGN as sqlcode varchar2(260); cursor template_id is select TEMPLATE_ID,TEMPLATE_NAME,DESCRIPTION from mtl_item_templates; begin for i in template_id loop begin update AVTEC_TEST_ITEM_STG set TEMPLATE_ID = i.TEMPLATE_ID where TEMPLATE_NAME = i.TEMPLATE_NAME; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Template Name not set properly'||SQLERRM); end; end loop; COMMIT; END; Execute APPS.AVTEC_TEMPLATE_ID_ASSIGN

CREATE OR REPLACE procedure APPS.AVTEC_ORG_ID_ASSIGN as sqlcode varchar2(260); cursor org_id is select * from org_organization_definitions; begin for i in org_id loop begin update AVTEC_TEST_ITEM_STG set ORGANIZATION_ID = i.ORGANIZATION_ID where ORGANIZATION_CODE = i.ORGANIZATION_CODE; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('ORG CODE not set properly'||SQLERRM); end; BEGIN update AVTEC_TEST_ITEM_CAT_STG set ORGANIZATION_ID = i.ORGANIZATION_ID where ORGANIZATION_CODE = i.ORGANIZATION_CODE; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('Vendor name not set properly'||SQLERRM); end; end loop; commit; end;

execute APPS.AVTEC_ORG_ID_ASSIGN

CREATE OR REPLACE procedure APPS.AVTEC_CATEGORY_SET_ID_ASSIGN as sqlcode varchar2(260); cursor category_set_id is select * from MTL_CATEGORY_SETS; begin for i in category_set_id loop begin update AVTEC_TEST_ITEM_CAT_STG set CATEGORY_SET_ID = i.CATEGORY_SET_ID where CATEGORY_SET_NAME = i.CATEGORY_SET_NAME; EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('CATEGORY_SET_NAME NOT SET PROPERLY'||SQLERRM); end; end loop; COMMIT; END; execute APPS.AVTEC_CATEGORY_SET_ID_ASSIGN;

CREATE OR REPLACE procedure APPS.AVTEC_CATEGORY_ID_ASSIGN_4 as sqlcode varchar2(260); cursor category_id is select * from MTL_CATEGORIES_B; begin for i in category_id loop begin update AVTEC_TEST_ITEM_CAT_STG set CATEGORY_ID = i.CATEGORY_ID where CATEGORY_NAME IN (i.SEGMENT1 ||'.'|| i.SEGMENT2 ||'.'|| i.SEGMENT3||'.' || i.SEGMENT4, i.SEGMENT1 ||'.'|| i.SEGMENT2); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('CATEGORY_NAME NOT SET PROPERLY'||SQLERRM); end; end loop; COMMIT; END; execute APPS.AVTEC_CATEGORY_ID_ASSIGN_4

MTL_SYSTEM_ITEMS_INTERFACE

CREATE OR REPLACE PROCEDURE APPS.AVTEC_TEST_ITEMS AS G_CREATED_DT G_CREATED_BY G_UPDATED_DT G_UPDATED_BY DATE NUMBER DATE NUMBER := := := := SYSDATE; FND_GLOBAL.USER_ID; SYSDATE; FND_GLOBAL.USER_ID;

-- CURSOR C1 IS SELECT * FROM CMTL_TEST_ITEM_STG;-- WHERE BATCH_ID!=1; -NDTEL_SO_ITEMS;-- TEST_ITEM_STG; --where segment1 not in ( select segment1 from mtl_system_items_b where organization_id=85); --where segment1 not in ( select segment1 from mtl_system_items_b where organization_id<>85); CURSOR C1 IS SELECT * FROM AVTEC_TEST_ITEM_STG; --where segment1 not in (select segment1 from mtl_system_items_b where organization_id=84);-- where segment1 NOT in ('T1041_10','T1041_20','A1007_010'); COUNT_INS NUMBER := 0; BEGIN FOR R1 IN C1 LOOP BEGIN INSERT INTO MTL_SYSTEM_ITEMS_INTERFACE ( TEMPLATE_ID , SET_PROCESS_ID , ORGANIZATION_ID , SUMMARY_FLAG , ENABLED_FLAG , SEGMENT1 , DESCRIPTION , ITEM_TYPE , EXPENSE_ACCOUNT , LONG_DESCRIPTION , --ENCUMBRANCE_ACCOUNT , COST_OF_SALES_ACCOUNT , SALES_ACCOUNT , PRIMARY_UOM_CODE , PRIMARY_UNIT_OF_MEASURE , INVENTORY_ITEM_STATUS_CODE , ATTRIBUTE_CATEGORY , ATTRIBUTE1 , ATTRIBUTE2 , ATTRIBUTE3 , ATTRIBUTE4 , ATTRIBUTE5 , --ATTRIBUTE6 , ATTRIBUTE7 , ATTRIBUTE8 , ATTRIBUTE11 , ATTRIBUTE12 , PROCESS_FLAG , TRANSACTION_TYPE ,

CREATION_DATE , CREATED_BY , LAST_UPDATE_DATE , LAST_UPDATED_BY ) VALUES ( R1.TEMPLATE_ID , R1.SET_PROCESS_ID , R1.ORGANIZATION_ID , R1.SUMMARY_FLAG , R1.ENABLED_FLAG , upper(R1.SEGMENT1) R1.DESCRIPTION , R1.ITEM_TYPE , R1.EXPENSE_ACCOUNT , R1.LONG_DESCRIPTION , --R1.ENCUMBRANCE_ACCOUNT , R1.COST_OF_SALES_ACCOUNT , R1.SALES_ACCOUNT , R1.PRIMARY_UOM_CODE , R1.PRIMARY_UNIT_OF_MEASURE , R1.INVENTORY_ITEM_STATUS_CODE , R1.ATTRIBUTE_CATEGORY , R1.ATTRIBUTE1 , R1.ATTRIBUTE2 , R1.ATTRIBUTE3 , R1.ATTRIBUTE4 , R1.ATTRIBUTE5 , R1.ATTRIBUTE7 , R1.ATTRIBUTE8 , R1.ATTRIBUTE11 , R1.ATTRIBUTE12, R1.PROCESS_FLAG , 'CREATE' , G_CREATED_DT , G_CREATED_BY , G_UPDATED_DT , G_UPDATED_BY ); COUNT_INS:=COUNT_INS+1; commit;

END ; END LOOP ; DBMS_OUTPUT.PUT_LINE('======NUMBER OF ROWS INSERTED===> '||COUNT_INS); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('MASTER ITEM infomation is not inserted'); END AVTEC_TEST_ITEMS;

execute AVTEC_TEST_ITEMS;

-MTL_ITEM_CATEGORIES_INTERFACE CREATE OR REPLACE PROCEDURE APPS.AVTEC_TEST_ITEMS_CAT AS G_CREATED_DT G_CREATED_BY G_UPDATED_DT G_UPDATED_BY DATE NUMBER DATE NUMBER := := := := SYSDATE; FND_GLOBAL.USER_ID; SYSDATE; FND_GLOBAL.USER_ID;

-- CURSOR C1 IS SELECT * FROM CMTL_TEST_ITEM_STG;-- WHERE BATCH_ID!=1; -NDTEL_SO_ITEMS;-- TEST_ITEM_STG; --where segment1 not in ( select segment1 from mtl_system_items_b where organization_id=85); --where segment1 not in ( select segment1 from mtl_system_items_b where organization_id<>85); CURSOR C1 IS SELECT * FROM AVTEC_TEST_ITEM_CAT_STG; --where segment1 not in (select segment1 from mtl_system_items_b where organization_id=84);-- where segment1 NOT in ('T1041_10','T1041_20','A1007_010'); COUNT_INS NUMBER := 0; BEGIN FOR R1 IN C1 LOOP BEGIN INSERT INTO MTL_ITEM_CATEGORIES_INTERFACE ( INVENTORY_ITEM_ID, CATEGORY_SET_ID, CATEGORY_ID, LAST_UPDATE_DATE, LAST_UPDATED_BY, CREATION_DATE, CREATED_BY, ORGANIZATION_ID, PROCESS_FLAG, CATEGORY_SET_NAME, CATEGORY_NAME, ORGANIZATION_CODE, ITEM_NUMBER, TRANSACTION_TYPE, SET_PROCESS_ID ) VALUES ( R1.INVENTORY_ITEM_ID, R1.CATEGORY_SET_ID, R1.CATEGORY_ID, G_UPDATED_DT, G_UPDATED_BY, G_CREATED_DT, G_CREATED_BY, R1.ORGANIZATION_ID, R1.PROCESS_FLAG, R1.CATEGORY_SET_NAME, R1.CATEGORY_NAME, R1.ORGANIZATION_CODE,

R1.ITEM_NUMBER, R1.TRANSACTION_TYPE, R1.SET_PROCESS_ID ); COUNT_INS:=COUNT_INS+1; commit; END ; END LOOP ; DBMS_OUTPUT.PUT_LINE('======NUMBER OF ROWS INSERTED===> '||COUNT_INS); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('MASTER ITEM infomation is not inserted'); END AVTEC_TEST_ITEMS_CAT;

execute AVTEC_TEST_ITEMS_CAT;

You might also like