84: -- "Get_Function_Type".
85: -- 10/09/2001 huili Remove the schema checking for seeded function
86: -- metrics.
87: -- 10/12/2001 huili Pass the "FND_API.G_FALSE" to the "p_encoded"
88: -- parameter of the "FND_MSG_PUB.Count_And_Get"
89: -- module.
90: -- 10/29/2001 huili Add the " Inter_Metric_Validation" module and link
91: -- it to the "update_metric" module.
92: -- 12/26/2001 dmvincen Metrics can rollup to any type of object.
342: --
343: -- Initialize message list if p_init_msg_list is set to TRUE.
344: --
345: IF FND_API.To_Boolean (p_init_msg_list) THEN
346: FND_MSG_PUB.Initialize;
347: END IF;
348:
349: --
350: -- Standard check for API version compatibility.
416: IF UPPER(l_metrics_rec.metric_calculation_type) = G_FUNCTION THEN
417: IF l_metrics_rec.function_name IS NULL
418: OR l_metrics_rec.function_name = FND_API.G_MISS_CHAR THEN
419: FND_MESSAGE.Set_Name ('AMS', 'AMS_MET_FUNC_BLANK');
420: FND_MSG_PUB.ADD;
421: RAISE FND_API.G_EXC_ERROR;
422: END IF;
423: l_metrics_rec.function_name := UPPER (l_metrics_rec.function_name);
424:
564: --
565: -- Standard API to get message count, and if 1,
566: -- set the message data OUT variable.
567: --
568: FND_MSG_PUB.Count_And_Get (
569: p_count => x_msg_count,
570: p_data => x_msg_data,
571: p_encoded => FND_API.G_FALSE
572: );
580: EXCEPTION
581: WHEN FND_API.G_EXC_ERROR THEN
582: ROLLBACK TO Create_Metric_pvt;
583: x_return_status := FND_API.G_RET_STS_ERROR;
584: FND_MSG_PUB.Count_And_Get (
585: p_encoded => FND_API.g_false,
586: p_count => x_msg_count,
587: p_data => x_msg_data
588: );
588: );
589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
590: ROLLBACK TO Create_Metric_pvt;
591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
592: FND_MSG_PUB.Count_And_Get (
593: p_encoded => FND_API.g_false,
594: p_count => x_msg_count,
595: p_data => x_msg_data
596: );
596: );
597: WHEN OTHERS THEN
598: ROLLBACK TO Create_Metric_pvt;
599: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
600: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
601: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
602: END IF;
603: FND_MSG_PUB.Count_And_Get (
604: p_encoded => FND_API.g_false,
597: WHEN OTHERS THEN
598: ROLLBACK TO Create_Metric_pvt;
599: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
600: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
601: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
602: END IF;
603: FND_MSG_PUB.Count_And_Get (
604: p_encoded => FND_API.g_false,
605: p_count => x_msg_count,
599: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
600: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
601: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
602: END IF;
603: FND_MSG_PUB.Count_And_Get (
604: p_encoded => FND_API.g_false,
605: p_count => x_msg_count,
606: p_data => x_msg_data
607: );
662: --
663: -- Initialize message list if p_init_msg_list is set to TRUE.
664: --
665: IF FND_API.To_Boolean (p_init_msg_list) THEN
666: FND_MSG_PUB.Initialize;
667: END IF;
668:
669: --
670: -- Standard check for API version compatibility.
712: OR l_metrics_rec.target_type <> l_old_metrics_rec.target_type
713: THEN
714: -- Add error message to API message list.
715: --
716: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
717: FND_MESSAGE.set_name('AMS', 'AMS_METR_INVALID_UPDT_CHLD');
718: FND_MSG_PUB.ADD;
719: END IF;
720: RAISE FND_API.g_exc_error;
714: -- Add error message to API message list.
715: --
716: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
717: FND_MESSAGE.set_name('AMS', 'AMS_METR_INVALID_UPDT_CHLD');
718: FND_MSG_PUB.ADD;
719: END IF;
720: RAISE FND_API.g_exc_error;
721: ELSE
722: l_return_status := FND_API.G_RET_STS_SUCCESS;
742: END IF;
743:
744: -- If seeded then only update of enable flag is permitted.
745: IF (NOT l_seeded_ok) AND IsSeeded (l_metrics_rec.metric_id) THEN
746: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
747: THEN
748: FND_MESSAGE.set_name('AMS', 'AMS_METR_SEEDED_METR2');
749: FND_MSG_PUB.ADD;
750: END IF;
745: IF (NOT l_seeded_ok) AND IsSeeded (l_metrics_rec.metric_id) THEN
746: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
747: THEN
748: FND_MESSAGE.set_name('AMS', 'AMS_METR_SEEDED_METR2');
749: FND_MSG_PUB.ADD;
750: END IF;
751:
752: RAISE FND_API.G_EXC_ERROR;
753: END IF;
773: IF UPPER(l_metrics_rec.metric_calculation_type) = G_FUNCTION THEN
774: IF l_metrics_rec.function_name IS NULL
775: OR l_metrics_rec.function_name = FND_API.G_MISS_CHAR THEN
776: FND_MESSAGE.Set_Name ('AMS', 'AMS_MET_FUNC_BLANK');
777: FND_MSG_PUB.ADD;
778: RAISE FND_API.G_EXC_ERROR;
779: END IF;
780: l_metrics_rec.function_name := UPPER (l_metrics_rec.function_name);
781:
825: THEN
826: --
827: -- Add error message to API message list.
828: --
829: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
830: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
831: FND_MSG_PUB.ADD;
832: END IF;
833: RAISE FND_API.g_exc_error;
827: -- Add error message to API message list.
828: --
829: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
830: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
831: FND_MSG_PUB.ADD;
832: END IF;
833: RAISE FND_API.g_exc_error;
834: END IF;
835:
852: THEN
853: --
854: -- Add error message to API message list.
855: --
856: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
857: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
858: FND_MSG_PUB.ADD;
859: END IF;
860: RAISE FND_API.g_exc_error;
854: -- Add error message to API message list.
855: --
856: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
857: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
858: FND_MSG_PUB.ADD;
859: END IF;
860: RAISE FND_API.g_exc_error;
861:
862: END IF;
872: --
873: -- Standard API to get message count, and if 1,
874: -- set the message data OUT variable.
875: --
876: FND_MSG_PUB.Count_And_Get (
877: p_count => x_msg_count,
878: p_data => x_msg_data,
879: p_encoded => FND_API.G_FALSE
880: );
888: EXCEPTION
889: WHEN FND_API.G_EXC_ERROR THEN
890: ROLLBACK TO Update_Metric_pvt;
891: x_return_status := FND_API.G_RET_STS_ERROR;
892: FND_MSG_PUB.Count_And_Get (
893: p_encoded => FND_API.g_false,
894: p_count => x_msg_count,
895: p_data => x_msg_data
896: );
896: );
897: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
898: ROLLBACK TO Update_Metric_pvt;
899: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
900: FND_MSG_PUB.Count_And_Get (
901: p_encoded => FND_API.g_false,
902: p_count => x_msg_count,
903: p_data => x_msg_data
904: );
904: );
905: WHEN OTHERS THEN
906: ROLLBACK TO Update_Metric_pvt;
907: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
908: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
909: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
910: END IF;
911: FND_MSG_PUB.Count_And_Get (
912: p_encoded => FND_API.g_false,
905: WHEN OTHERS THEN
906: ROLLBACK TO Update_Metric_pvt;
907: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
908: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
909: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
910: END IF;
911: FND_MSG_PUB.Count_And_Get (
912: p_encoded => FND_API.g_false,
913: p_count => x_msg_count,
907: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
908: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
909: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
910: END IF;
911: FND_MSG_PUB.Count_And_Get (
912: p_encoded => FND_API.g_false,
913: p_count => x_msg_count,
914: p_data => x_msg_data
915: );
983: --
984: -- Initialize message list if p_init_msg_list is set to TRUE.
985: --
986: IF FND_API.To_Boolean (p_init_msg_list) THEN
987: FND_MSG_PUB.Initialize;
988: END IF;
989:
990: --
991: -- Standard check for API version compatibility.
1000:
1001: --
1002: -- Check if record is seeded.
1003: IF IsSeeded (p_metric_id) THEN
1004: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1005: THEN
1006: FND_MESSAGE.set_name('AMS', 'AMS_METR_SEEDED_METR3');
1007: FND_MSG_PUB.ADD;
1008: END IF;
1003: IF IsSeeded (p_metric_id) THEN
1004: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1005: THEN
1006: FND_MESSAGE.set_name('AMS', 'AMS_METR_SEEDED_METR3');
1007: FND_MSG_PUB.ADD;
1008: END IF;
1009:
1010: RAISE FND_API.G_EXC_ERROR;
1011: END IF;
1026:
1027: -- If any errors happen abort API.
1028:
1029: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1030: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1031: FND_MESSAGE.set_name('AMS', 'AMS_METR_CHILD_EXIST');
1032: FND_MSG_PUB.ADD;
1033: END IF;
1034: RAISE FND_API.G_EXC_ERROR;
1028:
1029: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1030: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1031: FND_MESSAGE.set_name('AMS', 'AMS_METR_CHILD_EXIST');
1032: FND_MSG_PUB.ADD;
1033: END IF;
1034: RAISE FND_API.G_EXC_ERROR;
1035: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1036: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1042: FETCH c_child_met_id INTO l_child_met_id;
1043: CLOSE c_child_met_id;
1044:
1045: IF l_child_met_id IS NOT NULL THEN
1046: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1047: FND_MSG_PUB.Initialize;
1048: FND_MESSAGE.set_name('AMS', 'AMS_MET_ROLL_CHILD_EXISTS');
1049: FND_MSG_PUB.ADD;
1050: END IF;
1043: CLOSE c_child_met_id;
1044:
1045: IF l_child_met_id IS NOT NULL THEN
1046: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1047: FND_MSG_PUB.Initialize;
1048: FND_MESSAGE.set_name('AMS', 'AMS_MET_ROLL_CHILD_EXISTS');
1049: FND_MSG_PUB.ADD;
1050: END IF;
1051: RAISE FND_API.G_EXC_ERROR;
1045: IF l_child_met_id IS NOT NULL THEN
1046: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1047: FND_MSG_PUB.Initialize;
1048: FND_MESSAGE.set_name('AMS', 'AMS_MET_ROLL_CHILD_EXISTS');
1049: FND_MSG_PUB.ADD;
1050: END IF;
1051: RAISE FND_API.G_EXC_ERROR;
1052: END IF;
1053: -- end addition
1058: FETCH c_check_depend_met INTO l_dep_met_id;
1059: CLOSE c_check_depend_met;
1060:
1061: IF l_dep_met_id IS NOT NULL THEN
1062: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1063: FND_MSG_PUB.Initialize;
1064: FND_MESSAGE.set_name('AMS', 'AMS_MET_DEP_EXISTS');
1065: FND_MSG_PUB.ADD;
1066: END IF;
1059: CLOSE c_check_depend_met;
1060:
1061: IF l_dep_met_id IS NOT NULL THEN
1062: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1063: FND_MSG_PUB.Initialize;
1064: FND_MESSAGE.set_name('AMS', 'AMS_MET_DEP_EXISTS');
1065: FND_MSG_PUB.ADD;
1066: END IF;
1067: RAISE FND_API.G_EXC_ERROR;
1061: IF l_dep_met_id IS NOT NULL THEN
1062: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1063: FND_MSG_PUB.Initialize;
1064: FND_MESSAGE.set_name('AMS', 'AMS_MET_DEP_EXISTS');
1065: FND_MSG_PUB.ADD;
1066: END IF;
1067: RAISE FND_API.G_EXC_ERROR;
1068: END IF;
1069:
1072: FETCH c_sum_met_id INTO l_sum_met_id;
1073: CLOSE c_sum_met_id;
1074:
1075: IF l_sum_met_id IS NOT NULL THEN
1076: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1077: FND_MSG_PUB.Initialize;
1078: FND_MESSAGE.set_name('AMS', 'AMS_MET_SUM_CHILD_EXISTS');
1079: FND_MSG_PUB.ADD;
1080: END IF;
1073: CLOSE c_sum_met_id;
1074:
1075: IF l_sum_met_id IS NOT NULL THEN
1076: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1077: FND_MSG_PUB.Initialize;
1078: FND_MESSAGE.set_name('AMS', 'AMS_MET_SUM_CHILD_EXISTS');
1079: FND_MSG_PUB.ADD;
1080: END IF;
1081: RAISE FND_API.G_EXC_ERROR;
1075: IF l_sum_met_id IS NOT NULL THEN
1076: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
1077: FND_MSG_PUB.Initialize;
1078: FND_MESSAGE.set_name('AMS', 'AMS_MET_SUM_CHILD_EXISTS');
1079: FND_MSG_PUB.ADD;
1080: END IF;
1081: RAISE FND_API.G_EXC_ERROR;
1082: END IF;
1083: -- end addition
1090: AND object_version_number = p_object_version_number;
1091:
1092:
1093: IF (SQL%NOTFOUND) THEN
1094: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1095: THEN
1096: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1097: FND_MSG_PUB.ADD;
1098: END IF;
1093: IF (SQL%NOTFOUND) THEN
1094: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1095: THEN
1096: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1097: FND_MSG_PUB.ADD;
1098: END IF;
1099: RAISE FND_API.g_exc_error;
1100: END IF;
1101:
1103: DELETE FROM ams_metrics_all_tl
1104: WHERE metric_id = p_metric_id;
1105:
1106: IF (SQL%NOTFOUND) THEN
1107: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1108: THEN
1109: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1110: FND_MSG_PUB.ADD;
1111: END IF;
1106: IF (SQL%NOTFOUND) THEN
1107: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1108: THEN
1109: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1110: FND_MSG_PUB.ADD;
1111: END IF;
1112: RAISE FND_API.g_exc_error;
1113: END IF;
1114:
1134: --
1135: -- Standard API to get message count, and if 1,
1136: -- set the message data OUT variable.
1137: --
1138: FND_MSG_PUB.Count_And_Get (
1139: p_count => x_msg_count,
1140: p_data => x_msg_data,
1141: p_encoded => FND_API.G_FALSE
1142: );
1144: EXCEPTION
1145: WHEN FND_API.G_EXC_ERROR THEN
1146: ROLLBACK TO Delete_Metric_pvt;
1147: x_return_status := FND_API.G_RET_STS_ERROR;
1148: FND_MSG_PUB.Count_And_Get (
1149: p_encoded => FND_API.g_false,
1150: p_count => x_msg_count,
1151: p_data => x_msg_data
1152: );
1152: );
1153: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1154: ROLLBACK TO Delete_Metric_pvt;
1155: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1156: FND_MSG_PUB.Count_And_Get (
1157: p_encoded => FND_API.g_false,
1158: p_count => x_msg_count,
1159: p_data => x_msg_data
1160: );
1160: );
1161: WHEN OTHERS THEN
1162: ROLLBACK TO Delete_Metric_pvt;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1164: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1165: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1166: END IF;
1167: FND_MSG_PUB.Count_And_Get (
1168: p_encoded => FND_API.g_false,
1161: WHEN OTHERS THEN
1162: ROLLBACK TO Delete_Metric_pvt;
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1164: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1165: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1166: END IF;
1167: FND_MSG_PUB.Count_And_Get (
1168: p_encoded => FND_API.g_false,
1169: p_count => x_msg_count,
1163: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1164: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1165: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1166: END IF;
1167: FND_MSG_PUB.Count_And_Get (
1168: p_encoded => FND_API.g_false,
1169: p_count => x_msg_count,
1170: p_data => x_msg_data
1171: );
1227: --
1228: -- Initialize message list if p_init_msg_list is set to TRUE.
1229: --
1230: IF FND_API.To_Boolean (p_init_msg_list) THEN
1231: FND_MSG_PUB.Initialize;
1232: END IF;
1233:
1234: --
1235: -- Standard check for API version compatibility.
1259: THEN
1260: CLOSE c_metrics_info;
1261: -- Error, check the msg level and added an error message to the
1262: -- API message list
1263: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1264: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1265: FND_MSG_PUB.ADD;
1266: END IF;
1267: RAISE FND_API.g_exc_error;
1261: -- Error, check the msg level and added an error message to the
1262: -- API message list
1263: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1264: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1265: FND_MSG_PUB.ADD;
1266: END IF;
1267: RAISE FND_API.g_exc_error;
1268: END IF;
1269: CLOSE c_metrics_info;
1274: --
1275: -- Standard API to get message count, and if 1,
1276: -- set the message data OUT variable.
1277: --
1278: FND_MSG_PUB.Count_And_Get (
1279: p_count => x_msg_count,
1280: p_data => x_msg_data,
1281: p_encoded => FND_API.G_FALSE
1282: );
1289:
1290: EXCEPTION
1291: WHEN FND_API.G_EXC_ERROR THEN
1292: x_return_status := FND_API.G_RET_STS_ERROR;
1293: FND_MSG_PUB.Count_And_Get (
1294: p_count => x_msg_count,
1295: p_data => x_msg_data
1296: );
1297: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1295: p_data => x_msg_data
1296: );
1297: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1298: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1299: FND_MSG_PUB.Count_And_Get (
1300: p_encoded => FND_API.g_false,
1301: p_count => x_msg_count,
1302: p_data => x_msg_data
1303: );
1303: );
1304: WHEN Ams_Utility_Pvt.RESOURCE_LOCKED THEN
1305: x_return_status := FND_API.G_RET_STS_ERROR ;
1306:
1307: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1308: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1309: FND_MSG_PUB.ADD;
1310: END IF;
1311:
1305: x_return_status := FND_API.G_RET_STS_ERROR ;
1306:
1307: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1308: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1309: FND_MSG_PUB.ADD;
1310: END IF;
1311:
1312: FND_MSG_PUB.Count_And_Get (
1313: p_count => x_msg_count,
1308: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1309: FND_MSG_PUB.ADD;
1310: END IF;
1311:
1312: FND_MSG_PUB.Count_And_Get (
1313: p_count => x_msg_count,
1314: p_data => x_msg_data,
1315: p_encoded => FND_API.G_FALSE
1316: );
1315: p_encoded => FND_API.G_FALSE
1316: );
1317: WHEN OTHERS THEN
1318: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1319: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1320: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1321: END IF;
1322: FND_MSG_PUB.Count_And_Get (
1323: p_count => x_msg_count,
1316: );
1317: WHEN OTHERS THEN
1318: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1319: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1320: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1321: END IF;
1322: FND_MSG_PUB.Count_And_Get (
1323: p_count => x_msg_count,
1324: p_data => x_msg_data,
1318: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1319: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1320: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1321: END IF;
1322: FND_MSG_PUB.Count_And_Get (
1323: p_count => x_msg_count,
1324: p_data => x_msg_data,
1325: p_encoded => FND_API.G_FALSE
1326: );
1370: --
1371: -- Initialize message list if p_init_msg_list is set to TRUE.
1372: --
1373: IF FND_API.To_Boolean (p_init_msg_list) THEN
1374: FND_MSG_PUB.Initialize;
1375: END IF;
1376:
1377: --
1378: -- Standard check for API version compatibility.
1438: --
1439: -- Standard API to get message count, and if 1,
1440: -- set the message data OUT variable.
1441: --
1442: FND_MSG_PUB.Count_And_Get (
1443: p_count => x_msg_count,
1444: p_data => x_msg_data,
1445: p_encoded => FND_API.G_FALSE
1446: );
1453:
1454: EXCEPTION
1455: WHEN FND_API.G_EXC_ERROR THEN
1456: x_return_status := FND_API.G_RET_STS_ERROR;
1457: FND_MSG_PUB.Count_And_Get (
1458: p_encoded => FND_API.g_false,
1459: p_count => x_msg_count,
1460: p_data => x_msg_data
1461: );
1460: p_data => x_msg_data
1461: );
1462: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1463: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464: FND_MSG_PUB.Count_And_Get (
1465: p_encoded => FND_API.g_false,
1466: p_count => x_msg_count,
1467: p_data => x_msg_data
1468: );
1467: p_data => x_msg_data
1468: );
1469: WHEN OTHERS THEN
1470: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1472: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1473: END IF;
1474: FND_MSG_PUB.Count_And_Get (
1475: p_encoded => FND_API.g_false,
1468: );
1469: WHEN OTHERS THEN
1470: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1472: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1473: END IF;
1474: FND_MSG_PUB.Count_And_Get (
1475: p_encoded => FND_API.g_false,
1476: p_count => x_msg_count,
1470: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1471: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1472: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1473: END IF;
1474: FND_MSG_PUB.Count_And_Get (
1475: p_encoded => FND_API.g_false,
1476: p_count => x_msg_count,
1477: p_data => x_msg_data
1478: );
1510:
1511: IF p_metric_rec.application_id IS NULL
1512: THEN
1513: -- missing required fields
1514: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1515: THEN -- MMSG
1516: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_APP_ID');
1517: FND_MSG_PUB.ADD;
1518: END IF;
1513: -- missing required fields
1514: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1515: THEN -- MMSG
1516: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_APP_ID');
1517: FND_MSG_PUB.ADD;
1518: END IF;
1519:
1520: x_return_status := FND_API.G_RET_STS_ERROR;
1521:
1527:
1528: IF p_metric_rec.arc_metric_used_for_object IS NULL
1529: THEN
1530: -- missing required fields
1531: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1532: THEN -- MMSG
1533: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
1534: FND_MSG_PUB.ADD;
1535: END IF;
1530: -- missing required fields
1531: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1532: THEN -- MMSG
1533: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
1534: FND_MSG_PUB.ADD;
1535: END IF;
1536:
1537: x_return_status := FND_API.G_RET_STS_ERROR;
1538:
1544:
1545: IF p_metric_rec.metric_calculation_type IS NULL
1546: THEN
1547: -- missing required fields
1548: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1549: THEN -- MMSG
1550: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_CALC_TYPE');
1551: FND_MSG_PUB.ADD;
1552: END IF;
1547: -- missing required fields
1548: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1549: THEN -- MMSG
1550: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_CALC_TYPE');
1551: FND_MSG_PUB.ADD;
1552: END IF;
1553:
1554: x_return_status := FND_API.G_RET_STS_ERROR;
1555:
1562: IF p_metric_rec.metric_calculation_type <> G_FORMULA AND
1563: p_metric_rec.metric_category IS NULL
1564: THEN
1565: -- missing required fields
1566: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1567: THEN -- MMSG
1568: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_CATEGORY');
1569: FND_MSG_PUB.ADD;
1570: END IF;
1565: -- missing required fields
1566: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1567: THEN -- MMSG
1568: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_CATEGORY');
1569: FND_MSG_PUB.ADD;
1570: END IF;
1571:
1572: x_return_status := FND_API.G_RET_STS_ERROR;
1573:
1579:
1580: IF p_metric_rec.accrual_type IS NULL
1581: THEN
1582: -- missing required fields
1583: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1584: THEN -- MMSG
1585: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ACCRUAL_TYPE');
1586: FND_MSG_PUB.ADD;
1587: END IF;
1582: -- missing required fields
1583: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1584: THEN -- MMSG
1585: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ACCRUAL_TYPE');
1586: FND_MSG_PUB.ADD;
1587: END IF;
1588:
1589: x_return_status := FND_API.G_RET_STS_ERROR;
1590:
1596:
1597: IF p_metric_rec.value_type IS NULL
1598: THEN
1599: -- missing required fields
1600: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1601: THEN -- MMSG
1602: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_VAL_TYPE');
1603: FND_MSG_PUB.ADD;
1604: END IF;
1599: -- missing required fields
1600: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1601: THEN -- MMSG
1602: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_VAL_TYPE');
1603: FND_MSG_PUB.ADD;
1604: END IF;
1605:
1606: x_return_status := FND_API.G_RET_STS_ERROR;
1607:
1613:
1614: IF p_metric_rec.sensitive_data_flag IS NULL
1615: THEN
1616: -- missing required fields
1617: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1618: THEN -- MMSG
1619: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_SENSITIVE');
1620: FND_MSG_PUB.ADD;
1621: END IF;
1616: -- missing required fields
1617: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1618: THEN -- MMSG
1619: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_SENSITIVE');
1620: FND_MSG_PUB.ADD;
1621: END IF;
1622:
1623: x_return_status := FND_API.G_RET_STS_ERROR;
1624:
1630:
1631: IF p_metric_rec.enabled_flag IS NULL
1632: THEN
1633: -- missing required fields
1634: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1635: THEN -- MMSG
1636: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ENABLED_FLAG');
1637: FND_MSG_PUB.ADD;
1638: END IF;
1633: -- missing required fields
1634: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1635: THEN -- MMSG
1636: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ENABLED_FLAG');
1637: FND_MSG_PUB.ADD;
1638: END IF;
1639:
1640: x_return_status := FND_API.G_RET_STS_ERROR;
1641:
1651:
1652: IF p_metric_rec.uom_type IS NULL
1653: THEN
1654: -- missing required fields
1655: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1656: THEN -- MMSG
1657: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_UOM_TYPE');
1658: FND_MSG_PUB.Add;
1659: END IF;
1654: -- missing required fields
1655: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1656: THEN -- MMSG
1657: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_UOM_TYPE');
1658: FND_MSG_PUB.Add;
1659: END IF;
1660:
1661: x_return_status := FND_API.G_RET_STS_ERROR;
1662:
1668:
1669: IF p_metric_rec.default_uom_code IS NULL
1670: THEN
1671: -- missing required fields
1672: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1673: THEN -- MMSG
1674: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_DEF_UOM');
1675: FND_MSG_PUB.Add;
1676: END IF;
1671: -- missing required fields
1672: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1673: THEN -- MMSG
1674: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_DEF_UOM');
1675: FND_MSG_PUB.Add;
1676: END IF;
1677:
1678: x_return_status := FND_API.G_RET_STS_ERROR;
1679:
1688:
1689: IF p_metric_rec.metrics_name IS NULL
1690: THEN
1691: -- missing required fields
1692: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1693: THEN -- MMSG
1694: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_NAME');
1695: FND_MSG_PUB.ADD;
1696: END IF;
1691: -- missing required fields
1692: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1693: THEN -- MMSG
1694: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_NAME');
1695: FND_MSG_PUB.ADD;
1696: END IF;
1697:
1698: x_return_status := FND_API.G_RET_STS_ERROR;
1699:
1705:
1706: IF p_metric_rec.DISPLAY_TYPE IS NULL
1707: THEN
1708: -- missing required fields
1709: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1710: THEN -- MMSG
1711: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_DISPLAY_TYPE');
1712: FND_MSG_PUB.ADD;
1713: END IF;
1708: -- missing required fields
1709: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1710: THEN -- MMSG
1711: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_DISPLAY_TYPE');
1712: FND_MSG_PUB.ADD;
1713: END IF;
1714:
1715: x_return_status := FND_API.G_RET_STS_ERROR;
1716:
1780: p_table_name => 'ams_metrics_vl',
1781: p_where_clause => l_where_clause
1782: ) = FND_API.g_false
1783: THEN
1784: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1785: THEN
1786: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_ID');
1787: FND_MSG_PUB.ADD;
1788: END IF;
1783: THEN
1784: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1785: THEN
1786: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_ID');
1787: FND_MSG_PUB.ADD;
1788: END IF;
1789: x_return_status := FND_API.g_ret_sts_error;
1790: RETURN;
1791: END IF;
1814: p_table_name => 'ams_metrics_vl',
1815: p_where_clause => l_where_clause
1816: ) = FND_API.g_false
1817: THEN
1818: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1819: THEN
1820: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1821: FND_MSG_PUB.add;
1822: END IF;
1817: THEN
1818: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1819: THEN
1820: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1821: FND_MSG_PUB.add;
1822: END IF;
1823: x_return_status := FND_API.g_ret_sts_error;
1824: RETURN;
1825: END IF;
1829: OPEN c_upd_get_dup_names(p_metric_rec.metrics_name,
1830: p_metric_rec.arc_metric_used_for_object,p_metric_rec.metric_id);
1831: FETCH c_upd_get_dup_names INTO l_dummy;
1832: IF c_upd_get_dup_names%FOUND THEN
1833: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1834: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1835: FND_MSG_PUB.ADD;
1836: END IF;
1837: x_return_status := FND_API.g_ret_sts_error;
1831: FETCH c_upd_get_dup_names INTO l_dummy;
1832: IF c_upd_get_dup_names%FOUND THEN
1833: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1834: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1835: FND_MSG_PUB.ADD;
1836: END IF;
1837: x_return_status := FND_API.g_ret_sts_error;
1838: END IF;
1839: CLOSE c_upd_get_dup_names;
1842: OPEN c_crt_get_dup_names(p_metric_rec.metrics_name,
1843: p_metric_rec.arc_metric_used_for_object);
1844: FETCH c_crt_get_dup_names INTO l_dummy;
1845: IF c_crt_get_dup_names%FOUND THEN
1846: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1847: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1848: FND_MSG_PUB.ADD;
1849: END IF;
1850: x_return_status := FND_API.g_ret_sts_error;
1844: FETCH c_crt_get_dup_names INTO l_dummy;
1845: IF c_crt_get_dup_names%FOUND THEN
1846: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1847: FND_MESSAGE.set_name('AMS', 'AMS_METR_DUP_NAME');
1848: FND_MSG_PUB.ADD;
1849: END IF;
1850: x_return_status := FND_API.g_ret_sts_error;
1851: END IF;
1852: CLOSE c_crt_get_dup_names;
1949:
1950: OPEN c_check_metric_id(l_metrics_rec.metric_parent_id,G_ROLLUP);
1951: IF c_check_metric_id%NOTFOUND
1952: THEN
1953: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1954: THEN
1955: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_PARENT_MET');
1956: FND_MSG_PUB.ADD;
1957: END IF;
1952: THEN
1953: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1954: THEN
1955: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_PARENT_MET');
1956: FND_MSG_PUB.ADD;
1957: END IF;
1958:
1959: x_return_status := FND_API.G_RET_STS_ERROR;
1960: CLOSE c_check_metric_id;
1980: ,p_pk_data_type => l_pk_data_type
1981: ,p_additional_where_clause => l_additional_where_clause
1982: ) = FND_API.G_FALSE
1983: THEN
1984: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1985: THEN
1986: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_PARENT_MET');
1987: FND_MSG_PUB.ADD;
1988: END IF;
1983: THEN
1984: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
1985: THEN
1986: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_PARENT_MET');
1987: FND_MSG_PUB.ADD;
1988: END IF;
1989:
1990: x_return_status := FND_API.G_RET_STS_ERROR;
1991: RETURN;*/
2002:
2003: OPEN c_check_metric_id(l_metrics_rec.metric_parent_id,G_SUMMARY);
2004: IF c_check_metric_id%NOTFOUND
2005: THEN
2006: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2007: THEN
2008: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUMMARY_MET');
2009: FND_MSG_PUB.ADD;
2010: END IF;
2005: THEN
2006: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2007: THEN
2008: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUMMARY_MET');
2009: FND_MSG_PUB.ADD;
2010: END IF;
2011:
2012: x_return_status := FND_API.G_RET_STS_ERROR;
2013: CLOSE c_check_metric_id;
2033: ,p_pk_data_type => l_pk_data_type
2034: ,p_additional_where_clause => l_additional_where_clause
2035: ) = FND_API.G_FALSE
2036: THEN
2037: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2038: THEN
2039: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUMMARY_MET');
2040: FND_MSG_PUB.ADD;
2041: END IF;
2036: THEN
2037: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2038: THEN
2039: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUMMARY_MET');
2040: FND_MSG_PUB.ADD;
2041: END IF;
2042:
2043: x_return_status := FND_API.G_RET_STS_ERROR;
2044: RETURN;
2052:
2053: OPEN c_check_uom(l_metrics_rec.uom_type);
2054: IF c_check_uom%NOTFOUND
2055: THEN
2056: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2057: THEN
2058: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM_TYPE');
2059: FND_MSG_PUB.ADD;
2060: END IF;
2055: THEN
2056: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2057: THEN
2058: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM_TYPE');
2059: FND_MSG_PUB.ADD;
2060: END IF;
2061:
2062: x_return_status := FND_API.G_RET_STS_ERROR;
2063: CLOSE c_check_uom;
2081: ,p_pk_data_type => l_pk_data_type
2082: ,p_additional_where_clause => l_additional_where_clause
2083: ) = FND_API.G_FALSE
2084: THEN
2085: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2086: THEN
2087: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM_TYPE');
2088: FND_MSG_PUB.ADD;
2089: END IF;
2084: THEN
2085: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2086: THEN
2087: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM_TYPE');
2088: FND_MSG_PUB.ADD;
2089: END IF;
2090:
2091: x_return_status := FND_API.G_RET_STS_ERROR;
2092: RETURN;
2100:
2101: OPEN c_check_category(l_metrics_rec.metric_category);
2102: IF c_check_category%NOTFOUND
2103: THEN
2104: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2105: THEN
2106: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_CATEGORY');
2107: FND_MSG_PUB.ADD;
2108: END IF;
2103: THEN
2104: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2105: THEN
2106: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_CATEGORY');
2107: FND_MSG_PUB.ADD;
2108: END IF;
2109:
2110: x_return_status := FND_API.G_RET_STS_ERROR;
2111: CLOSE c_check_category;
2130: ,p_pk_data_type => l_pk_data_type
2131: ,p_additional_where_clause => l_additional_where_clause
2132: ) = FND_API.G_FALSE
2133: THEN
2134: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2135: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CATEGORY');
2136: FND_MSG_PUB.ADD;
2137: END IF;
2138:
2132: ) = FND_API.G_FALSE
2133: THEN
2134: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2135: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CATEGORY');
2136: FND_MSG_PUB.ADD;
2137: END IF;
2138:
2139: x_return_status := FND_API.G_RET_STS_ERROR;
2140: RETURN;
2155: IF l_metrics_rec.sensitive_data_flag <> FND_API.G_MISS_CHAR THEN
2156: IF Ams_Utility_Pvt.Is_Y_Or_N(l_metrics_rec.sensitive_data_flag)
2157: = FND_API.G_FALSE
2158: THEN
2159: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2160: THEN
2161: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SENS_FLAG');
2162: FND_MSG_PUB.ADD;
2163: END IF;
2158: THEN
2159: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2160: THEN
2161: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SENS_FLAG');
2162: FND_MSG_PUB.ADD;
2163: END IF;
2164:
2165: x_return_status := FND_API.G_RET_STS_ERROR;
2166: RETURN;
2171: IF l_metrics_rec.enabled_flag <> FND_API.G_MISS_CHAR THEN
2172: IF Ams_Utility_Pvt.Is_Y_Or_N(l_metrics_rec.enabled_flag)
2173: = FND_API.G_FALSE
2174: THEN
2175: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2176: THEN
2177: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_ENABLED_FLAG');
2178: FND_MSG_PUB.ADD;
2179: END IF;
2174: THEN
2175: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2176: THEN
2177: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_ENABLED_FLAG');
2178: FND_MSG_PUB.ADD;
2179: END IF;
2180:
2181: x_return_status := FND_API.G_RET_STS_ERROR;
2182: RETURN;
2199: ,p_lookup_type => l_lookup_type
2200: ,p_lookup_code => l_metrics_rec.accrual_type
2201: ) = FND_API.G_FALSE
2202: THEN
2203: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2204: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCRUAL_TYPE');
2205: FND_MSG_PUB.ADD;
2206: END IF;
2207:
2201: ) = FND_API.G_FALSE
2202: THEN
2203: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2204: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCRUAL_TYPE');
2205: FND_MSG_PUB.ADD;
2206: END IF;
2207:
2208: x_return_status := FND_API.G_RET_STS_ERROR;
2209: RETURN;
2220: ,p_lookup_type => l_lookup_type
2221: ,p_lookup_code => l_metrics_rec.metric_calculation_type
2222: ) = FND_API.G_FALSE
2223: THEN
2224: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2225: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_TYPE');
2226: FND_MSG_PUB.ADD;
2227: END IF;
2228:
2222: ) = FND_API.G_FALSE
2223: THEN
2224: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2225: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_TYPE');
2226: FND_MSG_PUB.ADD;
2227: END IF;
2228:
2229: x_return_status := FND_API.G_RET_STS_ERROR;
2230: RETURN;
2240: ,p_lookup_type => l_lookup_type
2241: ,p_lookup_code => l_metrics_rec.DISPLAY_TYPE
2242: ) = FND_API.G_FALSE
2243: THEN
2244: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2245: FND_MESSAGE.Set_Name ('AMS', 'API_INCOMPLETE_INFO');
2246: FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2247: FND_MSG_PUB.ADD;
2248: END IF;
2243: THEN
2244: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2245: FND_MESSAGE.Set_Name ('AMS', 'API_INCOMPLETE_INFO');
2246: FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2247: FND_MSG_PUB.ADD;
2248: END IF;
2249:
2250: x_return_status := FND_API.G_RET_STS_ERROR;
2251: RETURN;
2260: ,p_lookup_type => l_lookup_type
2261: ,p_lookup_code => l_metrics_rec.value_type
2262: ) = FND_API.G_FALSE
2263: THEN
2264: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2265: FND_MESSAGE.Set_Name ('AMS', 'API_INCOMPLETE_INFO');
2266: FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2267: FND_MSG_PUB.ADD;
2268: END IF;
2263: THEN
2264: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2265: FND_MESSAGE.Set_Name ('AMS', 'API_INCOMPLETE_INFO');
2266: FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2267: FND_MSG_PUB.ADD;
2268: END IF;
2269:
2270: x_return_status := FND_API.G_RET_STS_ERROR;
2271: RETURN;
2311: -- ,p_lookup_code => l_metrics_rec.arc_metric_used_for_object
2312: -- ) = FND_API.G_FALSE
2313: THEN
2314: ***/
2315: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2316: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2317: FND_MSG_PUB.ADD;
2318: END IF;
2319:
2313: THEN
2314: ***/
2315: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2316: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2317: FND_MSG_PUB.ADD;
2318: END IF;
2319:
2320: x_return_status := FND_API.G_RET_STS_ERROR;
2321: RETURN;
2418:
2419: -- If Child is Attached to One Off Event then Parent must be attached to Program
2420: --06/25/2001 huili for debug
2421: --FND_MESSAGE.set_name('AMS', p_parent_metric_used_by);
2422: --FND_MSG_PUB.add;
2423: IF p_metric_used_by = 'EONE' AND
2424: p_parent_metric_used_by <> 'RCAM'
2425: THEN
2426: x_return_status := FND_API.G_RET_STS_ERROR;
2539: /*sunkumar 20 april 2004*/
2540: OPEN c_check_subcategory(p_complete_rec.metric_sub_category,p_complete_rec.metric_category);
2541: IF c_check_subcategory%NOTFOUND
2542: THEN
2543: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2544: THEN
2545: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUB_CATEGORY');
2546: FND_MSG_PUB.ADD;
2547: END IF;
2542: THEN
2543: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2544: THEN
2545: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_SUB_CATEGORY');
2546: FND_MSG_PUB.ADD;
2547: END IF;
2548:
2549: x_return_status := FND_API.G_RET_STS_ERROR;
2550: CLOSE c_check_subcategory;
2560:
2561: OPEN c_check_uom(p_complete_rec.default_uom_code,p_complete_rec.uom_type);
2562: IF c_check_uom%NOTFOUND
2563: THEN
2564: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2565: THEN
2566: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM');
2567: FND_MSG_PUB.ADD;
2568: END IF;
2563: THEN
2564: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2565: THEN
2566: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM');
2567: FND_MSG_PUB.ADD;
2568: END IF;
2569:
2570: x_return_status := FND_API.G_RET_STS_ERROR;
2571: CLOSE c_check_uom;
2595: ,p_pk_data_type => l_pk_data_type
2596: ,p_additional_where_clause => l_additional_where_clause
2597: ) = FND_API.G_FALSE
2598: THEN
2599: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2600: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUB_CATEGORY');
2601: FND_MSG_PUB.ADD;
2602: END IF;
2603:
2597: ) = FND_API.G_FALSE
2598: THEN
2599: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2600: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUB_CATEGORY');
2601: FND_MSG_PUB.ADD;
2602: END IF;
2603:
2604: x_return_status := FND_API.G_RET_STS_ERROR;
2605: RETURN;
2627: ,p_pk_data_type => l_pk_data_type
2628: ,p_additional_where_clause => l_additional_where_clause
2629: ) = FND_API.G_FALSE
2630: THEN
2631: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2632: THEN
2633: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM');
2634: FND_MSG_PUB.ADD;
2635: END IF;
2630: THEN
2631: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2632: THEN
2633: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_UOM');
2634: FND_MSG_PUB.ADD;
2635: END IF;
2636:
2637: x_return_status := FND_API.G_RET_STS_ERROR;
2638: RETURN;
2666: *****/
2667: -- Has to change when routine for Validate Function is done
2668: IF p_complete_rec.accrual_type = G_FIXED THEN
2669: IF p_complete_rec.compute_using_function IS NOT NULL THEN
2670: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2671: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCR_VAR_FUN');
2672: FND_MSG_PUB.ADD;
2673: END IF;
2674: x_return_status := FND_API.G_RET_STS_ERROR;
2668: IF p_complete_rec.accrual_type = G_FIXED THEN
2669: IF p_complete_rec.compute_using_function IS NOT NULL THEN
2670: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2671: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCR_VAR_FUN');
2672: FND_MSG_PUB.ADD;
2673: END IF;
2674: x_return_status := FND_API.G_RET_STS_ERROR;
2675: RETURN;
2676: ELSE -- compute_using_function is null
2675: RETURN;
2676: ELSE -- compute_using_function is null
2677: IF p_complete_rec.metric_calculation_type = G_FUNCTION THEN
2678: IF p_complete_rec.function_name IS NULL THEN
2679: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2680: THEN
2681: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_FUNC');
2682: FND_MSG_PUB.ADD;
2683: END IF;
2678: IF p_complete_rec.function_name IS NULL THEN
2679: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2680: THEN
2681: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_FUNC');
2682: FND_MSG_PUB.ADD;
2683: END IF;
2684: x_return_status := FND_API.G_RET_STS_ERROR;
2685: RETURN;
2686: END IF; -- function_name is null
2685: RETURN;
2686: END IF; -- function_name is null
2687: ELSE -- metric_calculation_type <> G_FUNCTION
2688: IF p_complete_rec.function_name IS NOT NULL THEN
2689: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2690: THEN
2691: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_FUNC');
2692: FND_MSG_PUB.ADD;
2693: END IF;
2688: IF p_complete_rec.function_name IS NOT NULL THEN
2689: IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
2690: THEN
2691: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_FUNC');
2692: FND_MSG_PUB.ADD;
2693: END IF;
2694: x_return_status := FND_API.G_RET_STS_ERROR;
2695: RETURN;
2696: END IF; -- function_name is not null
2698: END IF; -- compute_using_function is not null
2699: ELSIF p_complete_rec.accrual_type = G_VARIABLE THEN
2700: /** NOT TRUE ANY MORE
2701: IF p_complete_rec.function_name IS NOT NULL THEN
2702: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2703: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCR_FUN');
2704: FND_MSG_PUB.ADD;
2705: END IF;
2706: x_return_status := FND_API.G_RET_STS_ERROR;
2700: /** NOT TRUE ANY MORE
2701: IF p_complete_rec.function_name IS NOT NULL THEN
2702: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2703: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ACCR_FUN');
2704: FND_MSG_PUB.ADD;
2705: END IF;
2706: x_return_status := FND_API.G_RET_STS_ERROR;
2707: RETURN;
2708: END IF; -- function_name is not null
2707: RETURN;
2708: END IF; -- function_name is not null
2709: **/
2710: IF p_complete_rec.compute_using_function IS NULL THEN
2711: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2712: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_COMP_FUNC');
2713: FND_MSG_PUB.ADD;
2714: END IF;
2715: x_return_status := FND_API.G_RET_STS_ERROR;
2709: **/
2710: IF p_complete_rec.compute_using_function IS NULL THEN
2711: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2712: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_COMP_FUNC');
2713: FND_MSG_PUB.ADD;
2714: END IF;
2715: x_return_status := FND_API.G_RET_STS_ERROR;
2716: RETURN;
2717: ELSE
2722: l_calculation_type := null;
2723: FETCH c_check_multiplier
2724: INTO l_category_id, l_object_type, l_calculation_type;
2725: IF c_check_multiplier%NOTFOUND THEN
2726: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2727: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_METR');
2728: FND_MSG_PUB.ADD;
2729: END IF;
2730: x_return_status := FND_API.G_RET_STS_ERROR;
2724: INTO l_category_id, l_object_type, l_calculation_type;
2725: IF c_check_multiplier%NOTFOUND THEN
2726: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2727: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_METR');
2728: FND_MSG_PUB.ADD;
2729: END IF;
2730: x_return_status := FND_API.G_RET_STS_ERROR;
2731: END IF;
2732: CLOSE c_check_multiplier;
2730: x_return_status := FND_API.G_RET_STS_ERROR;
2731: END IF;
2732: CLOSE c_check_multiplier;
2733: IF l_category_id IN (G_COST_ID,G_REVENUE_ID) THEN
2734: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2735: OPEN c_get_category_name(l_category_id);
2736: FETCH c_get_category_name INTO l_name;
2737: CLOSE c_get_category_name;
2738: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_CAT');
2737: CLOSE c_get_category_name;
2738: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_CAT');
2739: FND_MESSAGE.set_token('CATEGORY',
2740: NVL(l_name,to_char(l_category_id)), FALSE);
2741: FND_MSG_PUB.ADD;
2742: END IF;
2743: x_return_status := FND_API.G_RET_STS_ERROR;
2744: END IF;
2745: IF l_object_type <> p_complete_rec.arc_metric_used_for_object THEN
2742: END IF;
2743: x_return_status := FND_API.G_RET_STS_ERROR;
2744: END IF;
2745: IF l_object_type <> p_complete_rec.arc_metric_used_for_object THEN
2746: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2747: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_OBJ');
2748: l_name := AMS_UTILITY_PVT.get_lookup_meaning(
2749: 'AMS_METRIC_OBJECT_TYPE',l_object_type);
2750: FND_MESSAGE.set_token('OBJECT',
2748: l_name := AMS_UTILITY_PVT.get_lookup_meaning(
2749: 'AMS_METRIC_OBJECT_TYPE',l_object_type);
2750: FND_MESSAGE.set_token('OBJECT',
2751: NVL(l_name,l_object_type), FALSE);
2752: FND_MSG_PUB.ADD;
2753: END IF;
2754: x_return_status := FND_API.G_RET_STS_ERROR;
2755: END IF;
2756: IF l_calculation_type NOT IN (G_MANUAL, G_FUNCTION) THEN
2753: END IF;
2754: x_return_status := FND_API.G_RET_STS_ERROR;
2755: END IF;
2756: IF l_calculation_type NOT IN (G_MANUAL, G_FUNCTION) THEN
2757: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2758: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_MULTI_CALC');
2759: l_name := AMS_UTILITY_PVT.get_lookup_meaning(
2760: 'AMS_METRIC_CALCULATION_TYPE',l_calculation_type);
2761: FND_MESSAGE.set_token('CALCULATION',
2759: l_name := AMS_UTILITY_PVT.get_lookup_meaning(
2760: 'AMS_METRIC_CALCULATION_TYPE',l_calculation_type);
2761: FND_MESSAGE.set_token('CALCULATION',
2762: NVL(l_name,l_calculation_type), FALSE);
2763: FND_MSG_PUB.ADD;
2764: END IF;
2765: x_return_status := FND_API.G_RET_STS_ERROR;
2766: END IF;
2767: END IF; -- compute_using_function is null
2790: l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM ) AND
2791: (l_metrics_rec.summary_metric_id IS NOT NULL AND
2792: l_metrics_rec.metric_parent_id IS NOT NULL )
2793: THEN
2794: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2795: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2796: FND_MSG_PUB.Add;
2797: END IF;
2798: x_return_status := FND_API.G_RET_STS_ERROR;
2792: l_metrics_rec.metric_parent_id IS NOT NULL )
2793: THEN
2794: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2795: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2796: FND_MSG_PUB.Add;
2797: END IF;
2798: x_return_status := FND_API.G_RET_STS_ERROR;
2799: RETURN;
2800: END IF;
2805: IF p_complete_rec.metric_calculation_type = G_SUMMARY AND
2806: p_complete_rec.metric_parent_id IS NOT NULL --AND
2807: --l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM
2808: THEN
2809: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2810: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_SUMM_NOT_ROLL');
2811: FND_MSG_PUB.ADD;
2812: END IF;
2813: x_return_status := FND_API.G_RET_STS_ERROR;
2807: --l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM
2808: THEN
2809: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2810: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_SUMM_NOT_ROLL');
2811: FND_MSG_PUB.ADD;
2812: END IF;
2813: x_return_status := FND_API.G_RET_STS_ERROR;
2814: RETURN;
2815: END IF;
2824: FETCH c_summary_count INTO l_count;
2825: CLOSE c_summary_count;
2826:
2827: IF l_count > 0 THEN
2828: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2829: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2830: FND_MSG_PUB.ADD;
2831: END IF;
2832:
2826:
2827: IF l_count > 0 THEN
2828: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2829: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2830: FND_MSG_PUB.ADD;
2831: END IF;
2832:
2833: x_return_status := FND_API.G_RET_STS_ERROR;
2834: RETURN;
2857:
2858:
2859: -- IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2860: --
2861: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2862: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_PARENT');
2863: -- FND_MSG_PUB.ADD;
2864: -- END IF;
2865: -- RETURN;
2859: -- IF x_return_status = FND_API.G_RET_STS_ERROR THEN
2860: --
2861: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2862: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_PARENT');
2863: -- FND_MSG_PUB.ADD;
2864: -- END IF;
2865: -- RETURN;
2866: -- END IF;
2867:
2871: -- END IF;
2872: -- The parent rollup metric category must be the same as the child's.
2873: IF p_complete_rec.metric_category <> l_rollup_metric_rec.metric_category
2874: THEN
2875: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2876: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_CAT');
2877: FND_MSG_PUB.ADD;
2878: END IF;
2879:
2873: IF p_complete_rec.metric_category <> l_rollup_metric_rec.metric_category
2874: THEN
2875: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2876: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_CAT');
2877: FND_MSG_PUB.ADD;
2878: END IF;
2879:
2880: x_return_status := FND_API.G_RET_STS_ERROR;
2881: RETURN;
2888: -- l_metrics_rec.value_type := p_complete_rec.value_type ;
2889: -- END IF;
2890:
2891: IF p_complete_rec.value_type <> l_rollup_metric_rec.value_type THEN
2892: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2893: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_VAL');
2894: FND_MSG_PUB.ADD;
2895: END IF;
2896:
2890:
2891: IF p_complete_rec.value_type <> l_rollup_metric_rec.value_type THEN
2892: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2893: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_VAL');
2894: FND_MSG_PUB.ADD;
2895: END IF;
2896:
2897: x_return_status := FND_API.G_RET_STS_ERROR;
2898: RETURN;
2904: -- l_metrics_rec.uom_type := p_complete_rec.uom_type ;
2905: -- END IF;
2906:
2907: IF p_complete_rec.uom_type <> l_rollup_metric_rec.uom_type THEN
2908: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2909: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_UOM');
2910: FND_MSG_PUB.ADD;
2911: END IF;
2912:
2906:
2907: IF p_complete_rec.uom_type <> l_rollup_metric_rec.uom_type THEN
2908: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2909: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_UOM');
2910: FND_MSG_PUB.ADD;
2911: END IF;
2912:
2913: x_return_status := FND_API.G_RET_STS_ERROR;
2914: RETURN;
2922: -- The return value type of the parent metric must be the same as
2923: -- that of the child's.
2924: -- IF l_metrics_rec.arc_metric_used_for_object <>
2925: -- l_rollup_metric_rec.arc_metric_used_for_object THEN
2926: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2927: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_ARC_QUALIFIER_NOT_SAME');
2928: -- FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2929: -- FND_MSG_PUB.Add;
2930: -- END IF;
2925: -- l_rollup_metric_rec.arc_metric_used_for_object THEN
2926: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2927: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_ARC_QUALIFIER_NOT_SAME');
2928: -- FND_MESSAGE.Set_Token ('PARAM', l_lookup_type, FALSE);
2929: -- FND_MSG_PUB.Add;
2930: -- END IF;
2931: --
2932: -- x_return_status := FND_API.G_RET_STS_ERROR;
2933: -- END IF;
2943: FETCH c_rollup_count INTO l_count;
2944: CLOSE c_rollup_count;
2945:
2946: IF l_count > 0 THEN
2947: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2948: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2949: FND_MSG_PUB.ADD;
2950: END IF;
2951:
2945:
2946: IF l_count > 0 THEN
2947: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2948: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_ROLL_SUMM');
2949: FND_MSG_PUB.ADD;
2950: END IF;
2951:
2952: x_return_status := FND_API.G_RET_STS_ERROR;
2953: RETURN;
2968: -- END IF;
2969: -- The parent rollup metric category must be the same as the child's.
2970: IF p_complete_rec.metric_category <> l_summary_metric_rec.metric_category
2971: THEN
2972: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2973: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_CAT');
2974: FND_MSG_PUB.ADD;
2975: END IF;
2976:
2970: IF p_complete_rec.metric_category <> l_summary_metric_rec.metric_category
2971: THEN
2972: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2973: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_CAT');
2974: FND_MSG_PUB.ADD;
2975: END IF;
2976:
2977: x_return_status := FND_API.G_RET_STS_ERROR;
2978: RETURN;
2983: -- l_metrics_rec.uom_type := p_complete_rec.uom_type ;
2984: -- END IF;
2985: -- The parent rollup metric unit of measure must be the same as the child's.
2986: IF p_complete_rec.uom_type <> l_summary_metric_rec.uom_type THEN
2987: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2988: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_UOM');
2989: FND_MSG_PUB.ADD;
2990: END IF;
2991:
2985: -- The parent rollup metric unit of measure must be the same as the child's.
2986: IF p_complete_rec.uom_type <> l_summary_metric_rec.uom_type THEN
2987: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2988: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_UOM');
2989: FND_MSG_PUB.ADD;
2990: END IF;
2991:
2992: x_return_status := FND_API.G_RET_STS_ERROR;
2993: RETURN;
2999: -- END IF;
3000: -- The return value type of the parent metric must be the same
3001: -- as that of the child's.
3002: IF p_complete_rec.value_type <> l_summary_metric_rec.value_type THEN
3003: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3004: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_VAL');
3005: FND_MSG_PUB.ADD;
3006: END IF;
3007:
3001: -- as that of the child's.
3002: IF p_complete_rec.value_type <> l_summary_metric_rec.value_type THEN
3003: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3004: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_VAL');
3005: FND_MSG_PUB.ADD;
3006: END IF;
3007:
3008: x_return_status := FND_API.G_RET_STS_ERROR;
3009: RETURN;
3022: -- This code is not applicable.
3023: -- IF l_metrics_rec.arc_metric_used_for_object <>
3024: -- l_summary_metric_rec.arc_metric_used_for_object
3025: -- AND l_metrics_rec.metric_calculation_type <> G_ROLLUP THEN
3026: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3027: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_OBJ');
3028: -- FND_MSG_PUB.ADD;
3029: -- END IF;
3030:
3024: -- l_summary_metric_rec.arc_metric_used_for_object
3025: -- AND l_metrics_rec.metric_calculation_type <> G_ROLLUP THEN
3026: -- IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3027: -- FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_SUMM_OBJ');
3028: -- FND_MSG_PUB.ADD;
3029: -- END IF;
3030:
3031: -- x_return_status := FND_API.G_RET_STS_ERROR;
3032: -- RETURN;
3038: --huili added on 05/10/2001
3039: IF p_complete_rec.accrual_type = 'VARIABLE'
3040: AND p_complete_rec.metric_category <> 901
3041: AND p_complete_rec.metric_category <> 902 THEN
3042: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3043: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CATEGORY');
3044: FND_MSG_PUB.ADD;
3045: END IF;
3046: x_return_status := FND_API.G_RET_STS_ERROR;
3040: AND p_complete_rec.metric_category <> 901
3041: AND p_complete_rec.metric_category <> 902 THEN
3042: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3043: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CATEGORY');
3044: FND_MSG_PUB.ADD;
3045: END IF;
3046: x_return_status := FND_API.G_RET_STS_ERROR;
3047: RETURN;
3048: END IF;
3050: -- 04-OCT-2001 DMVINCEN New object type for summary and rollup.
3051: IF p_complete_rec.arc_metric_used_for_object <> 'ANY' AND
3052: p_complete_rec.metric_calculation_type IN (G_ROLLUP, G_SUMMARY)
3053: THEN
3054: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3055: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_CALC');
3056: FND_MSG_PUB.ADD;
3057: END IF;
3058:
3052: p_complete_rec.metric_calculation_type IN (G_ROLLUP, G_SUMMARY)
3053: THEN
3054: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3055: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_CALC');
3056: FND_MSG_PUB.ADD;
3057: END IF;
3058:
3059: x_return_status := FND_API.G_RET_STS_ERROR;
3060: RETURN;
3063: -- 04-OCT-2001 DMVINCEN New object type for summary and rollup.
3064: IF p_complete_rec.arc_metric_used_for_object = 'ANY' AND
3065: p_complete_rec.metric_calculation_type NOT IN (G_ROLLUP, G_SUMMARY, G_FORMULA)
3066: THEN
3067: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3068: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_USED');
3069: FND_MSG_PUB.ADD;
3070: END IF;
3071:
3065: p_complete_rec.metric_calculation_type NOT IN (G_ROLLUP, G_SUMMARY, G_FORMULA)
3066: THEN
3067: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
3068: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_CALC_USED');
3069: FND_MSG_PUB.ADD;
3070: END IF;
3071:
3072: x_return_status := FND_API.G_RET_STS_ERROR;
3073: RETURN;
3225: -- p_pk_data_type => AMS_Utility_PVT.G_NUMBER
3226: -- ) = FND_API.G_TRUE
3227: -- End of the changes made by PTENDULK on 08/19/1999
3228: -- THEN
3229: -- IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3230: -- THEN
3231: -- FND_MESSAGE.Set_Name('AMS', 'AMS_METR_CHILD_EXIST');
3232: -- FND_MSG_PUB.Add;
3233: -- END IF;
3228: -- THEN
3229: -- IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3230: -- THEN
3231: -- FND_MESSAGE.Set_Name('AMS', 'AMS_METR_CHILD_EXIST');
3232: -- FND_MSG_PUB.Add;
3233: -- END IF;
3234: -- x_return_status := FND_API.G_RET_STS_ERROR;
3235: -- RETURN;
3236: -- END IF;
3266: -- ) = FND_API.G_TRUE
3267: -- End of the changes made by PTENDULK on 08/19/1999
3268: -- THEN
3269:
3270: -- IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3271: -- THEN
3272: -- FND_MESSAGE.Set_Name('AMS', 'AMS_METR_CHILD_EXIST');
3273: -- FND_MSG_PUB.Add;
3274: -- END IF;
3269:
3270: -- IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_ERROR)
3271: -- THEN
3272: -- FND_MESSAGE.Set_Name('AMS', 'AMS_METR_CHILD_EXIST');
3273: -- FND_MSG_PUB.Add;
3274: -- END IF;
3275: -- x_return_status := FND_API.G_RET_STS_ERROR;
3276: -- RETURN;
3277: -- END IF;
3348: OPEN c_metric(p_metric_rec.metric_id);
3349: FETCH c_metric INTO x_old_metric_rec;
3350: IF c_metric%NOTFOUND THEN
3351: CLOSE c_metric;
3352: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3353: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
3354: FND_MSG_PUB.ADD;
3355: END IF;
3356: RAISE FND_API.g_exc_error;
3350: IF c_metric%NOTFOUND THEN
3351: CLOSE c_metric;
3352: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
3353: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
3354: FND_MSG_PUB.ADD;
3355: END IF;
3356: RAISE FND_API.g_exc_error;
3357: END IF;
3358: CLOSE c_metric;
3598:
3599: IF x_func_type is null THEN
3600:
3601: FND_MESSAGE.Set_Name ('AMS', 'AMS_MET_FUNC_INVALID_DETAILS');
3602: FND_MSG_PUB.ADD;
3603: x_return_status := FND_API.G_RET_STS_ERROR;
3604:
3605: END IF;
3606: