Sample API to update supplier site liability account
DECLARE
lc_return_status varchar2 (2000);
ln_msg_count number;
ll_msg_data long;
ln_vendor_id number;
ln_vendor_site_id number;
ln_message_int number;
ln_party_id number;
lrec_vendor_site_rec ap_vendor_pub_pkg.r_vendor_site_rec_type;
CURSOR c_vendorsites
IS
SELECT xv.vendor_id,
vendor_site_id,
xv.VENDOR_NO,
xv.SITE_NO
FROM xx_vendor_liab_upd xv,
ap_suppliers asp,
ap_supplier_sites_all ass
WHERE xv.vendor_id = asp.vendor_id
AND asp.vendor_id = ass.vendor_id
AND ass.org_id = &operating_unit
AND NVL (xv.FLAG, 'N') = 'N';
BEGIN
FOR v_site IN c_vendorsites
LOOP
ln_vendor_id := v_site.vendor_id;
ln_vendor_site_id := v_site.vendor_site_id;
lrec_vendor_site_rec.accts_pay_code_combination_id :=
&code_combination_id;
ap_vendor_pub_pkg.update_vendor_site (
p_api_version => 1, --
x_return_status => lc_return_status, --
x_msg_count => ln_msg_count, --
x_msg_data => ll_msg_data, --
p_vendor_site_rec => lrec_vendor_site_rec, --
p_vendor_site_id => ln_vendor_site_id
);
DBMS_OUTPUT.put_line ('------------------------------------');
DBMS_OUTPUT.put_line( 'Vendor No - '
|| v_site.VENDOR_NO
|| 'Vendor Site - '
|| v_site.SITE_NO);
DBMS_OUTPUT.put_line ('Return Status - ' || lc_return_status);
IF (lc_return_status <> 'S')
THEN
IF ln_msg_count >= 1
THEN
FOR v_index IN 1 .. ln_msg_count
LOOP
fnd_msg_pub.get (p_msg_index => v_index,
p_encoded => 'F',
p_data => ll_msg_data,
p_msg_index_out => ln_message_int);
ll_msg_data :=
'UPDATE_VENDOR_SITE ' || SUBSTR (ll_msg_data, 1, 3900);
DBMS_OUTPUT.put_line ('Error Message - ' || ll_msg_data);
END LOOP;
END IF;
END IF;
UPDATE xx_vendor_liab_upd
SET error_flag = lc_return_status, error_msg = ll_msg_data
WHERE vendor_id = v_site.vendor_id AND SITE_NO = v_site.SITE_NO;
DBMS_OUTPUT.put_line ('------------------------------------');
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('SQLERRM - ' || SQLERRM);
END;
Comments
Post a Comment