powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Интерфейсные таблицы OEBS
17 сообщений из 17, страница 1 из 1
Интерфейсные таблицы OEBS
    #33202574
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как пользоваться интерфейсами для загрузки?
правильно ли это:
Например необходимо загружать ежедневные курсы валют (таблица GL.GL_DAILY_RATES), для загрузки в нее информации есть интерфейсная таблица OEBS GL.GL_DAILY_RATES_INTERFACE
т.е. получается что нужно просто какойто программой запихивать данные в таблицу GL.GL_DAILY_RATES_INTERFACE, а триггер висящей на ней их перекинет в таблицу GL.GL_DAILY_RATES
Правильно ли это? или необходимо еще чтото вызывать?

И еще вопрос,
а может произойти ошибка оракла, при вставке данных в таблицу GL.GL_DAILY_RATES? Или все возможные ситуации контролирует тригер на таблице GL.GL_DAILY_RATES_INTERFACE?
Если же триггер не контролирует все ситуации, тогда будет откат, который будет распространен аж до оператора Insert в таблицу GL.GL_DAILY_RATES_INTERFACE
правильно?

спасибо
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33202604
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно интерфейс представляем из себя комплект интерфейсных таблиц и программу, которая их обрабатывает.
В этом случае сначала надо набить эти таблицы данными, а потом запустить соответствующую программу.

Но что касается курсов валют, то все происходит так, как вы описали.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33202618
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
va_kochnevОбычно интерфейс представляем из себя комплект интерфейсных таблиц и программу, которая их обрабатывает.
В этом случае сначала надо набить эти таблицы данными, а потом запустить соответствующую программу.

Но что касается курсов валют, то все происходит так, как вы описали.

программу - имеется ввиду пакет?
а где искать какой пакет(программу) запускать, только в доке?
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33202629
va_kochnev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Info2программу - имеется ввиду пакет?
а где искать какой пакет(программу) запускать, только в доке?

Параллельная программа, запускаемая через "Вид"->"Запросы"
Может быть реализована и как пакетная процедура, и как C-шная программа, и как отчет.

Про конкретные интерфейсы (таблицы и программы-обработчики) искать в документации
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33203931
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Info2
программу - имеется ввиду пакет?
а где искать какой пакет(программу) запускать, только в доке?
Если не ошибаюсь, в тексте триггера:
-- Launch concurrent request to run the Rate Change Program
req_id := FND_REQUEST.submit_request('SQLGL','GLTTRC','','',FALSE, ...);

после модификации GL.GL_DAILY_RATES запускается паралелльная программа GLTTRC, которая использует внешнюю программу с тем же именем (можно найти по Short name в меню Concurrent:Program, Concurrent:Executable).
Почему именно для этой таблицы так сделано, непонятно.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33203990
Whateva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно для данного интерфейса лучше всё одним стэйтментом грузить чтобы не плодить миллион вызовов conc prog's.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204112
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WhatevaКонкретно для данного интерфейса лучше всё одним стэйтментом грузить чтобы не плодить миллион вызовов conc prog's.
Согласен. С трудом себе представляю задачу, для которой потребуется большое количество добавлений в эту таблицу.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204149
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как я понял вызов
-- Launch concurrent request to run the Rate Change Program
req_id := FND_REQUEST.submit_request('SQLGL','GLTTRC','','',FALSE, ...);
это просто пересчет баланса, по новым курсам

а зачем в начале стоит триггера стоит
IF GL_CRM_UTILITIES_PKG.enable_trigger THEN
который отключает всю логику тригера

верно ли, что бы гарантировано загрузить курсы валют, надо всегда перед вставко записей в таблицу GL_DAILY_RATES_INTERFACE, установить в
GL_CRM_UTILITIES_PKG.ENABKE_TRIGGER:=TRUE ?
а в каких случаях его отключают?
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204433
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, а что будет
если внешняя программа, которая вставляла записи в GL_DAILY_RATES_INTERFACE, проверит результаты, увидит например ошибки и сделает rollback

получается что откатятся записи в GL_DAILY_RATES_INTERFACE (тем самым потеряем и ошибки), GL_DAILY_RATES.
а что будет с
-- Launch concurrent request to run the Rate Change Program
req_id := FND_REQUEST.submit_request (
он тоже откатывается, вернее запрос на запуск
или как?
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204480
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Info2кстати, а что будет
если внешняя программа, которая вставляла записи в GL_DAILY_RATES_INTERFACE, проверит результаты, увидит например ошибки и сделает rollback

получается что откатятся записи в GL_DAILY_RATES_INTERFACE (тем самым потеряем и ошибки), GL_DAILY_RATES.
а что будет с
-- Launch concurrent request to run the Rate Change Program
req_id := FND_REQUEST.submit_request (
он тоже откатывается, вернее запрос на запуск
или как?
По-моему, если FND_REQUEST.submit_request() вернула ID паралелльной программы, то это означает, что программа уже стоит в очереди на выполнение. Дальше при помощи этого ID можно отследить статус этой программы и попробовать отменить.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204595
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OA User Info2кстати, а что будет
если внешняя программа, которая вставляла записи в GL_DAILY_RATES_INTERFACE, проверит результаты, увидит например ошибки и сделает rollback

получается что откатятся записи в GL_DAILY_RATES_INTERFACE (тем самым потеряем и ошибки), GL_DAILY_RATES.
а что будет с
-- Launch concurrent request to run the Rate Change Program
req_id := FND_REQUEST.submit_request (
он тоже откатывается, вернее запрос на запуск
или как?
По-моему, если FND_REQUEST.submit_request() вернула ID паралелльной программы, то это означает, что программа уже стоит в очереди на выполнение. Дальше при помощи этого ID можно отследить статус этой программы и попробовать отменить.
Пардон, наврал, похоже :(. Если из триггера запускается, то там д.б. функция
FND_REQUEST.set_mode(true). По идее, если этот флажок выставлен, то изменения в таблицах менеджера запросов будут видны по завершении общей транзакции, а если произойдет откат, то менеджер запросов их не увидит и запуск параллельной программы не произойдет.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204696
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OA User
Пардон, наврал, похоже :(. Если из триггера запускается, то там д.б. функция
FND_REQUEST.set_mode(true). По идее, если этот флажок выставлен, то изменения в таблицах менеджера запросов будут видны по завершении общей транзакции, а если произойдет откат, то менеджер запросов их не увидит и запуск параллельной программы не произойдет.
Интересно в доке есть примечание
Note that a failure in the database trigger call of
FND_REQUEST.SUBMIT_REQUEST does not roll back changes.

получается что данные можно откатить, а то что наделает FND_REQUEST.SUBMIT_REQUEST - НЕТ
если раньше откатишь, чем он запустится, то он вхолостую сработает.
а если позже, то он успеет все закомитить, а потом ты откатишь исходные данные...
правильные размышления? какаято фигня...
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204729
Whateva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Info2Интересно в доке есть примечание
Note that a failure in the database trigger call of
FND_REQUEST.SUBMIT_REQUEST does not roll back changes.

получается что данные можно откатить, а то что наделает FND_REQUEST.SUBMIT_REQUEST - НЕТ
если раньше откатишь, чем он запустится, то он вхолостую сработает.
а если позже, то он успеет все закомитить, а потом ты откатишь исходные данные...
правильные размышления? какаято фигня...
Нет, не правильные. Пока не закаммитим конкаррент нифига не увидит.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33204752
OA User
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Info2
Интересно в доке есть примечание
Note that a failure in the database trigger call of
FND_REQUEST.SUBMIT_REQUEST does not roll back changes.

получается что данные можно откатить, а то что наделает FND_REQUEST.SUBMIT_REQUEST - НЕТ
если раньше откатишь, чем он запустится, то он вхолостую сработает.
а если позже, то он успеет все закомитить, а потом ты откатишь исходные данные...
правильные размышления? какаято фигня...
По-моему, все несколько проще. FND_REQUEST.SUBMIT_REQUEST() не запускает ничего сама по себе, она только заполняет соответствующие таблицы Fnd_conc_xxx. Вызов Set_mode(true) нужен, чтобы обойти команды управления транзакциями, коих в триггере быть не должно, внутри процедур пакета FND_REQUEST.
Соответственно, если INSERT в интерфейсную таблицу не прошел, то все откатится до исходного состояния, в том числе и изменения в таблицах менеджера запросов. Если транзакция закончилась успешно, то менеджер запросов "увидит" эти изменения и запустит параллельную программу уже исходя из собственных настроек и ограничений.
Собственно, можно для теста любую хранимую процедуру написать и проверить.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33206163
9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
9
Гость
FND_REQUEST.SUBMIT_REQUEST() не запускает ничего сама по себе, она только заполняет соответствующие таблицы Fnd_conc_xxx.

Насколько я понимаю. Он заполняет таблицы Fnd_conc_xxx и после этого процесс на unix-сервере просматривает эти таблицы и если нужно запускает на unixe процесс для обработки данного запроса. причем этот процесс всегда будет в другой сессии и соответственно поэтому нужно делать commit после заполнения таблиц.
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33206288
Info2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос еще, так как вместо триггера конвертацию может выполнять пакет
APPS.GL_CRM_UTILITIES_PKG

а в нем имеется, вот такой лог ошибок
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
fnd_file.put_line
(fnd_file.LOG,
'Error: Duplicate Row or Overlapping Date Range found.');
fnd_file.put_line
(fnd_file.output,
'Error: Duplicate Row or Overlapping Date Range found.');
set_completion_status_result :=
fnd_concurrent.set_completion_status
('ERROR',
'Error: Duplicate Row or Overlapping Date Range found.');
END;

на самом деле fnd_file вроде обычный пакет utl_file.
Так вот вопросы:
1. Файл лога один на систему, или както они по разному именуются для разных процессов
2. Если один, то как там искать именно свои ошибки?
3. Где настраивается физическое размещение данного файла?

Спасибо
...
Рейтинг: 0 / 0
Интерфейсные таблицы OEBS
    #33206351
9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
9
Гость
fnd_file.put_line
(fnd_file.LOG,

пишет информацию в свой LOG-файл. его можно взять по адресу

select fcr.logfile_name
from fnd_concurrent_requests fcr

он же просматривается по кнопке Просмотр Журнала в окне Запросы.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ERP и учетные системы [игнор отключен] [закрыт для гостей] / Интерфейсные таблицы OEBS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]