SELECT r.request_id,
p.user_concurrent_program_name || NVL2(r.description, ' (' || r.description || ')', NULL) Conc_prog,
s.user_name REQUESTOR,
r.argument_text arguments,
r.requested_start_date next_run,
r.last_update_date LAST_RUN,
r.hold_flag on_hold,
r.increment_dates,
DECODE(c.class_type, 'P', 'Periodic', 'S', 'On Specific Days', 'X', 'Advanced', c.class_type) schedule_type,
CASE
WHEN c.class_type = 'P'
THEN
'Repeat every ' || SUBSTR(c.class_info, 1, INSTR(c.class_info, ':') - 1) || DECODE(SUBSTR(c.class_info,
INSTR(c.class_info,
':',
1,
1)
+ 1,
1),
'N', ' minutes',
'M', ' months',
'H', ' hours',
'D', ' days') || DECODE(SUBSTR(c.class_info,
INSTR(c.class_info,
':',
1,
2)
+ 1,
1),
'S', ' from the start of the prior run',
'C', ' from the completion of the prior run')
WHEN c.class_type = 'S'
THEN
NVL2(dates.dates, 'Dates: ' || dates.dates || '. ', NULL) || DECODE(SUBSTR(c.class_info, 32, 1),
'1', 'Last day of month ') || DECODE
(
SIGN (TO_NUMBER(SUBSTR(c.class_info, 33))),
'1', 'Days of week: ' || DECODE(SUBSTR(c.class_info, 33, 1), '1', 'Su ') || DECODE(SUBSTR(c.class_info, 34, 1),
'1', 'Mo ') || DECODE(SUBSTR (c.class_info, 35, 1), '1', 'Tu ') || DECODE(SUBSTR(c.class_info, 36, 1),
'1', 'We ') || DECODE(SUBSTR (c.class_info, 37, 1), '1', 'Th ') || DECODE(SUBSTR(c.class_info, 38, 1),
'1', 'Fr ') || DECODE(SUBSTR (c.class_info, 39, 1), '1', 'Sa ')
)
END
AS schedule,
c.date1 start_date,
c.date2 end_date,
c.class_info
FROM fnd_concurrent_requests r,
fnd_conc_release_classes c,
fnd_concurrent_programs_tl p,
fnd_user s,
(WITH date_schedules
AS (SELECT release_class_id, RANK() OVER(PARTITION BY release_class_id ORDER BY s) a, s
FROM (SELECT c.class_info,
l,
c.release_class_id,
DECODE(SUBSTR(c.class_info, l, 1), '1', TO_CHAR(l)) s
FROM ( SELECT LEVEL l
FROM DUAL
CONNECT BY LEVEL <= 31),
fnd_conc_release_classes c
WHERE c.class_type = 'S' AND INSTR(SUBSTR(c.class_info, 1, 31), '1') > 0)
WHERE s IS NOT NULL)
SELECT release_class_id, SUBSTR(MAX(SYS_CONNECT_BY_PATH(s, ' ')), 2) dates
FROM date_schedules
START WITH a = 1
CONNECT BY NOCYCLE PRIOR a = a - 1
GROUP BY release_class_id) dates
WHERE r.phase_code = 'P'
AND c.application_id = r.release_class_app_id
AND c.release_class_id = r.release_class_id
AND NVL(c.date2, SYSDATE + 1) > SYSDATE
AND c.class_type IS NOT NULL
AND p.concurrent_program_id = r.concurrent_program_id
AND p.language = 'US'
AND dates.release_class_id(+) = r.release_class_id
AND r.requested_by = s.user_id
p.user_concurrent_program_name || NVL2(r.description, ' (' || r.description || ')', NULL) Conc_prog,
s.user_name REQUESTOR,
r.argument_text arguments,
r.requested_start_date next_run,
r.last_update_date LAST_RUN,
r.hold_flag on_hold,
r.increment_dates,
DECODE(c.class_type, 'P', 'Periodic', 'S', 'On Specific Days', 'X', 'Advanced', c.class_type) schedule_type,
CASE
WHEN c.class_type = 'P'
THEN
'Repeat every ' || SUBSTR(c.class_info, 1, INSTR(c.class_info, ':') - 1) || DECODE(SUBSTR(c.class_info,
INSTR(c.class_info,
':',
1,
1)
+ 1,
1),
'N', ' minutes',
'M', ' months',
'H', ' hours',
'D', ' days') || DECODE(SUBSTR(c.class_info,
INSTR(c.class_info,
':',
1,
2)
+ 1,
1),
'S', ' from the start of the prior run',
'C', ' from the completion of the prior run')
WHEN c.class_type = 'S'
THEN
NVL2(dates.dates, 'Dates: ' || dates.dates || '. ', NULL) || DECODE(SUBSTR(c.class_info, 32, 1),
'1', 'Last day of month ') || DECODE
(
SIGN (TO_NUMBER(SUBSTR(c.class_info, 33))),
'1', 'Days of week: ' || DECODE(SUBSTR(c.class_info, 33, 1), '1', 'Su ') || DECODE(SUBSTR(c.class_info, 34, 1),
'1', 'Mo ') || DECODE(SUBSTR (c.class_info, 35, 1), '1', 'Tu ') || DECODE(SUBSTR(c.class_info, 36, 1),
'1', 'We ') || DECODE(SUBSTR (c.class_info, 37, 1), '1', 'Th ') || DECODE(SUBSTR(c.class_info, 38, 1),
'1', 'Fr ') || DECODE(SUBSTR (c.class_info, 39, 1), '1', 'Sa ')
)
END
AS schedule,
c.date1 start_date,
c.date2 end_date,
c.class_info
FROM fnd_concurrent_requests r,
fnd_conc_release_classes c,
fnd_concurrent_programs_tl p,
fnd_user s,
(WITH date_schedules
AS (SELECT release_class_id, RANK() OVER(PARTITION BY release_class_id ORDER BY s) a, s
FROM (SELECT c.class_info,
l,
c.release_class_id,
DECODE(SUBSTR(c.class_info, l, 1), '1', TO_CHAR(l)) s
FROM ( SELECT LEVEL l
FROM DUAL
CONNECT BY LEVEL <= 31),
fnd_conc_release_classes c
WHERE c.class_type = 'S' AND INSTR(SUBSTR(c.class_info, 1, 31), '1') > 0)
WHERE s IS NOT NULL)
SELECT release_class_id, SUBSTR(MAX(SYS_CONNECT_BY_PATH(s, ' ')), 2) dates
FROM date_schedules
START WITH a = 1
CONNECT BY NOCYCLE PRIOR a = a - 1
GROUP BY release_class_id) dates
WHERE r.phase_code = 'P'
AND c.application_id = r.release_class_app_id
AND c.release_class_id = r.release_class_id
AND NVL(c.date2, SYSDATE + 1) > SYSDATE
AND c.class_type IS NOT NULL
AND p.concurrent_program_id = r.concurrent_program_id
AND p.language = 'US'
AND dates.release_class_id(+) = r.release_class_id
AND r.requested_by = s.user_id
No comments:
Post a Comment