41:
42: l_msg_text VARCHAR2(32767) ;
43: l_operation VARCHAR2(4000) := NULL ;
44: l_description VARCHAR2(4000) := NULL ;
45: l_fnd_message VARCHAR2(4000) := NULL ;
46: l_in_tmr_q NUMBER ;
47: l_next_timer VARCHAR2(20);
48:
49: invalid_dummy_timer EXCEPTION;
166: WHEN invalid_dummy_timer THEN
167:
168: ROLLBACK TO dequeue_timer ;
169:
170: fnd_message.set_name ('XNP', 'INVALID_DUMMY_TIMER') ;
171:
172: fnd_message.set_token ('DUMMY_TIMER_ID',
173: l_msg_header.message_id) ;
174:
168: ROLLBACK TO dequeue_timer ;
169:
170: fnd_message.set_name ('XNP', 'INVALID_DUMMY_TIMER') ;
171:
172: fnd_message.set_token ('DUMMY_TIMER_ID',
173: l_msg_header.message_id) ;
174:
175: l_fnd_message:= FND_MESSAGE.get ;
176:
171:
172: fnd_message.set_token ('DUMMY_TIMER_ID',
173: l_msg_header.message_id) ;
174:
175: l_fnd_message:= FND_MESSAGE.get ;
176:
177: xnp_message.update_status(l_msg_header.message_id,
178: 'FAILED',
179: l_fnd_message) ;
175: l_fnd_message:= FND_MESSAGE.get ;
176:
177: xnp_message.update_status(l_msg_header.message_id,
178: 'FAILED',
179: l_fnd_message) ;
180:
181: WHEN timer_start_failed THEN
182:
183: ROLLBACK TO dequeue_timer ;
181: WHEN timer_start_failed THEN
182:
183: ROLLBACK TO dequeue_timer ;
184:
185: fnd_message.set_name ('XNP', 'START_TIMER_FAILED') ;
186:
187:
188: fnd_message.set_token ('ACTUAL_TIMER_CODE',
189: l_next_timer) ;
184:
185: fnd_message.set_name ('XNP', 'START_TIMER_FAILED') ;
186:
187:
188: fnd_message.set_token ('ACTUAL_TIMER_CODE',
189: l_next_timer) ;
190:
191: fnd_message.set_token ('ERROR_CODE',
192: l_error_code) ;
187:
188: fnd_message.set_token ('ACTUAL_TIMER_CODE',
189: l_next_timer) ;
190:
191: fnd_message.set_token ('ERROR_CODE',
192: l_error_code) ;
193:
194: fnd_message.set_token ('ERROR_MESSAGE',
195: l_error_message) ;
190:
191: fnd_message.set_token ('ERROR_CODE',
192: l_error_code) ;
193:
194: fnd_message.set_token ('ERROR_MESSAGE',
195: l_error_message) ;
196:
197: l_fnd_message:= FND_MESSAGE.get ;
198:
193:
194: fnd_message.set_token ('ERROR_MESSAGE',
195: l_error_message) ;
196:
197: l_fnd_message:= FND_MESSAGE.get ;
198:
199: xnp_message.update_status(l_msg_header.message_id,
200: 'FAILED',
201: l_fnd_message) ;
197: l_fnd_message:= FND_MESSAGE.get ;
198:
199: xnp_message.update_status(l_msg_header.message_id,
200: 'FAILED',
201: l_fnd_message) ;
202:
203: WHEN failed_to_move_message THEN
204:
205: ROLLBACK TO dequeue_timer ;
203: WHEN failed_to_move_message THEN
204:
205: ROLLBACK TO dequeue_timer ;
206:
207: fnd_message.set_name ('XNP', 'TIMER_MOVE_FAILED') ;
208:
209: fnd_message.set_token ('TIMER_ID',
210: l_msg_header.message_id) ;
211:
205: ROLLBACK TO dequeue_timer ;
206:
207: fnd_message.set_name ('XNP', 'TIMER_MOVE_FAILED') ;
208:
209: fnd_message.set_token ('TIMER_ID',
210: l_msg_header.message_id) ;
211:
212: fnd_message.set_token ('ERROR_CODE',
213: l_error_code) ;
208:
209: fnd_message.set_token ('TIMER_ID',
210: l_msg_header.message_id) ;
211:
212: fnd_message.set_token ('ERROR_CODE',
213: l_error_code) ;
214:
215: fnd_message.set_token ('ERROR_MESSAGE',
216: l_error_message) ;
211:
212: fnd_message.set_token ('ERROR_CODE',
213: l_error_code) ;
214:
215: fnd_message.set_token ('ERROR_MESSAGE',
216: l_error_message) ;
217:
218: l_fnd_message:= FND_MESSAGE.get ;
219:
214:
215: fnd_message.set_token ('ERROR_MESSAGE',
216: l_error_message) ;
217:
218: l_fnd_message:= FND_MESSAGE.get ;
219:
220: xnp_message.update_status(l_msg_header.message_id,
221: 'FAILED',
222: l_fnd_message) ;
218: l_fnd_message:= FND_MESSAGE.get ;
219:
220: xnp_message.update_status(l_msg_header.message_id,
221: 'FAILED',
222: l_fnd_message) ;
223:
224: /* failed to update timer status in registry */
225:
226: WHEN failed_to_update_status THEN
226: WHEN failed_to_update_status THEN
227:
228: ROLLBACK TO dequeue_timer ;
229:
230: fnd_message.set_name ('XNP', 'UPDATE_TIMER_STATUS_FAILED') ;
231:
232: fnd_message.set_token ('TIMER_ID',
233: l_msg_header.message_id) ;
234:
228: ROLLBACK TO dequeue_timer ;
229:
230: fnd_message.set_name ('XNP', 'UPDATE_TIMER_STATUS_FAILED') ;
231:
232: fnd_message.set_token ('TIMER_ID',
233: l_msg_header.message_id) ;
234:
235: fnd_message.set_token ('ERROR_CODE',
236: l_error_code) ;
231:
232: fnd_message.set_token ('TIMER_ID',
233: l_msg_header.message_id) ;
234:
235: fnd_message.set_token ('ERROR_CODE',
236: l_error_code) ;
237:
238: fnd_message.set_token ('ERROR_MESSAGE',
239: l_error_message) ;
234:
235: fnd_message.set_token ('ERROR_CODE',
236: l_error_code) ;
237:
238: fnd_message.set_token ('ERROR_MESSAGE',
239: l_error_message) ;
240:
241: l_fnd_message:= FND_MESSAGE.get ;
242:
237:
238: fnd_message.set_token ('ERROR_MESSAGE',
239: l_error_message) ;
240:
241: l_fnd_message:= FND_MESSAGE.get ;
242:
243: xnp_message.update_status(l_msg_header.message_id,
244: 'FAILED',
245: l_fnd_message) ;
241: l_fnd_message:= FND_MESSAGE.get ;
242:
243: xnp_message.update_status(l_msg_header.message_id,
244: 'FAILED',
245: l_fnd_message) ;
246: END process;
247:
248:
249: PROCEDURE process(
263:
264: l_msg_text VARCHAR2(32767) ;
265: l_operation VARCHAR2(4000) := NULL ;
266: l_description VARCHAR2(4000) := NULL ;
267: l_fnd_message VARCHAR2(4000) := NULL ;
268: l_in_tmr_q NUMBER ;
269: l_next_timer VARCHAR2(20);
270:
271: invalid_dummy_timer EXCEPTION;
374: WHEN invalid_dummy_timer THEN
375:
376: ROLLBACK TO dequeue_timer ;
377:
378: fnd_message.set_name ('XNP', 'INVALID_DUMMY_TIMER') ;
379:
380: fnd_message.set_token ('DUMMY_TIMER_ID',
381: l_msg_header.message_id) ;
382:
376: ROLLBACK TO dequeue_timer ;
377:
378: fnd_message.set_name ('XNP', 'INVALID_DUMMY_TIMER') ;
379:
380: fnd_message.set_token ('DUMMY_TIMER_ID',
381: l_msg_header.message_id) ;
382:
383: l_fnd_message:= FND_MESSAGE.get ;
384:
379:
380: fnd_message.set_token ('DUMMY_TIMER_ID',
381: l_msg_header.message_id) ;
382:
383: l_fnd_message:= FND_MESSAGE.get ;
384:
385: xnp_message.update_status(l_msg_header.message_id,
386: 'FAILED',
387: l_fnd_message) ;
383: l_fnd_message:= FND_MESSAGE.get ;
384:
385: xnp_message.update_status(l_msg_header.message_id,
386: 'FAILED',
387: l_fnd_message) ;
388:
389: WHEN timer_start_failed THEN
390:
391: ROLLBACK TO dequeue_timer ;
389: WHEN timer_start_failed THEN
390:
391: ROLLBACK TO dequeue_timer ;
392:
393: fnd_message.set_name ('XNP', 'START_TIMER_FAILED') ;
394:
395:
396: fnd_message.set_token ('ACTUAL_TIMER_CODE',
397: l_next_timer) ;
392:
393: fnd_message.set_name ('XNP', 'START_TIMER_FAILED') ;
394:
395:
396: fnd_message.set_token ('ACTUAL_TIMER_CODE',
397: l_next_timer) ;
398:
399: fnd_message.set_token ('ERROR_CODE',
400: l_error_code) ;
395:
396: fnd_message.set_token ('ACTUAL_TIMER_CODE',
397: l_next_timer) ;
398:
399: fnd_message.set_token ('ERROR_CODE',
400: l_error_code) ;
401:
402: fnd_message.set_token ('ERROR_MESSAGE',
403: l_error_message) ;
398:
399: fnd_message.set_token ('ERROR_CODE',
400: l_error_code) ;
401:
402: fnd_message.set_token ('ERROR_MESSAGE',
403: l_error_message) ;
404:
405: l_fnd_message:= FND_MESSAGE.get ;
406:
401:
402: fnd_message.set_token ('ERROR_MESSAGE',
403: l_error_message) ;
404:
405: l_fnd_message:= FND_MESSAGE.get ;
406:
407: xnp_message.update_status(l_msg_header.message_id,
408: 'FAILED',
409: l_fnd_message) ;
405: l_fnd_message:= FND_MESSAGE.get ;
406:
407: xnp_message.update_status(l_msg_header.message_id,
408: 'FAILED',
409: l_fnd_message) ;
410:
411: WHEN failed_to_move_message THEN
412:
413: ROLLBACK TO dequeue_timer ;
411: WHEN failed_to_move_message THEN
412:
413: ROLLBACK TO dequeue_timer ;
414:
415: fnd_message.set_name ('XNP', 'TIMER_MOVE_FAILED') ;
416:
417: fnd_message.set_token ('TIMER_ID',
418: l_msg_header.message_id) ;
419:
413: ROLLBACK TO dequeue_timer ;
414:
415: fnd_message.set_name ('XNP', 'TIMER_MOVE_FAILED') ;
416:
417: fnd_message.set_token ('TIMER_ID',
418: l_msg_header.message_id) ;
419:
420: fnd_message.set_token ('ERROR_CODE',
421: l_error_code) ;
416:
417: fnd_message.set_token ('TIMER_ID',
418: l_msg_header.message_id) ;
419:
420: fnd_message.set_token ('ERROR_CODE',
421: l_error_code) ;
422:
423: fnd_message.set_token ('ERROR_MESSAGE',
424: l_error_message) ;
419:
420: fnd_message.set_token ('ERROR_CODE',
421: l_error_code) ;
422:
423: fnd_message.set_token ('ERROR_MESSAGE',
424: l_error_message) ;
425:
426: l_fnd_message:= FND_MESSAGE.get ;
427:
422:
423: fnd_message.set_token ('ERROR_MESSAGE',
424: l_error_message) ;
425:
426: l_fnd_message:= FND_MESSAGE.get ;
427:
428: xnp_message.update_status(l_msg_header.message_id,
429: 'FAILED',
430: l_fnd_message) ;
426: l_fnd_message:= FND_MESSAGE.get ;
427:
428: xnp_message.update_status(l_msg_header.message_id,
429: 'FAILED',
430: l_fnd_message) ;
431:
432: /* failed to update timer status in registry */
433:
434: WHEN failed_to_update_status THEN
434: WHEN failed_to_update_status THEN
435:
436: ROLLBACK TO dequeue_timer ;
437:
438: fnd_message.set_name ('XNP', 'UPDATE_TIMER_STATUS_FAILED') ;
439:
440: fnd_message.set_token ('TIMER_ID',
441: l_msg_header.message_id) ;
442:
436: ROLLBACK TO dequeue_timer ;
437:
438: fnd_message.set_name ('XNP', 'UPDATE_TIMER_STATUS_FAILED') ;
439:
440: fnd_message.set_token ('TIMER_ID',
441: l_msg_header.message_id) ;
442:
443: fnd_message.set_token ('ERROR_CODE',
444: l_error_code) ;
439:
440: fnd_message.set_token ('TIMER_ID',
441: l_msg_header.message_id) ;
442:
443: fnd_message.set_token ('ERROR_CODE',
444: l_error_code) ;
445:
446: fnd_message.set_token ('ERROR_MESSAGE',
447: l_error_message) ;
442:
443: fnd_message.set_token ('ERROR_CODE',
444: l_error_code) ;
445:
446: fnd_message.set_token ('ERROR_MESSAGE',
447: l_error_message) ;
448:
449: l_fnd_message:= FND_MESSAGE.get ;
450:
445:
446: fnd_message.set_token ('ERROR_MESSAGE',
447: l_error_message) ;
448:
449: l_fnd_message:= FND_MESSAGE.get ;
450:
451: xnp_message.update_status(l_msg_header.message_id,
452: 'FAILED',
453: l_fnd_message) ;
449: l_fnd_message:= FND_MESSAGE.get ;
450:
451: xnp_message.update_status(l_msg_header.message_id,
452: 'FAILED',
453: l_fnd_message) ;
454: END process;
455:
456:
457: /***********************************************************************