OEBS как пользоваться интерфейсами для загрузки?

Info2
Дата: 04.08.2005 18:47:52
как пользоваться интерфейсами для загрузки?
правильно ли это:
Например необходимо загружать ежедневные курсы валют (таблица 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
правильно?

спасибо
Fucker
Дата: 04.08.2005 19:07:35
Oracle General Ledger Applications. Technical Reference Manual.

Fucker
Kovalchuk Vitaly V
Дата: 05.08.2005 16:31:02
Info2
как пользоваться интерфейсами для загрузки?
правильно ли это:
Например необходимо загружать ежедневные курсы валют (таблица GL.GL_DAILY_RATES), для загрузки в нее информации есть интерфейсная таблица OEBS GL.GL_DAILY_RATES_INTERFACE
т.е. получается что нужно просто какойто программой запихивать данные в таблицу GL.GL_DAILY_RATES_INTERFACE, а триггер висящей на ней их перекинет в таблицу GL.GL_DAILY_RATES
Правильно ли это? или необходимо еще чтото вызывать?

До совершенно верно.
Правда если у Вас версия 11.5.10 то перед вставкой надо установить флажок
begin
  GL_CRM_UTILITIES_PKG.enable_trigger := true;
end;
Если флаг не устанавливать то необходимо вызывать Concurent Program "Program - Daily Rates Import and Calculation" тот же пакет
begin
  dbms_output.put_line("Result = "||GL_CRM_UTILITIES_PKG.submit_conc_request);
end;


Info2

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

спасибо

Часть ситуаций триггер контролирует. И тогда в поле
GL.GL_DAILY_RATES_INTERFACE.ERROR_CODE появляется код ошибки.
Ну а естественно если происходит какаято другая ошибка оракла то весь инсерт тоже не проходит.

Вообщем смотрите тут: Load Daily Rates Automatically
Info2
Дата: 08.08.2005 17:45:49
Вопрос еще, так как вместо триггера конвертацию может выполнять пакет
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. Где настраивается физическое размещение данного файла?

Спасибо
Kovalchuk Vitaly V
Дата: 09.08.2005 15:27:02
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. Файл лога один на систему, или както они по разному именуются для разных процессов

Нет для каждого процесса он свой. Если задача была зарегистрирована и запущена в OEBS как паралельная программа (concurrent request) то в таблице fnd_concurrent_requests можно узнать путь где лежит лог файл.
SQL> select request_id,logfile_name,outfile_name from fnd_concurrent_requests where rownum < 2;

REQUEST_ID
----------
LOGFILE_NAME
--------------------------------------------------------------------------------
OUTFILE_NAME
--------------------------------------------------------------------------------
   2718600
d:\ebsvis\ctviscomn\admin\log\CTVIS_apps\l2718600.req
d:\ebsvis\ctviscomn\admin\out\CTVIS_apps\o2718600.out
Info2

2. Если один, то как там искать именно свои ошибки?

Как говорилось для каждого процесса свой.
Info2

3. Где настраивается физическое размещение данного файла?

Спасибо

А фиг его знает OEBS большой. Да и в ручную искать где находится файл нет необходимости.
Идём Главное меню/View/Requests там есть кнопка View Log вот она и покажет то что сгенерила задача.
Whateva
Дата: 09.08.2005 15:52:25
Kovalchuk Vitaly V
Info2

3. Где настраивается физическое размещение данного файла?

Спасибо

А фиг его знает OEBS большой. Да и в ручную искать где находится файл нет необходимости.
Идём Главное меню/View/Requests там есть кнопка View Log вот она и покажет то что сгенерила задача.

$COMMON_TOP/admin/log/<context>
U25
Дата: 14.10.2005 07:34:06
Если задача была зарегистрирована и запущена в OEBS как паралельная программа (concurrent request)

Help! Подскажите новичку, как это делается? ГорЮ!
Требуется написать concurrent программу для периодической загрузки данных в OEBS в главную книгу (в gl_interface) через свои промежуточные таблицы с перекодировкой.
Вопросы:
1) Как регистрируются параллельные программы?
2) Как создать журнал ошибок на случай, если переданные данные кривые. Или он сам создается? Если так - где его искать?
3) Как поместить переданный мне txt файл в нужный каталог средствами PL/SQL?
Возможно, вопросы тупые, только начинаю с этим разбираться. Топик выше прочитан, все равно вопросы есть.
z
Дата: 14.10.2005 15:26:18
1: под полномочиями сисадмина, параллельные:руководилель,определить.
в том же разделе меню зарегить исполняемый.
назначить доступ полномочиям.
Oleg Perekhrest
Дата: 15.10.2005 00:02:00
Так
примерно разобрались.
Спасибо.

Т.е.
1. Для запуска конкурентной программы, надо все закоммитить в интерфейсных таблицах.
2. Так как процесс конкурентной программы, запускается в отдельном сеансе.
3. Результаты работы сеанса, автоматически коммитятся. Обработка ошибок обычно идет, как оставить неверные записи в интерфейсных таблица с кодом ошибки

Все верно?

А вот теперь не подскажет ли All,
при работе с какими еще интерфейсами может случится "бяка"
в виде, что запуск конкурент программы, переносит из интерфейсной таблицы
данные только текущей организации, т.е. той что назначена в полномочиях пользователю?
Интересуют в первую очередь интерфейсы для работы со складами, и все сопутствующие.
Вот например перенос склада, он как транзакции о товарах грузит?
Все или тоже только текущей организации?
Спасибо