861: , x_return_status => l_return_status
862: , x_test_values_rec => l_test_values_rec
863: );
864:
865: IF l_return_status <> fnd_api.g_ret_sts_success THEN
866: RAISE NO_UPDATE_EXCEPTION;
867: END IF;
868:
869: /* need to validate the min max for the test, no changes made if exceeds the max*/
949: , x_new_spec_vers => l_new_spec_vers
950: , x_return_status => l_return_status
951: );
952:
953: IF l_return_status <> fnd_api.g_ret_sts_success THEN
954: RAISE NO_UPDATE_EXCEPTION;
955: END IF;
956:
957: /* default new spec_rec with the old one*/
999: , p_spec_test_rec => l_spec_test_rec
1000: , x_return_status => l_return_status
1001: );
1002:
1003: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1004: RAISE NO_UPDATE_EXCEPTION;
1005: END IF;
1006:
1007: default_log ( ' Copying Test: '
1017: , p_spec_test_rec => l_spec_test_rec
1018: , x_return_status => l_return_status
1019: );
1020:
1021: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1022: RAISE NO_UPDATE_EXCEPTION;
1023: END IF;
1024: END LOOP;
1025:
1077: , x_new_spec_vers => l_new_spec_vers
1078: , x_return_status => l_return_status
1079: );
1080:
1081: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1082: RAISE NO_UPDATE_EXCEPTION;
1083: END IF;
1084:
1085: /* do the loop for all spec tests for the old spec */
1106: , p_spec_test_rec => l_spec_test_rec
1107: , x_return_status => l_return_status
1108: );
1109:
1110: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1111: RAISE NO_UPDATE_EXCEPTION;
1112: END IF;
1113:
1114: default_log ( ' Copying Test: '
1124: , p_spec_test_rec => l_spec_test_rec
1125: , x_return_status => l_return_status
1126: );
1127:
1128: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1129: RAISE NO_UPDATE_EXCEPTION;
1130: END IF;
1131: END LOOP;
1132:
1148: , p_spec_test_rec => l_spec_test_rec
1149: , x_return_status => l_return_status
1150: );
1151:
1152: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1153: RAISE NO_UPDATE_EXCEPTION;
1154: END IF;
1155:
1156: add_spec_test_rec (p_spec_id => l_new_spec_id
1159: , p_spec_test_rec => l_spec_test_rec
1160: , x_return_status => l_return_status
1161: );
1162:
1163: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1164: RAISE NO_UPDATE_EXCEPTION;
1165: END IF;
1166: END IF; --ADDTEST
1167:
1179: , p_test_name => pnew_name
1180: , x_return_status => l_return_status
1181: );
1182:
1183: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1184: RAISE NO_UPDATE_EXCEPTION;
1185: END IF;
1186: ELSE
1187: -- if version controled, add a new spec version and create spec_test records without this test
1220: , p_spec_test_rec => l_spec_test_rec
1221: , x_return_status => l_return_status
1222: );
1223:
1224: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1225: RAISE NO_UPDATE_EXCEPTION;
1226: END IF;
1227:
1228: default_log ( ' Copying Test: '
1238: , p_spec_test_rec => l_spec_test_rec
1239: , x_return_status => l_return_status
1240: );
1241:
1242: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1243: RAISE NO_UPDATE_EXCEPTION;
1244: END IF;
1245: END IF;
1246: END LOOP;
1273: , x_new_spec_vers => l_new_spec_vers
1274: , x_return_status => l_return_status
1275: );
1276:
1277: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1278: RAISE NO_UPDATE_EXCEPTION;
1279: END IF;
1280:
1281: /* do the loop for all spec tests for the old spec */
1304: , p_spec_test_rec => l_spec_test_rec
1305: , x_return_status => l_return_status
1306: );
1307:
1308: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1309: RAISE NO_UPDATE_EXCEPTION;
1310: END IF;
1311:
1312: default_log ( ' Copying Test: '
1322: , p_spec_test_rec => l_spec_test_rec
1323: , x_return_status => l_return_status
1324: );
1325:
1326: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1327: RAISE NO_UPDATE_EXCEPTION;
1328: END IF;
1329: END IF;
1330: END LOOP;
1380: , p_spec_test_rec => l_spec_test_rec
1381: , x_return_status => l_return_status
1382: );
1383:
1384: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1385: RAISE NO_UPDATE_EXCEPTION;
1386: END IF;
1387:
1388: -- Bug# 5882074 assign back the sequence from the old test.
1400: , p_test_name => pold_name
1401: , x_return_status => l_return_status
1402: );
1403:
1404: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1405: RAISE NO_UPDATE_EXCEPTION;
1406: END IF;
1407: ELSE
1408: /* do nothing if 'Y', becasue this record does not exist for the new spec */
1440: , p_spec_test_rec => l_spec_test_rec
1441: , x_return_status => l_return_status
1442: );
1443:
1444: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1445: RAISE NO_UPDATE_EXCEPTION;
1446: END IF;
1447: END IF; --REPTEST
1448:
1459: , p_new_spec_id => l_new_spec_id
1460: , x_return_status => l_return_status
1461: );
1462:
1463: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1464: RAISE NO_UPDATE_EXCEPTION;
1465: END IF;
1466: END IF;
1467: ELSIF pobject_type = 'VALIDITY' THEN
1495: , p_new_status => l_new_status
1496: , x_return_status => l_return_status
1497: );
1498:
1499: IF l_return_status <> fnd_api.g_ret_sts_success THEN
1500: RAISE NO_UPDATE_EXCEPTION;
1501: END IF;
1502: END IF; -- If specification or validity
1503: EXCEPTION
1657:
1658: --End smalluru Bug#6415285
1659:
1660: BEGIN
1661: x_return_status := fnd_api.g_ret_sts_success;
1662:
1663: OPEN get_gmd_test (p_test_name);
1664: FETCH get_gmd_test INTO l_gmd_test_rec;
1665: CLOSE get_gmd_test;
1706: , x_return_status => x_return_status
1707: , x_test_values_rec => l_test_values_rec
1708: );
1709:
1710: IF x_return_status <> fnd_api.g_ret_sts_success THEN
1711: RAISE fnd_api.g_exc_error;
1712: END IF;
1713:
1714: -- Begin smalluru Bug#6415285.
1707: , x_test_values_rec => l_test_values_rec
1708: );
1709:
1710: IF x_return_status <> fnd_api.g_ret_sts_success THEN
1711: RAISE fnd_api.g_exc_error;
1712: END IF;
1713:
1714: -- Begin smalluru Bug#6415285.
1715: -- Validating the values entered in target, min and max fields
1723: default_log(' Target values are out of range, '
1724: ||' Target Value: '||l_test_values_rec.target_value_num
1725: ||' Target Max: '||l_test_values_rec.max_value_num
1726: ||' Target Min: '||l_test_values_rec.min_value_num);
1727: raise FND_API.G_EXC_ERROR;
1728: End if;
1729: Elsif l_gmd_test_rec.test_type = 'T' then
1730:
1731: open text_range_tests;
1762: default_log(' Target values are out of range, '
1763: ||' Target Value: '||l_test_values_rec.target_value_char
1764: ||' Target Max: '||l_test_values_rec.max_value_char
1765: ||' Target Min: '||l_test_values_rec.min_value_char);
1766: raise FND_API.G_EXC_ERROR;
1767: end if;
1768:
1769: Elsif l_gmd_test_rec.test_type = 'V' Then
1770: If l_test_values_rec.target_value_char is null Then
1770: If l_test_values_rec.target_value_char is null Then
1771: --Target is required for List of Values Tests.
1772: default_log(' Target value should not be NULL, '
1773: ||' Target Value: '||l_test_values_rec.target_value_char);
1774: raise FND_API.G_EXC_ERROR;
1775: else
1776: found:=0;
1777: Open List_of_values_tests;
1778: LOOP
1790: If found = 0 Then
1791: --Target value is not there in the List of Values
1792: default_log(' Target value is out of range, '
1793: ||' Target Value: '||l_test_values_rec.target_value_char);
1794: raise FND_API.G_EXC_ERROR;
1795: End If;
1796:
1797: End if;
1798: End if;
1887: l_spec_test_rec.calc_uom_conv_ind := NULL;
1888: l_spec_test_rec.to_qty_uom := NULL; -- Bug# 5882074 changed to_uom to to_qty_uom
1889: p_spec_test_rec := l_spec_test_rec;
1890: EXCEPTION
1891: WHEN fnd_api.g_exc_error THEN
1892: x_return_status := fnd_api.g_ret_sts_unexp_error;
1893: default_log ('Default spectest from test result in Error');
1894: WHEN OTHERS THEN
1895: x_return_status := fnd_api.g_ret_sts_unexp_error;
1888: l_spec_test_rec.to_qty_uom := NULL; -- Bug# 5882074 changed to_uom to to_qty_uom
1889: p_spec_test_rec := l_spec_test_rec;
1890: EXCEPTION
1891: WHEN fnd_api.g_exc_error THEN
1892: x_return_status := fnd_api.g_ret_sts_unexp_error;
1893: default_log ('Default spectest from test result in Error');
1894: WHEN OTHERS THEN
1895: x_return_status := fnd_api.g_ret_sts_unexp_error;
1896: default_log ('Default spectest from test result in Error');
1891: WHEN fnd_api.g_exc_error THEN
1892: x_return_status := fnd_api.g_ret_sts_unexp_error;
1893: default_log ('Default spectest from test result in Error');
1894: WHEN OTHERS THEN
1895: x_return_status := fnd_api.g_ret_sts_unexp_error;
1896: default_log ('Default spectest from test result in Error');
1897: END default_spectest_from_test;
1898:
1899: PROCEDURE default_spectest_from_spectest (
1928: SELECT *
1929: FROM gmd_qc_tests_b
1930: WHERE test_code = p_test_name;
1931: BEGIN
1932: x_return_status := fnd_api.g_ret_sts_success;
1933:
1934: OPEN get_spec_test_rec (p_from_spec_id, p_from_test_id);
1935: FETCH get_spec_test_rec INTO l_from_spec_test_rec;
1936: CLOSE get_spec_test_rec;
1968: , x_return_status => x_return_status
1969: , x_test_values_rec => l_test_values_rec
1970: );
1971:
1972: IF x_return_status <> fnd_api.g_ret_sts_success THEN
1973: RAISE fnd_api.g_exc_error;
1974: END IF;
1975:
1976: DEBUG ('default from spectest , after set test values');
1969: , x_test_values_rec => l_test_values_rec
1970: );
1971:
1972: IF x_return_status <> fnd_api.g_ret_sts_success THEN
1973: RAISE fnd_api.g_exc_error;
1974: END IF;
1975:
1976: DEBUG ('default from spectest , after set test values');
1977: l_to_spec_test_rec := l_from_spec_test_rec;
1988: l_to_spec_test_rec.target_value_char := l_test_values_rec.target_value_char;
1989: l_to_spec_test_rec.test_id := l_gmd_test_rec.test_id;
1990: p_spec_test_rec := l_to_spec_test_rec;
1991: EXCEPTION
1992: WHEN fnd_api.g_exc_error THEN
1993: x_return_status := fnd_api.g_ret_sts_unexp_error;
1994: default_log ('Default spectest from spectest result in Error');
1995: WHEN OTHERS THEN
1996: x_return_status := fnd_api.g_ret_sts_unexp_error;
1989: l_to_spec_test_rec.test_id := l_gmd_test_rec.test_id;
1990: p_spec_test_rec := l_to_spec_test_rec;
1991: EXCEPTION
1992: WHEN fnd_api.g_exc_error THEN
1993: x_return_status := fnd_api.g_ret_sts_unexp_error;
1994: default_log ('Default spectest from spectest result in Error');
1995: WHEN OTHERS THEN
1996: x_return_status := fnd_api.g_ret_sts_unexp_error;
1997: default_log ('Default spectest from spectest result in Error');
1992: WHEN fnd_api.g_exc_error THEN
1993: x_return_status := fnd_api.g_ret_sts_unexp_error;
1994: default_log ('Default spectest from spectest result in Error');
1995: WHEN OTHERS THEN
1996: x_return_status := fnd_api.g_ret_sts_unexp_error;
1997: default_log ('Default spectest from spectest result in Error');
1998: END default_spectest_from_spectest;
1999:
2000: PROCEDURE set_test_values (
2039: */
2040:
2041:
2042: BEGIN
2043: x_return_status := fnd_api.g_ret_sts_success;
2044: /* lookup code for test type GMD_QC_TEST_DATE_TYPE
2045: * U -- Non-Validated
2046: * N -- Numeric Range
2047: * V -- List of Test Values
2166: || ' Report Precision: '
2167: || preport_precision
2168: || ' Display Precision: '
2169: || pstore_precision);
2170: RAISE fnd_api.g_exc_error;
2171: ELSIF (pstore_precision > l_store_precision) THEN
2172: default_log ( 'Display precision for Spec test cannot be greater than the display precision specified in the test definition.'
2173: || ' Display Precision in Spec test: '
2174: || pstore_precision
2173: || ' Display Precision in Spec test: '
2174: || pstore_precision
2175: || ' Display Precision in test: '
2176: || l_store_precision);
2177: RAISE fnd_api.g_exc_error;
2178: ELSIF (preport_precision > l_report_precision) THEN
2179: default_log ( 'Report precision for Spec test cannot be greater than the report precision specified in the test definition.'
2180: || ' Report Precision in Spec test: '
2181: || preport_precision
2180: || ' Report Precision in Spec test: '
2181: || preport_precision
2182: || ' Report Precision in test: '
2183: || l_report_precision);
2184: RAISE fnd_api.g_exc_error;
2185: END IF;
2186:
2187: --RLNAGARA end Bug 6972284
2188:
2239: || ' Target Max: '
2240: || l_test_values_rec.max_value_num
2241: || ' Target Min: '
2242: || l_test_values_rec.min_value_num);
2243: RAISE fnd_api.g_exc_error;
2244: END IF;
2245: END IF;
2246:
2247: IF NVL (l_test_values_rec.min_value_num, 0) > NVL (l_test_values_rec.max_value_num, 0) THEN
2252: || ' Target Max: '
2253: || l_test_values_rec.max_value_num
2254: || ' Target Min: '
2255: || l_test_values_rec.min_value_num);
2256: RAISE fnd_api.g_exc_error;
2257: END IF;
2258:
2259: x_test_values_rec := l_test_values_rec;
2260: EXCEPTION
2257: END IF;
2258:
2259: x_test_values_rec := l_test_values_rec;
2260: EXCEPTION
2261: WHEN fnd_api.g_exc_error THEN
2262: x_return_status := fnd_api.g_ret_sts_unexp_error;
2263: default_log ('Set Test Values result in Error');
2264: WHEN OTHERS THEN
2265: x_return_status := fnd_api.g_ret_sts_unexp_error;
2258:
2259: x_test_values_rec := l_test_values_rec;
2260: EXCEPTION
2261: WHEN fnd_api.g_exc_error THEN
2262: x_return_status := fnd_api.g_ret_sts_unexp_error;
2263: default_log ('Set Test Values result in Error');
2264: WHEN OTHERS THEN
2265: x_return_status := fnd_api.g_ret_sts_unexp_error;
2266: default_log ('Set Test Values result in Error');
2261: WHEN fnd_api.g_exc_error THEN
2262: x_return_status := fnd_api.g_ret_sts_unexp_error;
2263: default_log ('Set Test Values result in Error');
2264: WHEN OTHERS THEN
2265: x_return_status := fnd_api.g_ret_sts_unexp_error;
2266: default_log ('Set Test Values result in Error');
2267: END set_test_values;
2268:
2269: /*###############################################################
2308: SELECT spec_vr_status
2309: FROM gmd_all_spec_vrs_vl
2310: WHERE spec_id = p_spec_id;
2311: BEGIN
2312: x_return_status := fnd_api.g_ret_sts_success;
2313:
2314: DEBUG ('In creat_new_specification, old_spec_id ' || p_old_spec_id);
2315: OPEN get_spec_rec (p_old_spec_id);
2316: FETCH get_spec_rec INTO l_old_spec_rec;
2333: CLOSE get_default_status;
2334:
2335: IF l_default_spec_sts IS NULL THEN
2336: default_log (' Default Spec Status is not set to crete new specification');
2337: RAISE fnd_api.g_exc_error;
2338: END IF;
2339:
2340: IF l_manage_vr_ind IN ('E', 'O')
2341: AND l_default_spec_sts <> 100 THEN
2342: FOR validity_rules IN get_vrs_rec (l_old_spec_rec.spec_id) LOOP
2343: IF validity_rules.spec_vr_status IN (200, 500) THEN
2344: default_log ( ' With the value of Manage Validity Rules, the Default Spec Status should NOT be '
2345: || l_default_spec_sts);
2346: RAISE fnd_api.g_exc_error;
2347: END IF;
2348: END LOOP;
2349: END IF;
2350:
2365: , x_new_spec_id => x_new_spec_id
2366: , x_return_status => x_return_status
2367: );
2368:
2369: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2370: RAISE fnd_api.g_exc_error;
2371: END IF;
2372:
2373: x_new_spec_vers := l_new_spec_rec.spec_vers;
2366: , x_return_status => x_return_status
2367: );
2368:
2369: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2370: RAISE fnd_api.g_exc_error;
2371: END IF;
2372:
2373: x_new_spec_vers := l_new_spec_rec.spec_vers;
2374:
2379: || l_new_spec_rec.spec_vers
2380: || ' Spec Id: '
2381: || x_new_spec_id);
2382: EXCEPTION
2383: WHEN fnd_api.g_exc_error THEN
2384: x_return_status := fnd_api.g_ret_sts_unexp_error;
2385: default_log ('Create New Specification result in Error');
2386: WHEN OTHERS THEN
2387: x_return_status := fnd_api.g_ret_sts_unexp_error;
2380: || ' Spec Id: '
2381: || x_new_spec_id);
2382: EXCEPTION
2383: WHEN fnd_api.g_exc_error THEN
2384: x_return_status := fnd_api.g_ret_sts_unexp_error;
2385: default_log ('Create New Specification result in Error');
2386: WHEN OTHERS THEN
2387: x_return_status := fnd_api.g_ret_sts_unexp_error;
2388: default_log ('Create New Specification result in Error');
2383: WHEN fnd_api.g_exc_error THEN
2384: x_return_status := fnd_api.g_ret_sts_unexp_error;
2385: default_log ('Create New Specification result in Error');
2386: WHEN OTHERS THEN
2387: x_return_status := fnd_api.g_ret_sts_unexp_error;
2388: default_log ('Create New Specification result in Error');
2389: END create_new_specification;
2390:
2391: PROCEDURE insert_new_spec_rec (
2396: l_new_spec_rec gmd_specifications%ROWTYPE;
2397: l_spec_id gmd_specifications.spec_id%TYPE;
2398: l_row_id VARCHAR2 (200);
2399: BEGIN
2400: x_return_status := fnd_api.g_ret_sts_success;
2401: l_new_spec_rec := p_spec_rec;
2402: DEBUG ('Inserting new version of the spec: ' || l_new_spec_rec.spec_name);
2403: DEBUG ('Inserting new version of the spec ver: ' || l_new_spec_rec.spec_vers);
2404:
2460:
2461: x_new_spec_id := l_spec_id;
2462: EXCEPTION
2463: WHEN OTHERS THEN
2464: x_return_status := fnd_api.g_ret_sts_unexp_error;
2465: default_log ('Insert New spec rec result in Error');
2466: END insert_new_spec_rec;
2467:
2468: /* add spec_test record for the test with p_test_name to spec_id
2506: WHERE s.spec_id = p_spec_id
2507: AND s.test_id = t.test_id
2508: AND t.test_type <> 'E';
2509: BEGIN
2510: x_return_status := fnd_api.g_ret_sts_success;
2511: l_exist := 0;
2512: l_spec_test_rec := p_spec_test_rec;
2513: l_spec_test_rec.spec_id := p_spec_id;
2514:
2537: );
2538:
2539: IF (NOT l_check) THEN
2540: default_log (' Test (' || p_test_name || ') test is not in Expression but that is OK for this spec'); -- pal
2541: --RAISE fnd_api.g_exc_error; -- 10339151 comment this out as unnecessary
2542: END IF;
2543:
2544: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2545: RAISE fnd_api.g_exc_error;
2540: default_log (' Test (' || p_test_name || ') test is not in Expression but that is OK for this spec'); -- pal
2541: --RAISE fnd_api.g_exc_error; -- 10339151 comment this out as unnecessary
2542: END IF;
2543:
2544: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2545: RAISE fnd_api.g_exc_error;
2546: END IF;
2547: END LOOP;
2548: END IF;
2541: --RAISE fnd_api.g_exc_error; -- 10339151 comment this out as unnecessary
2542: END IF;
2543:
2544: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2545: RAISE fnd_api.g_exc_error;
2546: END IF;
2547: END LOOP;
2548: END IF;
2549:
2563:
2564: DEBUG ('Inserting new optional_ind: ' || l_spec_test_rec.optional_ind);
2565: insert_spec_test_rec (p_spec_test_rec => l_spec_test_rec, x_return_status => x_return_status);
2566:
2567: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2568: RAISE fnd_api.g_exc_error;
2569: END IF;
2570:
2571: default_log ( ' Created spec test record : '
2564: DEBUG ('Inserting new optional_ind: ' || l_spec_test_rec.optional_ind);
2565: insert_spec_test_rec (p_spec_test_rec => l_spec_test_rec, x_return_status => x_return_status);
2566:
2567: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2568: RAISE fnd_api.g_exc_error;
2569: END IF;
2570:
2571: default_log ( ' Created spec test record : '
2572: || p_test_name
2584: || p_test_name);
2585: DEBUG (' ADDTEST: Spec Test already exists');
2586: END IF; -- exist spec_test
2587: EXCEPTION
2588: WHEN fnd_api.g_exc_error THEN
2589: x_return_status := fnd_api.g_ret_sts_unexp_error;
2590: default_log ('Create New Spectest result in Error');
2591: WHEN OTHERS THEN
2592: x_return_status := fnd_api.g_ret_sts_unexp_error;
2585: DEBUG (' ADDTEST: Spec Test already exists');
2586: END IF; -- exist spec_test
2587: EXCEPTION
2588: WHEN fnd_api.g_exc_error THEN
2589: x_return_status := fnd_api.g_ret_sts_unexp_error;
2590: default_log ('Create New Spectest result in Error');
2591: WHEN OTHERS THEN
2592: x_return_status := fnd_api.g_ret_sts_unexp_error;
2593: default_log ('Create New Spectest result in Error');
2588: WHEN fnd_api.g_exc_error THEN
2589: x_return_status := fnd_api.g_ret_sts_unexp_error;
2590: default_log ('Create New Spectest result in Error');
2591: WHEN OTHERS THEN
2592: x_return_status := fnd_api.g_ret_sts_unexp_error;
2593: default_log ('Create New Spectest result in Error');
2594: END add_spec_test_rec;
2595:
2596: /* delete spec_test record for the test with p_test_name to spec_id
2627: WHERE s.spec_id = p_spec_id
2628: AND s.test_id = t.test_id
2629: AND t.test_type = 'E';
2630: BEGIN
2631: x_return_status := fnd_api.g_ret_sts_success;
2632:
2633: OPEN get_gmd_test (p_test_name);
2634: FETCH get_gmd_test INTO l_gmd_test_rec;
2635: CLOSE get_gmd_test;
2648: , p_test_name => p_test_name
2649: , x_return_status => x_return_status
2650: ) THEN
2651: default_log (' Test ' || p_test_name || ' is used in an expression within the spec');
2652: RAISE fnd_api.g_exc_error;
2653: END IF;
2654:
2655: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2656: RAISE fnd_api.g_exc_error;
2651: default_log (' Test ' || p_test_name || ' is used in an expression within the spec');
2652: RAISE fnd_api.g_exc_error;
2653: END IF;
2654:
2655: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2656: RAISE fnd_api.g_exc_error;
2657: END IF;
2658: END LOOP;
2659: END IF;
2652: RAISE fnd_api.g_exc_error;
2653: END IF;
2654:
2655: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2656: RAISE fnd_api.g_exc_error;
2657: END IF;
2658: END LOOP;
2659: END IF;
2660:
2686: || ' '
2687: || 'Test Name: '
2688: || l_gmd_test_rec.test_code);
2689: DEBUG (' DELTEST: Spec Test NOT exists');
2690: x_return_status := fnd_api.g_ret_sts_unexp_error;
2691: END IF;
2692: EXCEPTION
2693: WHEN fnd_api.g_exc_error THEN
2694: x_return_status := fnd_api.g_ret_sts_unexp_error;
2689: DEBUG (' DELTEST: Spec Test NOT exists');
2690: x_return_status := fnd_api.g_ret_sts_unexp_error;
2691: END IF;
2692: EXCEPTION
2693: WHEN fnd_api.g_exc_error THEN
2694: x_return_status := fnd_api.g_ret_sts_unexp_error;
2695: default_log ('Delete spec test error ' || SQLERRM);
2696: WHEN OTHERS THEN
2697: x_return_status := fnd_api.g_ret_sts_unexp_error;
2690: x_return_status := fnd_api.g_ret_sts_unexp_error;
2691: END IF;
2692: EXCEPTION
2693: WHEN fnd_api.g_exc_error THEN
2694: x_return_status := fnd_api.g_ret_sts_unexp_error;
2695: default_log ('Delete spec test error ' || SQLERRM);
2696: WHEN OTHERS THEN
2697: x_return_status := fnd_api.g_ret_sts_unexp_error;
2698: default_log ('Delete spec test error ' || SQLERRM);
2693: WHEN fnd_api.g_exc_error THEN
2694: x_return_status := fnd_api.g_ret_sts_unexp_error;
2695: default_log ('Delete spec test error ' || SQLERRM);
2696: WHEN OTHERS THEN
2697: x_return_status := fnd_api.g_ret_sts_unexp_error;
2698: default_log ('Delete spec test error ' || SQLERRM);
2699: END del_spec_test_rec;
2700:
2701: PROCEDURE init_test_values_rec (
2813: );
2814: EXCEPTION
2815: WHEN OTHERS THEN
2816: gmd_debug.put_line ('sqlerror ' || SUBSTRB (SQLERRM, 1, 100));
2817: x_return_status := fnd_api.g_ret_sts_unexp_error;
2818: END insert_spec_test_rec;
2819:
2820: /* p_object_type, indicates it is spec or validity rules */
2821: PROCEDURE process_validity_for_spec (
2863: WHERE spec_id = p_spec_id
2864: AND spec_name = p_spec_name
2865: AND owner_organization_id = p_orgn_id;
2866: BEGIN
2867: x_return_status := fnd_api.g_ret_sts_success;
2868:
2869: OPEN get_spec_rec (p_old_spec_id);
2870: FETCH get_spec_rec INTO l_old_spec_rec;
2871: CLOSE get_spec_rec;
2931: , p_create_mode => l_create_mode
2932: , x_return_status => x_return_status
2933: );
2934:
2935: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2936: RAISE fnd_api.g_exc_error;
2937: END IF;
2938:
2939: IF l_manage_vr_ind = 'E' THEN
2932: , x_return_status => x_return_status
2933: );
2934:
2935: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2936: RAISE fnd_api.g_exc_error;
2937: END IF;
2938:
2939: IF l_manage_vr_ind = 'E' THEN
2940: end_old_validity_rule (p_vr_id => l_vr_id
2941: , p_spec_type => l_spec_type
2942: , x_return_status => x_return_status
2943: );
2944:
2945: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2946: RAISE fnd_api.g_exc_error;
2947: END IF;
2948: ELSIF l_manage_vr_ind = 'O' THEN
2949: obsolete_old_validity_rule (p_vr_id => l_vr_id
2942: , x_return_status => x_return_status
2943: );
2944:
2945: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2946: RAISE fnd_api.g_exc_error;
2947: END IF;
2948: ELSIF l_manage_vr_ind = 'O' THEN
2949: obsolete_old_validity_rule (p_vr_id => l_vr_id
2950: , p_spec_type => l_spec_type
2950: , p_spec_type => l_spec_type
2951: , x_return_status => x_return_status
2952: );
2953:
2954: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2955: RAISE fnd_api.g_exc_error;
2956: END IF;
2957: END IF;
2958: ELSIF l_manage_vr_ind = 'Z' THEN
2951: , x_return_status => x_return_status
2952: );
2953:
2954: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2955: RAISE fnd_api.g_exc_error;
2956: END IF;
2957: END IF;
2958: ELSIF l_manage_vr_ind = 'Z' THEN
2959: NULL; -- do nothing
2981: , p_new_status => p_new_status
2982: , x_return_status => x_return_status
2983: );
2984:
2985: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2986: RAISE fnd_api.g_exc_error;
2987: END IF;
2988: END IF;
2989: EXCEPTION
2982: , x_return_status => x_return_status
2983: );
2984:
2985: IF x_return_status <> fnd_api.g_ret_sts_success THEN
2986: RAISE fnd_api.g_exc_error;
2987: END IF;
2988: END IF;
2989: EXCEPTION
2990: WHEN fnd_api.g_exc_error THEN
2986: RAISE fnd_api.g_exc_error;
2987: END IF;
2988: END IF;
2989: EXCEPTION
2990: WHEN fnd_api.g_exc_error THEN
2991: x_return_status := fnd_api.g_ret_sts_unexp_error;
2992: default_log ('Process validity for spec results in Error');
2993: WHEN OTHERS THEN
2994: x_return_status := fnd_api.g_ret_sts_unexp_error;
2987: END IF;
2988: END IF;
2989: EXCEPTION
2990: WHEN fnd_api.g_exc_error THEN
2991: x_return_status := fnd_api.g_ret_sts_unexp_error;
2992: default_log ('Process validity for spec results in Error');
2993: WHEN OTHERS THEN
2994: x_return_status := fnd_api.g_ret_sts_unexp_error;
2995: default_log ('Process validity for spec results in Error');
2990: WHEN fnd_api.g_exc_error THEN
2991: x_return_status := fnd_api.g_ret_sts_unexp_error;
2992: default_log ('Process validity for spec results in Error');
2993: WHEN OTHERS THEN
2994: x_return_status := fnd_api.g_ret_sts_unexp_error;
2995: default_log ('Process validity for spec results in Error');
2996: END process_validity_for_spec;
2997:
2998: /* p_create_mode is 'R', replace the old spec_status with passed in p_spec_status */
3017: l_manage_vr_ind VARCHAR2 (1);
3018: l_spec_type VARCHAR2 (1);
3019: l_return BOOLEAN;
3020: BEGIN
3021: x_return_status := fnd_api.g_ret_sts_success;
3022: l_spec_type := p_spec_type;
3023: l_spec_vr_id := p_from_vr_id;
3024: DEBUG ('in copy validity rule, vr id: ' || l_spec_vr_id);
3025: DEBUG ('in copy validity rule, to_spec_id: ' || p_to_spec_id);
3107:
3108: default_log (' Created New Supplier Validity Rule: ' || l_supplier_spec_vrs_out.spec_vr_id);
3109: END IF;
3110: EXCEPTION
3111: WHEN fnd_api.g_exc_error THEN
3112: x_return_status := fnd_api.g_ret_sts_unexp_error;
3113: default_log ('Process validity for spec results in Error');
3114: WHEN OTHERS THEN
3115: x_return_status := fnd_api.g_ret_sts_unexp_error;
3108: default_log (' Created New Supplier Validity Rule: ' || l_supplier_spec_vrs_out.spec_vr_id);
3109: END IF;
3110: EXCEPTION
3111: WHEN fnd_api.g_exc_error THEN
3112: x_return_status := fnd_api.g_ret_sts_unexp_error;
3113: default_log ('Process validity for spec results in Error');
3114: WHEN OTHERS THEN
3115: x_return_status := fnd_api.g_ret_sts_unexp_error;
3116: default_log ('Process validity for spec results in Error');
3111: WHEN fnd_api.g_exc_error THEN
3112: x_return_status := fnd_api.g_ret_sts_unexp_error;
3113: default_log ('Process validity for spec results in Error');
3114: WHEN OTHERS THEN
3115: x_return_status := fnd_api.g_ret_sts_unexp_error;
3116: default_log ('Process validity for spec results in Error');
3117: END copy_validity_rule;
3118:
3119: PROCEDURE end_old_validity_rule (
3130: l_manage_vr_ind VARCHAR2 (1);
3131: l_spec_type VARCHAR2 (1);
3132: l_return BOOLEAN;
3133: BEGIN
3134: x_return_status := fnd_api.g_ret_sts_success;
3135: l_spec_type := p_spec_type;
3136: l_spec_vr_id := p_vr_id;
3137: DEBUG ('in End_old_validity_rule, spec_Type ' || l_spec_type);
3138:
3161:
3162: default_log (' End Supplier Validity Rule: ' || l_spec_vr_id);
3163: END IF;
3164: EXCEPTION
3165: WHEN fnd_api.g_exc_error THEN
3166: x_return_status := fnd_api.g_ret_sts_unexp_error;
3167: default_log ('End validity rule results in Error');
3168: WHEN OTHERS THEN
3169: x_return_status := fnd_api.g_ret_sts_unexp_error;
3162: default_log (' End Supplier Validity Rule: ' || l_spec_vr_id);
3163: END IF;
3164: EXCEPTION
3165: WHEN fnd_api.g_exc_error THEN
3166: x_return_status := fnd_api.g_ret_sts_unexp_error;
3167: default_log ('End validity rule results in Error');
3168: WHEN OTHERS THEN
3169: x_return_status := fnd_api.g_ret_sts_unexp_error;
3170: default_log ('End validity rule results in Error');
3165: WHEN fnd_api.g_exc_error THEN
3166: x_return_status := fnd_api.g_ret_sts_unexp_error;
3167: default_log ('End validity rule results in Error');
3168: WHEN OTHERS THEN
3169: x_return_status := fnd_api.g_ret_sts_unexp_error;
3170: default_log ('End validity rule results in Error');
3171: END end_old_validity_rule;
3172:
3173: PROCEDURE obsolete_old_validity_rule (
3184: l_manage_vr_ind VARCHAR2 (1);
3185: l_spec_type VARCHAR2 (1);
3186: l_return BOOLEAN;
3187: BEGIN
3188: x_return_status := fnd_api.g_ret_sts_success;
3189: l_spec_type := p_spec_type;
3190: l_spec_vr_id := p_vr_id;
3191: DEBUG ('in Obsolete_old_validity_rule, spec_Type ' || l_spec_type);
3192:
3215:
3216: default_log (' Obsolete Supplier Validity Rule: ' || l_spec_vr_id);
3217: END IF;
3218: EXCEPTION
3219: WHEN fnd_api.g_exc_error THEN
3220: x_return_status := fnd_api.g_ret_sts_unexp_error;
3221: default_log ('Obsolete validity for spec results in Error');
3222: WHEN OTHERS THEN
3223: x_return_status := fnd_api.g_ret_sts_unexp_error;
3216: default_log (' Obsolete Supplier Validity Rule: ' || l_spec_vr_id);
3217: END IF;
3218: EXCEPTION
3219: WHEN fnd_api.g_exc_error THEN
3220: x_return_status := fnd_api.g_ret_sts_unexp_error;
3221: default_log ('Obsolete validity for spec results in Error');
3222: WHEN OTHERS THEN
3223: x_return_status := fnd_api.g_ret_sts_unexp_error;
3224: default_log ('Obsolete validity for spec results in Error');
3219: WHEN fnd_api.g_exc_error THEN
3220: x_return_status := fnd_api.g_ret_sts_unexp_error;
3221: default_log ('Obsolete validity for spec results in Error');
3222: WHEN OTHERS THEN
3223: x_return_status := fnd_api.g_ret_sts_unexp_error;
3224: default_log ('Obsolete validity for spec results in Error');
3225: END obsolete_old_validity_rule;
3226:
3227: PROCEDURE update_validity_rule (
3247: SELECT spec_status
3248: FROM gmd_all_spec_vrs_vl
3249: WHERE spec_vr_id = p_vr_id;
3250: BEGIN
3251: x_return_status := fnd_api.g_ret_sts_success;
3252: l_spec_type := p_spec_type;
3253: l_spec_vr_id := p_vr_id;
3254: DEBUG ('In Update_validity_rule, validity_rule_id ' || l_spec_vr_id);
3255: DEBUG ('In Update_validity_rule, spec_type ' || l_spec_type);
3274: || ') for Validity Rule '
3275: || 'Can Not Be Higher than the Spec Status ('
3276: || l_spec_status
3277: || ')');
3278: RAISE fnd_api.g_exc_error;
3279: END IF;
3280:
3281: IF l_spec_type = 'C' THEN
3282: IF p_new_status IS NOT NULL THEN
3343:
3344: default_log (' Updated Supplier Validity Rule: ' || l_spec_vr_id);
3345: END IF;
3346: EXCEPTION
3347: WHEN fnd_api.g_exc_error THEN
3348: x_return_status := fnd_api.g_ret_sts_unexp_error;
3349: default_log ('Update validity for spec results in Error');
3350: DEBUG ('sqlerror ' || SUBSTRB (SQLERRM, 1, 100));
3351: WHEN OTHERS THEN
3344: default_log (' Updated Supplier Validity Rule: ' || l_spec_vr_id);
3345: END IF;
3346: EXCEPTION
3347: WHEN fnd_api.g_exc_error THEN
3348: x_return_status := fnd_api.g_ret_sts_unexp_error;
3349: default_log ('Update validity for spec results in Error');
3350: DEBUG ('sqlerror ' || SUBSTRB (SQLERRM, 1, 100));
3351: WHEN OTHERS THEN
3352: x_return_status := fnd_api.g_ret_sts_unexp_error;
3348: x_return_status := fnd_api.g_ret_sts_unexp_error;
3349: default_log ('Update validity for spec results in Error');
3350: DEBUG ('sqlerror ' || SUBSTRB (SQLERRM, 1, 100));
3351: WHEN OTHERS THEN
3352: x_return_status := fnd_api.g_ret_sts_unexp_error;
3353: default_log ('Update validity for spec results in Error');
3354: DEBUG ('sqlerror ' || SUBSTRB (SQLERRM, 1, 100));
3355: END update_validity_rule;
3356: -- pal
3362: l_exptab gmd_utility_pkg.exptab;
3363: l_boolean BOOLEAN := FALSE;
3364: i NUMBER;
3365: BEGIN
3366: x_return_status := fnd_api.g_ret_sts_success;
3367: DEBUG (' In is_test_in_expression, expression: ' || p_expression);
3368: DEBUG (' In is_test_in_expression, test_name: ' || p_test_name);
3369: gmd_utility_pkg.parse (x_exp => p_expression
3370: , x_exptab => l_exptab