declare
p_api_version number;
p_init_msg_list varchar2(200);
p_commit varchar2(200);
x_return_status varchar2(200);
x_msg_count number;
x_msg_data varchar2(200);
p_payee apps.iby_disbursement_setup_pub.payeecontext_rec_type;
p_assignment_attribs apps.iby_fndcpt_setup_pub.pmtinstrassignment_rec_type;
lr_ext_bank_acct_dtl iby_ext_bank_accounts%rowtype;
x_assign_id number;
x_response apps.iby_fndcpt_common_pub.result_rec_type;
lv_vendor_site_code varchar2(100);
lv_vendor_id number;
lv_bank_acct_name varchar2(100);
lv_supp_site_id varchar2(100);
lv_supp_party_site_id varchar2(100);
lv_acct_owner_party_id varchar2(100);
lv_org_id varchar2(100);
l_msg varchar2(200);
cursor c_suppliers is
select
s.vendor_id,
s.vendor_site_code,
s.street,
s.address_line2,
s.address_line3,
s.city,
s.country,
s.bank_name,
s.branch_name,
s.bank_account_country,
s.bank_account_num,
s.currency_code,
s.iban,
s.bank_account_type,
s.payment_factor_flag,
s.foreign_payment_use_flag,
s.bank_account_name,
s.bank_account_num_electronic,
s.liability_code_id,
s.prepay_code_combination_id
from tem_suppliers s;
begin
-- initialize apps session
fnd_global.apps_initialize(user_id=>6837,
resp_id=>50558,
resp_appl_id=>200);
mo_global.init('S', null);
--fnd_client_info.set_org_context(101);
-- input values
for c in c_suppliers loop
lv_vendor_site_code := c.vendor_site_code;
lv_vendor_id := c.vendor_id;
lv_bank_acct_name := c.bank_account_name;
-- assign api parameters
p_api_version := 1.0;
p_init_msg_list := fnd_api.g_true;
p_commit := fnd_api.g_true;
-- get ext bank account details
begin
select *
into lr_ext_bank_acct_dtl
from iby_ext_bank_accounts
where bank_account_name = lv_bank_acct_name;
exception
when others then
dbms_output.put_line('Unable to derive the external bank details:' ||
sqlerrm);
end;
-- get supplier details
begin
select assa.vendor_site_id,
assa.party_site_id,
aps.party_id,
assa.org_id
into lv_supp_site_id,
lv_supp_party_site_id,
lv_acct_owner_party_id,
lv_org_id
from ap_suppliers aps, ap_supplier_sites_all assa
where aps.vendor_id = assa.vendor_id
and aps.vendor_id = c.vendor_id
and assa.vendor_site_code = lv_vendor_site_code;
exception
when others then
dbms_output.put_line('Error- Get supp_site_id and supp_party_site_id' ||
sqlcode || sqlerrm);
end;
-- assign payee values
p_payee.supplier_site_id := lv_supp_site_id;
p_payee.party_id := lv_acct_owner_party_id;
p_payee.party_site_id := lv_supp_party_site_id;
p_payee.payment_function := 'PAYABLES_DISB';
p_payee.org_id := lv_org_id;
p_payee.org_type := 'OPERATING_UNIT';
-- assignment values
p_assignment_attribs.instrument.instrument_type := 'BANKACCOUNT';
p_assignment_attribs.instrument.instrument_id := lr_ext_bank_acct_dtl.ext_bank_account_id;
-- external bank account id
p_assignment_attribs.priority := 1;
p_assignment_attribs.start_date := sysdate;
iby_disbursement_setup_pub.set_payee_instr_assignment
(p_api_version => p_api_version,
p_init_msg_list => p_init_msg_list,
p_commit => p_commit,
x_return_status => x_return_status,
x_msg_count => x_msg_count,
x_msg_data => x_msg_data,
p_payee => p_payee,
p_assignment_attribs => p_assignment_attribs,
x_assign_id => x_assign_id,
x_response => x_response
);
dbms_output.put_line('X_RETURN_STATUS = ' || x_return_status);
dbms_output.put_line('X_MSG_COUNT = ' || x_msg_count);
dbms_output.put_line('X_MSG_DATA = ' || x_msg_data);
dbms_output.put_line('X_ASSIGN_ID = ' || x_assign_id);
dbms_output.put_line('X_RESPONSE.Result_Code = ' ||
x_response.result_code);
dbms_output.put_line('X_RESPONSE.Result_Category = ' ||
x_response.result_category);
dbms_output.put_line('X_RESPONSE.Result_Message = ' ||
x_response.result_message);
commit;
if (x_return_status <> fnd_api.g_ret_sts_success) then
for i in 1 .. fnd_msg_pub.count_msg loop
l_msg := fnd_msg_pub.get(p_msg_index => i,
p_encoded => fnd_api.g_false);
dbms_output.put_line('The API call failed with error ' || l_msg);
end loop;
else
dbms_output.put_line('The API call ended with SUCESSS status');
end if;
end loop;
end;
No comments:
Post a Comment