DECLARE
l_init_msg_list VARCHAR2 (2000) := fnd_api.g_true;
l_cust_site_use_rec hz_cust_account_site_v2pub.cust_site_use_rec_type;
l_object_version_number NUMBER;
x_return_status VARCHAR2 (1);
x_msg_count NUMBER;
x_msg_data VARCHAR2 (2000);
l_order_type_id NUMBER;
CURSOR order_type_update_cur
IS
SELECT xotu.*,hcas.cust_acct_site_id,hcsu.object_version_number
FROM XXXX_STG xotu,apps.hz_cust_acct_sites_all hcas,apps.hz_cust_site_uses_all hcsu
WHERE xotu.status is null and xotu.site_use_id=hcsu.site_use_id and hcas.cust_acct_site_id=hcsu.cust_acct_site_id;
BEGIN
mo_global.init (‘ONT’);
mo_global.set_policy_context (‘S’, X);
fnd_global.apps_initialize (0, XXX, XXX);
— mo_global.init (‘AR’);
FOR crec IN order_type_update_cur
LOOP
l_cust_site_use_rec.site_use_id := crec.site_use_id;
l_cust_site_use_rec.site_use_code := ‘BILL_TO’;
l_cust_site_use_rec.cust_acct_site_id:=crec.cust_acct_site_id;
l_cust_site_use_rec.order_type_id := crec.new_order_type_id; –l_order_type_id;
hz_cust_account_site_v2pub.update_cust_site_use
(p_init_msg_list => NULL,
p_cust_site_use_rec => l_cust_site_use_rec,
p_object_version_number => crec.object_version_number,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data
);
IF x_return_status = fnd_api.g_ret_sts_success
THEN
UPDATE XXXX_STG
SET status = ‘SUCCESS’,error_message=’New Order Type ID is updated’
WHERE site_use_id = crec.site_use_id;
COMMIT;
DBMS_OUTPUT.put_line (‘Order Type updated successfully’);
ELSE
UPDATE XXXX_STG
SET status = ‘ERROR’,error_message=x_msg_data
WHERE site_use_id = crec.site_use_id;
COMMIT;
DBMS_OUTPUT.put_line (‘API Error : ‘ || x_msg_data);
END IF;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (‘Unexpected Error: ‘||SQLERRM);
END;