DBA Data[Home] [Help]

PACKAGE BODY: APPS.CCT_VALIDATION_PUB

Source


1 PACKAGE BODY CCT_VALIDATION_PUB as
2 /* $Header: cctpvalb.pls 120.2 2009/04/16 05:14:08 vhegde ship $*/
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) :='CCT_VALIDATION_PUB';
5 
6 PROCEDURE VALIDATE_OTM_PARAMS
7 (
8   p_server_group_id IN NUMBER,
9   p_server_id IN NUMBER,
10   p_env_lang IN VARCHAR2, -- language
11   p_param_ids IN IEO_STRING_VARR, -- list of param ids
12   p_param_values IN IEO_STRING_VARR, -- list of param values
13   x_err_msg_count OUT NOCOPY NUMBER, -- number of error messages
14   x_err_msgs OUT NOCOPY IEO_STRING_VARR, -- list of error messages.
15   x_return_status OUT NOCOPY VARCHAR2,
16   x_msg_count OUT NOCOPY NUMBER,
17   x_msg_data OUT NOCOPY VARCHAR2
18 )
19 IS
20 
21 l_api_name			CONSTANT VARCHAR2(30)	:= 'VALIDATE_OTM_PARAMS';
22 l_api_version           	CONSTANT NUMBER 		:= 1.0;
23 x_err_num NUMBER;
24 x_err_msg VARCHAR2(256);
25 l_preview_enabled NUMBER;
26 l_preview_wc_idx NUMBER;
27 l_iqd_web_callback VARCHAR2(256);
28 l_max_preview_time_idx NUMBER;
29 l_msg_code VARCHAR2(256);
30 
31 BEGIN
32 	-- Standard Start of API savepoint
33 
34   SAVEPOINT	VALIDATE_OTM_PARAMS_PUB;
35 
36 	--  Initialize API return status to success
37   x_return_status := FND_API.G_RET_STS_SUCCESS;
38   x_msg_count := 0;
39   x_msg_data := null;
40   x_err_msg_count := 0;
41   x_err_msgs := IEO_STRING_VARR();
42 
43 	-- API body
44 
45   l_preview_wc_idx := -1;
46   l_max_preview_time_idx := -1;
47 
48   FOR i IN 1..p_param_ids.count LOOP
49     if (p_param_ids(i) = 10201) then
50       l_preview_wc_idx := i;
51     elsif (p_param_ids(i) = 10202) then
52       l_max_preview_time_idx := i;
53     end if;
54   END LOOP;
55   l_preview_enabled := 0;
56   if ((l_preview_wc_idx > 0) and
57       (UPPER(p_param_values(l_preview_wc_idx)) = UPPER('true'))) then
58     l_preview_enabled := 1;
59     -- preview webcallback should be true only if iqd web callback is enabled
60     begin
61       select value into l_iqd_web_callback from ieo_svr_values
62       where server_id =
63         (select server_id from ieo_svr_servers
64          where type_id = 10110
65           and member_svr_group_id =  p_server_group_id)
66         and param_id = 10026;
67     exception
68     when NO_DATA_FOUND  then
69       begin
70       select value into l_iqd_web_callback from ieo_svr_values
71       where server_id =
72         (select server_id from ieo_svr_servers
73          where type_id = 10110
74           and member_svr_group_id =
75             (select group_group_id from ieo_svr_groups where
76              server_group_id = p_server_group_id))
77         and param_id = 10026;
78       exception
79       when NO_DATA_FOUND  then
80         l_iqd_web_callback := null;
81       end;
82     end;
83     if ((l_iqd_web_callback is null) or
84        (UPPER(l_iqd_web_callback) <> UPPER('true'))) then
85       x_err_msg_count := x_err_msg_count + 1;
86       x_err_msgs.extend();
87       l_msg_code := 'CCT_PARAM_ERR_PREVIEW_WC';
88       SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
89         FROM FND_NEW_MESSAGES
90         WHERE LANGUAGE_CODE = p_env_lang
91 --        (SELECT LANGUAGE_CODE
92 --          FROM FND_LANGUAGES
93 --          WHERE NLS_LANGUAGE = p_env_lang)
94         AND APPLICATION_ID = 172
95       AND MESSAGE_NAME = l_msg_code;
96     end if;
97   end if;
98 
99   if ((l_max_preview_time_idx > 0) and
100       (p_param_values(l_max_preview_time_idx) is not null) and
101       (l_preview_enabled = 0)) then
102   -- max preview time should be set only if preview web callback is enabled.
103     x_err_msg_count := x_err_msg_count + 1;
104     x_err_msgs.extend();
105     l_msg_code := 'CCT_PARAM_ERR_MAX_PREVIEW_TIME';
106     SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
107       FROM FND_NEW_MESSAGES
108       WHERE LANGUAGE_CODE = p_env_lang
109 --      (SELECT LANGUAGE_CODE
110 --        FROM FND_LANGUAGES
111 --        WHERE NLS_LANGUAGE = p_env_lang)
112       AND APPLICATION_ID = 172
113     AND MESSAGE_NAME = l_msg_code;
114   end if;
115 	-- End of API body.
116 EXCEPTION
117 
118 	WHEN OTHERS THEN
119     ROLLBACK TO VALIDATE_OTM_PARAMS_PUB;
120 		x_return_status := FND_API.G_RET_STS_ERROR ;
121     x_msg_count := 1;
122     x_err_num := SQLCODE;
123     x_err_msg := SUBSTR(SQLERRM, 1, 100);
124     x_msg_data := 'CCT_VALIDATION_PUB: CCT_ERROR '
125                     || ' ErrorCode = ' || x_err_num
126                     || ' ErrorMsg = ' || x_err_msg;
127 
128 
129   --dbms_output.put_line(x_msg_data);
130 
131 END VALIDATE_OTM_PARAMS;
132 
133 
134 FUNCTION GetParamID(
135 	p_param_name	IN	VARCHAR,
136 	p_type_id	IN	NUMBER
137 )
138 RETURN NUMBER IS
139 
140   l_param_id		NUMBER;
141 
142 BEGIN
143 
144   select param_id into l_param_id
145     from IEO_SVR_PARAMS
146     where param_name = p_param_name
147 	  AND type_id = p_type_id;
148 
149   return l_param_id;
150 
151 EXCEPTION
152   WHEN OTHERS THEN
153     return -1;
154 
155 END GetParamID;
156 
157 
158 PROCEDURE VALIDATE_ITS_PARAMS
159 (
160   p_server_group_id IN NUMBER,
161   p_server_id IN NUMBER,
162   p_env_lang IN VARCHAR2, -- language
163   p_param_ids IN IEO_STRING_VARR, -- list of param ids
164   p_param_values IN IEO_STRING_VARR, -- list of param values
165   x_err_msg_count OUT NOCOPY NUMBER, -- number of error messages
166   x_err_msgs OUT NOCOPY IEO_STRING_VARR,  -- list of error messages.
167   x_return_status OUT NOCOPY VARCHAR2,
168   x_msg_count OUT NOCOPY NUMBER,
169   x_msg_data OUT NOCOPY VARCHAR2
170 )
171 IS
172 
173 l_api_name			CONSTANT VARCHAR2(30)	:= 'VALIDATE_ITS_PARAMS';
174 l_api_version           	CONSTANT NUMBER 		:= 1.0;
175 x_err_num NUMBER;
176 x_err_msg VARCHAR2(256);
177 
178 l_rp_param_id			VARCHAR(30) := null;
179 l_mw_param_id			VARCHAR(30) := null;
180 l_rp_param_name			CONSTANT VARCHAR(30)	:= 'ROUTE_POINTS';
181 l_mw_param_name			CONSTANT VARCHAR(30)	:= 'TELE_MIDDLEWARE_CONFIG';
182 l_mw_param_pos			NUMBER			:= 0;
183 l_rp_param_pos			NUMBER 			:= 0;
184 l_rp_params			IEO_STRING_VARR		:= IEO_STRING_VARR();
185 
186 
187 -- Increasing the varchar size for the bug 7632385
188 
189 l_mw_param			VARCHAR2(1996) := null;
190 l_temp				VARCHAR2(2000) := null;
191 l_temp1				VARCHAR2(2000) := null;
192 
193 l_tempNum			NUMBER			:= 0;
194 l_tempNum1			NUMBER			:= 0;
195 l_temp_varray			IEO_STRING_VARR		:= IEO_STRING_VARR();
196 l_begPos	NUMBER := 1;
197 l_endPos	NUMBER := 1;
198 
199 -- Increasing the varchar size for the bug 7632385
200 l_currVal	VARCHAR2(1000);
201 
202 l_rpCount	NUMBER := 1;
203 l_length	NUMBER := 0;
204 l_msg_code VARCHAR2(256);
205 l_comma_str VARCHAR2(1);
206 l_its_server_type NUMBER := 10090;
207 
208 BEGIN
209 	-- Standard Start of API savepoint
210 
211   SAVEPOINT	VALIDATE_ITS_PARAMS_PUB;
212 
213 	--  Initialize API return status to success
214   x_return_status := FND_API.G_RET_STS_SUCCESS;
215   x_msg_count := 0;
216   x_msg_data := null;
217   x_err_msg_count := 0;
218   x_err_msgs := IEO_STRING_VARR();
219 
220 	-- API body
221 
222   -- If no param_ids passed, return
223   IF p_param_ids.count <= 0 THEN
224     --dbms_output.put_line('Params Id count <= 0');
225     RETURN;
226   END IF;
227 
228   l_rp_param_id := to_char(GetParamID(l_rp_param_name, 10090));
229   l_mw_param_id := to_char(GetParamID(l_mw_param_name, 10090));
230   --dbms_output.put_line('RP Param ID: ' || l_rp_param_id || ', MW Param ID: ' || l_mw_param_id);
231 
232   -- Gather the paramter values that need to be validated
233   -- Route points and middleware configs
234   FOR i IN p_param_ids.first..p_param_ids.last LOOP
235      --dbms_output.put_line('Current param id:' || p_param_ids(i));
236      IF p_param_ids(i) = l_rp_param_id THEN
237 	-- param is 'ROUTE_POINT'
238 	-- dbms_output.put_line('param is route point');
239 	l_rp_param_pos := i;
240 	l_temp1 := p_param_values(i);
241 
242         IF l_temp1 = ' ' THEN
243 	   --x_msg_data := 'l_temp1 is empty1';
244 	   NULL;
245         ELSIF l_temp1 is NULL THEN
246 	   --x_msg_data := 'l_temp1 is empty2';
247  	   NULL;
248 	ELSE
249 	  select LENGTH(l_temp1) into l_length from DUAL;
250 	  LOOP
251 
252 	    IF l_length < l_begPos THEN EXIT;
253 	    END IF;
254 
255       l_comma_str := ',';
256 	    select INSTR(l_temp1, l_comma_str , l_begPos, 1) into l_endPos from DUAL;
257 
258 	    IF l_endPos = 0 THEN
259 	      select SUBSTR(l_temp1, l_begPos) into l_currVal from DUAL;
260 	      IF l_currVal is NULL THEN
261         x_err_msgs.EXTEND;
262         l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MISMATCH';
263     		SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
264       	  	FROM FND_NEW_MESSAGES
265       	  	WHERE LANGUAGE_CODE = p_env_lang
266 --      		(SELECT LANGUAGE_CODE
267 --        	   	FROM FND_LANGUAGES
268 --        	   	WHERE NLS_LANGUAGE = p_env_lang)
269       			AND APPLICATION_ID = 172
270    			AND MESSAGE_NAME = l_msg_code;
271         x_err_msg_count := x_err_msg_count + 1;
272 	    	RETURN;
273 	      END IF;
274 	      IF l_currVal = ' ' THEN
275         x_err_msgs.EXTEND;
276         l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MISMATCH';
277     		SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
278       	  	FROM FND_NEW_MESSAGES
279       	  	WHERE LANGUAGE_CODE = p_env_lang
280 --      		(SELECT LANGUAGE_CODE
281 --        	   	FROM FND_LANGUAGES
282 --        	   	WHERE NLS_LANGUAGE = p_env_lang)
283       			AND APPLICATION_ID = 172
284    			AND MESSAGE_NAME = l_msg_code;
285 		x_err_msg_count := x_err_msg_count + 1;
286 	    	RETURN;
287 	      END IF;
288 
289 
290 	      l_rp_params.EXTEND;
291 	      l_rp_params(l_rpCount) := l_currVal;
292 	      l_rpCount := l_rpCount + 1;
293 	      --dbms_output.put_line('l_begPos: ' || l_begPos);
294 	      --dbms_output.put_line('l_endPos: ' || l_endPos);
295 	      --dbms_output.put_line('l_currVal: ' || l_currVal);
296 	      EXIT;
297 	    ELSE
298 	      select SUBSTR(l_temp1, l_begPos, l_endPos - l_begPos) into l_currVal from DUAL;
299 	      IF l_currVal is NULL THEN
300 		x_err_msgs.EXTEND;
301     l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MISMATCH';
302     		SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
303       	  	FROM FND_NEW_MESSAGES
304       	  	WHERE LANGUAGE_CODE = p_env_lang
305 --      		(SELECT LANGUAGE_CODE
306 --        	   	FROM FND_LANGUAGES
307 --        	   	WHERE NLS_LANGUAGE = p_env_lang)
308       			AND APPLICATION_ID = 172
309    			AND MESSAGE_NAME = l_msg_code;
310 		x_err_msg_count := x_err_msg_count + 1;
311 	    	RETURN;
312 	      END IF;
313 	      IF l_currVal = ' ' THEN
314 		x_err_msgs.EXTEND;
315     l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MISMATCH';
316     		SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
317       	  	FROM FND_NEW_MESSAGES
318       	  	WHERE LANGUAGE_CODE = p_env_lang
319 --      		(SELECT LANGUAGE_CODE
320 --        	   	FROM FND_LANGUAGES
321 --        	   	WHERE NLS_LANGUAGE = p_env_lang)
322       			AND APPLICATION_ID = 172
323    			AND MESSAGE_NAME = l_msg_code;
324 		x_err_msg_count := x_err_msg_count + 1;
325 	    	RETURN;
326 	      END IF;
327 
328 	      l_rp_params.EXTEND;
329 	      l_rp_params(l_rpCount) := l_currVal;
330 	      l_rpCount := l_rpCount + 1;
331 
332 	      --dbms_output.put_line('l_begPos: ' || l_begPos);
333 	      --dbms_output.put_line('l_endPos: ' || l_endPos);
334 	      --dbms_output.put_line('l_currVal: ' || l_currVal);
335 	      l_begPos := l_endPos + 1;
336 	    END IF;
337 	  END LOOP;
338 	END IF;
339      ELSIF p_param_ids(i) = l_mw_param_id THEN
340 	-- param is 'TELE_MIDDLEWARE_CONFIG'
341 	l_mw_param_pos := i;
342 	-- dbms_output.put_line('param is mw config');
343 	l_mw_param := p_param_values(i);
344      END IF;
345   END LOOP;
346 
347   -- Validated the collected Route points and middleware config paramters
348   --dbms_output.put_line('Before checking route point varray');
349   IF l_rp_params.count <= 0 THEN
350     -- No route point defined => Make sure no other ITS Servers
351     -- has the same MW defined
352     --dbms_output.put_line('l_rp_params.count <= 0 ');
353     select count(*) into l_tempNum
354       from IEO_SVR_VALUES vals, IEO_SVR_SERVERS servers
355       where vals.server_id = servers.server_id
356 	    AND servers.type_id = l_its_server_type
357 	    AND vals.server_id <> p_server_id
358             AND servers.member_svr_group_id = p_server_group_id
359 	    AND vals.param_id = l_mw_param_id
360 	    AND vals.value = l_mw_param;
361     --dbms_output.put_line('l_tempNum: ' || l_tempNum);
362     IF l_tempNum > 0 THEN
363 	x_err_msgs.EXTEND;
364   l_msg_code := 'CCT_PARAM_ERR_ITS_MW_MONITERED';
365     	SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
366       	  FROM FND_NEW_MESSAGES
367       	  WHERE LANGUAGE_CODE = p_env_lang
368 --      		(SELECT LANGUAGE_CODE
369 --        	   FROM FND_LANGUAGES
370 --        	   WHERE NLS_LANGUAGE = p_env_lang)
371       		AND APPLICATION_ID = 172
372    		AND MESSAGE_NAME = l_msg_code;
373 	x_err_msg_count := x_err_msg_count + 1;
374     END IF;
375     RETURN;
376   ELSE
377     -- Retrieve the number of other ITS Servers
378     -- monitoring the same middlewares and monitoring
379     -- all the route points
380     select count(*) into l_tempNum
381       from IEO_SVR_VALUES vals, IEO_SVR_SERVERS servers
382       where vals.server_id = servers.server_id
383 	    AND servers.type_id = l_its_server_type
384 	    AND servers.server_id <> p_server_id
385             AND servers.member_svr_group_id = p_server_group_id
386 	    AND vals.param_id = l_mw_param_id
387 	    AND vals.value = l_mw_param
388 	    AND not exists (
389 		select 1
390 		  from IEO_SVR_VALUES v
391 		  where v.server_id = servers.server_id
392 		        AND v.param_id = l_rp_param_id);
393 
394     IF l_tempNum > 0 THEN
395 	x_err_msgs.EXTEND;
396   l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MONITERED';
397     	SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
398       	  FROM FND_NEW_MESSAGES
399       	  WHERE LANGUAGE_CODE = p_env_lang
400 --      		(SELECT LANGUAGE_CODE
401 --        	   FROM FND_LANGUAGES
402 --        	   WHERE NLS_LANGUAGE = p_env_lang)
403       		AND APPLICATION_ID = 172
404    		AND MESSAGE_NAME = l_msg_code;
405 	x_err_msg_count := x_err_msg_count + 1;
406 	RETURN;
407     END IF;
408   END IF;
409 
410   IF l_mw_param is null THEN
411     -- Has route point defined, but no mw
412     x_err_msgs.EXTEND;
413     l_msg_code := 'CCT_PARAM_ERR_ITS_MW_UNDEFINED';
414     SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
415       FROM FND_NEW_MESSAGES
416       	  WHERE LANGUAGE_CODE = p_env_lang
417 --      		(SELECT LANGUAGE_CODE
418 --        	   FROM FND_LANGUAGES
419 --        	   WHERE NLS_LANGUAGE = p_env_lang)
420         AND APPLICATION_ID = 172
421    	AND MESSAGE_NAME = l_msg_code;
422     x_err_msg_count := x_err_msg_count + 1;
423     RETURN;
424   END IF;
425 
426   FOR i IN l_rp_params.first..l_rp_params.last LOOP
427     l_temp := l_rp_params(i);
428     --dbms_output.put_line('Checking route point:' || l_temp || ' with mwconfig:' || l_mw_param);
429     -- 1) Check if route point selected is namespaced with the same mw config
430     select INSTR(l_temp, l_mw_param, 1, 1) into l_endPos from DUAL;
431     IF l_endPos = 0 THEN
432 	--dbms_output.put_line('route pt and mw do not matched!!! rp param:' || l_rp_param_pos);
433 	x_err_msgs.EXTEND;
434   l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MISMATCH';
435     	SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
436       	  FROM FND_NEW_MESSAGES
437       	  WHERE LANGUAGE_CODE = p_env_lang
438 --      		(SELECT LANGUAGE_CODE
442    		AND MESSAGE_NAME = l_msg_code;
439 --        	   FROM FND_LANGUAGES
440 --        	   WHERE NLS_LANGUAGE = p_env_lang)
441       		AND APPLICATION_ID = 172
443 	x_err_msg_count := x_err_msg_count + 1;
444 	RETURN;
445     END IF;
446 
447     -- 2) Check if the route point is already taken by other ITS Servers
448     select count(*) into l_tempNum
449       from IEO_SVR_VALUES vals, IEO_SVR_SERVERS servers
450       where vals.server_id = servers.server_id
451 	    AND vals.server_id <> p_server_id
452             AND servers.member_svr_group_id = p_server_group_id
453 	    AND vals.param_id = l_rp_param_id
454 	    AND vals.value like  '%' || l_rp_params(i) || '%';
455     IF l_tempNum > 0 THEN
456 	-- Route Points taken by some other ITS
457 	x_err_msgs.EXTEND;
458   l_msg_code := 'CCT_PARAM_ERR_ITS_RP_MONITERED';
459     	SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
460       	  FROM FND_NEW_MESSAGES
461       	  WHERE LANGUAGE_CODE = p_env_lang
462 --      		(SELECT LANGUAGE_CODE
463 --        	   FROM FND_LANGUAGES
464 --        	   WHERE NLS_LANGUAGE = p_env_lang)
465       		AND APPLICATION_ID = 172
466    		AND MESSAGE_NAME = l_msg_code;
467 	x_err_msg_count := x_err_msg_count + 1;
468 	RETURN;
469     END IF;
470   END LOOP;
471 
472 EXCEPTION
473 
474 	WHEN OTHERS THEN
475     ROLLBACK TO VALIDATE_ITS_PARAMS_PUB;
476 		x_return_status := FND_API.G_RET_STS_ERROR ;
477     x_msg_count := 1;
478     x_err_num := SQLCODE;
479     x_err_msg := SUBSTR(SQLERRM, 1, 100);
480     x_msg_data := 'CCT_VALIDATION_PUB: CCT_ERROR '
481                     || ' ErrorCode = ' || x_err_num
482                     || ' ErrorMsg = ' || x_err_msg;
483   --dbms_output.put_line(x_msg_data);
484 
485 END VALIDATE_ITS_PARAMS;
486 
487 
488 
489 
490 PROCEDURE VALIDATE_IQD_PARAMS
491 (
492   p_server_group_id IN NUMBER,
493   p_server_id IN NUMBER,
494   p_env_lang IN VARCHAR2, -- language
495   p_param_ids IN IEO_STRING_VARR, -- list of param ids
496   p_param_values IN IEO_STRING_VARR, -- list of param values
497   x_err_msg_count OUT NOCOPY NUMBER, -- number of error messages
498   x_err_msgs OUT NOCOPY IEO_STRING_VARR,  -- list of error messages.
499   x_return_status OUT NOCOPY VARCHAR2,
500   x_msg_count OUT NOCOPY NUMBER,
501   x_msg_data OUT NOCOPY VARCHAR2
502 )
503 IS
504 
505 l_api_name			CONSTANT VARCHAR2(30)	:= 'VALIDATE_IQD_PARAMS';
506 l_api_version           	CONSTANT NUMBER 		:= 1.0;
507 x_err_num NUMBER;
508 x_err_msg VARCHAR2(256);
509 l_priority_queueing_idx NUMBER;
510 l_default_priority_timeout_idx NUMBER;
511 l_priority_queueing_enabled NUMBER;
512 l_web_callback_idx NUMBER;
513 l_send_error NUMBER;
514 l_msg_code VARCHAR2(256);
515 
516 BEGIN
517 	-- Standard Start of API savepoint
518 
519   SAVEPOINT	VALIDATE_IQD_PARAMS_PUB;
520 
521 	--  Initialize API return status to success
522   x_return_status := FND_API.G_RET_STS_SUCCESS;
523   x_msg_count := 0;
524   x_msg_data := null;
525   x_err_msg_count := 0;
526   x_err_msgs := IEO_STRING_VARR();
527 
528 	-- API body
529 
530   l_priority_queueing_idx := -1;
531   l_default_priority_timeout_idx := -1;
532 
533   FOR i IN 1..p_param_ids.count LOOP
534     if (p_param_ids(i) = 10211) then
535       l_priority_queueing_idx := i;
536     elsif (p_param_ids(i) = 10212) then
537       l_default_priority_timeout_idx := i;
538     elsif (p_param_ids(i) = 10026) then
539       l_web_callback_idx := i;
540     end if;
541   END LOOP;
542 
543   l_priority_queueing_enabled := 0;
544   if ((l_priority_queueing_idx > 0) and
545       (UPPER(p_param_values(l_priority_queueing_idx)) = UPPER('true'))) then
546   -- preview webcallback should be true only if iqd web callback is enabled
547     l_priority_queueing_enabled := 1;
548   end if;
549 
550 
551   if ((l_default_priority_timeout_idx > 0) and
552       (p_param_values(l_default_priority_timeout_idx) is not null) and
553       (l_priority_queueing_enabled = 0)) then
554   -- default priority timeout should be set only if priority queueing is enabled.
555     x_err_msg_count := x_err_msg_count + 1;
556     x_err_msgs.extend();
557     l_msg_code := 'CCT_PARAM_ERR_PRIORITY_TIMEOUT';
558     SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
559       FROM FND_NEW_MESSAGES
560       WHERE LANGUAGE_CODE = p_env_lang
561 --      (SELECT LANGUAGE_CODE
562 --        FROM FND_LANGUAGES
563 --        WHERE NLS_LANGUAGE = p_env_lang)
564       AND APPLICATION_ID = 172
565     AND MESSAGE_NAME = l_msg_code;
566   end if;
567 
568   if ((l_web_callback_idx > 0) and
569       (p_param_values(l_web_callback_idx) is null) or
570       (UPPER(p_param_values(l_web_callback_idx)) = UPPER('false')))
571   then
572   begin
573     l_send_error := 0;
574     declare cursor c1 is
575     select value from ieo_svr_values
576     where server_id in
577     (select server_id from ieo_svr_servers
578      where type_id = 10001
579       and member_svr_group_id =  p_server_group_id)
580     and param_id = 10201;
581     -- OTM PREVIEW MODE PARAM
582 
583     begin
584     for c1_rec in c1 loop
585       if (UPPER(c1_rec.value) = UPPER('true')) then
586         l_send_error := 1;
587       end if;
588     end loop;
589     end;
590 
591     declare cursor c2 is
592     select value from ieo_svr_values
593     where server_id in
594     (select server_id from ieo_svr_servers
595      where type_id = 10001
596       and member_svr_group_id =  p_server_group_id)
597     and param_id = 10202;
598     -- OTM Param Max Preview Time
602       l_send_error := 1;
599     begin
600     for c2_rec in c2 loop
601       if (c2_rec.value is not null) then
603       end if;
604     end loop;
605     end;
606 
607     if (l_send_error = 1)
608     then
609       x_err_msg_count := x_err_msg_count + 1;
610       x_err_msgs.extend();
611       l_msg_code := 'CCT_PARAM_ERR_WC';
612       SELECT MESSAGE_TEXT into x_err_msgs(x_err_msgs.count)
613         FROM FND_NEW_MESSAGES
614         WHERE LANGUAGE_CODE = p_env_lang
615       AND APPLICATION_ID = 172
616       AND MESSAGE_NAME = l_msg_code;
617     end if;
618   end;
619   end if;
620 
621 	-- End of API body.
622 
623 EXCEPTION
624 
625 	WHEN OTHERS THEN
626     ROLLBACK TO VALIDATE_IQD_PARAMS_PUB;
627 		x_return_status := FND_API.G_RET_STS_ERROR ;
628     x_msg_count := 1;
629     x_err_num := SQLCODE;
630     x_err_msg := SUBSTR(SQLERRM, 1, 100);
631     x_msg_data := 'CCT_VALIDATION_PUB: CCT_ERROR '
632                     || ' ErrorCode = ' || x_err_num
633                     || ' ErrorMsg = ' || x_err_msg;
634   --dbms_output.put_line(x_msg_data);
635 
636 END VALIDATE_IQD_PARAMS;
637 
638 END CCT_VALIDATION_PUB;