59:
60:
61:
62:
63: AMS_Utility_PVT.debug_message(l_full_name || ': start');
64:
65:
66: END IF;
67:
80:
81: -- validate
82: IF (AMS_DEBUG_HIGH_ON) THEN
83:
84: AMS_Utility_PVT.debug_message(l_full_name || ': validate');
85: END IF;
86: validate_list_rule
87: (
88: p_api_version => l_api_version,
102:
103: -- insert
104: IF (AMS_DEBUG_HIGH_ON) THEN
105:
106: AMS_Utility_PVT.debug_message(l_full_name || ': insert');
107: END IF;
108:
109: IF l_list_rule_rec.list_rule_id IS NULL THEN
110: LOOP
175: IF (AMS_DEBUG_HIGH_ON) THEN
176:
177:
178:
179: AMS_Utility_PVT.debug_message(l_full_name||': end');
180:
181: END IF;
182:
183: EXCEPTION
257: IF (AMS_DEBUG_HIGH_ON) THEN
258:
259:
260:
261: AMS_Utility_PVT.debug_message(l_full_name || ': start');
262:
263: END IF;
264:
265: IF NOT FND_API.compatible_api_call
278: -- validate
279: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
280: IF (AMS_DEBUG_HIGH_ON) THEN
281:
282: AMS_Utility_PVT.debug_message(l_full_name || ': validate');
283: END IF;
284:
285: check_items
286: (
306: -- record level
307: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
308: IF (AMS_DEBUG_HIGH_ON) THEN
309:
310: AMS_Utility_PVT.debug_message(l_full_name||': check record');
311: END IF;
312: check_record
313: (
314: p_list_rule_rec => p_list_rule_rec,
325:
326: -- update
327: IF (AMS_DEBUG_HIGH_ON) THEN
328:
329: AMS_Utility_PVT.debug_message(l_full_name||': update');
330: END IF;
331:
332: -- get org_id
333: l_list_rule_rec.org_id := TO_NUMBER (SUBSTRB (USERENV ('CLIENT_INFO'), 1, 10));
370: IF (AMS_DEBUG_HIGH_ON) THEN
371:
372:
373:
374: AMS_Utility_PVT.debug_message(l_full_name || ': end');
375:
376: END IF;
377:
378: EXCEPTION
453: IF (AMS_DEBUG_HIGH_ON) THEN
454:
455:
456:
457: AMS_Utility_PVT.debug_message(l_full_name || ': start');
458:
459: END IF;
460:
461: IF FND_API.to_boolean(p_init_msg_list) THEN
475:
476: x_return_status := FND_API.g_ret_sts_success;
477:
478: -- delete
479: -- IF (AMS_DEBUG_HIGH_ON) THEN AMS_Utility_PVT.debug_message(l_full_name || ': delete'); END IF;
480:
481: OPEN c_list_rule_count(p_list_rule_id);
482: FETCH c_list_rule_count INTO l_list_rule_count;
483: CLOSE c_list_rule_count;
522: IF (AMS_DEBUG_HIGH_ON) THEN
523:
524:
525:
526: AMS_Utility_PVT.debug_message(l_full_name || ': end');
527:
528: END IF;
529:
530: EXCEPTION
600: BEGIN
601: -- initialize
602: IF (AMS_DEBUG_HIGH_ON) THEN
603:
604: AMS_Utility_PVT.debug_message(l_full_name || ': start');
605: END IF;
606:
607: IF FND_API.to_boolean(p_init_msg_list) THEN
608: FND_MSG_PUB.initialize;
623:
624: -- lock
625: IF (AMS_DEBUG_HIGH_ON) THEN
626:
627: AMS_Utility_PVT.debug_message(l_full_name || ': lock');
628: END IF;
629:
630: OPEN c_list_rule;
631: FETCH c_list_rule INTO l_list_rule_id;
650: IF (AMS_DEBUG_HIGH_ON) THEN
651:
652:
653:
654: AMS_Utility_PVT.debug_message(l_full_name || ': end');
655:
656: END IF;
657:
658: EXCEPTION
656: END IF;
657:
658: EXCEPTION
659:
660: WHEN AMS_Utility_PVT.resource_locked THEN
661: x_return_status := FND_API.g_ret_sts_error;
662: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
663: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
664: FND_MSG_PUB.add;
734:
735: ----------------------- initialize --------------------
736: IF (AMS_DEBUG_HIGH_ON) THEN
737:
738: AMS_Utility_PVT.debug_message(l_full_name||': start');
739: END IF;
740:
741: IF NOT FND_API.compatible_api_call
742: (
754: ---------------------- validate ------------------------
755: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
756: IF (AMS_DEBUG_HIGH_ON) THEN
757:
758: AMS_Utility_PVT.debug_message(l_full_name||': check items');
759: END IF;
760: check_items
761: (
762: p_validation_mode => JTF_PLSQL_API.g_create,
774: -- record level
775: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
776: IF (AMS_DEBUG_HIGH_ON) THEN
777:
778: AMS_Utility_PVT.debug_message(l_full_name||': check record');
779: END IF;
780: check_record
781: (
782: p_list_rule_rec => p_list_rule_rec,
802: IF (AMS_DEBUG_HIGH_ON) THEN
803:
804:
805:
806: AMS_Utility_PVT.debug_message(l_full_name ||': end');
807:
808: END IF;
809:
810: EXCEPTION
862: BEGIN
863: -- initialize
864: IF (AMS_DEBUG_HIGH_ON) THEN
865:
866: AMS_Utility_PVT.debug_message(l_full_name || ': start');
867: END IF;
868:
869: x_return_status := FND_API.g_ret_sts_success;
870:
870:
871: -- check required items
872: IF (AMS_DEBUG_HIGH_ON) THEN
873:
874: AMS_Utility_PVT.debug_message(l_full_name || ': check required items');
875: END IF;
876: check_req_items
877: (
878: p_validation_mode => p_validation_mode,
886:
887: -- check unique key items
888: IF (AMS_DEBUG_HIGH_ON) THEN
889:
890: AMS_Utility_PVT.debug_message(l_full_name || ': check uk items');
891: END IF;
892: check_uk_items
893: (
894: p_validation_mode => p_validation_mode,
902:
903: -- check lookup items
904: IF (AMS_DEBUG_HIGH_ON) THEN
905:
906: AMS_Utility_PVT.debug_message(l_full_name || ': check lookup items');
907: END IF;
908: check_lookup_items
909: (
910: p_list_rule_rec => p_list_rule_rec,
1021: -- check PK, if list_rule_id is passed in, must check if it is duplicate
1022: IF p_validation_mode = JTF_PLSQL_API.g_create
1023: AND p_list_rule_rec.list_rule_id IS NOT NULL
1024: THEN
1025: l_uk_flag := AMS_Utility_PVT.check_uniqueness
1026: (
1027: 'AMS_LIST_RULES_ALL',
1028: 'list_rule_id = ' || p_list_rule_rec.list_rule_id
1029: );
1040: END IF;
1041:
1042: -- check list_rule_name
1043: IF p_list_rule_rec.list_rule_id IS NOT NULL THEN
1044: l_uk_flag := AMS_Utility_PVT.check_uniqueness
1045: (
1046: 'AMS_LIST_RULES_ALL',
1047: 'list_rule_id <> ' || p_list_rule_rec.list_rule_id
1048: || ' AND list_rule_name = ''' || p_list_rule_rec.list_rule_name || ''''
1047: 'list_rule_id <> ' || p_list_rule_rec.list_rule_id
1048: || ' AND list_rule_name = ''' || p_list_rule_rec.list_rule_name || ''''
1049: );
1050: ELSE
1051: l_uk_flag := AMS_Utility_PVT.check_uniqueness
1052: (
1053: 'AMS_LIST_RULES_ALL',
1054: 'list_rule_name = ''' || p_list_rule_rec.list_rule_name || ''''
1055: );
1088: -- check list_rule_type
1089: IF p_list_rule_rec.list_rule_type <> FND_API.g_miss_char
1090: AND p_list_rule_rec.list_rule_type IS NOT NULL
1091: THEN
1092: IF AMS_Utility_PVT.check_lookup_exists(
1093: -- p_lookup_type => 'AMS_LIST_SRC_TYPE',
1094: p_lookup_type => 'AMS_LIST_DEDUP_TYPE',
1095: p_lookup_code => p_list_rule_rec.list_rule_type
1096: ) = FND_API.g_false