Sie sind auf Seite 1von 8

-------------- header flat file-----------Service Billing,SUNA123,204,1437,Events Registration Pricing,INSERT,Vision Opera tions,5453,6503,10700, Service Billing,HARGA123,204,1437,Events Registration Pricing,INSERT,Vision Oper ations,5453,6503,10700,

Service Billing,NARKA123,204,1437,Events Registration Pricing,INSERT,Vision Oper ations,5453,6503,10700, Service Billing,SOHA123,204,1437,Events Registration Pricing,INSERT,Vision Opera tions,5453,6503,10700, Service Billing,NEHH123,204,1437,Events Registration Pricing,INSERT,Vision Opera tions,5453,6503,10700, ----------------- line flat file --------------Service Service Service Service Service -Billing,204,SUNA123,3,4070,5,Ea,Vision Operations,5453,6503,10700, Billing,204,HARGA123,3,4070,5,Ea,Vision Operations,5453,6503,10700, Billing,204,NARKA123,3,4070,5,Ea,Vision Operations,5453,6503,10700, Billing,204,SOHA123,3,4070,5,Ea,Vision Operations,5453,6503,10700, Billing,204,NEHH123,3,4070,5,Ea,Vision Operations,5453,6503,10700,

header control file

LOAD DATA INFILE FLAT_HEADER.txt INTO TABLE OE_HEADERS_STAGE FIELDS TERMINATED BY ',' TRAILING NULLCOLS (ORDER_SOURCE_NAME, ORIG_SYS_DOCUMENT_REF, ORG_ID, ORDER_TYPE_ID , PRICE_LIST_NAME , OPERATION_CODE , SOLD_FROM_ORG_NAME , SOLD_TO_ORG_ID , Ship_to_Org_id , Invoice_To_Org_id ) --- line control file LOAD DATA INFILE FLAT_LINE.txt INTO TABLE OE_LINES_STAGE FIELDS TERMINATED BY ',' (ORDER_SOURCE_NAME , ORG_ID , ORIG_SYS_DOCUMENT_REF, ORIG_SYS_LINE_REF , INVENTORY_ITEM_ID , ORDERED_QUANTITY , ORDER_QUANTITY_UOM , SOLD_FROM_ORG_NAME , SOLD_TO_ORG_ID , SHIP_TO_ORG_ID, INVOICE_TO_ORG_ID) -- validation of header CREATE OR REPLACE PROCEDURE om_header_proc(retcode OUT VARCHAR2,errbuf OUT VARCH AR2) AS

v_order_source_id number; v_price_list_id number; v_organization_id number; --v_customer_id number; v_counter number; v_error_flag varchar2(1):= 'N'; v_error_desc varchar2(200); CURSOR cur_staging_data IS SELECT ORDER_SOURCE_NAME, ORIG_SYS_DOCUMENT_REF, ORG_ID, ORDER_TYPE_ID , PRICE_LIST_NAME , OPERATION_CODE , SOLD_FROM_ORG_NAME , SOLD_TO_ORG_ID , Ship_to_Org_id , Invoice_To_Org_id FROM OE_HEADERS_STAGE; BEGIN FOR rec_staging_data IN cur_staging_data LOOP BEGIN select order_source_id into v_order_source_id from oe_order_sour ces where name=rec_staging_data.ORDER_SOURCE_NAME; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Source id Specified'; END; IF v_error_flag!='Y' THEN BEGIN select list_header_id into v_price_list_id from QP_LIST_HEADERS_TL where name=rec_staging_data.PRICE_LIST_NAME; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Price List Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN select organization_id into v_organization_id from HR_ALL_ORGANI ZATION_UNITS where name=rec_staging_data.SOLD_FROM_ORG_NAME ; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Sold from Organization id Specifi ed'; END; END IF; IF v_error_flag!='Y' THEN BEGIN select count(1) into v_counter from RA_CUSTOMERS where customer_

