WEBADI: Ошибка при работе с КГП (KFF)
При использовании ключевых гибких полей в WEBADI может возникнуть ошибка типа:
oracle.apps.bne.utilities.BneViewerServerUtils.getFlexListOfValues(BneViewerServerUtils.java:269)
Помочь может переименование параметров в «SEGMENT1«,»SEGMENT2» и т.д. и убрать номера из поля segment number. Обновляем через таблицу.
Читать дальше про “WEBADI: Ошибка при работе с КГП (KFF)” »
12 Things About The Latest Generation of Database Technology
Попробую добавлять интересные презентации и доки на блог.
Интересная презентация о будущих возможных фичах oracle
Thomas Kyte 12 Things About The Latest Generation of Database Technology
OEBS Меню полномочий — Избранное (Top Ten List)
Для добавления функций в избранное по полномочиям — API:FND_SIGNON.UPDATE_NAVIGATOR
Читать дальше про “OEBS Меню полномочий — Избранное (Top Ten List)” »
Трассировка сессии — event 10046
Трассировка сессии Oracle помогает найти проблемные запросы и понять в чем именно причина.
Что именно будет записываться в трассировочный файл, определяется номером события (event).
Стандартный номер события 10046. Именно такой уровень устанавливается при выполнении команды
alter session set sql_trace=true;
Список данных событий и для чего они предназначены можно посмотреть здесь EventReference
Событие трассировки 10046 / Trace event 10046
Включить трассировку в текущей сессии
alter session set events '10046 trace name context forever, level 1';
выключить трассировку в текущей сессии
alter session set events '10046 trace name context off';
Уровни:
- 0 — трассировка отключена
- 1 — стандартная трассировка
- 4 — добавлены значения связываемых (binds) переменных
- 8 — добавлены события ожидания (waits)
- 12 — связываемые переменные + события ожидания
Для включения трассировки в другой сессии можно воспользоваться командой
sys.dbms_system.set_ev(sid, serial#, 10046, 12, '');
Путь к директории, где появится файл трассировки
select value from v$parameter where name = 'user_dump_dest';
Задать имя для trace файла
alter session set tracefile_identifier = 'mytrace1';
Понимание трасировочного файла
Кто съел весь TEMP?
Запрос для просмотра сессий использующих TEMP
select s.sid , s.client_identifier , s.status , sum(round(u.blocks*8192/1024/1024,3)) "TEMP usage, Mb" , s.osuser, s.machine, s.module, s.action from v$session s, v$sort_usage u where s.saddr = u.session_addr and u.blocks*8192/1024 > 128 -- отсеиваем мелочь group by s.sid, s.osuser, s.machine, s.module, s.action, s.client_identifier,s.status order by "TEMP usage, Mb" desc
R12: Таблицы IBY
Описание нескольких таблиц из схемы IBY (Payments):
IBY.IBY_EXTERNAL_PAYEES_ALL
Платежные атрибуты поставщика (получателя)
IBY.IBY_EXTERNAL_PAYERS_ALL
Платежные атрибуты заказчика (плательщика)
IBY.IBY_ACCOUNT_OWNERS
Владельцы банковского счета
IBY.IBY_PMT_INSTR_USES_ALL
Назначения платежных средств.
Содержит связь между платежными средствами (payment instruments) и плательщиком/получателем (Payer/Payee). Платежным средством может быть кредитная карта или банковсвкий счет.
SLA — Как узнать поле для связки со счетом-фактурой
Посмотреть поля по которым можно связать счет-фактуру (СФ) и данные в XLA таблицах можно через форму настройки.
Аналогичным способом можно посмотреть связку для платежей, поступлений и т.д.
Полномочия «Payables Manager» — меню «Setup» — «Accounting Setup» — «Subledger Accounting Setup» — «Accounting Methods Builder» — «Events» — «Event Model»
Oracle Forms: Удалить элемент из списка (List item)
В Oracle Forms для удаления элемента из списка (List item)
используем комбинацию CTRL+SHIFT+< .
Модуль AR – Обновление корр. счета банка
Пример использования 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;
Модуль AR — Обновление БИК банка
Пример использования API для обновления БИК банка.
declare p_brunch_number varchar2(30) := '!NUM'; p_bic varchar2(9) := '!NEW_BIC'; -- l_contact_point_rec hz_contact_point_v2pub.contact_point_rec_type; l_eft_rec hz_contact_point_v2pub.eft_rec_type; l_eft_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_eft_vers FROM hz_contact_points WHERE contact_point_type = 'EFT' AND owner_table_name = 'HZ_PARTIES' AND owner_table_id = l_party_id; dbms_output.put_line('l_eft_vers='||l_eft_vers); dbms_output.put_line('contact_point_id='||l_contact_point_rec.contact_point_id); l_eft_rec.eft_swift_code := p_bic; hz_bank_pub.update_eft_contact_point ( fnd_api.g_true, l_contact_point_rec, l_eft_rec, l_eft_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;
Последние комментарии