supplier & supplier sites interface&conversion
DESCRIPTION
Supplier & Supplier Sites Interface&ConversionTRANSCRIPT
Supplier & Supplier Sites Interface/ConversionOpen Interface method
Application: Payables
Tables used:
AP_SUPPLIERS_INT (populates PO_VENDORS),
AP_SUPPLIER_SITE_INT (populates PO_VENDOR_SITES),
HR_ALL_ORGANIZATION_UNITS (cf organization_id) ,
GL_CODE_COMBINATIONS (cf code_combination_id)
PO_LOOKUP_CODES (cf LOOKUP_CODE)
PER_PEOPLE_F (cf PERSON_ID)
Step 1: Check for vendors that already exist
SELECT * FROM PO_VENDORS WHERE VENDOR_NAME = ‘ENTER VENDOR NAME’;
Step 2: Entering supplier / employee by classifying accordingly
For entering employee as supplier
INSERT INTO ap_suppliers_int (vendor_name, segment1, vendor_interface_id, vendor_type_lookup_code, employee_id ) VALUES ('VENDOR2', --NAME OF VENDOR 'V02', --SUPPLIER NUMBER 21, -- UNIQUE SUPPLIER INTERFACE RECORD, 'Employee',--LOOKUP_CODE 234 -- PERSON_ID OF EMPLOYEE );
For entering supplier (who is not an employee)
INSERT INTO ap_suppliers_int
(vendor_name, segment1, vendor_interface_id, vendor_type_lookup_code ) VALUES ('VENDOR2', --NAME OF VENDOR 'V02', --SUPPLIER NUMBER 21, -- UNIQUE SUPPLIER INTERFACE RECORD,
'Supply' --LOOKUP_CODE );
Submit request Supplier Open Interface Import
Step 3: Query to retrieve vendor id
SELECT po.vendor_id, po.vendor_name, po.segment1 FROM po_vendors po, ap_suppliers_int supp WHERE supp.segment1 = po.segment1
Step 4: Entering the site information and account information for suppliers
INSERT INTO ap_supplier_sites_int (vendor_interface_id, vendor_site_code, vendor_id, org_id, address_line1, address_line2, address_line3, city, state, zip, country, accts_pay_code_combination_id, --LIABILITY ACCOUNT prepay_code_combination_id -- PREPAYMENT ACCOUNT
) VALUES (21, 'VENDOR23', 16044, 141, NULL, NULL, NULL, NULL, NULL, 123456, NULL, 1418, 1419 );
Submit request Supplier Sites Open Interface Import
After importing the suppliers you can check Supplier master.
Navigation: Suppliers > Entry
Click on Sites button
A sample interface script is given below:
DECLARE --Cursor 1 which retieves data from header table to insert into receiving header table p_header_id NUMBER; p_counter NUMBER := 0; p_header_error NUMBER := 0; p_line_error NUMBER := 0; p_header_sequence NUMBER; p_org_id NUMBER; p_message VARCHAR2 (200); p_count NUMBER := 0; p_pay_code_combination_id NUMBER := 1074; p_prepay_code_combination_id NUMBER := 1075; l_country VARCHAR2 (2);
CURSOR c2 IS
SELECT vendor_name, vendor_type_lookup_code, site, country, address1, address2, address3, city, state, pin, liability_account_id FROM xx_vendor_sites_others_b WHERE flag IS NULL ORDER BY vendor_name; FUNCTION get_country_code (p_country IN VARCHAR2) RETURN VARCHAR2 IS BEGIN SELECT territory_code INTO l_country FROM fnd_territories_vl WHERE territory_short_name = INITCAP (p_country); RETURN l_country; EXCEPTION WHEN NO_DATA_FOUND THEN l_country := 'IN'; END;BEGIN FOR c2_rec IN c2 LOOP BEGIN SELECT COUNT (*) INTO p_count FROM ap_suppliers_int WHERE vendor_name = c2_rec.vendor_name; END;
IF p_count = 0 THEN BEGIN INSERT INTO ap_suppliers_int (vendor_interface_id, vendor_name, vendor_name_alt, segment1, summary_flag, enabled_flag,
vendor_type_lookup_code, one_time_flag, ship_to_location_id, bill_to_location_id, terms_id, set_of_books_id, always_take_disc_flag, pay_date_basis_lookup_code, pay_group_lookup_code, payment_priority, hold_all_payments_flag, hold_future_payments_flag, start_date_active, payment_method_lookup_code, terms_date_basis, qty_rcv_tolerance, qty_rcv_exception_code, enforce_ship_to_location_code, days_early_receipt_allowed, days_late_receipt_allowed, receipt_days_exception_code, receiving_routing_id, allow_substitute_receipts_flag, allow_unordered_receipts_flag, bank_charge_bearer, match_option, allow_awt_flag ) VALUES (ap_suppliers_int_s.NEXTVAL, UPPER (c2_rec.vendor_name), UPPER (c2_rec.vendor_name), c2_rec.segment1, 'N', 'Y', c2_rec.vendor_type_lookup_code, 'Sub-Contractor', 'N', 142, 142, 10000, 1001, 'N', 'DISCOUNT', 'HIGH PRIORITY', 99, 'N', 'N', '15-AUG-2005', 'CHECK', 'Invoice', 10, 'WARNING', 'NONE', 2, 5, 'WARNING', 1, 'N', 'Y', 'I', 'R', '' );
/* UPDATE XX_VENDOR_SITES_OTHERS_B SET FLAG='Y' WHERE VENDOR_NAME=C2_REC.VENDOR_NAME; */
COMMIT;
SELECT ap_suppliers_int_s.CURRVAL INTO p_header_sequence FROM DUAL; EXCEPTION WHEN OTHERS THEN ROLLBACK; p_message := SUBSTR (SQLERRM, 1, 200 );
UPDATE xx_vendor_sites_others_b SET flag = 'N', error_message = p_message WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site;
COMMIT; p_header_error := 1; END;
END IF; BEGIN SELECT code_combination_id INTO p_pay_code_combination_id FROM gl_code_combinations WHERE segment1 || '.' || segment2 || '.' || segment3 || '.' || segment4 = c2_rec.lia_account_code;
SELECT code_combination_id INTO p_prepay_code_combination_id FROM gl_code_combinations WHERE segment1 || '.' || segment2 || '.' || segment3 || '.' || segment4 = c2_rec.advances_account_code;
BEGIN l_country := get_country_code (c2_rec.country); EXCEPTION WHEN OTHERS THEN l_country := 'IN'; END;
INSERT INTO ap_supplier_sites_int (vendor_interface_id, vendor_site_code, payment_method_lookup_code, terms_date_basis, accts_pay_code_combination_id, prepay_code_combination_id, pay_group_lookup_code, payment_priority, terms_id, pay_date_basis_lookup_code, org_id, purchasing_site_flag, rfq_only_site_flag, pay_site_flag, attention_ar_flag, allow_awt_flag, address_line1, address_line2, address_line3, city, country, state, zip, address_lines_alt, ship_to_location_id, bill_to_location_id ) VALUES (ap_suppliers_int_s.CURRVAL, c2_rec.site, 'SITE1', 'CHECK', 'Invoice', c2_rec.liability_account_id, p_prepay_code_combination_id, 'SUPPLIER', 'HIGH PRIORITY', 99, 10000, 'DISCOUNT', 82, 'Y', 'N', 'Y', 'N', 'N', c2_rec.address1, c2_rec.address2, c2_rec.address3, c2_rec.city, l_country, c2_rec.state, c2_rec.pin, c2_rec.contact_phones, 142, 142 );
UPDATE xx_vendor_sites_others_b SET flag = 'Y' WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; p_message := SUBSTR (SQLERRM,
1, 200 );
UPDATE xx_vendor_sites_others_b SET flag = 'N', error_message = p_message WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site; COMMIT; END; END LOOP;EXCEPTION WHEN OTHERS THEN ROLLBACK;END;
COMMIT ; DECLARE --Cursor 1 which retieves data from header table to insert into receiving header table p_header_id NUMBER; p_counter NUMBER := 0; p_header_error NUMBER := 0; p_line_error NUMBER := 0; p_header_sequence NUMBER; p_org_id NUMBER; p_message VARCHAR2 (200); p_count NUMBER := 0; p_pay_code_combination_id NUMBER := 1074; p_prepay_code_combination_id NUMBER := 1075; l_country VARCHAR2 (2); ln_req_id NUMBER; -- Concurrent request parameters lb_flag BOOLEAN; lv_dev_phase VARCHAR2 (30); lv_dev_status VARCHAR2 (30); lv_phase VARCHAR2 (30); lv_message VARCHAR2 (240);
CURSOR c2 IS
SELECT vendor_name, vendor_type_lookup_code, site, country, address1, address2, address3, city, state, pin, liability_account_id FROM xx_vendor_sites_others_b WHERE flag IS NULL ORDER BY vendor_name; FUNCTION get_country_code (p_country IN VARCHAR2) RETURN VARCHAR2 IS BEGIN
SELECT territory_code INTO l_country FROM fnd_territories_vl WHERE territory_short_name = INITCAP (p_country); RETURN l_country; EXCEPTION WHEN NO_DATA_FOUND THEN l_country := 'IN'; END;BEGIN FOR c2_rec IN c2 LOOP BEGIN SELECT COUNT (*) INTO p_count FROM ap_suppliers_int WHERE vendor_name = c2_rec.vendor_name; END;
IF p_count = 0 THEN BEGIN INSERT INTO ap_suppliers_int (vendor_interface_id, vendor_name, vendor_name_alt, segment1, summary_flag, enabled_flag, vendor_type_lookup_code, one_time_flag, ship_to_location_id, bill_to_location_id, terms_id, set_of_books_id, always_take_disc_flag, pay_date_basis_lookup_code, pay_group_lookup_code, payment_priority, hold_all_payments_flag, hold_future_payments_flag, start_date_active, payment_method_lookup_code, terms_date_basis, qty_rcv_tolerance, qty_rcv_exception_code, enforce_ship_to_location_code, days_early_receipt_allowed, days_late_receipt_allowed, receipt_days_exception_code, receiving_routing_id, allow_substitute_receipts_flag, allow_unordered_receipts_flag, bank_charge_bearer, match_option, allow_awt_flag ) VALUES (ap_suppliers_int_s.NEXTVAL, UPPER (c2_rec.vendor_name), UPPER (c2_rec.vendor_name), c2_rec.segment1, 'N', 'Y', c2_rec.vendor_type_lookup_code, 'Sub-Contractor', 'N', 142, 142, 10000, 1001, 'N', 'DISCOUNT', 'HIGH PRIORITY', 99, 'N', 'N', '15-AUG-2005', 'CHECK', 'Invoice', 10, 'WARNING', 'NONE', 2, 5, 'WARNING', 1, 'N', 'Y', 'I', 'R', '' );
/*
UPDATE XX_VENDOR_SITES_OTHERS_B
SET FLAG='Y' WHERE VENDOR_NAME=C2_REC.VENDOR_NAME; */ COMMIT;
SELECT ap_suppliers_int_s.CURRVAL INTO p_header_sequence FROM DUAL; EXCEPTION WHEN OTHERS THEN ROLLBACK; p_message := SUBSTR (SQLERRM, 1, 200 );
UPDATE xx_vendor_sites_others_b SET flag = 'N', error_message = p_message WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site;
COMMIT; p_header_error := 1; END; END IF; BEGIN SELECT code_combination_id INTO p_pay_code_combination_id FROM gl_code_combinations WHERE segment1 || '.' || segment2 || '.' || segment3 || '.' || segment4 = c2_rec.lia_account_code;
SELECT code_combination_id INTO p_prepay_code_combination_id FROM gl_code_combinations WHERE segment1 || '.' || segment2 || '.' || segment3 || '.' || segment4 = c2_rec.advances_account_code;
BEGIN l_country := get_country_code (c2_rec.country); EXCEPTION WHEN OTHERS THEN l_country := 'IN'; END;
INSERT INTO ap_supplier_sites_int
(vendor_interface_id, vendor_site_code, payment_method_lookup_code, terms_date_basis, accts_pay_code_combination_id, prepay_code_combination_id, pay_group_lookup_code, payment_priority, terms_id, pay_date_basis_lookup_code, org_id, purchasing_site_flag, rfq_only_site_flag, pay_site_flag, attention_ar_flag, allow_awt_flag, address_line1, address_line2, address_line3, city, country, state, zip, address_lines_alt, ship_to_location_id, bill_to_location_id ) VALUES (ap_suppliers_int_s.CURRVAL, c2_rec.site, 'SITE1', 'CHECK', 'Invoice', c2_rec.liability_account_id, p_prepay_code_combination_id, 'SUPPLIER', 'HIGH PRIORITY', 99, 10000, 'DISCOUNT', 82, 'Y', 'N', 'Y', 'N', 'N', c2_rec.address1, c2_rec.address2, c2_rec.address3, c2_rec.city, l_country, c2_rec.state, c2_rec.pin, c2_rec.contact_phones, 142, 142 );
UPDATE xx_vendor_sites_others_b SET flag = 'Y' WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site; COMMIT; EXCEPTION WHEN OTHERS THEN ROLLBACK; p_message := SUBSTR (SQLERRM, 1, 200 );
UPDATE xx_vendor_sites_others_b SET flag = 'N', error_message = p_message WHERE vendor_name = c2_rec.vendor_name AND vendor_type_lookup_code = c2_rec.vendor_type_lookup_code AND site = c2_rec.site; COMMIT; END; END LOOP; -- Initialize APPS fnd_global.apps_initialize (user_id => 12691, resp_id => 50293, resp_appl_id => 200 );
-- Submit Supplier Import program BEGIN ln_req_id := fnd_request.submit_request (application => 'SQLAP',
program => 'APXSUIMP', argument1 => 'ALL', argument2 => 1000, argument3 => 'N', argument4 => 'N', argument5 => 'N', argument6 => '-99' ); COMMIT;
IF ln_req_id = 0 THEN -- Error while submitting Supplier import fnd_file.put_line (fnd_file.LOG, 'Error while submitting Supplier
Import. ' || SQLERRM); RETURN; ELSE lb_flag := fnd_concurrent.wait_for_request (request_id => ln_req_id, INTERVAL => 5, phase => lv_phase, status => lv_status1, dev_phase => lv_dev_phase, dev_status => lv_dev_status, MESSAGE => lv_message );
IF lv_dev_phase = 'COMPLETE' AND lv_dev_status = 'NORMAL' THEN fnd_file.put_line (fnd_file.LOG, 'Supplier Import program
completed successfully' || ln_req_id); ELSE fnd_file.put_line (fnd_file.LOG, 'Error while running Supplier Import program'); ROLLBACK; END IF; END IF; END;
-- Submit Supplier Sites Import program BEGIN ln_req_id := fnd_request.submit_request (application => 'SQLAP', program => 'APXSSIMP', argument1 => 'NEW', argument2 => 1000,
argument3 => 'N', argument4 => 'N', argument5 => 'N', argument6 => '-99' ); COMMIT;
IF ln_req_id = 0 THEN -- Error while submitting Supplier sites import fnd_file.put_line (fnd_file.LOG, 'Error while submitting Supplier
sites Import. ' || SQLERRM); RETURN; ELSE lb_flag := fnd_concurrent.wait_for_request (request_id => ln_req_id, INTERVAL => 5, phase => lv_phase, status => lv_status1, dev_phase => lv_dev_phase, dev_status => lv_dev_status, MESSAGE => lv_message );
IF lv_dev_phase = 'COMPLETE' AND lv_dev_status = 'NORMAL' THEN fnd_file.put_line (fnd_file.LOG, 'Supplier sites Import program
completed successfully' || ln_req_id); ELSE fnd_file.put_line (fnd_file.LOG, 'Error while running Supplier sites Import program'); ROLLBACK; END IF; END IF; END;EXCEPTION WHEN OTHERS THEN ROLLBACK;END;
Application Programming Interface (API) method
You can also use an API for importing suppliers and their corresponding sites
Function Vendor Vendor Sites
Create a record ap_vendors_pkg.insert_row ap_vendor_sites_pkg.insert_row
Update a record ap_vendors_pkg.update_row ap_vendor_sites_pkg.update_row
A sample script using the API is given below. This script is used for updating supplier sites. You can use the other API’s in a similar way.
DECLARE CURSOR c_vendorsites (v_vendor_site_id NUMBER) IS SELECT pvsa.*, pvsa.ROWID FROM po_vendor_sites_all pvsa WHERE 1 = 1 AND pvsa.vendor_site_id = v_vendor_site_id; v_date DATE; v_itemkey VARCHAR2 (100); v_vendor_site_id NUMBER; v_user_id NUMBER; v_resp_id NUMBER;BEGIN v_user_id := fnd_profile.VALUE ('USER_ID'); v_resp_id := fnd_profile.VALUE ('RESP_ID'); v_vendor_site_id := 1034; fnd_global.apps_initialize (user_id => v_user_id, resp_id => v_resp_id, resp_appl_id => 200 );
FOR v_site IN c_vendorsites (v_vendor_site_id) LOOP ap_vendor_sites_pkg.update_row (x_rowid => v_site.ROWID, x_vendor_site_id => v_site.vendor_site_id, x_last_update_date => v_site.last_update_date, x_last_updated_by => v_site.last_updated_by, x_vendor_id => v_site.vendor_id, x_vendor_site_code => v_site.vendor_site_code, x_last_update_login => v_site.last_update_login, x_creation_date => v_site.creation_date, x_created_by => v_site.created_by, x_purchasing_site_flag => v_site.purchasing_site_flag, x_rfq_only_site_flag => v_site.rfq_only_site_flag, x_pay_site_flag => v_site.pay_site_flag,
x_attention_ar_flag => v_site.attention_ar_flag, x_address_line1 => v_site.address_line1, x_address_line2 => v_site.address_line2, x_address_line3 => v_site.address_line3, x_city => v_site.city, x_state => v_site.state, x_zip => v_site.zip, x_province => v_site.province, x_country => v_site.country, x_area_code => v_site.area_code, x_phone => v_site.phone, x_customer_num => v_site.customer_num, x_ship_to_location_id => v_site.ship_to_location_id, x_bill_to_location_id => v_site.bill_to_location_id, x_ship_via_lookup_code => v_site.ship_via_lookup_code, x_freight_terms_lookup_code => v_site.freight_terms_lookup_code, x_fob_lookup_code => v_site.fob_lookup_code, x_inactive_date => v_date, --v_Site.inactive_date, x_fax => v_site.fax, x_fax_area_code => v_site.fax_area_code, x_telex => v_site.telex, x_payment_method_lookup_code => v_site.payment_method_lookup_code, x_bank_account_name => v_site.bank_account_name, x_bank_account_num => v_site.bank_account_num, x_bank_num => v_site.bank_num, x_bank_account_type => v_site.bank_account_type, x_terms_date_basis => v_site.terms_date_basis, x_current_catalog_num => v_site.current_catalog_num,
x_vat_code => v_site.vat_code, x_distribution_set_id => v_site.distribution_set_id, x_accts_pay_ccid => v_site.accts_pay_code_combination_id, x_future_dated_payment_ccid => v_site.future_dated_payment_ccid, x_prepay_code_combination_id => v_site.prepay_code_combination_id, x_pay_group_lookup_code => v_site.pay_group_lookup_code, x_payment_priority => v_site.payment_priority, x_terms_id => v_site.terms_id, x_invoice_amount_limit => v_site.invoice_amount_limit, x_pay_date_basis_lookup_code => v_site.pay_date_basis_lookup_code, x_always_take_disc_flag => v_site.always_take_disc_flag, x_invoice_currency_code => v_site.invoice_currency_code, x_payment_currency_code => v_site.payment_currency_code, x_hold_all_payments_flag => v_site.hold_all_payments_flag, x_hold_future_payments_flag => v_site.hold_future_payments_flag, x_hold_reason => v_site.hold_reason, x_hold_unmatched_invoices_flag => v_site.hold_unmatched_invoices_flag, x_match_option => v_site.match_option, x_create_debit_memo_flag => v_site.create_debit_memo_flag, x_exclusive_payment_flag => v_site.exclusive_payment_flag, x_tax_reporting_site_flag => v_site.tax_reporting_site_flag, x_attribute_category => v_site.attribute_category, x_attribute1 => v_site.attribute1, x_attribute2 => v_site.attribute2, x_attribute3 => v_site.attribute3, x_attribute4 => v_site.attribute4, x_attribute5 => v_site.attribute5, x_attribute6 => v_site.attribute6,
x_attribute7 => v_site.attribute7, x_attribute8 => v_site.attribute8, x_attribute9 => v_site.attribute9, x_attribute10 => v_site.attribute10, x_attribute11 => v_site.attribute11, x_attribute12 => v_site.attribute12, x_attribute13 => v_site.attribute13, x_attribute14 => v_site.attribute14, x_attribute15 => v_site.attribute15, x_validation_number => v_site.validation_number, x_exclude_freight_from_disc => v_site.exclude_freight_from_discount, x_vat_registration_num => v_site.vat_registration_num, x_offset_tax_flag => v_site.offset_tax_flag, x_check_digits => v_site.check_digits, x_bank_number => v_site.bank_number, x_address_line4 => v_site.address_line4, x_county => v_site.county, x_address_style => v_site.address_style, x_language => v_site.LANGUAGE, x_allow_awt_flag => v_site.allow_awt_flag, x_awt_group_id => v_site.awt_group_id, x_pay_on_code => v_site.pay_on_code, x_default_pay_site_id => v_site.default_pay_site_id, x_pay_on_receipt_summary_code => v_site.pay_on_receipt_summary_code, x_bank_branch_type => v_site.bank_branch_type, x_edi_id_number => v_site.edi_id_number, x_edi_payment_method => v_site.edi_payment_method, x_edi_payment_format => v_site.edi_payment_format,
x_edi_remittance_method => v_site.edi_remittance_method, x_edi_remittance_instruction => v_site.edi_remittance_instruction, x_edi_transaction_handling => v_site.edi_transaction_handling, x_auto_tax_calc_flag => v_site.auto_tax_calc_flag, x_auto_tax_calc_override => v_site.auto_tax_calc_override, x_amount_includes_tax_flag => v_site.amount_includes_tax_flag, x_ap_tax_rounding_rule => v_site.ap_tax_rounding_rule, x_vendor_site_code_alt => v_site.vendor_site_code_alt, x_address_lines_alt => v_site.address_lines_alt, x_global_attribute_category => v_site.global_attribute_category, x_global_attribute1 => v_site.global_attribute1, x_global_attribute2 => v_site.global_attribute2, x_global_attribute3 => v_site.global_attribute3, x_global_attribute4 => v_site.global_attribute4, x_global_attribute5 => v_site.global_attribute5, x_global_attribute6 => v_site.global_attribute6, x_global_attribute7 => v_site.global_attribute7, x_global_attribute8 => v_site.global_attribute8, x_global_attribute9 => v_site.global_attribute9, x_global_attribute10 => v_site.global_attribute10, x_global_attribute11 => v_site.global_attribute11, x_global_attribute12 => v_site.global_attribute12, x_global_attribute13 => v_site.global_attribute13, x_global_attribute14 => v_site.global_attribute14, x_global_attribute15 => v_site.global_attribute15, x_global_attribute16 => v_site.global_attribute16, x_global_attribute17 => v_site.global_attribute17, x_global_attribute18 => v_site.global_attribute18,
x_global_attribute19 => v_site.global_attribute19, x_global_attribute20 => v_site.global_attribute20, x_bank_charge_bearer => v_site.bank_charge_bearer, x_ece_tp_location_code => v_site.ece_tp_location_code, x_pcard_site_flag => v_site.pcard_site_flag, x_country_of_origin_code => v_site.country_of_origin_code, x_calling_sequence => NULL, x_shipping_location_id => NULL, --v_Site.shipping_location_id, -- do not update shipping location information x_supplier_notif_method => v_site.supplier_notif_method, x_email_address => v_site.email_address, x_remittance_email => v_site.remittance_email, x_primary_pay_site_flag => v_site.primary_pay_site_flag, x_shipping_control => v_site.shipping_control, x_gapless_inv_num_flag => v_site.gapless_inv_num_flag, x_selling_company_identifier => v_site.selling_company_identifier, x_duns_number => v_site.duns_number, x_tolerance_id => v_site.tolerance_id ); END LOOP; COMMIT;END;