Пример использования API для обновления корреспондентского счёта банка. (корр. счёт)
declare p_brunch_number varchar2(30) := '!NUM'; p_ksnp varchar2(40) := '!CORR_ACCOUNT'; -- l_contact_point_rec hz_contact_point_v2pub.contact_point_rec_type; l_edi_rec hz_contact_point_v2pub.edi_rec_type; l_obj_vers NUMBER; l_party_id number; -- x_return_status varchar2(1); x_msg_count number; x_msg_data varchar2(4000); begin select party_id into l_party_id from ar.hz_organization_profiles hop where 1=1 and sysdate between hop.effective_start_date and nvl(hop.effective_end_date, sysdate+1) and hop.bank_or_branch_number = p_brunch_number; dbms_output.put_line('l_party_id='||l_party_id); SELECT contact_point_id, object_version_number into l_contact_point_rec.contact_point_id, l_obj_vers FROM hz_contact_points WHERE contact_point_type = 'EDI' AND owner_table_name = 'HZ_PARTIES' AND owner_table_id = l_party_id; dbms_output.put_line('l_obj_vers='||l_obj_vers); dbms_output.put_line('contact_point_id='||l_contact_point_rec.contact_point_id); l_edi_rec.edi_ece_tp_location_code := p_ksnp; hz_bank_pub.update_edi_contact_point (fnd_api.g_true, l_contact_point_rec, l_edi_rec, l_obj_vers, x_return_status, x_msg_count, x_msg_data ); dbms_output.put_line('--'); dbms_output.put_line('Return status = '||x_return_status); if x_return_status != fnd_api.g_ret_sts_success then if x_msg_count = 1 then dbms_output.put_line ('Error:' || x_msg_data); else FOR i IN 1 .. x_msg_count LOOP dbms_output.put_line('Error:' || fnd_msg_pub.get(fnd_msg_pub.g_next, fnd_api.g_false) ); END LOOP; end if; end if; -- commit; exception when others then dbms_output.put_line('SQLERRM:'||SQLERRM||chr(10)); dbms_output.put_line('FORMAT_ERROR_BACKTRACE:'||chr(10)||dbms_utility.format_error_backtrace); raise; end;
Последние комментарии