1159: end;
1160:
1161: -----------------------------------------
1162: -----This procedure is used as a workaround for bug# 2687938 which is
1163: -----utl_http_request_failed error from network API during batch validation
1164: ------although the logs show that the validation was successful
1165:
1166: -------Changes to this procedure is made for SSL implementation
1167: -------Changes are implemented as suggested in bug# 3594440, 3785732,3785687
1179: l_wallet_path := FND_PROFILE.VALUE('FND_DB_WALLET_DIR');
1180: l_wallet_path := 'file:'||l_wallet_path ;
1181:
1182: IF (transferTimeout IS NOT NULL AND defaultTimeout IS NOT NULL) THEN
1183: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.SET_TRANSFER_TIMEOUT(:1); END;' USING IN transferTimeout;
1184: END IF;
1185:
1186: -----if the l_ssl_profile_option is SSL then
1187: -----pass in the wallet path and wallet passwd
1186: -----if the l_ssl_profile_option is SSL then
1187: -----pass in the wallet path and wallet passwd
1188: -----otherwise pass in the URL only
1189: IF (UPPER(l_ssl_profile_option) LIKE ('%HTTPS%')) THEN
1190: config_messages := UTL_HTTP.request_pieces(url => FinalURL,
1191: wallet_path => l_wallet_path,
1192: wallet_password => l_wallet_passwd);
1193: ELSE
1194: config_messages := UTL_HTTP.request_pieces(url => FinalURL);
1190: config_messages := UTL_HTTP.request_pieces(url => FinalURL,
1191: wallet_path => l_wallet_path,
1192: wallet_password => l_wallet_passwd);
1193: ELSE
1194: config_messages := UTL_HTTP.request_pieces(url => FinalURL);
1195: END IF;
1196:
1197: IF (transferTimeout IS NOT NULL AND defaultTimeout IS NOT NULL) THEN
1198: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.SET_TRANSFER_TIMEOUT(:1); END;' USING IN defaultTimeout;
1194: config_messages := UTL_HTTP.request_pieces(url => FinalURL);
1195: END IF;
1196:
1197: IF (transferTimeout IS NOT NULL AND defaultTimeout IS NOT NULL) THEN
1198: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.SET_TRANSFER_TIMEOUT(:1); END;' USING IN defaultTimeout;
1199: END IF;
1200: COMMIT;
1201: EXCEPTION
1202: WHEN OTHERS THEN
1265: detailed_excp_flag boolean;
1266: -- n0 integer; n1 integer; n2 integer; msg varchar2(255);
1267:
1268: BEGIN
1269: UTL_HTTP.get_detailed_excp_support (detailed_excp_flag);
1270:
1271: IF detailed_excp_flag<>true
1272: THEN
1273: UTL_HTTP.set_detailed_excp_support(enable =>TRUE);
1269: UTL_HTTP.get_detailed_excp_support (detailed_excp_flag);
1270:
1271: IF detailed_excp_flag<>true
1272: THEN
1273: UTL_HTTP.set_detailed_excp_support(enable =>TRUE);
1274: END IF;
1275:
1276: IF p_pseudo_hdr_id IS NOT NULL THEN
1277: l_config_info_str := l_config_header_id_open || TO_CHAR(p_pseudo_hdr_id)
1343: x_validation_status := CONFIG_PROCESSED_NO_TERMINATE;
1344: END IF;
1345:
1346: EXCEPTION
1347: WHEN UTL_HTTP.INIT_FAILED THEN
1348: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1349: x_validation_status := UTL_HTTP_INIT_FAILED;
1350:
1351: IF detailed_excp_flag<>true
1344: END IF;
1345:
1346: EXCEPTION
1347: WHEN UTL_HTTP.INIT_FAILED THEN
1348: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1349: x_validation_status := UTL_HTTP_INIT_FAILED;
1350:
1351: IF detailed_excp_flag<>true
1352: THEN
1345:
1346: EXCEPTION
1347: WHEN UTL_HTTP.INIT_FAILED THEN
1348: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1349: x_validation_status := UTL_HTTP_INIT_FAILED;
1350:
1351: IF detailed_excp_flag<>true
1352: THEN
1353: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1349: x_validation_status := UTL_HTTP_INIT_FAILED;
1350:
1351: IF detailed_excp_flag<>true
1352: THEN
1353: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1354: END IF;
1355:
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1352: THEN
1353: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1354: END IF;
1355:
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1353: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1354: END IF;
1355:
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1354: END IF;
1355:
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1355:
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1356: WHEN UTL_HTTP.REQUEST_FAILED OR UTL_HTTP.BAD_ARGUMENT
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1357: OR UTL_HTTP.BAD_URL OR UTL_HTTP.PROTOCOL_ERROR
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1365:
1358: OR UTL_HTTP.UNKNOWN_SCHEME OR UTL_HTTP.HEADER_NOT_FOUND
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1365:
1366: IF detailed_excp_flag<>true
1359: OR UTL_HTTP.END_OF_BODY OR UTL_HTTP.ILLEGAL_CALL
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1365:
1366: IF detailed_excp_flag<>true
1367: THEN
1360: OR UTL_HTTP.HTTP_CLIENT_ERROR OR UTL_HTTP.HTTP_SERVER_ERROR
1361: OR UTL_HTTP.TOO_MANY_REQUESTS OR UTL_HTTP.PARTIAL_MULTIBYTE_CHAR
1362: OR UTL_HTTP.TRANSFER_TIMEOUT THEN
1363: v_detailed_error_message:=' SQLCODE:'||UTL_HTTP.GET_DETAILED_SQLCODE||' ERROR:'||UTL_HTTP.GET_DETAILED_SQLERRM;
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1365:
1366: IF detailed_excp_flag<>true
1367: THEN
1368: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1364: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1365:
1366: IF detailed_excp_flag<>true
1367: THEN
1368: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1369: END IF;
1370:
1371: WHEN OTHERS THEN
1372: IF detailed_excp_flag<>true
1370:
1371: WHEN OTHERS THEN
1372: IF detailed_excp_flag<>true
1373: THEN
1374: UTL_HTTP.set_detailed_excp_support(enable =>FALSE);
1375: END IF;
1376:
1377: IF sqlcode='-12545'
1378: then
1375: END IF;
1376:
1377: IF sqlcode='-12545'
1378: then
1379: x_validation_status:=UTL_HTTP_REQUEST_FAILED;
1380: ELSE
1381: RAISE;
1382: END IF;
1383: END validate; -- pvt
1896: fnd_message.set_name('CZ', 'CZ_BV_ERR_INIT_MSG');
1897: fnd_message.SET_TOKEN('ERROR_MSG', v_detailed_error_message);
1898: fnd_msg_pub.add;
1899: RAISE FND_API.G_EXC_ERROR;
1900: ELSIF l_validation_status = UTL_HTTP_INIT_FAILED THEN
1901: fnd_message.set_name('CZ', 'CZ_BV_ERR_HTTP_INIT');
1902: fnd_message.SET_TOKEN('ERROR_MSG', v_detailed_error_message);
1903: fnd_msg_pub.add;
1904: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1901: fnd_message.set_name('CZ', 'CZ_BV_ERR_HTTP_INIT');
1902: fnd_message.SET_TOKEN('ERROR_MSG', v_detailed_error_message);
1903: fnd_msg_pub.add;
1904: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1905: ELSIF l_validation_status = UTL_HTTP_REQUEST_FAILED THEN
1906: fnd_message.set_name('CZ', 'CZ_BV_ERR_HTTP_REQ');
1907: fnd_message.SET_TOKEN('ERROR_MSG', v_detailed_error_message);
1908: fnd_msg_pub.add;
1909: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2180:
2181: l_nDebug := 7;
2182: -- delete based on setting in cz_db_settings
2183: l_check_db_setting := TRUE;
2184: IF validation_status = UTL_HTTP_INIT_FAILED OR
2185: validation_status = UTL_HTTP_REQUEST_FAILED THEN
2186: l_check_db_setting := FALSE;
2187: END IF;
2188:
2181: l_nDebug := 7;
2182: -- delete based on setting in cz_db_settings
2183: l_check_db_setting := TRUE;
2184: IF validation_status = UTL_HTTP_INIT_FAILED OR
2185: validation_status = UTL_HTTP_REQUEST_FAILED THEN
2186: l_check_db_setting := FALSE;
2187: END IF;
2188:
2189: delete_bv_records(l_pseudo_hdr_id, l_check_db_setting, FALSE);
3520: END IF;
3521:
3522: BEGIN
3523: transferTimeout := To_number(get_db_setting('SCHEMA', 'UTLHTTPTRANSFERTIMEOUT'));
3524: EXECUTE IMMEDIATE 'BEGIN UTL_HTTP.GET_TRANSFER_TIMEOUT(:1); END;' USING IN OUT defaultTimeout;
3525: EXCEPTION
3526: WHEN OTHERS THEN
3527: transferTimeout := NULL;
3528: defaultTimeout := NULL;