четверг, 9 октября 2008 г.

FND_CONCURRENT_REQUESTS

Параллельные программы в ОЕБС (concurrent programs) - замечательная особенность системы. Любые отчеты и процедуры обработки данных всегда оформляются, а затем и выполняются используя единый механизм. Так ведь мало того, всё это еще и протоколируется.

Поэтому, говоря о параллельных программах, мы можем ответить не только на вопросы популярной телепередачи, но и понять кто, сколько и во сколько :-)

Анализ запуска параллельных программ может быть полезен для ответов на многие вопросы.
Ну например:
1) Списки наиболее часто используемых отчетов
2) Списки наиболее медленно работающих отчетов
3) Какие программы работали в заданный промежуток времени.
4) Кто и что "забило" очередь конкарент менеджера
и т.д.

Специалисты поддержки разбирая жалобы пользователей на плохую работу того или иного отчета, могут предварительно проанализировать когда, с какими параметрами, из под каких полномочий этот пользователь запускал отчет (да и запускал ли?).

И всё это счастье доступно в одной таблице, имя которой FND_CONCURRENT_REQUESTS.

Вот заготовка запроса к этой таблице.
Во фразе WHERE подготовлены (закомментарены) наиболее популярные виды выборок: по пользоватедю, по периоду, по параллельной программе.


SELECT
fcr.request_id
,(SELECT fcp.user_concurrent_program_name
FROM apps.fnd_concurrent_programs_vl fcp
WHERE fcp.application_id = fcr.program_application_id
AND fcp.concurrent_program_id = fcr.concurrent_program_id
) AS concurrent_name
,fcr.actual_start_date
,fcr.actual_completion_date
,fcr.completion_text
,(SELECT fu.user_name FROM applsys.fnd_user fu
WHERE fu.user_id = fcr.requested_by
) AS user_name
,(SELECT fr.responsibility_name
FROM apps.fnd_responsibility_vl fr
WHERE fr.application_id = fcr.responsibility_application_id
AND fr.responsibility_id = fcr.responsibility_id
) AS responsibility_name
,fcr.argument_text
,fcr.*
FROM applsys.fnd_concurrent_requests fcr
WHERE 1=1
/* Start. Фильтр по пользователю */
-- AND fcr.requested_by IN (
-- SELECT fu.user_id
-- FROM applsys.fnd_user fu
-- WHERE fu.user_name LIKE '%'
-- )
/* End. Фильтр по пользователю */
/* Start. Фильтр по периоду */
-- AND fcr.actual_start_date >= TO_DATE('01.01.2008', 'DD.MM.YYYY')
-- AND fcr.actual_completion_date < TO_DATE('31.12.2008', 'DD.MM.YYYY')
/* End. Фильтр по периоду */
/* Start. Фильтр по concurrent_name */
-- AND (fcr.program_application_id, fcr.concurrent_program_id) IN (
-- SELECT fcp.application_id, fcp.concurrent_program_id
-- FROM apps.fnd_concurrent_programs_vl fcp
-- WHERE fcp.user_concurrent_program_name LIKE '%'
-- )
/* End. Фильтр по concurrent_name */
/* Start. Фильтр по работающим сейчас конкарентам */
-- AND fcr.phase_code = 'R'
/* End. Фильтр по работающим сейчас конкарентам */
ORDER BY fcr.request_id DESC

Комментариев нет: