155: and minval > 0;
156:
157: -- Average runs are less than a minute.
158: if avg_mins < 1 and avg_hrs < 1 and avg_days < 1 then
159: fnd_message.set_name ('FND', 'CONC-DG-STAT-LESS THAN A MIN');
160: help_text := help_text || fnd_message.get;
161: return;
162: else
163: -- Average runs are more than a minute.
156:
157: -- Average runs are less than a minute.
158: if avg_mins < 1 and avg_hrs < 1 and avg_days < 1 then
159: fnd_message.set_name ('FND', 'CONC-DG-STAT-LESS THAN A MIN');
160: help_text := help_text || fnd_message.get;
161: return;
162: else
163: -- Average runs are more than a minute.
164: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
160: help_text := help_text || fnd_message.get;
161: return;
162: else
163: -- Average runs are more than a minute.
164: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
165: help_text := fnd_message.get;
166: end if;
167:
168: if avg_days > 0 then
161: return;
162: else
163: -- Average runs are more than a minute.
164: fnd_message.set_name ('FND', 'CONC-DG-STAT-PREVIOUS RUNS');
165: help_text := fnd_message.get;
166: end if;
167:
168: if avg_days > 0 then
169: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
165: help_text := fnd_message.get;
166: end if;
167:
168: if avg_days > 0 then
169: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
170: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
171: help_text := help_text || fnd_message.get;
172: end if;
173:
166: end if;
167:
168: if avg_days > 0 then
169: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
170: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
171: help_text := help_text || fnd_message.get;
172: end if;
173:
174: if avg_hrs > 0 then
167:
168: if avg_days > 0 then
169: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG DAYS');
170: fnd_message.set_token ('AVG_DAYS', to_char (avg_days));
171: help_text := help_text || fnd_message.get;
172: end if;
173:
174: if avg_hrs > 0 then
175: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
171: help_text := help_text || fnd_message.get;
172: end if;
173:
174: if avg_hrs > 0 then
175: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
176: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
177: help_text := help_text || fnd_message.get;
178: end if;
179:
172: end if;
173:
174: if avg_hrs > 0 then
175: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
176: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
177: help_text := help_text || fnd_message.get;
178: end if;
179:
180: if avg_mins > 0 then
173:
174: if avg_hrs > 0 then
175: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG_HRS');
176: fnd_message.set_token ('AVG_HRS', to_char (avg_hrs));
177: help_text := help_text || fnd_message.get;
178: end if;
179:
180: if avg_mins > 0 then
181: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
177: help_text := help_text || fnd_message.get;
178: end if;
179:
180: if avg_mins > 0 then
181: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
182: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
183: help_text := help_text || fnd_message.get;
184: end if;
185:
178: end if;
179:
180: if avg_mins > 0 then
181: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
182: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
183: help_text := help_text || fnd_message.get;
184: end if;
185:
186: -- Expected finish date and time.
179:
180: if avg_mins > 0 then
181: fnd_message.set_name ('FND', 'CONC-DG-STAT-AVG MINS');
182: fnd_message.set_token ('AVG_MINS', to_char (avg_mins));
183: help_text := help_text || fnd_message.get;
184: end if;
185:
186: -- Expected finish date and time.
187: if pcode = 'R' and expctd_finish is not null then
184: end if;
185:
186: -- Expected finish date and time.
187: if pcode = 'R' and expctd_finish is not null then
188: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
189: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
190: help_text := help_text || fnd_message.get;
191: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
192: help_text := help_text || fnd_message.get;
185:
186: -- Expected finish date and time.
187: if pcode = 'R' and expctd_finish is not null then
188: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
189: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
190: help_text := help_text || fnd_message.get;
191: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
192: help_text := help_text || fnd_message.get;
193: end if;
186: -- Expected finish date and time.
187: if pcode = 'R' and expctd_finish is not null then
188: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
189: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
190: help_text := help_text || fnd_message.get;
191: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
192: help_text := help_text || fnd_message.get;
193: end if;
194:
187: if pcode = 'R' and expctd_finish is not null then
188: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
189: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
190: help_text := help_text || fnd_message.get;
191: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
192: help_text := help_text || fnd_message.get;
193: end if;
194:
195: -- Punt on any exception
188: fnd_message.set_name ('FND', 'CONC-DG-STAT-EXPCTD FINISH');
189: fnd_message.set_token ('EXPCTD_FINISH', expctd_finish);
190: help_text := help_text || fnd_message.get;
191: fnd_message.set_name ('FND', 'CONC-DG-STAT-DISCLAIMER');
192: help_text := help_text || fnd_message.get;
193: end if;
194:
195: -- Punt on any exception
196: exception
244:
245: -- if completed != Y then the request is currently in post-processing
246: if complete <> 'Y' then
247: request_stats (P_REQUEST_ID, 'R', help_text);
248: help_text := help_text || fnd_message.get;
249: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
250:
251: else
252: request_stats (P_REQUEST_ID, 'R', help_text);
245: -- if completed != Y then the request is currently in post-processing
246: if complete <> 'Y' then
247: request_stats (P_REQUEST_ID, 'R', help_text);
248: help_text := help_text || fnd_message.get;
249: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
250:
251: else
252: request_stats (P_REQUEST_ID, 'R', help_text);
253: help_text := help_text || fnd_message.get;
249: fnd_message.set_name('FND', 'CONC-DG-PP ONGOING');
250:
251: else
252: request_stats (P_REQUEST_ID, 'R', help_text);
253: help_text := help_text || fnd_message.get;
254: fnd_message.set_name('FND', 'CONC-DG-PP COMPLETE');
255: end if;
256:
257: end if;
250:
251: else
252: request_stats (P_REQUEST_ID, 'R', help_text);
253: help_text := help_text || fnd_message.get;
254: fnd_message.set_name('FND', 'CONC-DG-PP COMPLETE');
255: end if;
256:
257: end if;
258:
261: -- If the request has no post-processing actions, or
262: -- post-processing has not begun, the request is running normal
263: if pp_cnt = 0 or proc_id is null then
264: request_stats (P_REQUEST_ID, 'R', help_text);
265: help_text := help_text || fnd_message.get;
266: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
267: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
268: end if;
269:
262: -- post-processing has not begun, the request is running normal
263: if pp_cnt = 0 or proc_id is null then
264: request_stats (P_REQUEST_ID, 'R', help_text);
265: help_text := help_text || fnd_message.get;
266: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
267: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
268: end if;
269:
270:
263: if pp_cnt = 0 or proc_id is null then
264: request_stats (P_REQUEST_ID, 'R', help_text);
265: help_text := help_text || fnd_message.get;
266: fnd_message.set_name('FND', 'CONC-DG-RUNNING NORMAL');
267: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
268: end if;
269:
270:
271: else -- Manager process died
268: end if;
269:
270:
271: else -- Manager process died
272: fnd_message.set_name('FND', 'CONC-DG-RUNNING DEAD');
273: end if;
274:
275: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
276: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
272: fnd_message.set_name('FND', 'CONC-DG-RUNNING DEAD');
273: end if;
274:
275: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
276: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
277: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
278: fnd_message.set_token('USER', P_REQUESTOR);
279:
280: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
273: end if;
274:
275: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
276: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
277: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
278: fnd_message.set_token('USER', P_REQUESTOR);
279:
280: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
281:
274:
275: elsif (P_USER_STATUS_CODE = STATUS_TERMINATING) then
276: fnd_message.set_name('FND','CONC-DG-RUNNING ABORTING');
277: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
278: fnd_message.set_token('USER', P_REQUESTOR);
279:
280: elsif (P_USER_STATUS_CODE = STATUS_PAUSED) then
281:
282: dummy := icm_alive(TRUE);
288: where parent_request_id = P_REQUEST_ID
289: and phase_code in (PHASE_PENDING, PHASE_RUNNING);
290:
291: if (child_count < 1) then
292: fnd_message.set_name('FND', 'CONC-DG-WAITING NO CHILDREN');
293: else
294: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
295: end if;
296:
290:
291: if (child_count < 1) then
292: fnd_message.set_name('FND', 'CONC-DG-WAITING NO CHILDREN');
293: else
294: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
295: end if;
296:
297: fnd_message.set_token('START_DATE',date_text(P_ACTUAL_START_DATE));
298:
293: else
294: fnd_message.set_name('FND', 'CONC-DG-RUNNING WAITING');
295: end if;
296:
297: fnd_message.set_token('START_DATE',date_text(P_ACTUAL_START_DATE));
298:
299: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
300: dummy := icm_alive(TRUE);
301: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
297: fnd_message.set_token('START_DATE',date_text(P_ACTUAL_START_DATE));
298:
299: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
300: dummy := icm_alive(TRUE);
301: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
302: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
303: fnd_message.set_token('PARENT_REQUEST_ID',
304: P_PARENT_REQUEST_ID);
305: else
298:
299: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
300: dummy := icm_alive(TRUE);
301: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
302: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
303: fnd_message.set_token('PARENT_REQUEST_ID',
304: P_PARENT_REQUEST_ID);
305: else
306: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
299: elsif (P_USER_STATUS_CODE = STATUS_RESUMING) then
300: dummy := icm_alive(TRUE);
301: fnd_message.set_name('FND', 'CONC-DG-RUNNING RESUMING');
302: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
303: fnd_message.set_token('PARENT_REQUEST_ID',
304: P_PARENT_REQUEST_ID);
305: else
306: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
307: end if;
302: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
303: fnd_message.set_token('PARENT_REQUEST_ID',
304: P_PARENT_REQUEST_ID);
305: else
306: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
307: end if;
308: end diag_running;
309:
310:
322: ra_reqid number;
323: cd_name fnd_conflicts_domain.user_cd_name%TYPE;
324: begin
325: if (P_USER_STATUS_CODE = STATUS_HOLD) then
326: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
327: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
328: fnd_message.set_token('HOLD_DATE', date_text(P_LAST_UPDATE_DATE));
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
323: cd_name fnd_conflicts_domain.user_cd_name%TYPE;
324: begin
325: if (P_USER_STATUS_CODE = STATUS_HOLD) then
326: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
327: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
328: fnd_message.set_token('HOLD_DATE', date_text(P_LAST_UPDATE_DATE));
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
331: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
324: begin
325: if (P_USER_STATUS_CODE = STATUS_HOLD) then
326: fnd_message.set_name('FND', 'CONC-DG-INACTIVE HOLD');
327: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
328: fnd_message.set_token('HOLD_DATE', date_text(P_LAST_UPDATE_DATE));
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
331: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
332: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
327: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
328: fnd_message.set_token('HOLD_DATE', date_text(P_LAST_UPDATE_DATE));
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
331: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
332: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
333: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
334:
335: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
328: fnd_message.set_token('HOLD_DATE', date_text(P_LAST_UPDATE_DATE));
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
331: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
332: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
333: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
334:
335: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
336: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
329:
330: elsif (P_USER_STATUS_CODE = STATUS_DISABLED) then
331: fnd_message.set_name('FND', 'CONC-DG-INACTIVE DISABLED');
332: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
333: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
334:
335: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
336: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
337:
332: fnd_message.set_token('APPLICATION_NAME', P_APPLICATION_NAME);
333: fnd_message.set_token('PROGRAM_NAME', P_USER_CONC_PROG_NAME);
334:
335: elsif (P_USER_STATUS_CODE = STATUS_NO_MANAGER) then
336: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO MANAGER');
337:
338: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_RUNALONE) then
339:
340: select user_cd_name into cd_name from fnd_conflicts_domain
351: and fcr.phase_code = 'R'
352: and fcr.cd_id = P_CD_ID;
353:
354:
355: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
356: fnd_message.set_token('RA_REQID', ra_reqid);
357: fnd_message.set_token('CD_NAME', cd_name);
358:
359: exception
352: and fcr.cd_id = P_CD_ID;
353:
354:
355: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
356: fnd_message.set_token('RA_REQID', ra_reqid);
357: fnd_message.set_token('CD_NAME', cd_name);
358:
359: exception
360: when NO_DATA_FOUND then
353:
354:
355: fnd_message.set_name('FND', 'CONC-DG-INACTIVE RUNALONE');
356: fnd_message.set_token('RA_REQID', ra_reqid);
357: fnd_message.set_token('CD_NAME', cd_name);
358:
359: exception
360: when NO_DATA_FOUND then
361: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
357: fnd_message.set_token('CD_NAME', cd_name);
358:
359: exception
360: when NO_DATA_FOUND then
361: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
362: fnd_message.set_token('CD_NAME', cd_name);
363: end;
364:
365: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
358:
359: exception
360: when NO_DATA_FOUND then
361: fnd_message.set_name('FND', 'CONC-DG-INACTIVE NO RUNALONE');
362: fnd_message.set_token('CD_NAME', cd_name);
363: end;
364:
365: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
366: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
362: fnd_message.set_token('CD_NAME', cd_name);
363: end;
364:
365: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
366: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
367:
368: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
369: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
370:
365: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_WKSHIFT) then
366: fnd_message.set_name('FND', 'CONC-DG-INACTIVE WRONG SHIFT');
367:
368: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
369: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
370:
371: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
372: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
373:
368: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_DOWN) then
369: fnd_message.set_name('FND', 'CONC-DG-INACTIVE MANAGER DOWN');
370:
371: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
372: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
373:
374: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
375: fnd_message.set_name('FND', 'CONC-DG-INACTIVE ICM DOWN');
376:
371: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_MGR_TROUBLE) then
372: fnd_message.set_name('FND', 'CONC-DG-INACTIVE TROUBLED');
373:
374: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
375: fnd_message.set_name('FND', 'CONC-DG-INACTIVE ICM DOWN');
376:
377: else
378: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
379: end if;
374: elsif (P_USER_STATUS_CODE = STATUS_INACTIVE_CP_DOWN) then
375: fnd_message.set_name('FND', 'CONC-DG-INACTIVE ICM DOWN');
376:
377: else
378: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
379: end if;
380: end diag_inactive;
381:
382:
398: begin
399:
400: -- check for invalid queue_method_code
401: if (P_QUEUE_METHOD_CODE not in ('I', 'B')) then
402: fnd_message.set_name('FND', 'CONC-DG-INVALID QM CODE');
403: return;
404: end if;
405:
406: if (P_USER_STATUS_CODE in (STATUS_NORMAL, STATUS_STANDBY)) then
405:
406: if (P_USER_STATUS_CODE in (STATUS_NORMAL, STATUS_STANDBY)) then
407: if (P_QUEUE_CONTROL_FLAG = 'Y') then
408: if ( icm_alive(FALSE)) then
409: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
410: else
411: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
412: end if;
413: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
407: if (P_QUEUE_CONTROL_FLAG = 'Y') then
408: if ( icm_alive(FALSE)) then
409: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
410: else
411: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
412: end if;
413: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
414: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
415: return;
409: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL CONTROL');
410: else
411: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
412: end if;
413: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
414: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
415: return;
416: end if;
417:
410: else
411: fnd_message.set_name('FND', 'CONC-DG-INACTIVE QUEUE CONTROL');
412: end if;
413: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
414: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
415: return;
416: end if;
417:
418: request_stats (P_REQUEST_ID, 'P', help_text);
418: request_stats (P_REQUEST_ID, 'P', help_text);
419:
420: -- Pending Normal
421: if (P_USER_STATUS_CODE = STATUS_NORMAL) then
422: fnd_message.set_name('FND', 'CONC-DG-PENDING NORMAL');
423:
424: else
425: -- Pending Standby
426: -- Check for unconstrained req in Standby
424: else
425: -- Pending Standby
426: -- Check for unconstrained req in Standby
427: if (P_QUEUE_METHOD_CODE = 'I') then
428: fnd_message.set_name('FND', 'CONC-DG-STANDBY UNCONSTRAINED');
429:
430: -- runalone request
431: elsif (P_RUN_ALONE_FLAG = 'Y') then
432: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
428: fnd_message.set_name('FND', 'CONC-DG-STANDBY UNCONSTRAINED');
429:
430: -- runalone request
431: elsif (P_RUN_ALONE_FLAG = 'Y') then
432: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
433:
434: -- normal standby request
435: elsif (P_SINGLE_THREAD_FLAG <> 'Y' and P_REQLIMIT_FLAG <> 'Y') then
436: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
432: fnd_message.set_name('FND', 'CONC-DG-STANDBY RUNALONE');
433:
434: -- normal standby request
435: elsif (P_SINGLE_THREAD_FLAG <> 'Y' and P_REQLIMIT_FLAG <> 'Y') then
436: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
437:
438: else
439: -- Here is a special case. If the user is invalid or end-dated,
440: -- this request will never be released by the CRM.
446: and fu.user_id = fcr.requested_by
447: and (fu.end_date is null or fu.end_date > sysdate);
448:
449: if (cnt = 0) then
450: fnd_message.set_name('FND', 'CONC-DG-STANDBY INVALID USER');
451:
452: -- single thread flag
453: elsif (P_SINGLE_THREAD_FLAG = 'Y') then
454: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
450: fnd_message.set_name('FND', 'CONC-DG-STANDBY INVALID USER');
451:
452: -- single thread flag
453: elsif (P_SINGLE_THREAD_FLAG = 'Y') then
454: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
455:
456: -- Active request limit flag
457: elsif (P_REQLIMIT_FLAG = 'Y') then
458: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
454: fnd_message.set_name('FND', 'CONC-DG-STANDBY SEQREQ');
455:
456: -- Active request limit flag
457: elsif (P_REQLIMIT_FLAG = 'Y') then
458: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
459:
460: -- normal standby request
461: else
462: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
458: fnd_message.set_name('FND', 'CONC-DG-STANDBY REQLIMIT');
459:
460: -- normal standby request
461: else
462: fnd_message.set_name('FND', 'CONC-DG-PENDING STANDBY');
463: end if;
464: end if;
465: end if;
466:
463: end if;
464: end if;
465: end if;
466:
467: fnd_message.set_token('USER', P_REQUESTOR);
468: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
469:
470:
471: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
464: end if;
465: end if;
466:
467: fnd_message.set_token('USER', P_REQUESTOR);
468: fnd_message.set_token('SUBMIT_DATE', date_text(P_LAST_UPDATE_DATE));
469:
470:
471: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
472: request_stats (P_REQUEST_ID, 'P', help_text);
469:
470:
471: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
472: request_stats (P_REQUEST_ID, 'P', help_text);
473: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
474: fnd_message.set_token('START_DATE', date_text(P_REQUESTED_START_DATE));
475: fnd_message.set_token('USER', P_REQUESTOR);
476:
477: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
470:
471: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
472: request_stats (P_REQUEST_ID, 'P', help_text);
473: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
474: fnd_message.set_token('START_DATE', date_text(P_REQUESTED_START_DATE));
475: fnd_message.set_token('USER', P_REQUESTOR);
476:
477: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
478:
471: elsif (P_USER_STATUS_CODE = STATUS_SCHEDULED) then
472: request_stats (P_REQUEST_ID, 'P', help_text);
473: fnd_message.set_name('FND', 'CONC-DG-PENDING SCHEDULED');
474: fnd_message.set_token('START_DATE', date_text(P_REQUESTED_START_DATE));
475: fnd_message.set_token('USER', P_REQUESTOR);
476:
477: elsif (P_USER_STATUS_CODE = STATUS_WAITING) then
478:
479: -- check for a running or pending parent request
484: and phase_code in ('P', 'R');
485:
486:
487: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
488: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
489: else
490: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
491: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
492: end if;
486:
487: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
488: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
489: else
490: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
491: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
492: end if;
493:
494: else
487: if (P_PARENT_REQUEST_ID is null or parent_reqid = 0) then
488: fnd_message.set_name('FND', 'CONC-DG-WAITING NO PARENT');
489: else
490: fnd_message.set_name('FND', 'CONC-DG-PENDING WAITING');
491: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
492: end if;
493:
494: else
495: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
491: fnd_message.set_token('PARENT_REQUEST_ID', P_PARENT_REQUEST_ID);
492: end if;
493:
494: else
495: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
496: end if;
497:
498: end diag_pending;
499:
510: --
511: PROCEDURE diag_completed is
512: begin
513: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
514: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
515: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
516: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
517:
518: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
511: PROCEDURE diag_completed is
512: begin
513: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
514: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
515: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
516: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
517:
518: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
519: if (P_COMPLETION_TEXT is not null) then
512: begin
513: if (P_USER_STATUS_CODE = STATUS_COMPLETED_NORMAL) then
514: fnd_message.set_name('FND', 'CONC-DG-COMPLETED NORMAL');
515: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
516: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
517:
518: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
519: if (P_COMPLETION_TEXT is not null) then
520: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
516: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
517:
518: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
519: if (P_COMPLETION_TEXT is not null) then
520: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
521: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
522: else
523: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
524: end if;
517:
518: elsif (P_USER_STATUS_CODE = STATUS_ERROR) then
519: if (P_COMPLETION_TEXT is not null) then
520: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
521: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
522: else
523: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
524: end if;
525: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
519: if (P_COMPLETION_TEXT is not null) then
520: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR');
521: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
522: else
523: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
524: end if;
525: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
526: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
527:
521: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
522: else
523: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
524: end if;
525: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
526: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
527:
528: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
529: if (P_COMPLETION_TEXT is not null) then
522: else
523: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ERROR NO MSG');
524: end if;
525: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
526: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
527:
528: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
529: if (P_COMPLETION_TEXT is not null) then
530: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
526: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
527:
528: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
529: if (P_COMPLETION_TEXT is not null) then
530: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
531: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
532: else
533: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
534: end if;
527:
528: elsif (P_USER_STATUS_CODE = STATUS_WARNING) then
529: if (P_COMPLETION_TEXT is not null) then
530: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
531: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
532: else
533: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
534: end if;
535: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
529: if (P_COMPLETION_TEXT is not null) then
530: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARNING');
531: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
532: else
533: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
534: end if;
535: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
536: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
537:
531: fnd_message.set_token('COMPLETION_TEXT', P_COMPLETION_TEXT);
532: else
533: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
534: end if;
535: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
536: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
537:
538: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
539: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
532: else
533: fnd_message.set_name('FND', 'CONC-DG-COMPLETED WARN NO MSG');
534: end if;
535: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
536: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
537:
538: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
539: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
540: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
535: fnd_message.set_token('START_DATE', date_text(P_ACTUAL_START_DATE));
536: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
537:
538: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
539: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
540: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
541: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
536: fnd_message.set_token('COMPLETION_DATE', date_text(P_ACTUAL_COMPLETION_DATE));
537:
538: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
539: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
540: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
541: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
537:
538: elsif (P_USER_STATUS_CODE = STATUS_TERMINATED) then
539: fnd_message.set_name('FND', 'CONC-DG-COMPLETED ABORTED');
540: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
541: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
545: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
540: fnd_message.set_token('ABORT_DATE', date_text(P_LAST_UPDATE_DATE));
541: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
545: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
546: fnd_message.set_token('DELETE_DATE', date_text(P_LAST_UPDATE_DATE));
547: else
548: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
541: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
545: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
546: fnd_message.set_token('DELETE_DATE', date_text(P_LAST_UPDATE_DATE));
547: else
548: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
549: end if;
542:
543: elsif (P_USER_STATUS_CODE = STATUS_CANCELLED) then
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
545: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
546: fnd_message.set_token('DELETE_DATE', date_text(P_LAST_UPDATE_DATE));
547: else
548: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
549: end if;
550:
544: fnd_message.set_name('FND', 'CONC-DG-COMPLETED DELETED');
545: fnd_message.set_token('USER', P_UPDATED_BY_NAME);
546: fnd_message.set_token('DELETE_DATE', date_text(P_LAST_UPDATE_DATE));
547: else
548: fnd_message.set_name('FND', 'CONC-DG-BAD STATUS');
549: end if;
550:
551: end diag_completed;
552:
729: and R.requested_by = U2.user_id (+);
730:
731: exception
732: when no_data_found then
733: fnd_message.set_name('FND','CONC-Missing Request');
734: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
735: fnd_message.set_token('REQUEST', to_char(request_id));
736: raise diagnose_error;
737: when others then
730:
731: exception
732: when no_data_found then
733: fnd_message.set_name('FND','CONC-Missing Request');
734: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
735: fnd_message.set_token('REQUEST', to_char(request_id));
736: raise diagnose_error;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
731: exception
732: when no_data_found then
733: fnd_message.set_name('FND','CONC-Missing Request');
734: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
735: fnd_message.set_token('REQUEST', to_char(request_id));
736: raise diagnose_error;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
739: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
734: fnd_message.set_token('ROUTINE', 'FND_CONC.DIAGNOSE');
735: fnd_message.set_token('REQUEST', to_char(request_id));
736: raise diagnose_error;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
739: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
740: fnd_message.set_token ('REASON', sqlerrm, FALSE);
741: fnd_message.set_token (
742: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
735: fnd_message.set_token('REQUEST', to_char(request_id));
736: raise diagnose_error;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
739: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
740: fnd_message.set_token ('REASON', sqlerrm, FALSE);
741: fnd_message.set_token (
742: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
743: raise diagnose_error;
736: raise diagnose_error;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
739: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
740: fnd_message.set_token ('REASON', sqlerrm, FALSE);
741: fnd_message.set_token (
742: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
743: raise diagnose_error;
744: end;
737: when others then
738: fnd_message.set_name ('FND', 'SQL-Generic error');
739: fnd_message.set_token ('ERRNO', sqlcode, FALSE);
740: fnd_message.set_token ('REASON', sqlerrm, FALSE);
741: fnd_message.set_token (
742: 'ROUTINE', 'FND_CONC.DIAGNOSE', FALSE);
743: raise diagnose_error;
744: end;
745:
762: P_USER_PHASE_CODE := user_phase_code;
763: P_USER_STATUS_CODE := user_status_code;
764:
765: if (P_PROGRAM is NULL) then
766: fnd_message.set_name('FND', 'CONC-DG-BAD PROGRAM ID');
767: elsif (P_USER_PHASE_CODE = PHASE_RUNNING) then
768: diag_running (help_text);
769: elsif (P_USER_PHASE_CODE = PHASE_PENDING) then
770: diag_pending (help_text);
777: if status is null then
778: status := get_status(STATUS_NO_MANAGER);
779: end if;
780: else
781: fnd_message.set_name('FND', 'CONC-DG-BAD PHASE');
782: end if;
783:
784: help_text := fnd_message.get;
785:
780: else
781: fnd_message.set_name('FND', 'CONC-DG-BAD PHASE');
782: end if;
783:
784: help_text := fnd_message.get;
785:
786: exception
787: when diagnose_error then
788: help_text := fnd_message.get;
784: help_text := fnd_message.get;
785:
786: exception
787: when diagnose_error then
788: help_text := fnd_message.get;
789:
790: end diagnose;
791:
792:
871: return TRUE;
872: exception
873: when no_data_found then
874: if (print) then
875: fnd_message.set_name('FND','CONC-DG-IM INACTIVE');
876: end if;
877: return FALSE;
878: end icm_alive;
879: