80: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
81: l_engine_url := FND_PROFILE.VALUE('QP_PRICING_ENGINE_URL');
82:
83: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
84: IF l_debug = FND_API.G_TRUE THEN
85: QP_PREQ_GRP.engine_debug('QP_PRICING_ENGINE_URL value:'||l_engine_url);
86: --QP_PREQ_GRP.engine_debug('QP_PRICING_ENGINE_URL value:'||G_ENGINE_URL);
87: END IF;
88: --for future
134: p_ctxt_str := p_ctxt_str||G_HARD_CHAR;
135: p_ctxt_str := p_ctxt_str||G_PARAM_NAME_CALL_TYPE||'=DB';
136: p_ctxt_str := p_ctxt_str||G_HARD_CHAR;
137: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
138: IF(l_debug = FND_API.G_TRUE) THEN
139: l_debug_flag := 'Y';
140: ELSE
141: l_debug_flag := 'N';
142: END IF;
166: BEGIN
167: BEGIN
168: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
169: l_a := instr(response_text, G_PARAM_NAME_STS_CODE||'=');
170: IF l_debug = FND_API.G_TRUE THEN
171: QP_PREQ_GRP.engine_debug('l_a='||l_a);
172: END IF;
173: l_b := instr(response_text, G_PARAM_NAME_STS_TEXT||'=');
174: IF l_debug = FND_API.G_TRUE THEN
170: IF l_debug = FND_API.G_TRUE THEN
171: QP_PREQ_GRP.engine_debug('l_a='||l_a);
172: END IF;
173: l_b := instr(response_text, G_PARAM_NAME_STS_TEXT||'=');
174: IF l_debug = FND_API.G_TRUE THEN
175: QP_PREQ_GRP.engine_debug('l_b='||l_b);
176: END IF;
177: l_c := instr(response_text, G_PARAM_NAME_DETAILS||'=');
178: IF l_debug = FND_API.G_TRUE THEN
174: IF l_debug = FND_API.G_TRUE THEN
175: QP_PREQ_GRP.engine_debug('l_b='||l_b);
176: END IF;
177: l_c := instr(response_text, G_PARAM_NAME_DETAILS||'=');
178: IF l_debug = FND_API.G_TRUE THEN
179: QP_PREQ_GRP.engine_debug('l_c='||l_c);
180: END IF;
181:
182: IF(l_a = 0 or l_b = 0) THEN
179: QP_PREQ_GRP.engine_debug('l_c='||l_c);
180: END IF;
181:
182: IF(l_a = 0 or l_b = 0) THEN
183: x_return_status := FND_API.G_RET_STS_ERROR;
184: x_return_status_text := response_text;
185: ELSE
186: x_return_status := substr(response_text,l_a+ length(G_PARAM_NAME_STS_CODE)+1, l_b - (l_a+length(G_PARAM_NAME_STS_CODE)+1));
187: END IF;
185: ELSE
186: x_return_status := substr(response_text,l_a+ length(G_PARAM_NAME_STS_CODE)+1, l_b - (l_a+length(G_PARAM_NAME_STS_CODE)+1));
187: END IF;
188:
189: IF l_debug = FND_API.G_TRUE THEN
190: QP_PREQ_GRP.engine_debug('after parse, x_return_status='||x_return_status);
191: END IF;
192: IF l_c = 0 THEN
193: x_return_status_text := substr(response_text, l_b+length(G_PARAM_NAME_STS_TEXT)+1, 2000);
194: ELSE
195: x_return_status_text := substr(response_text, l_b+length(G_PARAM_NAME_STS_TEXT)+1, l_c - (l_b+length(G_PARAM_NAME_STS_TEXT)+1));
196: x_return_details(1) := substr(response_text, l_c+length(G_PARAM_NAME_DETAILS)+1, 2000);
197: END IF;
198: IF l_debug = FND_API.G_TRUE THEN
199: QP_PREQ_GRP.engine_debug('after parse,x_return_status_text='||x_return_status_text);
200: IF l_c <> 0 THEN
201: QP_PREQ_GRP.engine_debug('after parse,x_return_details(1)='||x_return_details(1));
202: END IF;
202: END IF;
203: END IF;
204: EXCEPTION
205: WHEN OTHERS THEN
206: x_return_status := FND_API.G_RET_STS_ERROR;
207: FND_MESSAGE.SET_NAME('QP','QP_JPE_UTL_HTTP_STR_ERROR');
208: x_return_status_text := FND_MESSAGE.get;
209: --x_return_status_text := 'utl_http return string parsing error.';
210: END;
209: --x_return_status_text := 'utl_http return string parsing error.';
210: END;
211:
212: IF x_return_status IS NULL THEN
213: x_return_status := FND_API.G_RET_STS_ERROR;
214: x_return_status_text := response_text;
215: ELSE
216: IF l_debug = FND_API.G_TRUE THEN
217: QP_PREQ_GRP.engine_debug('HTTP request has finished successfully!');
212: IF x_return_status IS NULL THEN
213: x_return_status := FND_API.G_RET_STS_ERROR;
214: x_return_status_text := response_text;
215: ELSE
216: IF l_debug = FND_API.G_TRUE THEN
217: QP_PREQ_GRP.engine_debug('HTTP request has finished successfully!');
218: END IF;
219: END IF;
220: END;
235: END LOOP;
236: END IF;
237: EXCEPTION
238: WHEN OTHERS THEN
239: x_return_status := FND_API.G_RET_STS_ERROR;
240: FND_MESSAGE.SET_NAME('QP','QP_JPE_UTL_HTTP_STR_ERROR');
241: x_return_status_text := FND_MESSAGE.get;
242: --x_return_status_text := 'utl_http detail string parsing error.';
243: END;
266: BEGIN
267: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
268:
269: /*HTTP Get Request from Java Engine*/
270: IF l_debug = FND_API.G_TRUE THEN
271: QP_PREQ_GRP.engine_debug('Inside Routine:'||l_routine);
272: QP_PREQ_GRP.engine_debug('url_string:'||p_url_string);
273: END IF;
274:
272: QP_PREQ_GRP.engine_debug('url_string:'||p_url_string);
273: END IF;
274:
275: IF(is_SSL_Enabled(p_url_string) = 'Y') THEN
276: IF l_debug = FND_API.G_TRUE THEN
277: QP_PREQ_GRP.engine_debug('SSL is enabled.');
278: END IF;
279: G_WALLET_PATH :=nvl(G_WALLET_PATH,'file:/'||FND_PROFILE.VALUE('FND_DB_WALLET_DIR'));
280: G_WALLET_PASSWORD :=nvl(G_WALLET_PASSWORD,FND_PROFILE.VALUE('QP_WALLET_PASSWORD'));
278: END IF;
279: G_WALLET_PATH :=nvl(G_WALLET_PATH,'file:/'||FND_PROFILE.VALUE('FND_DB_WALLET_DIR'));
280: G_WALLET_PASSWORD :=nvl(G_WALLET_PASSWORD,FND_PROFILE.VALUE('QP_WALLET_PASSWORD'));
281: G_PROXY_SERVER := nvl(G_PROXY_SERVER,FND_PROFILE.VALUE('QP_PROXY_SERVER'));
282: IF l_debug = FND_API.G_TRUE THEN
283: QP_PREQ_GRP.engine_debug('wallet_path:'||G_WALLET_PATH||' wallet_password:'||G_WALLET_PASSWORD);
284: QP_PREQ_GRP.engine_debug('proxy server:'||G_PROXY_SERVER);
285: END IF;
286: IF p_use_request_pieces THEN
291: ELSE
292: url_str := UTL_HTTP.Request(p_url_string, G_PROXY_SERVER, G_WALLET_PATH, G_WALLET_PASSWORD);
293: END IF;
294: ELSE
295: IF l_debug = FND_API.G_TRUE THEN
296: QP_PREQ_GRP.engine_debug('SSL is disabled.');
297: END IF;
298: G_PROXY_SERVER := nvl(G_PROXY_SERVER, FND_PROFILE.VALUE('QP_PROXY_SERVER'));
299: IF(G_PROXY_SERVER <> null) THEN
296: QP_PREQ_GRP.engine_debug('SSL is disabled.');
297: END IF;
298: G_PROXY_SERVER := nvl(G_PROXY_SERVER, FND_PROFILE.VALUE('QP_PROXY_SERVER'));
299: IF(G_PROXY_SERVER <> null) THEN
300: IF l_debug = FND_API.G_TRUE THEN
301: QP_PREQ_GRP.engine_debug('proxy server:'||G_PROXY_SERVER);
302: END IF;
303: IF p_use_request_pieces THEN
304: pieces := UTL_HTTP.Request_Pieces(url => p_url_string,
314: END IF;
315: END IF;
316: END IF;
317:
318: IF l_debug = FND_API.G_TRUE THEN
319: QP_PREQ_GRP.engine_debug('response length: '||length(url_str));
320: QP_PREQ_GRP.engine_debug('utl_http_request response:'||url_str);
321: END IF;
322:
325: ELSE
326: Interprete_Response_Text(url_str, x_return_status, x_return_status_text, x_return_details);
327: END IF;
328:
329: IF l_debug = FND_API.G_TRUE THEN
330: QP_PREQ_GRP.engine_debug('after Interprete_Response_Text: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
331: END IF;
332: EXCEPTION
333: WHEN UTL_HTTP.INIT_FAILED THEN
333: WHEN UTL_HTTP.INIT_FAILED THEN
334: BEGIN
335: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
336: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm;
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
339:
340: IF l_debug = FND_API.G_TRUE THEN
341: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
336: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm;
337: x_return_status := FND_API.G_RET_STS_ERROR;
338: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
339:
340: IF l_debug = FND_API.G_TRUE THEN
341: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
342: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
343: END IF;
344: EXCEPTION
342: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
343: END IF;
344: EXCEPTION
345: WHEN OTHERS THEN
346: x_return_status := FND_API.G_RET_STS_ERROR;
347: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
348: x_return_status_text := FND_MESSAGE.get;
349: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
350: IF l_debug = FND_API.G_TRUE THEN
346: x_return_status := FND_API.G_RET_STS_ERROR;
347: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
348: x_return_status_text := FND_MESSAGE.get;
349: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
350: IF l_debug = FND_API.G_TRUE THEN
351: QP_PREQ_GRP.engine_debug('HTTP request failed unexpectedly!' );
352: END IF;
353: END;
354: WHEN UTL_HTTP.REQUEST_FAILED THEN
351: QP_PREQ_GRP.engine_debug('HTTP request failed unexpectedly!' );
352: END IF;
353: END;
354: WHEN UTL_HTTP.REQUEST_FAILED THEN
355: x_return_status := FND_API.G_RET_STS_ERROR;
356: --x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
357: IF l_debug = FND_API.G_TRUE THEN
358: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
359: END IF;
353: END;
354: WHEN UTL_HTTP.REQUEST_FAILED THEN
355: x_return_status := FND_API.G_RET_STS_ERROR;
356: --x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
357: IF l_debug = FND_API.G_TRUE THEN
358: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
359: END IF;
360: BEGIN
361: x_return_status := FND_API.G_RET_STS_ERROR;
357: IF l_debug = FND_API.G_TRUE THEN
358: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
359: END IF;
360: BEGIN
361: x_return_status := FND_API.G_RET_STS_ERROR;
362: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
363:
364: IF l_debug = FND_API.G_TRUE THEN
365: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
360: BEGIN
361: x_return_status := FND_API.G_RET_STS_ERROR;
362: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
363:
364: IF l_debug = FND_API.G_TRUE THEN
365: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
366: END IF;
367: EXCEPTION
368: WHEN OTHERS THEN
365: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
366: END IF;
367: EXCEPTION
368: WHEN OTHERS THEN
369: x_return_status := FND_API.G_RET_STS_ERROR;
370: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
371: END;
372: WHEN UTL_TCP.END_OF_INPUT THEN
373: x_return_status := FND_API.G_RET_STS_ERROR;
369: x_return_status := FND_API.G_RET_STS_ERROR;
370: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
371: END;
372: WHEN UTL_TCP.END_OF_INPUT THEN
373: x_return_status := FND_API.G_RET_STS_ERROR;
374: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
375: IF l_debug = FND_API.G_TRUE THEN
376: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
377: END IF;
371: END;
372: WHEN UTL_TCP.END_OF_INPUT THEN
373: x_return_status := FND_API.G_RET_STS_ERROR;
374: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
375: IF l_debug = FND_API.G_TRUE THEN
376: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
377: END IF;
378: WHEN OTHERS THEN
379: BEGIN
377: END IF;
378: WHEN OTHERS THEN
379: BEGIN
380: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
381: x_return_status := FND_API.G_RET_STS_ERROR;
382: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
383:
384: IF l_debug = FND_API.G_TRUE THEN
385: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
380: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
381: x_return_status := FND_API.G_RET_STS_ERROR;
382: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
383:
384: IF l_debug = FND_API.G_TRUE THEN
385: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
386: END IF;
387: EXCEPTION
388: WHEN OTHERS THEN
385: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
386: END IF;
387: EXCEPTION
388: WHEN OTHERS THEN
389: x_return_status := FND_API.G_RET_STS_ERROR;
390: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
391: x_return_status_text := FND_MESSAGE.get;
392: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
393: IF l_debug = FND_API.G_TRUE THEN
389: x_return_status := FND_API.G_RET_STS_ERROR;
390: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
391: x_return_status_text := FND_MESSAGE.get;
392: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
393: IF l_debug = FND_API.G_TRUE THEN
394: QP_PREQ_GRP.engine_debug('HTTP request failed unexpectedly!' );
395: END IF;
396: END;
397: END;
428: --added for HTTP timeout issue handling
429: BEGIN
430: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
431:
432: IF l_debug = FND_API.G_TRUE THEN
433: l_pricing_start_time := dbms_utility.get_time;
434: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
435: IF eightI_env = FND_API.G_FALSE THEN
436: l_detailed_excp_support := FND_API.G_TRUE;
431:
432: IF l_debug = FND_API.G_TRUE THEN
433: l_pricing_start_time := dbms_utility.get_time;
434: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
435: IF eightI_env = FND_API.G_FALSE THEN
436: l_detailed_excp_support := FND_API.G_TRUE;
437: ELSE
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
432: IF l_debug = FND_API.G_TRUE THEN
433: l_pricing_start_time := dbms_utility.get_time;
434: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
435: IF eightI_env = FND_API.G_FALSE THEN
436: l_detailed_excp_support := FND_API.G_TRUE;
437: ELSE
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
434: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
435: IF eightI_env = FND_API.G_FALSE THEN
436: l_detailed_excp_support := FND_API.G_TRUE;
437: ELSE
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
441: IF eightI_env = FND_API.G_FALSE THEN
442: l_detailed_excp_support := FND_API.G_TRUE;
436: l_detailed_excp_support := FND_API.G_TRUE;
437: ELSE
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
441: IF eightI_env = FND_API.G_FALSE THEN
442: l_detailed_excp_support := FND_API.G_TRUE;
443: ELSE
444: l_detailed_excp_support := FND_API.G_FALSE;
437: ELSE
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
441: IF eightI_env = FND_API.G_FALSE THEN
442: l_detailed_excp_support := FND_API.G_TRUE;
443: ELSE
444: l_detailed_excp_support := FND_API.G_FALSE;
445: END IF;
438: l_detailed_excp_support := FND_API.G_FALSE;
439: END IF;
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
441: IF eightI_env = FND_API.G_FALSE THEN
442: l_detailed_excp_support := FND_API.G_TRUE;
443: ELSE
444: l_detailed_excp_support := FND_API.G_FALSE;
445: END IF;
446: ELSE
440: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
441: IF eightI_env = FND_API.G_FALSE THEN
442: l_detailed_excp_support := FND_API.G_TRUE;
443: ELSE
444: l_detailed_excp_support := FND_API.G_FALSE;
445: END IF;
446: ELSE
447: IF eightI_env = FND_API.G_FALSE THEN
448: l_detailed_excp_support := p_detailed_excp_support;
443: ELSE
444: l_detailed_excp_support := FND_API.G_FALSE;
445: END IF;
446: ELSE
447: IF eightI_env = FND_API.G_FALSE THEN
448: l_detailed_excp_support := p_detailed_excp_support;
449: ELSE
450: l_detailed_excp_support := FND_API.G_FALSE;
451: END IF;
446: ELSE
447: IF eightI_env = FND_API.G_FALSE THEN
448: l_detailed_excp_support := p_detailed_excp_support;
449: ELSE
450: l_detailed_excp_support := FND_API.G_FALSE;
451: END IF;
452: END IF;
453:
454: l_engine_server_url := QP_JAVA_ENGINE_UTIL_PUB.Get_Engine_URL;
452: END IF;
453:
454: l_engine_server_url := QP_JAVA_ENGINE_UTIL_PUB.Get_Engine_URL;
455: IF l_engine_server_url is null THEN
456: IF l_debug = FND_API.G_TRUE THEN
457: QP_PREQ_GRP.engine_debug('Java Engine URL has not been setup correctly.');
458: END IF;
459: RAISE E_JAVA_ENGINE_URL_NULL;
460: END IF;
461:
462: /*Construct request parameter string ContextConfig*/
463: l_ctxt_str := Get_Context_Params;
464:
465: IF l_debug = FND_API.G_TRUE THEN
466: QP_PREQ_GRP.engine_debug('before UTL_HTTP.Request, the url string:'||l_engine_server_url||'?'||l_ctxt_str||'&'||p_url_param_string);
467: END IF;
468:
469: /*Defaulting transfer timeout to transferTimeout specified by profile*/
474: END IF;
475:
476: /*Set transfer timeout, default is 60s in 9i database*/
477: IF(l_transfer_timeout IS NOT NULL AND defaultTimeout IS NOT NULL AND l_transfer_timeout <> defaultTimeout)THEN
478: IF l_debug = FND_API.G_TRUE THEN
479: QP_PREQ_GRP.engine_debug('set utl_http transfer_timeout to '||l_transfer_timeout);
480: END IF;
481: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN l_transfer_timeout;
482: END IF;
481: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN l_transfer_timeout;
482: END IF;
483:
484: /*Added for catch more detailed error when UTL_HTTP errored out*/
485: IF l_detailed_excp_support = FND_API.G_TRUE THEN
486: IF l_debug = FND_API.G_TRUE THEN
487: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(true)');
488: END IF;
489: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(TRUE); END;';
482: END IF;
483:
484: /*Added for catch more detailed error when UTL_HTTP errored out*/
485: IF l_detailed_excp_support = FND_API.G_TRUE THEN
486: IF l_debug = FND_API.G_TRUE THEN
487: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(true)');
488: END IF;
489: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(TRUE); END;';
490: END IF;
495: x_return_status_text,
496: x_return_details,
497: p_use_request_pieces);
498:
499: IF l_debug = FND_API.G_TRUE THEN
500: QP_PREQ_GRP.engine_debug('After first HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
501: END IF;
502:
503: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
499: IF l_debug = FND_API.G_TRUE THEN
500: QP_PREQ_GRP.engine_debug('After first HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
501: END IF;
502:
503: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
504: IF (p_timeout_processing = FND_API.G_TRUE) THEN
505: /*UTL_HTTP_TRANSFER Timeout and HTTP Timeout issue handling*/
506: IF (x_return_status_text = 'UTL_TCP.END_OF_INPUT' or instr(x_return_status_text, 'ORA-29276') <> 0) THEN
507: l_status_request_cnt := 0;
500: QP_PREQ_GRP.engine_debug('After first HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
501: END IF;
502:
503: IF (x_return_status = FND_API.G_RET_STS_ERROR) THEN
504: IF (p_timeout_processing = FND_API.G_TRUE) THEN
505: /*UTL_HTTP_TRANSFER Timeout and HTTP Timeout issue handling*/
506: IF (x_return_status_text = 'UTL_TCP.END_OF_INPUT' or instr(x_return_status_text, 'ORA-29276') <> 0) THEN
507: l_status_request_cnt := 0;
508: LOOP
505: /*UTL_HTTP_TRANSFER Timeout and HTTP Timeout issue handling*/
506: IF (x_return_status_text = 'UTL_TCP.END_OF_INPUT' or instr(x_return_status_text, 'ORA-29276') <> 0) THEN
507: l_status_request_cnt := 0;
508: LOOP
509: IF l_debug = FND_API.G_TRUE THEN
510: QP_PREQ_GRP.engine_debug('sleeping........'||G_STATUS_REQUEST_INTERVAL||'(secs)');
511: END IF;
512: DBMS_LOCK.SLEEP(G_STATUS_REQUEST_INTERVAL);
513:
515: x_return_status,
516: x_return_status_text,
517: x_return_details);
518:
519: IF l_debug = FND_API.G_TRUE THEN
520: QP_PREQ_GRP.engine_debug('After inquery HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
521: END IF;
522:
523: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
519: IF l_debug = FND_API.G_TRUE THEN
520: QP_PREQ_GRP.engine_debug('After inquery HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
521: END IF;
522:
523: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
524: IF (x_return_status_text <> 'UTL_TCP.END_OF_INPUT' and instr(x_return_status_text, 'ORA-29276') = 0) THEN
525: /*other errors than timeout error, send request to remove mid-tier status */
526: --UTL_HTTP_REQUEST(l_engine_server_url||'?'||l_ctxt_str||G_HARD_CHAR||'Action=finish'|| G_HARD_CHAR||'RequestId='|| QP_Price_Request_Context.GET_REQUEST_ID, x_return_status, x_return_status_text);
527: UTL_HTTP_REQUEST(l_engine_server_url||'?'||l_ctxt_str||G_HARD_CHAR||'Action=finish'|| G_HARD_CHAR||'RequestId='|| QP_Price_Request_Context.GET_REQUEST_ID,
541: l_status_request_cnt := l_status_request_cnt + 1;
542: END LOOP;
543:
544: IF(instr(x_return_status_text, 'ERROR') <> 0) THEN
545: x_return_status := FND_API.G_RET_STS_ERROR;
546: x_return_status_text := substr(x_return_status_text,7, length(x_return_status_text)-7);
547: END IF;
548:
549: ELSE
560: END IF;
561:
562: /*Set transfer timeout back to default value, default is 60s in 9i database*/
563: IF(l_transfer_timeout IS NOT NULL AND defaultTimeout IS NOT NULL AND l_transfer_timeout <> defaultTimeout)THEN
564: IF l_debug = FND_API.G_TRUE THEN
565: QP_PREQ_GRP.engine_debug('set utl_http transfer_timeout back to '||defaultTimeout);
566: END IF;
567: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN defaultTimeout;
568: END IF;
567: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN defaultTimeout;
568: END IF;
569:
570: /*Added for catch more detailed error when UTL_HTTP errored out*/
571: IF l_detailed_excp_support = FND_API.G_TRUE THEN
572: IF l_debug = FND_API.G_TRUE THEN
573: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(false)');
574: END IF;
575: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
568: END IF;
569:
570: /*Added for catch more detailed error when UTL_HTTP errored out*/
571: IF l_detailed_excp_support = FND_API.G_TRUE THEN
572: IF l_debug = FND_API.G_TRUE THEN
573: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(false)');
574: END IF;
575: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
576: END IF;
574: END IF;
575: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
576: END IF;
577:
578: IF l_debug = FND_API.G_TRUE THEN
579: l_pricing_end_time := dbms_utility.get_time;
580: QP_PREQ_GRP.engine_debug('Request total time: '||(l_pricing_end_time - l_pricing_start_time)/100);
581: END IF;
582:
581: END IF;
582:
583: EXCEPTION
584: WHEN UTL_HTTP.INIT_FAILED THEN
585: x_return_status := FND_API.G_RET_STS_ERROR;
586: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm ;
587: x_return_status_text := 'UTL_HTTP.INIT_FAILED';
588: IF l_debug = FND_API.G_TRUE THEN
589: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
584: WHEN UTL_HTTP.INIT_FAILED THEN
585: x_return_status := FND_API.G_RET_STS_ERROR;
586: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm ;
587: x_return_status_text := 'UTL_HTTP.INIT_FAILED';
588: IF l_debug = FND_API.G_TRUE THEN
589: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
590: END IF;
591: WHEN UTL_HTTP.REQUEST_FAILED THEN
592: x_return_status := FND_API.G_RET_STS_ERROR;
588: IF l_debug = FND_API.G_TRUE THEN
589: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
590: END IF;
591: WHEN UTL_HTTP.REQUEST_FAILED THEN
592: x_return_status := FND_API.G_RET_STS_ERROR;
593: x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
594: IF l_debug = FND_API.G_TRUE THEN
595: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
596: END IF;
590: END IF;
591: WHEN UTL_HTTP.REQUEST_FAILED THEN
592: x_return_status := FND_API.G_RET_STS_ERROR;
593: x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
594: IF l_debug = FND_API.G_TRUE THEN
595: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
596: END IF;
597: BEGIN
598: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
595: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
596: END IF;
597: BEGIN
598: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
599: x_return_status := FND_API.G_RET_STS_ERROR;
600: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
601:
602: IF l_debug = FND_API.G_TRUE THEN
603: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
598: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
599: x_return_status := FND_API.G_RET_STS_ERROR;
600: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
601:
602: IF l_debug = FND_API.G_TRUE THEN
603: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
604: END IF;
605: EXCEPTION
606: WHEN OTHERS THEN
603: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
604: END IF;
605: EXCEPTION
606: WHEN OTHERS THEN
607: x_return_status := FND_API.G_RET_STS_ERROR;
608: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
609: END;
610: WHEN UTL_TCP.END_OF_INPUT THEN
611: x_return_status := FND_API.G_RET_STS_ERROR;
607: x_return_status := FND_API.G_RET_STS_ERROR;
608: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
609: END;
610: WHEN UTL_TCP.END_OF_INPUT THEN
611: x_return_status := FND_API.G_RET_STS_ERROR;
612: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
613: IF l_debug = FND_API.G_TRUE THEN
614: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
615: END IF;
609: END;
610: WHEN UTL_TCP.END_OF_INPUT THEN
611: x_return_status := FND_API.G_RET_STS_ERROR;
612: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
613: IF l_debug = FND_API.G_TRUE THEN
614: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
615: END IF;
616: WHEN E_JAVA_ENGINE_URL_NULL THEN
617: x_return_status := FND_API.G_RET_STS_ERROR;
613: IF l_debug = FND_API.G_TRUE THEN
614: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
615: END IF;
616: WHEN E_JAVA_ENGINE_URL_NULL THEN
617: x_return_status := FND_API.G_RET_STS_ERROR;
618: FND_MESSAGE.SET_NAME('QP','QP_JPE_URL_NULL_ERROR');
619: x_return_status_text := FND_MESSAGE.get;
620: --x_return_status_text := 'Java Engine URL should not be null. Please contact system administrator to setup the URL correctly first.';
621: IF l_debug = FND_API.G_TRUE THEN
617: x_return_status := FND_API.G_RET_STS_ERROR;
618: FND_MESSAGE.SET_NAME('QP','QP_JPE_URL_NULL_ERROR');
619: x_return_status_text := FND_MESSAGE.get;
620: --x_return_status_text := 'Java Engine URL should not be null. Please contact system administrator to setup the URL correctly first.';
621: IF l_debug = FND_API.G_TRUE THEN
622: QP_PREQ_GRP.engine_debug('Java Engine URL is null');
623: END IF;
624: WHEN MAX_STATUS_REQUESTS_REACHED THEN
625: x_return_status := FND_API.G_RET_STS_ERROR;
621: IF l_debug = FND_API.G_TRUE THEN
622: QP_PREQ_GRP.engine_debug('Java Engine URL is null');
623: END IF;
624: WHEN MAX_STATUS_REQUESTS_REACHED THEN
625: x_return_status := FND_API.G_RET_STS_ERROR;
626: FND_MESSAGE.SET_NAME('QP','QP_JPE_REQUEST_TIMEOUT_ERROR');
627: FND_MESSAGE.SET_TOKEN('SECONDS',G_MAX_STATUS_REQUESTS*G_STATUS_REQUEST_INTERVAL);
628:
629: x_return_status_text := FND_MESSAGE.GET;
628:
629: x_return_status_text := FND_MESSAGE.GET;
630: --x_return_status_text := 'Request has exceeded '||(G_MAX_STATUS_REQUESTS*G_STATUS_REQUEST_INTERVAL)||' seconds.';
631: WHEN E_ROUTINE_ERRORS THEN
632: IF QP_PREQ_GRP.G_DEBUG_ENGINE = FND_API.G_TRUE THEN
633: QP_PREQ_GRP.engine_debug(l_routine||': '||x_return_status_text);
634: END IF;
635: x_return_status := FND_API.G_RET_STS_ERROR;
636: WHEN OTHERS THEN
631: WHEN E_ROUTINE_ERRORS THEN
632: IF QP_PREQ_GRP.G_DEBUG_ENGINE = FND_API.G_TRUE THEN
633: QP_PREQ_GRP.engine_debug(l_routine||': '||x_return_status_text);
634: END IF;
635: x_return_status := FND_API.G_RET_STS_ERROR;
636: WHEN OTHERS THEN
637: BEGIN
638: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
639: x_return_status := FND_API.G_RET_STS_ERROR;
635: x_return_status := FND_API.G_RET_STS_ERROR;
636: WHEN OTHERS THEN
637: BEGIN
638: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
639: x_return_status := FND_API.G_RET_STS_ERROR;
640: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
641:
642: IF l_debug = FND_API.G_TRUE THEN
643: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
638: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
639: x_return_status := FND_API.G_RET_STS_ERROR;
640: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
641:
642: IF l_debug = FND_API.G_TRUE THEN
643: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
644: END IF;
645: EXCEPTION
646: WHEN OTHERS THEN
643: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
644: END IF;
645: EXCEPTION
646: WHEN OTHERS THEN
647: x_return_status := FND_API.G_RET_STS_ERROR;
648: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
649: x_return_status_text := FND_MESSAGE.GET;
650: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
651: IF l_debug = FND_API.G_TRUE THEN
647: x_return_status := FND_API.G_RET_STS_ERROR;
648: FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
649: x_return_status_text := FND_MESSAGE.GET;
650: --x_return_status_text := 'Java Engine call failed unexpectedly. Please contact system administrator!';
651: IF l_debug = FND_API.G_TRUE THEN
652: QP_PREQ_GRP.engine_debug('HTTP request failed unexpectedly!' );
653: END IF;
654: END;
655:
709: --added for HTTP timeout issue handling
710: BEGIN
711: l_debug := QP_PREQ_GRP.G_DEBUG_ENGINE;
712:
713: IF l_debug = FND_API.G_TRUE THEN
714: l_pricing_start_time := dbms_utility.get_time;
715: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
716: IF eightI_env = FND_API.G_FALSE THEN
717: l_detailed_excp_support := FND_API.G_TRUE;
712:
713: IF l_debug = FND_API.G_TRUE THEN
714: l_pricing_start_time := dbms_utility.get_time;
715: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
716: IF eightI_env = FND_API.G_FALSE THEN
717: l_detailed_excp_support := FND_API.G_TRUE;
718: ELSE
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
713: IF l_debug = FND_API.G_TRUE THEN
714: l_pricing_start_time := dbms_utility.get_time;
715: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
716: IF eightI_env = FND_API.G_FALSE THEN
717: l_detailed_excp_support := FND_API.G_TRUE;
718: ELSE
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
715: QP_PREQ_GRP.engine_debug('Inside '||l_routine);
716: IF eightI_env = FND_API.G_FALSE THEN
717: l_detailed_excp_support := FND_API.G_TRUE;
718: ELSE
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
722: IF eightI_env = FND_API.G_FALSE THEN
723: l_detailed_excp_support := FND_API.G_TRUE;
717: l_detailed_excp_support := FND_API.G_TRUE;
718: ELSE
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
722: IF eightI_env = FND_API.G_FALSE THEN
723: l_detailed_excp_support := FND_API.G_TRUE;
724: ELSE
725: l_detailed_excp_support := FND_API.G_FALSE;
718: ELSE
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
722: IF eightI_env = FND_API.G_FALSE THEN
723: l_detailed_excp_support := FND_API.G_TRUE;
724: ELSE
725: l_detailed_excp_support := FND_API.G_FALSE;
726: END IF;
719: l_detailed_excp_support := FND_API.G_FALSE;
720: END IF;
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
722: IF eightI_env = FND_API.G_FALSE THEN
723: l_detailed_excp_support := FND_API.G_TRUE;
724: ELSE
725: l_detailed_excp_support := FND_API.G_FALSE;
726: END IF;
727: ELSE
721: ELSIF p_timeout_processing = FND_API.G_TRUE THEN
722: IF eightI_env = FND_API.G_FALSE THEN
723: l_detailed_excp_support := FND_API.G_TRUE;
724: ELSE
725: l_detailed_excp_support := FND_API.G_FALSE;
726: END IF;
727: ELSE
728: IF eightI_env = FND_API.G_FALSE THEN
729: l_detailed_excp_support := p_detailed_excp_support;
724: ELSE
725: l_detailed_excp_support := FND_API.G_FALSE;
726: END IF;
727: ELSE
728: IF eightI_env = FND_API.G_FALSE THEN
729: l_detailed_excp_support := p_detailed_excp_support;
730: ELSE
731: l_detailed_excp_support := FND_API.G_FALSE;
732: END IF;
727: ELSE
728: IF eightI_env = FND_API.G_FALSE THEN
729: l_detailed_excp_support := p_detailed_excp_support;
730: ELSE
731: l_detailed_excp_support := FND_API.G_FALSE;
732: END IF;
733: END IF;
734:
735: IF p_server_url is null THEN
732: END IF;
733: END IF;
734:
735: IF p_server_url is null THEN
736: IF l_debug = FND_API.G_TRUE THEN
737: QP_PREQ_GRP.engine_debug('Java Engine URL has not been setup correctly.');
738: END IF;
739: RAISE E_JAVA_URL_NULL;
740: END IF;
741:
742: /*Construct request parameter string ContextConfig*/
743: l_ctxt_str := Get_Context_Params;
744:
745: IF l_debug = FND_API.G_TRUE THEN
746: QP_PREQ_GRP.engine_debug('before UTL_HTTP.Request, the url string:'||p_server_url||'?'||l_ctxt_str||'&'||p_url_param_string);
747: END IF;
748:
749: /*Defaulting transfer timeout to transferTimeout specified by profile*/
754: END IF;
755:
756: /*Set transfer timeout, default is 60s in 9i database*/
757: IF(l_transfer_timeout IS NOT NULL AND defaultTimeout IS NOT NULL AND l_transfer_timeout <> defaultTimeout)THEN
758: IF l_debug = FND_API.G_TRUE THEN
759: QP_PREQ_GRP.engine_debug('set utl_http transfer_timeout to '||l_transfer_timeout);
760: END IF;
761: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN l_transfer_timeout;
762: END IF;
761: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN l_transfer_timeout;
762: END IF;
763:
764: /*Added for catch more detailed error when UTL_HTTP errored out*/
765: IF l_detailed_excp_support = FND_API.G_TRUE THEN
766: IF l_debug = FND_API.G_TRUE THEN
767: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(true)');
768: END IF;
769: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(TRUE); END;';
762: END IF;
763:
764: /*Added for catch more detailed error when UTL_HTTP errored out*/
765: IF l_detailed_excp_support = FND_API.G_TRUE THEN
766: IF l_debug = FND_API.G_TRUE THEN
767: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(true)');
768: END IF;
769: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(TRUE); END;';
770: END IF;
775: x_return_status_text,
776: x_return_details,
777: p_use_request_pieces);
778:
779: IF l_debug = FND_API.G_TRUE THEN
780: QP_PREQ_GRP.engine_debug('After first HTTP call: x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
781: END IF;
782:
783: /*Set transfer timeout back to default value, default is 60s in 9i database*/
781: END IF;
782:
783: /*Set transfer timeout back to default value, default is 60s in 9i database*/
784: IF(l_transfer_timeout IS NOT NULL AND defaultTimeout IS NOT NULL AND l_transfer_timeout <> defaultTimeout)THEN
785: IF l_debug = FND_API.G_TRUE THEN
786: QP_PREQ_GRP.engine_debug('set utl_http transfer_timeout back to '||defaultTimeout);
787: END IF;
788: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN defaultTimeout;
789: END IF;
788: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.Set_Transfer_Timeout(:1); END;' USING IN defaultTimeout;
789: END IF;
790:
791: /*Added for catch more detailed error when UTL_HTTP errored out*/
792: IF l_detailed_excp_support = FND_API.G_TRUE THEN
793: IF l_debug = FND_API.G_TRUE THEN
794: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(false)');
795: END IF;
796: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
789: END IF;
790:
791: /*Added for catch more detailed error when UTL_HTTP errored out*/
792: IF l_detailed_excp_support = FND_API.G_TRUE THEN
793: IF l_debug = FND_API.G_TRUE THEN
794: QP_PREQ_GRP.engine_debug('set utl_http set_detailed_excp_support(false)');
795: END IF;
796: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
797: END IF;
795: END IF;
796: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.set_detailed_excp_support(FALSE); END;';
797: END IF;
798:
799: IF l_debug = FND_API.G_TRUE THEN
800: l_pricing_end_time := dbms_utility.get_time;
801: QP_PREQ_GRP.engine_debug('Request total time: '||(l_pricing_end_time - l_pricing_start_time)/100);
802: END IF;
803:
802: END IF;
803:
804: EXCEPTION
805: WHEN UTL_HTTP.INIT_FAILED THEN
806: x_return_status := FND_API.G_RET_STS_ERROR;
807: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm ;
808: x_return_status_text := 'UTL_HTTP.INIT_FAILED';
809: IF l_debug = FND_API.G_TRUE THEN
810: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
805: WHEN UTL_HTTP.INIT_FAILED THEN
806: x_return_status := FND_API.G_RET_STS_ERROR;
807: --x_return_status_text := 'UTL_HTTP INIT_FAILED exception with errorcode:'||UTL_HTTP.get_detailed_sqlcode||' errormessage:'||UTL_HTTP.get_detailed_sqlerrm ;
808: x_return_status_text := 'UTL_HTTP.INIT_FAILED';
809: IF l_debug = FND_API.G_TRUE THEN
810: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
811: END IF;
812: WHEN UTL_HTTP.REQUEST_FAILED THEN
813: x_return_status := FND_API.G_RET_STS_ERROR;
809: IF l_debug = FND_API.G_TRUE THEN
810: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_HTTP_INIT_FAILED');
811: END IF;
812: WHEN UTL_HTTP.REQUEST_FAILED THEN
813: x_return_status := FND_API.G_RET_STS_ERROR;
814: x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
815: IF l_debug = FND_API.G_TRUE THEN
816: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
817: END IF;
811: END IF;
812: WHEN UTL_HTTP.REQUEST_FAILED THEN
813: x_return_status := FND_API.G_RET_STS_ERROR;
814: x_return_status_text := 'UTL_HTTP.REQUEST_FAILED';
815: IF l_debug = FND_API.G_TRUE THEN
816: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
817: END IF;
818: BEGIN
819: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
816: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL HTTP REQUEST_FAILED'||x_return_status_text);
817: END IF;
818: BEGIN
819: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
820: x_return_status := FND_API.G_RET_STS_ERROR;
821: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
822:
823: IF l_debug = FND_API.G_TRUE THEN
824: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
819: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
820: x_return_status := FND_API.G_RET_STS_ERROR;
821: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
822:
823: IF l_debug = FND_API.G_TRUE THEN
824: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
825: END IF;
826: EXCEPTION
827: WHEN OTHERS THEN
824: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
825: END IF;
826: EXCEPTION
827: WHEN OTHERS THEN
828: x_return_status := FND_API.G_RET_STS_ERROR;
829: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
830: END;
831: WHEN UTL_TCP.END_OF_INPUT THEN
832: x_return_status := FND_API.G_RET_STS_ERROR;
828: x_return_status := FND_API.G_RET_STS_ERROR;
829: x_return_status_text := 'UTL_HTTP REQUEST_FAILED exception';
830: END;
831: WHEN UTL_TCP.END_OF_INPUT THEN
832: x_return_status := FND_API.G_RET_STS_ERROR;
833: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
834: IF l_debug = FND_API.G_TRUE THEN
835: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
836: END IF;
830: END;
831: WHEN UTL_TCP.END_OF_INPUT THEN
832: x_return_status := FND_API.G_RET_STS_ERROR;
833: x_return_status_text := 'UTL_TCP.END_OF_INPUT';
834: IF l_debug = FND_API.G_TRUE THEN
835: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
836: END IF;
837: WHEN MAX_STATUS_REQUESTS_REACHED THEN
838: x_return_status := FND_API.G_RET_STS_ERROR;
834: IF l_debug = FND_API.G_TRUE THEN
835: QP_PREQ_GRP.engine_debug('HTTP request failed because of UTL_TCP.END_OF_INPUT');
836: END IF;
837: WHEN MAX_STATUS_REQUESTS_REACHED THEN
838: x_return_status := FND_API.G_RET_STS_ERROR;
839: FND_MESSAGE.SET_NAME('QP','QP_JPE_REQUEST_TIMEOUT_ERROR');
840: FND_MESSAGE.SET_TOKEN('SECONDS',G_MAX_STATUS_REQUESTS*G_STATUS_REQUEST_INTERVAL);
841:
842: x_return_status_text := FND_MESSAGE.GET;
841:
842: x_return_status_text := FND_MESSAGE.GET;
843: --x_return_status_text := 'Request has exceeded '||(G_MAX_STATUS_REQUESTS*G_STATUS_REQUEST_INTERVAL)||' seconds.';
844: WHEN E_ROUTINE_ERRORS THEN
845: IF QP_PREQ_GRP.G_DEBUG_ENGINE = FND_API.G_TRUE THEN
846: QP_PREQ_GRP.engine_debug(l_routine||': '||x_return_status_text);
847: END IF;
848: x_return_status := FND_API.G_RET_STS_ERROR;
849: WHEN OTHERS THEN
844: WHEN E_ROUTINE_ERRORS THEN
845: IF QP_PREQ_GRP.G_DEBUG_ENGINE = FND_API.G_TRUE THEN
846: QP_PREQ_GRP.engine_debug(l_routine||': '||x_return_status_text);
847: END IF;
848: x_return_status := FND_API.G_RET_STS_ERROR;
849: WHEN OTHERS THEN
850: BEGIN
851: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
852: x_return_status := FND_API.G_RET_STS_ERROR;
848: x_return_status := FND_API.G_RET_STS_ERROR;
849: WHEN OTHERS THEN
850: BEGIN
851: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
852: x_return_status := FND_API.G_RET_STS_ERROR;
853: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
854:
855: IF l_debug = FND_API.G_TRUE THEN
856: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
851: --EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlcode from dual' INTO x_return_status;
852: x_return_status := FND_API.G_RET_STS_ERROR;
853: EXECUTE IMMEDIATE 'SELECT UTL_HTTP.get_detailed_sqlerrm from dual' INTO x_return_status_text;
854:
855: IF l_debug = FND_API.G_TRUE THEN
856: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
857: END IF;
858: EXCEPTION
859: WHEN OTHERS THEN
856: QP_PREQ_GRP.engine_debug('x_return_status='||x_return_status||' x_return_status_text='||x_return_status_text);
857: END IF;
858: EXCEPTION
859: WHEN OTHERS THEN
860: x_return_status := FND_API.G_RET_STS_ERROR;
861: --FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
862: --x_return_status_text := FND_MESSAGE.GET;
863: x_return_status_text := 'Java call failed unexpectedly. Please contact system administrator!';
864: IF l_debug = FND_API.G_TRUE THEN
860: x_return_status := FND_API.G_RET_STS_ERROR;
861: --FND_MESSAGE.SET_NAME('QP','QP_JPE_UNEXPECTED_ERROR');
862: --x_return_status_text := FND_MESSAGE.GET;
863: x_return_status_text := 'Java call failed unexpectedly. Please contact system administrator!';
864: IF l_debug = FND_API.G_TRUE THEN
865: QP_PREQ_GRP.engine_debug('HTTP request failed unexpectedly!' );
866: END IF;
867: END;
868:
870:
871: BEGIN
872: BEGIN
873: transferTimeout := FND_PROFILE.VALUE('QP_UTL_HTTP_TIMEOUT');
874: eightI_env := FND_API.G_FALSE;
875: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.GET_TRANSFER_TIMEOUT(:1); END;' USING IN OUT defaultTimeout;
876: IF l_debug = FND_API.G_TRUE THEN
877: QP_PREQ_GRP.engine_debug('transferTimeout='||transferTimeout||'sec defaultTimeout='||defaultTimeout||'sec.');
878: END IF;
872: BEGIN
873: transferTimeout := FND_PROFILE.VALUE('QP_UTL_HTTP_TIMEOUT');
874: eightI_env := FND_API.G_FALSE;
875: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.GET_TRANSFER_TIMEOUT(:1); END;' USING IN OUT defaultTimeout;
876: IF l_debug = FND_API.G_TRUE THEN
877: QP_PREQ_GRP.engine_debug('transferTimeout='||transferTimeout||'sec defaultTimeout='||defaultTimeout||'sec.');
878: END IF;
879: EXCEPTION
880: WHEN OTHERS THEN
879: EXCEPTION
880: WHEN OTHERS THEN
881: transferTimeout := NULL;
882: defaultTimeout := NULL;
883: eightI_env := FND_API.G_TRUE;
884: IF l_debug = FND_API.G_TRUE THEN
885: QP_PREQ_GRP.engine_debug('transferTimeout=NULL and defaultTimeout=NULL.');
886: END IF;
887: END;
880: WHEN OTHERS THEN
881: transferTimeout := NULL;
882: defaultTimeout := NULL;
883: eightI_env := FND_API.G_TRUE;
884: IF l_debug = FND_API.G_TRUE THEN
885: QP_PREQ_GRP.engine_debug('transferTimeout=NULL and defaultTimeout=NULL.');
886: END IF;
887: END;
888: END QP_JAVA_ENGINE_UTIL_PUB;