id =rec_staging_data.SOLD_TO_ORG_ID; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Sold to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN --select count(*) into v_counter from RA_SITE_USES_ALL where SIT E_USE_ID=rec_staging_data.Ship_to_Org_id; SELECT site_use_id into v_counter FROM hz_cust_site_uses_all hcsu, hz_cust_acct_sites_all hcas,hz_ cust_accounts_all hca,ra_customers rc WHERE hca.cust_account_id = hcas.cust_account_id AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id AND hcsu.site_use_code = 'SHIP_TO' AND hcsu.status = 'A' AND hcas.org_id = rec_staging_data.org_id AND rc.customer_number = hca.account_number AND rc.customer_id =rec_staging_data.SOLD_TO_ORG_ID; IF v_counter=0 THEN v_error_flag:='Y'; v_error_desc:='Invalid Ship to Org id Specified'; END IF; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Ship to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN --select count(*) into v_counter from RA_SITE_USES_ALL where SIT E_USE_ID=rec_staging_data.Invoice_To_Org_id; SELECT site_use_id into v_counter FROM hz_cust_site_uses_all hcsu, hz_cust_acct_sites_all hcas, h z_cust_accounts_all hca, ra_customers rc WHERE hca.cust_account_id = hcas.cust_account_id AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id AND hcsu.site_use_code = 'BILL_TO' AND hcsu.status = 'A' AND hcas.org_id = rec_staging_data.org_id AND rc.customer_number = hca.account_number AND rc.customer_id =rec_staging_data.SOLD_TO_ORG_ID; IF v_counter=0 THEN v_error_flag:='Y'; v_error_desc:='Invalid Invoice to Org id Specified'; END IF; EXCEPTION WHEN OTHERS THEN

v_error_flag:='Y'; v_error_desc:='Invalid Invoice to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN INSERT INTO oe_headers_iface_all(ORDER_SOURCE_ID, ORIG_SYS_DOCUMENT_REF, ORG_ID, ORDER_TYPE_ID , PRICE_LIST_ID , OPERATION_CODE , SOLD_FROM_ORG_ID , SOLD_TO_ORG_ID , Ship_to_Org_id , Invoice_To_Org_id, CREATED_BY, CREATION_DATE , LAST_UPDATED_BY , LAST_UPDATE_DATE ) VALUES (v_order_source_id, rec_staging_data.orig_sys_docume nt_ref, rec_staging_data.ORG_ID, rec_staging_data.ORDER_TYPE_ID, v_price_list_id, rec_staging_data.OPERATION_CODE, v_organization_id, rec_staging_data.SOLD_TO_ORG_ID, rec_staging_data.Ship_to_Org_id, rec_staging_data.Invoice_To_Org_ id, 1, SYSDATE, 1, SYSDATE ); COMMIT; ELSE retcode:=v_error_flag; errbuf:=v_error_desc; DBMS_OUTPUT.PUT_LINE('ABE BHAG....'||v_error_flag||' '||v_error_ desc); END IF; v_error_flag:='N'; END LOOP; END om_header_proc; / --- validation of line CREATE OR REPLACE PROCEDURE om_line_proc(retcode OUT VARCHAR2,errbuf OUT VARCHAR 2) AS v_order_source_id number; v_orig_sys_document_ref varchar2(50);

v_organization_id number; --v_customer_id number; v_counter number; v_error_flag varchar2(1):='N'; v_error_desc varchar2(200); CURSOR cur_staging_data IS SELECT ORDER_SOURCE_NAME , ORG_ID , ORIG_SYS_DOCUMENT_REF, ORIG_SYS_LINE_REF , INVENTORY_ITEM_ID , ORDERED_QUANTITY , ORDER_QUANTITY_UOM , SOLD_FROM_ORG_NAME , SOLD_TO_ORG_ID , SHIP_TO_ORG_ID, INVOICE_TO_ORG_ID FROM OE_LINES_STAGE; BEGIN FOR rec_staging_data IN cur_staging_data LOOP BEGIN select order_source_id into v_order_source_id from oe_order_sour ces where name=rec_staging_data.ORDER_SOURCE_NAME; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Source id Specified'; END; IF v_error_flag!='Y' THEN BEGIN select orig_sys_document_ref into v_orig_sys_document_ref from O E_HEADERS_IFACE_ALL where orig_sys_document_ref=rec_staging_data.orig_sys_docume nt_ref; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid reference id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN select count(*) into v_counter from RA_CUSTOMERS where customer_ id =rec_staging_data.SOLD_TO_ORG_ID; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Sold to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN select organization_id into v_organization_id from HR_ALL_ORGANI ZATION_UNITS where name=rec_staging_data.SOLD_FROM_ORG_NAME ;

EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Sold from Organization id Specifi ed'; END; END IF; IF v_error_flag!='Y' THEN BEGIN --select count(*) into v_counter from RA_SITE_USES_ALL where SIT E_USE_ID=rec_staging_data.Ship_to_Org_id; SELECT site_use_id into v_counter FROM hz_cust_site_uses_all hcsu, hz_cust_acct_sites_all hcas, hz_cust_accounts_all hca, ra_customers rc WHERE hca.cust_account_id = hcas.cust_account_id AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id AND hcsu.site_use_code = 'SHIP_TO' AND hcsu.status = 'A' AND hcas.org_id = rec_staging_data.org_id AND rc.customer_number = hca.account_number AND rc.customer_id =rec_staging_data.SOLD_TO_ORG_ID; IF v_counter=0 THEN v_error_flag:='Y'; v_error_desc:='Invalid Ship to Org id Specified'; END IF; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Ship to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN --select count(*) into v_counter from RA_SITE_USES_ALL where SIT E_USE_ID=rec_staging_data.Invoice_To_Org_id; SELECT site_use_id into v_counter FROM hz_cust_site_uses_all hcsu, hz_cust_acct_sites_all hcas, hz_cust_accounts_all hca, ra_customers rc WHERE hca.cust_account_id = hcas.cust_account_id AND hcas.cust_acct_site_id = hcsu.cust_acct_site_id AND hcsu.site_use_code = 'BILL_TO' AND hcsu.status = 'A' AND hcas.org_id = rec_staging_data.org_id AND rc.customer_number = hca.account_number AND rc.customer_id =rec_staging_data.SOLD_TO_ORG_ID; IF v_counter=0 THEN v_error_flag:='Y'; v_error_desc:='Invalid Invoice to Org id Specified'; END IF; EXCEPTION

WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Invoice to Org id Specified'; END; END IF; IF v_error_flag!='Y' THEN BEGIN SELECT count(*) INTO v_counter FROM qp_list_lines WHERE inventory_item_id=rec_staging_data.inventory_item_id AND list_header_id = (SELECT price_list_id FROM oe_headers_iface_all WHERE orig_sys_document_ref=rec_staging_ data.orig_sys_document_ref); IF v_counter=0 THEN v_error_flag:='Y'; v_error_desc:='Invalid Inventory Item specified'; END IF; EXCEPTION WHEN OTHERS THEN v_error_flag:='Y'; v_error_desc:='Invalid Inventory Item Specified'; END; END IF; IF v_error_flag!='Y' THEN INSERT INTO oe_lines_iface_all(ORDER_SOURCE_ID, ORG_ID, ORIG_SYS_DOCUMENT_REF, ORIG_SYS_LINE_REF, INVENTORY_ITEM_ID , ORDERED_QUANTITY, ORDER_QUANTITY_UOM, SOLD_FROM_ORG_ID , SOLD_TO_ORG_ID , Ship_to_Org_id , Invoice_To_Org_id, CREATED_BY, CREATION_DATE , LAST_UPDATED_BY , LAST_UPDATE_DATE ) VALUES (v_order_source_id, rec_staging_data.ORG_ID, rec_staging_data.orig_sys_docume nt_ref, rec_staging_data.orig_sys_line_r ef, rec_staging_data.INVENTORY_ITEM_ ID, rec_staging_data.ORDERED_QUANTIT Y, rec_staging_data.ORDER_QUANTITY_ UOM, v_organization_id, rec_staging_data.SOLD_TO_ORG_ID, rec_staging_data.Ship_to_Org_id,

rec_staging_data.Invoice_To_Org_ id, 1, SYSDATE, 1, SYSDATE); COMMIT; ELSE retcode:=v_error_flag; errbuf:=v_error_desc; DBMS_OUTPUT.PUT_LINE('ABE BHAG....'||v_error_flag||' '||v_error_ desc); END IF; v_error_flag:='N'; END LOOP; END om_line_proc; /

Das könnte Ihnen auch gefallen