DBA Data[Home] [Help]

PACKAGE BODY: APPS.IEM_CONCURRENT_NEXT_GEN_PVT

Source


1 PACKAGE BODY IEM_CONCURRENT_NEXT_GEN_PVT as
2 /* $Header: iemngcsb.pls 120.0 2005/06/02 14:11:42 appldev noship $*/
3 
4 G_PKG_NAME CONSTANT varchar2(30) :='IEM_CONCURRENT_NEXT_GEN_PVT ';
5 
6 PROCEDURE StartProcess(ERRBUF   OUT NOCOPY     		VARCHAR2,
7                        RETCODE  OUT NOCOPY     		VARCHAR2,
8 		       p_delay_worker_start_time        VARCHAR2,
9 		       p_schedule_worker_stop_date VARCHAR2,
10                        p_period_to_wake_up  		NUMBER,
11                        p_number_of_threads  		NUMBER,
12                        p_number_of_msgs     		NUMBER)
13 IS
14     l_request_id              NUMBER;
15     l_Error_Message           VARCHAR2(2000);
16     l_call_status             BOOLEAN;
17     l_time_to_sch	      VARCHAR2(25);
18 
19     MAIN_WORKER_NOT_SUBMITTED EXCEPTION;
20     REPEAT_OPTIONS_NOT_SET    EXCEPTION;
21     WORKER_NOT_SUBMITTED      EXCEPTION;
22 --    RETRY_NOT_SUBMITTED	      EXCEPTION;
23     INVALID_HOUR	      EXCEPTION;
24     INVALID_MINUTE	      EXCEPTION;
25 BEGIN
26         UPDATE IEM_COMP_RT_STATS -- New table name
27         set VALUE='T'
28         WHERE TYPE='MAILPROC' and PARAM='RUNTIME STATUS';
29 
30     fnd_file.put_line(fnd_file.log, 'p_delay_worker_start_time = ' || p_delay_worker_start_time);
31     fnd_file.put_line(fnd_file.log, 'p_schedule_worker_stop_date = ' || p_schedule_worker_stop_date);
32     fnd_file.put_line(fnd_file.log, 'p_period_to_wake_up = ' || to_char(p_period_to_wake_up));
33     fnd_file.put_line(fnd_file.log, 'p_number_of_threads = ' || to_char(p_number_of_threads));
34     fnd_file.put_line(fnd_file.log, 'p_number_of_msgs = ' || to_char(p_number_of_msgs));
35 
36     fnd_file.put_line(fnd_file.log, 'Starting Processing');
37 
38 
39    FOR i in 1..p_number_of_threads loop
40 
41 		l_call_status := fnd_request.set_repeat_options('',p_period_to_wake_up,'MINUTES','END',p_schedule_worker_stop_date);
42 
43 
44 	 l_request_id := fnd_request.submit_request('IEM', 'IEMNGNWW', '',p_delay_worker_start_time,FALSE,1,'F','T','MAILPREPROC','IEM_MAIL','NO_WAIT',p_number_of_msgs);
45 
46         if not l_call_status then
47             rollback;
48             raise REPEAT_OPTIONS_NOT_SET;
49         end if;
50 
51         fnd_file.put_line(fnd_file.log, 'Worker number ' || to_char(i) || ' Request Id ' || to_char(l_request_id));
52 
53         if l_request_id = 0 then
54             rollback;
55             raise WORKER_NOT_SUBMITTED;
56         else
57             commit;
58         end if;
59 
60    end loop;
61 
62     Commit work;
63     fnd_file.put_line(fnd_file.log, 'Controller Exited');
64 
65 EXCEPTION
66 	WHEN INVALID_HOUR THEN
67         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_INVALID_HOUR');
68         l_Error_Message := FND_MESSAGE.GET;
69         fnd_file.put_line(fnd_file.log, l_Error_Message);
70         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
71 
72         WHEN INVALID_MINUTE THEN
73         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_INVALID_MINUTE');
74         l_Error_Message := FND_MESSAGE.GET;
75         fnd_file.put_line(fnd_file.log, l_Error_Message);
76         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
77 
78         WHEN REPEAT_OPTIONS_NOT_SET THEN
79         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_REPEAT_OPTIONS_NOT_SET');
80         l_Error_Message := FND_MESSAGE.GET;
81         fnd_file.put_line(fnd_file.log, l_Error_Message);
82         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
83 
84         WHEN MAIN_WORKER_NOT_SUBMITTED THEN
85         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_MAIN_WORKER_NOT_SUBMITTED');
86         l_Error_Message := FND_MESSAGE.GET;
87         fnd_file.put_line(fnd_file.log, l_Error_Message);
88         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
89 
90         WHEN WORKER_NOT_SUBMITTED THEN
91         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_WORKER_NOT_SUBMITTED');
92         l_Error_Message := FND_MESSAGE.GET;
93         fnd_file.put_line(fnd_file.log, l_Error_Message);
94         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
95 
96 /*
97         WHEN RETRY_NOT_SUBMITTED THEN
98         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_RETRY_NOT_SUBMITTED');
99         l_Error_Message := FND_MESSAGE.GET;
100         fnd_file.put_line(fnd_file.log, l_Error_Message);
101         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
102 */
103         WHEN OTHERS THEN
104         FND_MESSAGE.SET_NAME('IEM','IEM_ADM_UNXP_ERROR');
105         l_Error_Message := FND_MESSAGE.GET;
106         fnd_file.put_line(fnd_file.log, l_Error_Message);
107         l_call_status := FND_CONCURRENT.SET_COMPLETION_STATUS('ERROR', l_Error_Message);
108 END StartProcess;
109 
110 END IEM_CONCURRENT_NEXT_GEN_PVT;