278: FETCH c INTO l_char_id;
279: IF c%NOTFOUND THEN
280: CLOSE c;
281: fnd_message.set_name('QA', 'QA_API_INVALID_ELEMENT');
282: fnd_msg_pub.add();
283: RAISE fnd_api.g_exc_error;
284: END IF;
285:
286: CLOSE c;
313: CLOSE c;
314:
315: IF NOT l_found THEN
316: fnd_message.set_name('QA', 'QA_API_SPEC_MUST_HAVE_CHARS');
317: fnd_msg_pub.add();
318: RAISE fnd_api.g_exc_error;
319: END IF;
320:
321: END check_for_spec_element;
354: l_item_id := qa_flex_util.get_item_id(p_org_id, p_item_name);
355:
356: IF (l_item_id IS NULL) THEN
357: fnd_message.set_name('QA', 'QA_API_INVALID_ITEM_NAME');
358: fnd_msg_pub.add();
359: RAISE fnd_api.g_exc_error;
360: ELSE
361: l_revision_flag := get_revision_flag(l_item_id, p_org_id);
362: IF (l_revision_flag = 1) THEN
362: IF (l_revision_flag = 1) THEN
363:
364: IF (p_item_revision IS NOT NULL) THEN
365: fnd_message.set_name('QA', 'QA_API_REVISION_CONTROLLED');
366: fnd_msg_pub.add();
367: RAISE fnd_api.g_exc_error;
368: END IF;
369:
370: ELSIF (l_revision_flag = 2) and (p_item_revision IS NULL) THEN
368: END IF;
369:
370: ELSIF (l_revision_flag = 2) and (p_item_revision IS NULL) THEN
371: fnd_message.set_name('QA', 'QA_API_MANDATORY_REVISION');
372: fnd_msg_pub.add();
373: RAISE fnd_api.g_exc_error;
374:
375: ELSE
376: IF NOT qa_plan_element_api.validate_revision(p_org_id,
375: ELSE
376: IF NOT qa_plan_element_api.validate_revision(p_org_id,
377: l_item_id, p_item_revision) THEN
378: fnd_message.set_name('QA', 'QA_API_INVALID_REVISION');
379: fnd_msg_pub.add();
380: RAISE fnd_api.g_exc_error;
381: END IF;
382: END IF;
383: END IF;
402: BEGIN
403: temp_number := to_number(p_value);
404: EXCEPTION WHEN OTHERS THEN
405: fnd_message.set_name('QA', 'QA_INVALID_NUMBER');
406: fnd_msg_pub.add();
407: RAISE fnd_api.g_exc_error;
408: END;
409:
410: ELSIF p_datatype = qa_ss_const.date_datatype THEN
411: BEGIN
412: temp_date := qltdate.any_to_date(p_value);
413: EXCEPTION WHEN OTHERS THEN
414: fnd_message.set_name('QA', 'QA_INVALID_DATE');
415: fnd_msg_pub.add();
416: RAISE fnd_api.g_exc_error;
417: END;
418: END IF;
419:
483: CLOSE c;
484:
485: IF (l_category_set_id IS NULL) THEN
486: fnd_message.set_name('QA', 'QA_API_INVALID_CATEGORY_SET');
487: fnd_msg_pub.add();
488: RAISE fnd_api.g_exc_error;
489: END IF;
490:
491: RETURN l_category_set_id;
530: END IF;
531:
532: IF (l_category_id IS NULL) THEN
533: fnd_message.set_name('QA', 'QA_API_INVALID_CATEGORY');
534: fnd_msg_pub.add();
535: RAISE fnd_api.g_exc_error;
536: END IF;
537:
538: RETURN l_category_id;
560:
561: IF c%NOTFOUND THEN
562: CLOSE c;
563: fnd_message.set_name('QA', 'QA_API_SPEC_NAME_NOT_FOUND');
564: fnd_msg_pub.add();
565: RAISE fnd_api.g_exc_error;
566: END IF;
567:
568: CLOSE c;
840: END IF;
841:
842: -- Initialize message list if p_init_msg_list is set to TRUE.
843: IF fnd_api.to_boolean(p_init_msg_list) THEN
844: fnd_msg_pub.initialize;
845: END IF;
846:
847:
848: -- Initialize API return status to success
850:
851: l_user_id := get_user_id(p_user_name);
852: IF l_user_id = -1 THEN
853: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
854: fnd_msg_pub.add();
855: raise fnd_api.g_exc_error;
856: END IF;
857:
858: -- Algorithm
894: -- 8. insert the row
895:
896: IF (spec_exists(p_spec_name)) THEN
897: fnd_message.set_name('QA', 'QA_API_DUPLICATE_SPEC_NAME');
898: fnd_msg_pub.add();
899: RAISE fnd_api.g_exc_error;
900: END IF;
901:
902: -- See if the spec exists with p_common_spec_name
902: -- See if the spec exists with p_common_spec_name
903: IF p_reference_spec IS NOT NULL AND NOT spec_exists(p_reference_spec) THEN
904: fnd_message.set_name('QA', 'QA_SPEC_NOT_EXISTS');
905: fnd_message.set_token('ENTITY1', p_reference_spec);
906: fnd_msg_pub.add();
907: RAISE fnd_api.g_exc_error;
908: END IF;
909:
910: -- Force not to reference a child spec if common_spec_name is passed
909:
910: -- Force not to reference a child spec if common_spec_name is passed
911: IF p_reference_spec IS NOT NULL AND is_child_spec(p_reference_spec) THEN
912: fnd_message.set_name('QA', 'QA_CANNOT_REFER_CHILD_SPEC');
913: fnd_msg_pub.add();
914: RAISE fnd_api.g_exc_error;
915: END IF;
916:
917: l_org_id := qa_plans_api.get_org_id(p_organization_code);
917: l_org_id := qa_plans_api.get_org_id(p_organization_code);
918:
919: IF (l_org_id IS NULL) THEN
920: fnd_message.set_name('QA', 'QA_API_INVALID_ORG_CODE');
921: fnd_msg_pub.add();
922: RAISE fnd_api.g_exc_error;
923: END IF;
924:
925: IF (p_effective_to IS NOT NULL) THEN
924:
925: IF (p_effective_to IS NOT NULL) THEN
926: IF (p_effective_to < p_effective_from) THEN
927: fnd_message.set_name('QA', 'QA_EFFECTIVE_DATE_RANGE');
928: fnd_msg_pub.add();
929: RAISE fnd_api.g_exc_error;
930: END IF;
931: END IF;
932:
936: ELSIF (p_assignment_type = g_spec_type_supplier) THEN
937: l_vendor_id := qa_plan_element_api.get_supplier_id(p_supplier_name);
938: IF (l_vendor_id IS NULL) THEN
939: fnd_message.set_name('QA', 'QA_API_INVALID_VENDOR_NAME');
940: fnd_msg_pub.add();
941: RAISE fnd_api.g_exc_error;
942: END IF;
943:
944: ELSIF (p_assignment_type = g_spec_type_customer) THEN
944: ELSIF (p_assignment_type = g_spec_type_customer) THEN
945: l_customer_id := qa_plan_element_api.get_customer_id(p_customer_name);
946: IF (l_customer_id IS NULL) THEN
947: fnd_message.set_name('QA', 'QA_API_INVALID_CUSTOMER_NAME');
948: fnd_msg_pub.add();
949: RAISE fnd_api.g_exc_error;
950: END IF;
951:
952: ELSE
950: END IF;
951:
952: ELSE
953: fnd_message.set_name('QA', 'QA_API_INVALID_ASSIGNMENT_TYPE');
954: fnd_msg_pub.add();
955: RAISE fnd_api.g_exc_error;
956: END IF;
957:
958: IF (p_item_name IS NOT NULL) THEN
974: l_datatype := qa_chars_api.datatype(l_char_id);
975: validate_datatype(l_sub_type_value, l_datatype);
976: ELSE
977: fnd_message.set_name('QA', 'QA_API_INVALID_ELEMENT');
978: fnd_msg_pub.add();
979: RAISE fnd_api.g_exc_error;
980: END IF;
981: ELSE
982: l_char_id := -1;
988: l_sub_type_value, l_existing_spec_name)) THEN
989:
990: fnd_message.set_name('QA', 'QA_SPEC_COMBINATION_EXISTS');
991: fnd_message.set_token('ENTITY1', l_existing_spec_name);
992: fnd_msg_pub.add();
993: RAISE fnd_api.g_exc_error;
994: END IF;
995:
996: SELECT qa_specs_s.nextval INTO x_spec_id FROM DUAL;
1086:
1087: WHEN fnd_api.g_exc_error THEN
1088: ROLLBACK TO create_specification_pub;
1089: x_return_status := fnd_api.g_ret_sts_error;
1090: fnd_msg_pub.count_and_get(
1091: p_count => x_msg_count,
1092: p_data => x_msg_data
1093: );
1094:
1094:
1095: WHEN fnd_api.g_exc_unexpected_error THEN
1096: ROLLBACK TO create_specification_pub;
1097: x_return_status := fnd_api.g_ret_sts_unexp_error;
1098: fnd_msg_pub.count_and_get(
1099: p_count => x_msg_count,
1100: p_data => x_msg_data
1101: );
1102:
1103: WHEN OTHERS THEN
1104: -- dbms_output.put_line(SQLCODE || SQLERRM);
1105: ROLLBACK TO create_specification_pub;
1106: x_return_status := fnd_api.g_ret_sts_unexp_error;
1107: IF fnd_msg_pub.Check_Msg_Level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1108: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1109: END IF;
1110: fnd_msg_pub.count_and_get(
1111: p_count => x_msg_count,
1104: -- dbms_output.put_line(SQLCODE || SQLERRM);
1105: ROLLBACK TO create_specification_pub;
1106: x_return_status := fnd_api.g_ret_sts_unexp_error;
1107: IF fnd_msg_pub.Check_Msg_Level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1108: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1109: END IF;
1110: fnd_msg_pub.count_and_get(
1111: p_count => x_msg_count,
1112: p_data => x_msg_data
1106: x_return_status := fnd_api.g_ret_sts_unexp_error;
1107: IF fnd_msg_pub.Check_Msg_Level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1108: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1109: END IF;
1110: fnd_msg_pub.count_and_get(
1111: p_count => x_msg_count,
1112: p_data => x_msg_data
1113: );
1114:
1185: END IF;
1186:
1187: -- Initialize message list if p_init_msg_list is set to TRUE.
1188: IF fnd_api.to_boolean(p_init_msg_list) THEN
1189: fnd_msg_pub.initialize;
1190: END IF;
1191:
1192: -- Initialize API return status to success
1193: x_return_status := fnd_api.g_ret_sts_success;
1194:
1195: l_user_id := get_user_id(p_user_name);
1196: IF l_user_id = -1 THEN
1197: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
1198: fnd_msg_pub.add();
1199: raise fnd_api.g_exc_error;
1200: END IF;
1201:
1202: l_char_id := get_context_element_id(p_element_name);
1204:
1205: -- See if the spec is a child and throw exception appropriately
1206: IF is_child_spec(l_spec_id) THEN
1207: fnd_message.set_name('QA', 'QA_SPEC_ELEM_TO_CHILD');
1208: fnd_msg_pub.add();
1209: raise fnd_api.g_exc_error;
1210: END IF;
1211:
1212: IF (spec_element_exists(l_spec_id, l_char_id)) THEN
1210: END IF;
1211:
1212: IF (spec_element_exists(l_spec_id, l_char_id)) THEN
1213: fnd_message.set_name ('QA', 'QA_API_DUPLICATE_SPEC_ELEMENT');
1214: fnd_msg_pub.add();
1215: RAISE fnd_api.g_exc_error;
1216: END IF;
1217:
1218: l_datatype := qa_chars_api.datatype(l_char_id);
1227:
1228: IF qltcompb.compare(p_upper_spec_limit, 6, p_lower_spec_limit, null,
1229: l_datatype) THEN
1230: fnd_message.set_name('QA', 'QA_LSL_GREATER_THAN_USL');
1231: fnd_msg_pub.add();
1232: RAISE fnd_api.g_exc_error;
1233: END IF;
1234:
1235: IF qltcompb.compare(p_upper_reasonable_limit, 6, p_lower_reasonable_limit,
1234:
1235: IF qltcompb.compare(p_upper_reasonable_limit, 6, p_lower_reasonable_limit,
1236: null, l_datatype) THEN
1237: fnd_message.set_name('QA', 'QA_LRL_GREATER_THAN_URL');
1238: fnd_msg_pub.add();
1239: RAISE fnd_api.g_exc_error;
1240: END IF;
1241:
1242: IF qltcompb.compare(p_upper_user_defined_limit, 6,
1241:
1242: IF qltcompb.compare(p_upper_user_defined_limit, 6,
1243: p_lower_user_defined_limit, null, l_datatype) THEN
1244: fnd_message.set_name('QA', 'QA_LUL_GREATER_THAN_UUL');
1245: fnd_msg_pub.add();
1246: RAISE fnd_api.g_exc_error;
1247: END IF;
1248:
1249: l_enabled_flag := convert_flag(p_enabled_flag);
1325:
1326: WHEN fnd_api.g_exc_error THEN
1327: ROLLBACK TO add_spec_element;
1328: x_return_status := fnd_api.g_ret_sts_error;
1329: fnd_msg_pub.count_and_get(
1330: p_count => x_msg_count,
1331: p_data => x_msg_data
1332: );
1333:
1333:
1334: WHEN fnd_api.g_exc_unexpected_error THEN
1335: ROLLBACK TO add_spec_element;
1336: x_return_status := fnd_api.g_ret_sts_unexp_error;
1337: fnd_msg_pub.count_and_get(
1338: p_count => x_msg_count,
1339: p_data => x_msg_data
1340: );
1341:
1341:
1342: WHEN OTHERS THEN
1343: ROLLBACK TO add_spec_element;
1344: x_return_status := fnd_api.g_ret_sts_unexp_error;
1345: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1346: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1347: END IF;
1348: fnd_msg_pub.count_and_get(
1349: p_count => x_msg_count,
1342: WHEN OTHERS THEN
1343: ROLLBACK TO add_spec_element;
1344: x_return_status := fnd_api.g_ret_sts_unexp_error;
1345: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1346: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1347: END IF;
1348: fnd_msg_pub.count_and_get(
1349: p_count => x_msg_count,
1350: p_data => x_msg_data
1344: x_return_status := fnd_api.g_ret_sts_unexp_error;
1345: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1346: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1347: END IF;
1348: fnd_msg_pub.count_and_get(
1349: p_count => x_msg_count,
1350: p_data => x_msg_data
1351: );
1352:
1383: END IF;
1384:
1385: -- Initialize message list if p_init_msg_list is set to TRUE.
1386: IF fnd_api.to_boolean(p_init_msg_list) THEN
1387: fnd_msg_pub.initialize;
1388: END IF;
1389:
1390: -- Initialize API return status to success
1391: x_return_status := fnd_api.g_ret_sts_success;
1392:
1393: l_user_id := get_user_id(p_user_name);
1394: IF l_user_id = -1 THEN
1395: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
1396: fnd_msg_pub.add();
1397: raise fnd_api.g_exc_error;
1398: END IF;
1399:
1400: l_spec_id := get_spec_id(p_spec_name, p_organization_code);
1408:
1409: WHEN fnd_api.g_exc_error THEN
1410: ROLLBACK TO complete_spec_definition;
1411: x_return_status := fnd_api.g_ret_sts_error;
1412: fnd_msg_pub.count_and_get(
1413: p_count => x_msg_count,
1414: p_data => x_msg_data
1415: );
1416:
1416:
1417: WHEN fnd_api.g_exc_unexpected_error THEN
1418: ROLLBACK TO complete_spec_definition;
1419: x_return_status := fnd_api.g_ret_sts_unexp_error;
1420: fnd_msg_pub.count_and_get(
1421: p_count => x_msg_count,
1422: p_data => x_msg_data
1423: );
1424:
1424:
1425: WHEN OTHERS THEN
1426: ROLLBACK TO complete_spec_definition;
1427: x_return_status := fnd_api.g_ret_sts_unexp_error;
1428: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1429: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1430: END IF;
1431: fnd_msg_pub.count_and_get(
1432: p_count => x_msg_count,
1425: WHEN OTHERS THEN
1426: ROLLBACK TO complete_spec_definition;
1427: x_return_status := fnd_api.g_ret_sts_unexp_error;
1428: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1429: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1430: END IF;
1431: fnd_msg_pub.count_and_get(
1432: p_count => x_msg_count,
1433: p_data => x_msg_data
1427: x_return_status := fnd_api.g_ret_sts_unexp_error;
1428: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1429: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1430: END IF;
1431: fnd_msg_pub.count_and_get(
1432: p_count => x_msg_count,
1433: p_data => x_msg_data
1434: );
1435:
1504: END IF;
1505:
1506: -- Initialize message list if p_init_msg_list is set to TRUE.
1507: IF fnd_api.to_boolean(p_init_msg_list) THEN
1508: fnd_msg_pub.initialize;
1509: END IF;
1510:
1511: -- Initialize API return status to success
1512: x_return_status := fnd_api.g_ret_sts_success;
1513:
1514: l_user_id := get_user_id(p_user_name);
1515: IF l_user_id = -1 THEN
1516: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
1517: fnd_msg_pub.add();
1518: raise fnd_api.g_exc_error;
1519: END IF;
1520:
1521: l_spec_id := get_spec_id(p_spec_name, p_organization_code);
1522:
1523: -- Perfect place to check for child specs
1524: IF child_spec_exists(l_spec_id) THEN
1525: fnd_message.set_name('QA', 'QA_CHILD_SPECS_EXIST');
1526: fnd_msg_pub.add();
1527: raise fnd_api.g_exc_error;
1528: END IF;
1529:
1530: delete_spec_private(l_spec_id);
1537:
1538: WHEN fnd_api.g_exc_error THEN
1539: ROLLBACK TO delete_specification;
1540: x_return_status := fnd_api.g_ret_sts_error;
1541: fnd_msg_pub.count_and_get(
1542: p_count => x_msg_count,
1543: p_data => x_msg_data
1544: );
1545:
1545:
1546: WHEN fnd_api.g_exc_unexpected_error THEN
1547: ROLLBACK TO delete_specification;
1548: x_return_status := fnd_api.g_ret_sts_unexp_error;
1549: fnd_msg_pub.count_and_get(
1550: p_count => x_msg_count,
1551: p_data => x_msg_data
1552: );
1553:
1553:
1554: WHEN OTHERS THEN
1555: ROLLBACK TO delete_specification;
1556: x_return_status := fnd_api.g_ret_sts_unexp_error;
1557: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1558: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1559: END IF;
1560: fnd_msg_pub.count_and_get(
1561: p_count => x_msg_count,
1554: WHEN OTHERS THEN
1555: ROLLBACK TO delete_specification;
1556: x_return_status := fnd_api.g_ret_sts_unexp_error;
1557: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1558: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1559: END IF;
1560: fnd_msg_pub.count_and_get(
1561: p_count => x_msg_count,
1562: p_data => x_msg_data
1556: x_return_status := fnd_api.g_ret_sts_unexp_error;
1557: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1558: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1559: END IF;
1560: fnd_msg_pub.count_and_get(
1561: p_count => x_msg_count,
1562: p_data => x_msg_data
1563: );
1564:
1605: END IF;
1606:
1607: -- Initialize message list if p_init_msg_list is set to TRUE.
1608: IF fnd_api.to_boolean(p_init_msg_list) THEN
1609: fnd_msg_pub.initialize;
1610: END IF;
1611:
1612: -- Initialize API return status to success
1613: x_return_status := fnd_api.g_ret_sts_success;
1614:
1615: l_user_id := get_user_id(p_user_name);
1616: IF l_user_id = -1 THEN
1617: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
1618: fnd_msg_pub.add();
1619: raise fnd_api.g_exc_error;
1620: END IF;
1621:
1622: l_spec_id := get_spec_id(p_spec_name, p_organization_code);
1623:
1624: -- We must be checking here if the spec is a child
1625: IF is_child_spec(l_spec_id) THEN
1626: fnd_message.set_name('QA', 'QA_DELETE_SPEC_ELEM_ON_CHILD');
1627: fnd_msg_pub.add();
1628: raise fnd_api.g_exc_error;
1629: END IF;
1630:
1631: l_char_id := get_context_element_id(p_element_name);
1640:
1641: WHEN fnd_api.g_exc_error THEN
1642: ROLLBACK TO delete_spec_element;
1643: x_return_status := fnd_api.g_ret_sts_error;
1644: fnd_msg_pub.count_and_get(
1645: p_count => x_msg_count,
1646: p_data => x_msg_data
1647: );
1648:
1648:
1649: WHEN fnd_api.g_exc_unexpected_error THEN
1650: ROLLBACK TO delete_spec_element;
1651: x_return_status := fnd_api.g_ret_sts_unexp_error;
1652: fnd_msg_pub.count_and_get(
1653: p_count => x_msg_count,
1654: p_data => x_msg_data
1655: );
1656:
1656:
1657: WHEN OTHERS THEN
1658: ROLLBACK TO delete_spec_element;
1659: x_return_status := fnd_api.g_ret_sts_unexp_error;
1660: IF fnd_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1661: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1662: END IF;
1663: fnd_msg_pub.count_and_get(
1664: p_count => x_msg_count,
1657: WHEN OTHERS THEN
1658: ROLLBACK TO delete_spec_element;
1659: x_return_status := fnd_api.g_ret_sts_unexp_error;
1660: IF fnd_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1661: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1662: END IF;
1663: fnd_msg_pub.count_and_get(
1664: p_count => x_msg_count,
1665: p_data => x_msg_data
1659: x_return_status := fnd_api.g_ret_sts_unexp_error;
1660: IF fnd_msg_pub.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1661: fnd_msg_pub.add_exc_msg(g_pkg_name, l_api_name);
1662: END IF;
1663: fnd_msg_pub.count_and_get(
1664: p_count => x_msg_count,
1665: p_data => x_msg_data
1666: );
1667:
1730: END IF;
1731:
1732: -- Initialize message list if p_init_msg_list is set to TRUE.
1733: IF fnd_api.to_boolean(p_init_msg_list) THEN
1734: fnd_msg_pub.initialize;
1735: END IF;
1736:
1737: -- Initialize API return status to success
1738: x_return_status := fnd_api.g_ret_sts_success;
1739:
1740: l_user_id := get_user_id(p_user_name);
1741: IF l_user_id = -1 THEN
1742: fnd_message.set_name('QA', 'QA_API_INVALID_USER');
1743: fnd_msg_pub.add();
1744: raise fnd_api.g_exc_error;
1745: END IF;
1746:
1747: l_spec_id := get_spec_id(p_spec_name, p_organization_code);
1749:
1750: l_to_org_id := qa_plans_api.get_org_id(p_to_organization_code);
1751: IF (l_to_org_id IS NULL) THEN
1752: fnd_message.set_name('QA', 'QA_API_INVALID_ORG_CODE');
1753: fnd_msg_pub.add();
1754: RAISE fnd_api.g_exc_error;
1755: END IF;
1756:
1757: IF (spec_exists(p_to_spec_name)) THEN
1755: END IF;
1756:
1757: IF (spec_exists(p_to_spec_name)) THEN
1758: fnd_message.set_name('QA', 'QA_API_DUPLICATE_SPEC_NAME');
1759: fnd_msg_pub.add();
1760: RAISE fnd_api.g_exc_error;
1761: END IF;
1762:
1763: l_to_item_id := process_item_and_revision(p_to_item_name,
1775: l_spec_element_value, l_existing_spec_name)) THEN
1776:
1777: fnd_message.set_name('QA', 'QA_SPEC_COMBINATION_EXISTS');
1778: fnd_message.set_token('ENTITY1', l_existing_spec_name);
1779: fnd_msg_pub.add();
1780: RAISE fnd_api.g_exc_error;
1781: END IF;
1782:
1783: SELECT qa_specs_s.nextval INTO x_spec_id FROM DUAL;
1890:
1891: WHEN fnd_api.g_exc_error THEN
1892: ROLLBACK TO copy_specification;
1893: x_return_status := fnd_api.g_ret_sts_error;
1894: fnd_msg_pub.count_and_get(
1895: p_count => x_msg_count,
1896: p_data => x_msg_data
1897: );
1898:
1898:
1899: WHEN fnd_api.g_exc_unexpected_error THEN
1900: ROLLBACK TO copy_specification;
1901: x_return_status := fnd_api.g_ret_sts_unexp_error;
1902: fnd_msg_pub.count_and_get(
1903: p_count => x_msg_count,
1904: p_data => x_msg_data
1905: );
1906:
1906:
1907: WHEN OTHERS THEN
1908: ROLLBACK TO copy_specification;
1909: x_return_status := fnd_api.g_ret_sts_unexp_error;
1910: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1911: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1912: END IF;
1913: fnd_msg_pub.count_and_get(
1914: p_count => x_msg_count,
1907: WHEN OTHERS THEN
1908: ROLLBACK TO copy_specification;
1909: x_return_status := fnd_api.g_ret_sts_unexp_error;
1910: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1911: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1912: END IF;
1913: fnd_msg_pub.count_and_get(
1914: p_count => x_msg_count,
1915: p_data => x_msg_data
1909: x_return_status := fnd_api.g_ret_sts_unexp_error;
1910: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
1911: fnd_msg_pub.Add_Exc_Msg(g_pkg_name, l_api_name);
1912: END IF;
1913: fnd_msg_pub.count_and_get(
1914: p_count => x_msg_count,
1915: p_data => x_msg_data
1916: );
1917: