Пример использования 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;

Последние комментарии