157: and minval > 0;
158:
159: -- Average runs are less than a minute.
160: if avg_mins < 1 and avg_hrs < 1 and avg_days < 1 then
161: fnd_message.set_name ('FND', 'CONC-DG-STAT-LESS THAN A MIN');
162: help_text := help_text || fnd_message.get;
163: return;
164: else
165: -- Average runs are more than a minute.
158:
159: -- Average runs are less than a minute.
160: if avg_mins < 1 and avg_hrs < 1 and avg_days < 1 then
161: fnd_message.set_name ('FND', 'CONC-DG-STAT-LESS THAN A MIN');
162: help_text := help_text || fnd_message.get;
163: return;
164: else
165: -- Average runs are more than a minute.
166: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
162: help_text := help_text || fnd_message.get;
163: return;
164: else
165: -- Average runs are more than a minute.
166: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
167: help_text := fnd_message.get;
168: end if;
169:
170: if avg_days > 0 then
163: return;
164: else
165: -- Average runs are more than a minute.
166: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
167: help_text := fnd_message.get;
168: end if;
169:
170: if avg_days > 0 then
171: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
167: help_text := fnd_message.get;
168: end if;
169:
170: if avg_days > 0 then
171: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
172: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
173: help_text := help_text || fnd_message.get;
174: end if;
175:
168: end if;
169:
170: if avg_days > 0 then
171: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
172: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
173: help_text := help_text || fnd_message.get;
174: end if;
175:
176: if avg_hrs > 0 then
169:
170: if avg_days > 0 then
171: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
172: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
173: help_text := help_text || fnd_message.get;
174: end if;
175:
176: if avg_hrs > 0 then
177: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
173: help_text := help_text || fnd_message.get;
174: end if;
175:
176: if avg_hrs > 0 then
177: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
178: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
179: help_text := help_text || fnd_message.get;
180: end if;
181:
174: end if;
175:
176: if avg_hrs > 0 then
177: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
178: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
179: help_text := help_text || fnd_message.get;
180: end if;
181:
182: if avg_mins > 0 then
175:
176: if avg_hrs > 0 then
177: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
178: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
179: help_text := help_text || fnd_message.get;
180: end if;
181:
182: if avg_mins > 0 then
183: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
179: help_text := help_text || fnd_message.get;
180: end if;
181:
182: if avg_mins > 0 then
183: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
184: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
185: help_text := help_text || fnd_message.get;
186: end if;
187:
180: end if;
181:
182: if avg_mins > 0 then
183: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
184: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
185: help_text := help_text || fnd_message.get;
186: end if;
187:
188: -- Expected finish date and time.
181:
182: if avg_mins > 0 then
183: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
184: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
185: help_text := help_text || fnd_message.get;
186: end if;
187:
188: -- Expected finish date and time.
189: if pcode = 'R' and expctd_finish is not null then
186: end if;
187:
188: -- Expected finish date and time.
189: if pcode = 'R' and expctd_finish is not null then
190: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
191: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
192: help_text := help_text || fnd_message.get;
193: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
194: help_text := help_text || fnd_message.get;
187:
188: -- Expected finish date and time.
189: if pcode = 'R' and expctd_finish is not null then
190: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
191: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
192: help_text := help_text || fnd_message.get;
193: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
194: help_text := help_text || fnd_message.get;
195: end if;
188: -- Expected finish date and time.
189: if pcode = 'R' and expctd_finish is not null then
190: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
191: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
192: help_text := help_text || fnd_message.get;
193: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
194: help_text := help_text || fnd_message.get;
195: end if;
196:
189: if pcode = 'R' and expctd_finish is not null then
190: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
191: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
192: help_text := help_text || fnd_message.get;
193: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
194: help_text := help_text || fnd_message.get;
195: end if;
196:
197: -- Punt on any exception
190: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
191: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
192: help_text := help_text || fnd_message.get;
193: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
194: help_text := help_text || fnd_message.get;
195: end if;
196:
197: -- Punt on any exception
198: exception
263:
264: -- if completed != Y then the request is currently in post-processing
265: if complete <> 'Y' then
266: request_stats (P_REQUEST_ID, 'R', help_text);
267: help_text := help_text || fnd_message.get;
268: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
269:
270: else
271: request_stats (P_REQUEST_ID, 'R', help_text);
264: -- if completed != Y then the request is currently in post-processing
265: if complete <> 'Y' then
266: request_stats (P_REQUEST_ID, 'R', help_text);
267: help_text := help_text || fnd_message.get;
268: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
269:
270: else
271: request_stats (P_REQUEST_ID, 'R', help_text);
272: help_text := help_text || fnd_message.get;
268: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
269:
270: else
271: request_stats (P_REQUEST_ID, 'R', help_text);
272: help_text := help_text || fnd_message.get;
273: fnd_message.set_name('FND', 'CONC-DG-PP COMPLETE');
274: end if;
275:
276: end if;
269:
270: else
271: request_stats (P_REQUEST_ID, 'R', help_text);
272: help_text := help_text || fnd_message.get;
273: fnd_message.set_name('FND', 'CONC-DG-PP COMPLETE');
274: end if;
275:
276: end if;
277:
280: -- If the request has no post-processing actions, or
281: -- post-processing has not begun, the request is running normal
282: if pp_cnt = 0 or proc_id is null then
283: request_stats (P_REQUEST_ID, 'R', help_text);
284: help_text := help_text || fnd_message.get;
285: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
286: fnd_message.set_token('START_DATE', l_start_date_conv);
287: end if;
288:
281: -- post-processing has not begun, the request is running normal
282: if pp_cnt = 0 or proc_id is null then
283: request_stats (P_REQUEST_ID, 'R', help_text);
284: help_text := help_text || fnd_message.get;
285: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
286: fnd_message.set_token('START_DATE', l_start_date_conv);
287: end if;
288:
289:
282: if pp_cnt = 0 or proc_id is null then
283: request_stats (P_REQUEST_ID, 'R', help_text);
284: help_text := help_text || fnd_message.get;
285: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
286: fnd_message.set_token('START_DATE', l_start_date_conv);
287: end if;
288:
289:
290: else -- Manager process died
287: end if;
288:
289:
290: else -- Manager process died
291: fnd_message.set_name('FND', 'CONC-DG-RUNNING DEAD');
292: end if;
293:
294: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
295: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
291: fnd_message.set_name('FND', 'CONC-DG-RUNNING DEAD');
292: end if;
293:
294: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
295: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
296: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
297: fnd_message.set_token('USER', P_REQUESTOR);
298:
299: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
292: end if;
293:
294: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
295: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
296: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
297: fnd_message.set_token('USER', P_REQUESTOR);
298:
299: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
300:
293:
294: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
295: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
296: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
297: fnd_message.set_token('USER', P_REQUESTOR);
298:
299: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
300:
301: dummy := icm_alive(TRUE);
307: where parent_request_id = P_REQUEST_ID
308: and phase_code in (PHASE_PENDING, PHASE_RUNNING);
309:
310: if (child_count < 1) then
311: fnd_message.set_name('FND', 'CONC-DG-WAITING NO CHILDREN');
312: else
313: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
314: end if;
315:
309:
310: if (child_count < 1) then
311: fnd_message.set_name('FND', 'CONC-DG-WAITING NO CHILDREN');
312: else
313: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
314: end if;
315:
316: fnd_message.set_token('START_DATE', l_start_date_conv);
317:
312: else
313: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
314: end if;
315:
316: fnd_message.set_token('START_DATE', l_start_date_conv);
317:
318: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
319: dummy := icm_alive(TRUE);
320: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
316: fnd_message.set_token('START_DATE', l_start_date_conv);
317:
318: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
319: dummy := icm_alive(TRUE);
320: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
321: fnd_message.set_token('START_DATE', l_start_date_conv);
322: fnd_message.set_token('PARENT_REQUEST_ID',
323: P_PARENT_REQUEST_ID);
324: else
317:
318: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
319: dummy := icm_alive(TRUE);
320: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
321: fnd_message.set_token('START_DATE', l_start_date_conv);
322: fnd_message.set_token('PARENT_REQUEST_ID',
323: P_PARENT_REQUEST_ID);
324: else
325: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
318: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
319: dummy := icm_alive(TRUE);
320: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
321: fnd_message.set_token('START_DATE', l_start_date_conv);
322: fnd_message.set_token('PARENT_REQUEST_ID',
323: P_PARENT_REQUEST_ID);
324: else
325: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
326: end if;
321: fnd_message.set_token('START_DATE', l_start_date_conv);
322: fnd_message.set_token('PARENT_REQUEST_ID',
323: P_PARENT_REQUEST_ID);
324: else
325: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
326: end if;
327: end diag_running;
328:
329:
353: 'NLS_CALENDAR='''||l_user_calendar||'''');
354: end if;
355:
356: if (P_USER_STATUS_CODE = STATUS_HOLD) then
357: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
358: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
359: fnd_message.set_token('HOLD_DATE', l_updat_date_conv);
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
354: end if;
355:
356: if (P_USER_STATUS_CODE = STATUS_HOLD) then
357: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
358: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
359: fnd_message.set_token('HOLD_DATE', l_updat_date_conv);
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
362: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
355:
356: if (P_USER_STATUS_CODE = STATUS_HOLD) then
357: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
358: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
359: fnd_message.set_token('HOLD_DATE', l_updat_date_conv);
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
362: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
363: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
358: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
359: fnd_message.set_token('HOLD_DATE', l_updat_date_conv);
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
362: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
363: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
364: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
365:
366: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
359: fnd_message.set_token('HOLD_DATE', l_updat_date_conv);
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
362: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
363: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
364: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
365:
366: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
367: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
360:
361: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
362: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
363: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
364: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
365:
366: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
367: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
368:
363: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
364: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
365:
366: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
367: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
368:
369: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_RUNALONE) then
370:
371: select user_cd_name into cd_name from fnd_conflicts_domain
382: and fcr.phase_code = 'R'
383: and fcr.cd_id = P_CD_ID;
384:
385:
386: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
387: fnd_message.set_token('RA_REQID', ra_reqid);
388: fnd_message.set_token('CD_NAME', cd_name);
389:
390: exception
383: and fcr.cd_id = P_CD_ID;
384:
385:
386: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
387: fnd_message.set_token('RA_REQID', ra_reqid);
388: fnd_message.set_token('CD_NAME', cd_name);
389:
390: exception
391: when NO_DATA_FOUND then
384:
385:
386: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
387: fnd_message.set_token('RA_REQID', ra_reqid);
388: fnd_message.set_token('CD_NAME', cd_name);
389:
390: exception
391: when NO_DATA_FOUND then
392: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
388: fnd_message.set_token('CD_NAME', cd_name);
389:
390: exception
391: when NO_DATA_FOUND then
392: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
393: fnd_message.set_token('CD_NAME', cd_name);
394: end;
395:
396: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
389:
390: exception
391: when NO_DATA_FOUND then
392: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
393: fnd_message.set_token('CD_NAME', cd_name);
394: end;
395:
396: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
397: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
393: fnd_message.set_token('CD_NAME', cd_name);
394: end;
395:
396: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
397: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
398:
399: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
400: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
401:
396: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
397: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
398:
399: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
400: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
401:
402: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
403: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
404:
399: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
400: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
401:
402: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
403: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
404:
405: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
406: fnd_message.set_name('FND', 'CONC-DG-INACTIVE CP DOWN');
407:
402: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
403: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
404:
405: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
406: fnd_message.set_name('FND', 'CONC-DG-INACTIVE CP DOWN');
407:
408: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_PATCH_ED) then
409: fnd_message.set_name('FND', 'CONC-DG-INACTIVE PATCH ED');
410:
405: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
406: fnd_message.set_name('FND', 'CONC-DG-INACTIVE CP DOWN');
407:
408: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_PATCH_ED) then
409: fnd_message.set_name('FND', 'CONC-DG-INACTIVE PATCH ED');
410:
411: else
412: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
413: end if;
408: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_PATCH_ED) then
409: fnd_message.set_name('FND', 'CONC-DG-INACTIVE PATCH ED');
410:
411: else
412: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
413: end if;
414: end diag_inactive;
415:
416:
447: end if;
448:
449: -- check for invalid queue_method_code
450: if (P_QUEUE_METHOD_CODE not in ('I', 'B')) then
451: fnd_message.set_name('FND', 'CONC-DG-INVALID QM CODE');
452: return;
453: end if;
454:
455: if (P_USER_STATUS_CODE in (STATUS_NORMAL, STATUS_STANDBY)) then
454:
455: if (P_USER_STATUS_CODE in (STATUS_NORMAL, STATUS_STANDBY)) then
456: if (P_QUEUE_CONTROL_FLAG = 'Y') then
457: if ( icm_alive(FALSE)) then
458: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
459: else
460: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
461: end if;
462: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
456: if (P_QUEUE_CONTROL_FLAG = 'Y') then
457: if ( icm_alive(FALSE)) then
458: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
459: else
460: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
461: end if;
462: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
463: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
464: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
458: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
459: else
460: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
461: end if;
462: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
463: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
464: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
465: return;
466: end if;
459: else
460: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
461: end if;
462: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
463: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
464: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
465: return;
466: end if;
467:
460: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
461: end if;
462: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
463: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
464: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
465: return;
466: end if;
467:
468: request_stats (P_REQUEST_ID, 'P', help_text);
468: request_stats (P_REQUEST_ID, 'P', help_text);
469:
470: -- Pending Normal
471: if (P_USER_STATUS_CODE = STATUS_NORMAL) then
472: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL');
473:
474: else
475: -- Pending Standby
476: -- Check for unconstrained req in Standby
474: else
475: -- Pending Standby
476: -- Check for unconstrained req in Standby
477: if (P_QUEUE_METHOD_CODE = 'I') then
478: fnd_message.set_name('FND', 'CONC-DG-STANDBY UNCONSTRAINED');
479:
480: -- runalone request
481: elsif (P_RUN_ALONE_FLAG = 'Y') then
482: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
478: fnd_message.set_name('FND', 'CONC-DG-STANDBY UNCONSTRAINED');
479:
480: -- runalone request
481: elsif (P_RUN_ALONE_FLAG = 'Y') then
482: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
483:
484: -- normal standby request
485: elsif (P_SINGLE_THREAD_FLAG <> 'Y' and P_REQLIMIT_FLAG <> 'Y') then
486: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
482: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
483:
484: -- normal standby request
485: elsif (P_SINGLE_THREAD_FLAG <> 'Y' and P_REQLIMIT_FLAG <> 'Y') then
486: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
487:
488: else
489: -- Here is a special case. If the user is invalid or end-dated,
490: -- this request will never be released by the CRM.
496: and fu.user_id = fcr.requested_by
497: and (fu.end_date is null or fu.end_date > sysdate);
498:
499: if (cnt = 0) then
500: fnd_message.set_name('FND', 'CONC-DG-STANDBY INVALID USER');
501:
502: -- single thread flag
503: elsif (P_SINGLE_THREAD_FLAG = 'Y') then
504: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
500: fnd_message.set_name('FND', 'CONC-DG-STANDBY INVALID USER');
501:
502: -- single thread flag
503: elsif (P_SINGLE_THREAD_FLAG = 'Y') then
504: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
505:
506: -- Active request limit flag
507: elsif (P_REQLIMIT_FLAG = 'Y') then
508: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
504: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
505:
506: -- Active request limit flag
507: elsif (P_REQLIMIT_FLAG = 'Y') then
508: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
509:
510: -- normal standby request
511: else
512: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
508: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
509:
510: -- normal standby request
511: else
512: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
513: end if;
514: end if;
515: end if;
516:
513: end if;
514: end if;
515: end if;
516:
517: fnd_message.set_token('USER', P_REQUESTOR);
518: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
519:
520:
521: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
514: end if;
515: end if;
516:
517: fnd_message.set_token('USER', P_REQUESTOR);
518: fnd_message.set_token('SUBMIT_DATE', l_updat_date_conv);
519:
520:
521: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
522: request_stats (P_REQUEST_ID, 'P', help_text);
519:
520:
521: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
522: request_stats (P_REQUEST_ID, 'P', help_text);
523: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
524: fnd_message.set_token('START_DATE', l_reqstart_date_conv);
525: fnd_message.set_token('USER', P_REQUESTOR);
526:
527: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
520:
521: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
522: request_stats (P_REQUEST_ID, 'P', help_text);
523: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
524: fnd_message.set_token('START_DATE', l_reqstart_date_conv);
525: fnd_message.set_token('USER', P_REQUESTOR);
526:
527: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
528:
521: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
522: request_stats (P_REQUEST_ID, 'P', help_text);
523: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
524: fnd_message.set_token('START_DATE', l_reqstart_date_conv);
525: fnd_message.set_token('USER', P_REQUESTOR);
526:
527: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
528:
529: -- check for a running or pending parent request
534: and phase_code in ('P', 'R');
535:
536:
537: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
538: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
539: else
540: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
541: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
542: end if;
536:
537: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
538: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
539: else
540: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
541: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
542: end if;
543:
544: else
537: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
538: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
539: else
540: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
541: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
542: end if;
543:
544: else
545: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
541: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
542: end if;
543:
544: else
545: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
546: end if;
547:
548: end diag_pending;
549:
579: l_updat_date_conv := to_char(P_LAST_UPDATE_DATE, date_fmt_nongreg, 'NLS_CALENDAR='''||l_user_calendar||'''');
580: end if;
581:
582: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
583: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
584: fnd_message.set_token('START_DATE', l_start_date_conv);
585: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
586:
587: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
580: end if;
581:
582: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
583: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
584: fnd_message.set_token('START_DATE', l_start_date_conv);
585: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
586:
587: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
588: if (P_COMPLETION_TEXT is not null) then
581:
582: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
583: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
584: fnd_message.set_token('START_DATE', l_start_date_conv);
585: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
586:
587: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
588: if (P_COMPLETION_TEXT is not null) then
589: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
585: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
586:
587: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
588: if (P_COMPLETION_TEXT is not null) then
589: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
590: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
591: else
592: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
593: end if;
586:
587: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
588: if (P_COMPLETION_TEXT is not null) then
589: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
590: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
591: else
592: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
593: end if;
594: fnd_message.set_token('START_DATE', l_start_date_conv);
588: if (P_COMPLETION_TEXT is not null) then
589: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
590: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
591: else
592: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
593: end if;
594: fnd_message.set_token('START_DATE', l_start_date_conv);
595: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
596:
590: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
591: else
592: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
593: end if;
594: fnd_message.set_token('START_DATE', l_start_date_conv);
595: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
596:
597: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
598: if (P_COMPLETION_TEXT is not null) then
591: else
592: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
593: end if;
594: fnd_message.set_token('START_DATE', l_start_date_conv);
595: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
596:
597: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
598: if (P_COMPLETION_TEXT is not null) then
599: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
595: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
596:
597: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
598: if (P_COMPLETION_TEXT is not null) then
599: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
600: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
601: else
602: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
603: end if;
596:
597: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
598: if (P_COMPLETION_TEXT is not null) then
599: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
600: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
601: else
602: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
603: end if;
604: fnd_message.set_token('START_DATE', l_start_date_conv);
598: if (P_COMPLETION_TEXT is not null) then
599: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
600: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
601: else
602: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
603: end if;
604: fnd_message.set_token('START_DATE', l_start_date_conv);
605: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
606:
600: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
601: else
602: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
603: end if;
604: fnd_message.set_token('START_DATE', l_start_date_conv);
605: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
606:
607: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
608: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
601: else
602: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
603: end if;
604: fnd_message.set_token('START_DATE', l_start_date_conv);
605: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
606:
607: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
608: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
609: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
604: fnd_message.set_token('START_DATE', l_start_date_conv);
605: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
606:
607: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
608: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
609: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
610: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
605: fnd_message.set_token('COMPLETION_DATE', l_cmplt_date_conv);
606:
607: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
608: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
609: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
610: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
606:
607: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
608: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
609: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
610: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
614: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
609: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
610: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
614: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
615: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
616: else
617: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
610: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
614: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
615: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
616: else
617: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
618: end if;
611:
612: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
614: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
615: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
616: else
617: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
618: end if;
619:
613: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
614: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
615: fnd_message.set_token('ABORT_DATE', l_updat_date_conv);
616: else
617: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
618: end if;
619:
620: end diag_completed;
621:
808: and R.requested_by = U2.user_id (+);
809:
810: exception
811: when no_data_found then
812: fnd_message.set_name('FND','CONC-Missing Request');
813: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
814: fnd_message.set_token('REQUEST', to_char(request_id));
815: raise diagnose_error;
816: when others then
809:
810: exception
811: when no_data_found then
812: fnd_message.set_name('FND','CONC-Missing Request');
813: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
814: fnd_message.set_token('REQUEST', to_char(request_id));
815: raise diagnose_error;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
810: exception
811: when no_data_found then
812: fnd_message.set_name('FND','CONC-Missing Request');
813: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
814: fnd_message.set_token('REQUEST', to_char(request_id));
815: raise diagnose_error;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
818: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
813: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
814: fnd_message.set_token('REQUEST', to_char(request_id));
815: raise diagnose_error;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
818: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
819: fnd_message.set_token ('REASON', sqlerrm, FALSE);
820: fnd_message.set_token (
821: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
814: fnd_message.set_token('REQUEST', to_char(request_id));
815: raise diagnose_error;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
818: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
819: fnd_message.set_token ('REASON', sqlerrm, FALSE);
820: fnd_message.set_token (
821: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
822: raise diagnose_error;
815: raise diagnose_error;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
818: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
819: fnd_message.set_token ('REASON', sqlerrm, FALSE);
820: fnd_message.set_token (
821: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
822: raise diagnose_error;
823: end;
816: when others then
817: fnd_message.set_name ('FND', 'SQL-Generic error');
818: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
819: fnd_message.set_token ('REASON', sqlerrm, FALSE);
820: fnd_message.set_token (
821: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
822: raise diagnose_error;
823: end;
824:
841: P_USER_PHASE_CODE := user_phase_code;
842: P_USER_STATUS_CODE := user_status_code;
843:
844: if (P_PROGRAM is NULL) then
845: fnd_message.set_name('FND', 'CONC-DG-BAD PROGRAM ID');
846: elsif (P_USER_PHASE_CODE = PHASE_RUNNING) then
847: diag_running (help_text);
848: elsif (P_USER_PHASE_CODE = PHASE_PENDING) then
849: diag_pending (help_text);
856: if status is null then
857: status := get_status(STATUS_NO_MANAGER);
858: end if;
859: else
860: fnd_message.set_name('FND', 'CONC-DG-BAD PHASE');
861: end if;
862:
863: help_text := fnd_message.get;
864:
859: else
860: fnd_message.set_name('FND', 'CONC-DG-BAD PHASE');
861: end if;
862:
863: help_text := fnd_message.get;
864:
865: exception
866: when diagnose_error then
867: help_text := fnd_message.get;
863: help_text := fnd_message.get;
864:
865: exception
866: when diagnose_error then
867: help_text := fnd_message.get;
868:
869: end diagnose;
870:
871:
950: return TRUE;
951: exception
952: when no_data_found then
953: if (print) then
954: fnd_message.set_name('FND','CONC-DG-IM INACTIVE');
955: end if;
956: return FALSE;
957: end icm_alive;
958:
1150: begin
1151:
1152: run_edition := ad_zd.get_edition('RUN');
1153:
1154: fnd_message.set_name ('FND', 'CONC-CANCELLED PATCH REQUEST');
1155: msg := fnd_message.get;
1156:
1157: update fnd_concurrent_requests
1158: set phase_code = 'C',
1151:
1152: run_edition := ad_zd.get_edition('RUN');
1153:
1154: fnd_message.set_name ('FND', 'CONC-CANCELLED PATCH REQUEST');
1155: msg := fnd_message.get;
1156:
1157: update fnd_concurrent_requests
1158: set phase_code = 'C',
1159: status_code = 'D',