26: IS
27: CURSOR c_timer_data IS
28: SELECT timer_id, timer_message_code,
29: next_timer,start_time
30: FROM xnp_timer_registry
31: WHERE reference_id = p_reference_id
32: AND (timer_message_code = p_timer_message_code
33: OR next_timer = p_timer_message_code
34: )
248: IS
249:
250: CURSOR c_recalculate_all_timers IS
251: SELECT timer_message_code
252: FROM xnp_timer_registry
253: WHERE reference_id = p_reference_id
254: AND status = 'ACTIVE' ;
255:
256:
286:
287: IS
288: CURSOR c_timer_status IS
289: SELECT status
290: FROM xnp_timer_registry
291: WHERE timer_id = p_timer_id;
292:
293: BEGIN
294:
336: -- status asc (ACTIVE, EXPIRED, REMOVED)
337: -- Only the first record will be processed.
338:
339: CURSOR c_timer_status IS
340: SELECT timer_id, status FROM xnp_timer_registry
341: WHERE reference_id = p_reference_id
342: AND timer_message_code = p_timer_message_code
343: ORDER BY status ASC;
344:
392: -- Only the first record will be processed.
393:
394: CURSOR c_update_timer_status IS
395: SELECT *
396: FROM xnp_timer_registry
397: WHERE reference_id = p_reference_id
398: AND timer_message_code = p_timer_message_code
399: ORDER BY status ASC
400: FOR UPDATE OF status;
398: AND timer_message_code = p_timer_message_code
399: ORDER BY status ASC
400: FOR UPDATE OF status;
401:
402: v_Timer_Registry xnp_timer_registry%ROWTYPE;
403: BEGIN
404: x_error_code := 0;
405: x_error_message := NULL ;
406:
408: FETCH c_update_timer_status INTO v_Timer_Registry;
409: IF c_update_timer_status%NOTFOUND THEN
410: x_error_code := xnp_errors.g_timer_not_found;
411: ELSE
412: UPDATE xnp_timer_registry
413: SET status = p_status
414: WHERE CURRENT OF c_update_timer_status;
415: END IF;
416:
436: )
437: IS
438: CURSOR c_update_timer_status IS
439: SELECT *
440: FROM xnp_timer_registry
441: WHERE timer_id = p_timer_id
442: FOR UPDATE OF status;
443:
444: v_Timer_Registry xnp_timer_registry%ROWTYPE;
440: FROM xnp_timer_registry
441: WHERE timer_id = p_timer_id
442: FOR UPDATE OF status;
443:
444: v_Timer_Registry xnp_timer_registry%ROWTYPE;
445:
446: BEGIN
447: x_error_code := 0;
448: x_error_message := NULL ;
455: fnd_message.set_name ('XNP', 'TIMER_ID_NOT_FOUND') ;
456: fnd_message.set_token ('TIMER_ID',p_timer_id) ;
457: x_error_message:= FND_MESSAGE.get ;
458: ELSE
459: UPDATE xnp_timer_registry
460: SET status = p_status
461: WHERE CURRENT OF c_update_timer_status;
462: END IF;
463: CLOSE c_update_timer_status;
588: -- In case timer is not active, it will remain in its original state and
589: -- will not be removed as it is the business logic that timer has expired
590:
591: CURSOR c_timer_status_id IS
592: SELECT timer_id FROM xnp_timer_registry
593: WHERE reference_id = p_reference_id
594: AND (timer_message_code = p_timer_message_code
595: OR next_timer = p_timer_message_code)
596: AND status = 'ACTIVE'
671: ,x_error_message OUT NOCOPY VARCHAR2
672: )
673: IS
674: CURSOR c_deregister_timers IS
675: SELECT timer_id FROM xnp_timer_registry
676: WHERE order_id = p_order_id
677: AND status = 'ACTIVE';
678:
679: l_error_code NUMBER;
719: ,x_error_message OUT NOCOPY VARCHAR2
720: )
721: IS
722: CURSOR c_deregister_timers IS
723: SELECT timer_id FROM xnp_timer_registry
724: WHERE wi_instance_id = p_workitem_instance_id
725: AND status = 'ACTIVE';
726:
727: l_error_code NUMBER;
767: l_next_timer VARCHAR2(80) ;
768:
769: CURSOR c_next_timer IS
770: SELECT next_timer
771: FROM xnp_timer_registry
772: WHERE timer_id = p_timer_id ;
773:
774: BEGIN
775:
796: IS
797: CURSOR c_timer_data IS
798: SELECT timer_id, timer_message_code,
799: next_timer
800: FROM xnp_timer_registry
801: WHERE reference_id = p_reference_id
802: AND (timer_message_code = p_timer_message_code
803: OR next_timer = p_timer_message_code
804: )
887: )
888: IS
889: CURSOR c_restart_all_timers IS
890: SELECT timer_message_code
891: FROM xnp_timer_registry
892: WHERE reference_id = p_reference_id
893: AND status = 'ACTIVE' ;
894:
895: l_timer_message_code VARCHAR2(20);