API Update payment method

DECLARE

x_return_status VARCHAR2 (200) := NULL;

x_msg_count NUMBER := 0;

x_msg_data VARCHAR2 (200) := NULL;

l_payee_upd_status

p_external_payee_tab_type

p_ext_payee_id_tab_type

p_ext_payee_id_rec

iby_disbursement_setup_pub.ext_payee_update_tab_type;

iby_disbursement_setup_pub.external_payee_tab_type ;

iby_disbursement_setup_pub.ext_payee_id_tab_type;

iby_disbursement_setup_pub.Ext_Payee_ID_Rec_Type;

l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.External_Payee_Rec_Type ;

i NUMBER := 0;

BEGIN

fnd_global.apps_initialize (1117,50697,200);

mo_global.set_policy_context (‘S’, 81);

FOR j IN (SELECT iepa.ext_payee_id

,iepa.supplier_site_id

, iepa.payee_party_id

, apss.party_site_id

FROM ap_suppliers aps

,ap_supplier_sites_all apss

,iby_external_payees_all iepa

WHERE aps.vendor_id = apss.vendor_id

AND iepa.supplier_site_id = apss.vendor_site_id

AND iepa.default_payment_method_code = ‘EFT’

AND NOT EXISTS ( SELECT 1

FROM ap_supplier_sites_all assa,

hz_parties hp,

iby_ext_bank_accounts ieba,

iby_external_payees_all iepa,

iby_pmt_instr_uses_all ipiua,

hz_parties hp1

WHERE assa.vendor_site_id = iepa.supplier_site_id

AND hp.party_id = ieba.bank_id

AND ipiua.instrument_id = ieba.ext_bank_account_id

AND ipiua.ext_pmt_party_id = iepa.ext_payee_id

AND assa.vendor_id = apss.vendor_id

AND ieba.branch_id = hp1.party_id

AND ipiua.instrument_type = ‘BANKACCOUNT’

AND ipiua.payment_flow = ‘DISBURSEMENTS’)

ORDER BY aps.segment1)

LOOP

p_external_payee_tab_type (i).default_pmt_method := ‘CHECK’;

p_external_payee_tab_type (i).payment_function := ‘PAYABLES_DISB’;

p_external_payee_tab_type (i).exclusive_pay_flag := ‘N’;

p_external_payee_tab_type (i).payee_party_id := j.payee_party_id;

p_external_payee_tab_type (i).payer_org_id := 81;

p_external_payee_tab_type (i).payer_org_type := ‘OPERATING_UNIT’;

p_external_payee_tab_type (i).supplier_site_id := j.supplier_site_id;

p_external_payee_tab_type (i).Payee_Party_Site_Id := j.party_site_id;

p_ext_payee_id_tab_type (i).ext_payee_id := j.ext_payee_id;

iby_disbursement_setup_pub.update_external_payee(p_api_version => 1.0,

p_init_msg_list => ‘T’,

p_ext_payee_tab => p_external_payee_tab_type,

p_ext_payee_id_tab => p_ext_payee_id_tab_type,

x_return_status => x_return_status,

x_msg_count => x_msg_count,

x_msg_data => x_msg_data,

x_ext_payee_status_tab => l_payee_upd_status

);

COMMIT;

DBMS_OUTPUT.PUT_LINE(‘External Payee Update :’||j.ext_payee_id);

DBMS_OUTPUT.PUT_LINE(‘x_return_status: ‘||x_return_status);

IF x_return_status = ‘E’ THEN

FOR k IN l_payee_upd_status.FIRST .. l_payee_upd_status.LAST

LOOP

DBMS_OUTPUT.put_line (‘Error Message from table type : ‘|| l_payee_upd_status (k).Payee_update_Msg);

END LOOP;

END IF;

i := 0;

END LOOP;

EXCEPTION

WHEN OTHERS THEN

DBMS_OUTPUT.PUT_LINE(‘Error ‘ ||SQLERRM);

END;

Deixe um comentário