[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;