35: -- 24-Apr-2000 tdonohoe Created.
36: --
37: -- End of comments
38:
39: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
40: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
41: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
42:
43: PROCEDURE Default_ActMetricFact(
36: --
37: -- End of comments
38:
39: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
40: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
41: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
42:
43: PROCEDURE Default_ActMetricFact(
44: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
37: -- End of comments
38:
39: AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
40: AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
41: AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
42:
43: PROCEDURE Default_ActMetricFact(
44: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
45: p_act_metric_fact_rec IN act_metric_fact_rec_type,
55: --
56: -- Initialize message list if p_init_msg_list is set to TRUE.
57: --
58: IF FND_API.To_Boolean (p_init_msg_list) THEN
59: FND_MSG_PUB.Initialize;
60: END IF;
61:
62: --
63: -- Initialize API return status to success.
309: AMS_Utility_PVT.debug_message('Validate_FundFact_Fund: start');
310: END IF;
311:
312: IF FND_API.To_Boolean (p_init_msg_list) THEN
313: FND_MSG_PUB.Initialize;
314: END IF;
315:
316: x_return_status := FND_API.G_RET_STS_SUCCESS;
317: l_top_level := true;
330: CLOSE c_fundfact_getfundamt;
331: -- IF (AMS_DEBUG_HIGH_ON) THEN AMS_Utility_PVT.debug_message(' Top level budget available amount: ' || l_avail_amount); END IF;
332: IF l_allocation_amount > l_avail_amount THEN
333: -- top level allocation amount can not exceed fund's available amount
334: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
335: FND_MESSAGE.Set_Name ('AMS', 'AMS_FUND_INV_CHILD_AMT');
336: FND_MESSAGE.Set_Token('SUMAMT', l_allocation_amount);
337: FND_MESSAGE.Set_Token('NODEVALUE', 'FUND');
338: FND_MESSAGE.Set_Token('PAMT', l_avail_amount);
335: FND_MESSAGE.Set_Name ('AMS', 'AMS_FUND_INV_CHILD_AMT');
336: FND_MESSAGE.Set_Token('SUMAMT', l_allocation_amount);
337: FND_MESSAGE.Set_Token('NODEVALUE', 'FUND');
338: FND_MESSAGE.Set_Token('PAMT', l_avail_amount);
339: FND_MSG_PUB.Add;
340: END IF;
341: x_return_status := FND_API.G_RET_STS_ERROR;
342: RAISE FND_API.G_EXC_ERROR;
343: END IF;
352: CLOSE c_fundfact_getchildsum;
353:
354: IF l_child_sum_amount > l_avail_amount THEN
355: -- sum of this node's children's allocation amount can not exceed this node's available amount
356: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
357: OPEN c_fundfact_getnodeinfo(factrec.hierarchy_id, factrec.node_id);
358: FETCH c_fundfact_getnodeinfo INTO l_node_value;
359: CLOSE c_fundfact_getnodeinfo;
360: FND_MESSAGE.Set_Name ('AMS', 'AMS_FUND_INV_CHILD_AMT');
360: FND_MESSAGE.Set_Name ('AMS', 'AMS_FUND_INV_CHILD_AMT');
361: FND_MESSAGE.Set_Token('SUMAMT', l_child_sum_amount);
362: FND_MESSAGE.Set_Token('NODEVALUE', l_node_value);
363: FND_MESSAGE.Set_Token('PAMT', l_avail_amount);
364: FND_MSG_PUB.Add;
365: END IF;
366: x_return_status := FND_API.G_RET_STS_ERROR;
367: RAISE FND_API.G_EXC_ERROR;
368: END IF;
381: WHEN FND_API.G_EXC_ERROR THEN
382: -- IF (AMS_DEBUG_HIGH_ON) THEN AMS_Utility_PVT.debug_message('Validate_FUND_Facts: ' || substr(sqlerrm, 1, 100)); END IF;
383: ROLLBACK TO Validate_FUND_Facts;
384: x_return_status := FND_API.G_RET_STS_ERROR;
385: FND_MSG_PUB.Count_And_Get (
386: p_encoded => fnd_api.g_false,
387: p_count => x_msg_count,
388: p_data => x_msg_data
389: );
390: WHEN OTHERS THEN
391: -- IF (AMS_DEBUG_HIGH_ON) THEN AMS_Utility_PVT.debug_message('Validate_FUND_Facts: ' || substr(sqlerrm, 1, 100)); END IF;
392: ROLLBACK TO Validate_FUND_Facts;
393: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394: FND_MSG_PUB.Count_And_Get (
395: p_encoded => fnd_api.g_false,
396: p_count => x_msg_count,
397: p_data => x_msg_data
398: );
470: --
471: -- Initialize message list if p_init_msg_list is set to TRUE.
472: --
473: IF FND_API.To_Boolean (p_init_msg_list) THEN
474: FND_MSG_PUB.Initialize;
475: END IF;
476:
477: --
478: -- Standard check for API version compatibility.
814: --
815: -- Standard API to get message count, and if 1,
816: -- set the message data OUT NOCOPY variable.
817: --
818: FND_MSG_PUB.Count_And_Get (
819: p_count => x_msg_count,
820: p_data => x_msg_data,
821: p_encoded => FND_API.G_FALSE
822: );
837:
838:
839: ROLLBACK TO Create_ActMetricFact_Pvt;
840: x_return_status := FND_API.G_RET_STS_ERROR;
841: FND_MSG_PUB.Count_And_Get (
842: p_count => x_msg_count,
843: p_data => x_msg_data
844: );
845: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
847:
848:
849: ROLLBACK TO Create_ActMetricFact_Pvt;
850: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
851: FND_MSG_PUB.Count_And_Get (
852: p_count => x_msg_count,
853: p_data => x_msg_data
854: );
855: WHEN OTHERS THEN
856:
857:
858: ROLLBACK TO Create_ActMetricFact_Pvt;
859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
860: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
861: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
862: END IF;
863: FND_MSG_PUB.Count_And_Get (
864: p_count => x_msg_count,
857:
858: ROLLBACK TO Create_ActMetricFact_Pvt;
859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
860: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
861: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
862: END IF;
863: FND_MSG_PUB.Count_And_Get (
864: p_count => x_msg_count,
865: p_data => x_msg_data
859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
860: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
861: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
862: END IF;
863: FND_MSG_PUB.Count_And_Get (
864: p_count => x_msg_count,
865: p_data => x_msg_data
866: );
867: END Create_ActMetricFact;
921: --
922: -- Initialize message list if p_init_msg_list is set to TRUE.
923: --
924: IF FND_API.To_Boolean (p_init_msg_list) THEN
925: FND_MSG_PUB.Initialize;
926: END IF;
927:
928: --
929: -- Standard check for API version compatibility.
1137: THEN
1138: --
1139: -- Add error message to API message list.
1140: --
1141: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1142: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1143: FND_MSG_PUB.add;
1144: END IF;
1145: RAISE FND_API.g_exc_error;
1139: -- Add error message to API message list.
1140: --
1141: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1142: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1143: FND_MSG_PUB.add;
1144: END IF;
1145: RAISE FND_API.g_exc_error;
1146: END IF;
1147:
1157: --
1158: -- Standard API to get message count, and if 1,
1159: -- set the message data OUT NOCOPY variable.
1160: --
1161: FND_MSG_PUB.Count_And_Get (
1162: p_count => x_msg_count,
1163: p_data => x_msg_data,
1164: p_encoded => FND_API.G_FALSE
1165: );
1179:
1180:
1181: ROLLBACK TO Update_ActMetricFact_pvt;
1182: x_return_status := FND_API.G_RET_STS_ERROR;
1183: FND_MSG_PUB.Count_And_Get (
1184: p_count => x_msg_count,
1185: p_data => x_msg_data
1186: );
1187: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1189:
1190:
1191: ROLLBACK TO Update_ActMetricFact_pvt;
1192: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1193: FND_MSG_PUB.Count_And_Get (
1194: p_count => x_msg_count,
1195: p_data => x_msg_data
1196: );
1197: WHEN OTHERS THEN
1199:
1200:
1201: ROLLBACK TO Update_ActMetricFact_pvt;
1202: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1204: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1205: END IF;
1206: FND_MSG_PUB.Count_And_Get (
1207: p_count => x_msg_count,
1200:
1201: ROLLBACK TO Update_ActMetricFact_pvt;
1202: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1204: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1205: END IF;
1206: FND_MSG_PUB.Count_And_Get (
1207: p_count => x_msg_count,
1208: p_data => x_msg_data
1202: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1203: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1204: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1205: END IF;
1206: FND_MSG_PUB.Count_And_Get (
1207: p_count => x_msg_count,
1208: p_data => x_msg_data
1209: );
1210: END Update_ActMetricFact;
1261: --
1262: -- Initialize message list if p_init_msg_list is set to TRUE.
1263: --
1264: IF FND_API.To_Boolean (p_init_msg_list) THEN
1265: FND_MSG_PUB.Initialize;
1266: END IF;
1267:
1268: --
1269: -- Standard check for API version compatibility.
1295: THEN
1296: CLOSE c_act_metric_fact_info;
1297: -- Error, check the msg level and added an error message to the
1298: -- API message list
1299: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1300: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1301: FND_MSG_PUB.add;
1302: END IF;
1303: RAISE FND_API.g_exc_error;
1297: -- Error, check the msg level and added an error message to the
1298: -- API message list
1299: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1300: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1301: FND_MSG_PUB.add;
1302: END IF;
1303: RAISE FND_API.g_exc_error;
1304: END IF;
1305: CLOSE c_act_metric_fact_info;
1308: --
1309: -- Standard API to get message count, and if 1,
1310: -- set the message data OUT NOCOPY variable.
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: );
1326:
1327: EXCEPTION
1328: WHEN FND_API.G_EXC_ERROR THEN
1329: x_return_status := FND_API.G_RET_STS_ERROR;
1330: FND_MSG_PUB.Count_And_Get (
1331: p_count => x_msg_count,
1332: p_data => x_msg_data
1333: );
1334: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1332: p_data => x_msg_data
1333: );
1334: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1335: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1336: FND_MSG_PUB.Count_And_Get (
1337: p_count => x_msg_count,
1338: p_data => x_msg_data
1339: );
1340: WHEN AMS_Utility_PVT.RESOURCE_LOCKED THEN
1339: );
1340: WHEN AMS_Utility_PVT.RESOURCE_LOCKED THEN
1341: x_return_status := FND_API.G_RET_STS_ERROR ;
1342:
1343: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1344: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1345: FND_MSG_PUB.add;
1346: END IF;
1347:
1341: x_return_status := FND_API.G_RET_STS_ERROR ;
1342:
1343: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1344: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1345: FND_MSG_PUB.add;
1346: END IF;
1347:
1348: FND_MSG_PUB.Count_And_Get (
1349: p_count => x_msg_count,
1344: FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
1345: FND_MSG_PUB.add;
1346: END IF;
1347:
1348: FND_MSG_PUB.Count_And_Get (
1349: p_count => x_msg_count,
1350: p_data => x_msg_data,
1351: p_encoded => FND_API.G_FALSE
1352: );
1351: p_encoded => FND_API.G_FALSE
1352: );
1353: WHEN OTHERS THEN
1354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1355: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1356: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1357: END IF;
1358: FND_MSG_PUB.Count_And_Get (
1359: p_count => x_msg_count,
1352: );
1353: WHEN OTHERS THEN
1354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1355: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1356: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1357: END IF;
1358: FND_MSG_PUB.Count_And_Get (
1359: p_count => x_msg_count,
1360: p_data => x_msg_data,
1354: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1355: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1356: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1357: END IF;
1358: FND_MSG_PUB.Count_And_Get (
1359: p_count => x_msg_count,
1360: p_data => x_msg_data,
1361: p_encoded => FND_API.G_FALSE
1362: );
1393: OPEN c_act_metric_fact;
1394: FETCH c_act_metric_fact INTO l_act_metric_fact_rec;
1395: IF c_act_metric_fact%NOTFOUND THEN
1396: CLOSE c_act_metric_fact;
1397: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1398: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1399: FND_MSG_PUB.add;
1400: END IF;
1401: RAISE FND_API.g_exc_error;
1395: IF c_act_metric_fact%NOTFOUND THEN
1396: CLOSE c_act_metric_fact;
1397: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1398: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1399: FND_MSG_PUB.add;
1400: END IF;
1401: RAISE FND_API.g_exc_error;
1402: END IF;
1403: CLOSE c_act_metric_fact;
1842: --
1843: -- Initialize message list if p_init_msg_list is set to TRUE.
1844: --
1845: IF FND_API.To_Boolean (p_init_msg_list) THEN
1846: FND_MSG_PUB.Initialize;
1847: END IF;
1848:
1849: --
1850: -- Standard check for API version compatibility.
1886: END IF;
1887:
1888:
1889: IF (SQL%NOTFOUND) THEN
1890: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1891: THEN
1892: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1893: FND_MSG_PUB.add;
1894: END IF;
1889: IF (SQL%NOTFOUND) THEN
1890: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
1891: THEN
1892: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1893: FND_MSG_PUB.add;
1894: END IF;
1895: RAISE FND_API.g_exc_error;
1896: END IF;
1897:
1916: --
1917: -- Standard API to get message count, and if 1,
1918: -- set the message data OUT NOCOPY variable.
1919: --
1920: FND_MSG_PUB.Count_And_Get (
1921: p_count => x_msg_count,
1922: p_data => x_msg_data,
1923: p_encoded => FND_API.G_FALSE
1924: );
1926: EXCEPTION
1927: WHEN FND_API.G_EXC_ERROR THEN
1928: ROLLBACK TO Delete_ActMetricFact_pvt;
1929: x_return_status := FND_API.G_RET_STS_ERROR;
1930: FND_MSG_PUB.Count_And_Get (
1931: p_count => x_msg_count,
1932: p_data => x_msg_data
1933: );
1934: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1933: );
1934: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1935: ROLLBACK TO Delete_ActMetricFact_pvt;
1936: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1937: FND_MSG_PUB.Count_And_Get (
1938: p_count => x_msg_count,
1939: p_data => x_msg_data
1940: );
1941: WHEN OTHERS THEN
1940: );
1941: WHEN OTHERS THEN
1942: ROLLBACK TO Delete_ActMetricFact_pvt;
1943: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1944: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1945: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1946: END IF;
1947: FND_MSG_PUB.Count_And_Get (
1948: p_count => x_msg_count,
1941: WHEN OTHERS THEN
1942: ROLLBACK TO Delete_ActMetricFact_pvt;
1943: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1944: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1945: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1946: END IF;
1947: FND_MSG_PUB.Count_And_Get (
1948: p_count => x_msg_count,
1949: p_data => x_msg_data
1943: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1944: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
1945: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
1946: END IF;
1947: FND_MSG_PUB.Count_And_Get (
1948: p_count => x_msg_count,
1949: p_data => x_msg_data
1950: );
1951: END Delete_ActMetricFact;
1997: --
1998: -- Initialize message list if p_init_msg_list is set to TRUE.
1999: --
2000: IF FND_API.To_Boolean (p_init_msg_list) THEN
2001: FND_MSG_PUB.Initialize;
2002: END IF;
2003:
2004: --
2005: -- Standard check for API version compatibility.
2082: --
2083: -- Standard API to get message count, and if 1,
2084: -- set the message data OUT NOCOPY variable.
2085: --
2086: FND_MSG_PUB.Count_And_Get (
2087: p_count => x_msg_count,
2088: p_data => x_msg_data,
2089: p_encoded => FND_API.G_FALSE
2090: );
2109:
2110: EXCEPTION
2111: WHEN FND_API.G_EXC_ERROR THEN
2112: x_return_status := FND_API.G_RET_STS_ERROR;
2113: FND_MSG_PUB.Count_And_Get (
2114: p_count => x_msg_count,
2115: p_data => x_msg_data
2116: );
2117: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2115: p_data => x_msg_data
2116: );
2117: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2118: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2119: FND_MSG_PUB.Count_And_Get (
2120: p_count => x_msg_count,
2121: p_data => x_msg_data
2122: );
2123: WHEN OTHERS THEN
2121: p_data => x_msg_data
2122: );
2123: WHEN OTHERS THEN
2124: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2125: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2126: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
2127: END IF;
2128: FND_MSG_PUB.Count_And_Get (
2129: p_count => x_msg_count,
2122: );
2123: WHEN OTHERS THEN
2124: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2125: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2126: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
2127: END IF;
2128: FND_MSG_PUB.Count_And_Get (
2129: p_count => x_msg_count,
2130: p_data => x_msg_data
2124: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2125: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
2126: FND_MSG_PUB.Add_Exc_Msg (G_PKG_NAME, L_API_NAME);
2127: END IF;
2128: FND_MSG_PUB.Count_And_Get (
2129: p_count => x_msg_count,
2130: p_data => x_msg_data
2131: );
2132: END Validate_ActMetFact;
2163:
2164: IF p_act_metric_fact_rec.act_metric_used_by_id IS NULL
2165: THEN
2166: -- missing required fields
2167: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2168: THEN -- MMSG
2169: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
2170: FND_MSG_PUB.Add;
2171: END IF;
2166: -- missing required fields
2167: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2168: THEN -- MMSG
2169: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
2170: FND_MSG_PUB.Add;
2171: END IF;
2172:
2173: x_return_status := FND_API.G_RET_STS_ERROR;
2174:
2182:
2183: IF p_act_metric_fact_rec.arc_act_metric_used_by IS NULL
2184: THEN
2185: -- missing required fields
2186: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2187: THEN -- MMSG
2188: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
2189: FND_MSG_PUB.Add;
2190: END IF;
2185: -- missing required fields
2186: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2187: THEN -- MMSG
2188: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ARC_USED_FOR');
2189: FND_MSG_PUB.Add;
2190: END IF;
2191:
2192: x_return_status := FND_API.G_RET_STS_ERROR;
2193:
2201:
2202: IF p_act_metric_fact_rec.value_type IS NULL
2203: THEN
2204: -- missing required fields
2205: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2206: THEN -- MMSG
2207: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_VAL_TYPE');
2208: FND_MSG_PUB.Add;
2209: END IF;
2204: -- missing required fields
2205: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2206: THEN -- MMSG
2207: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_VAL_TYPE');
2208: FND_MSG_PUB.Add;
2209: END IF;
2210:
2211: x_return_status := FND_API.G_RET_STS_ERROR;
2212:
2221:
2222: IF p_act_metric_fact_rec.activity_metric_id IS NULL
2223: THEN
2224: -- missing required fields
2225: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2226: THEN -- MMSG
2227: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ACT_METRIC_ID');
2228: FND_MSG_PUB.Add;
2229: END IF;
2224: -- missing required fields
2225: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2226: THEN -- MMSG
2227: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_ACT_METRIC_ID');
2228: FND_MSG_PUB.Add;
2229: END IF;
2230:
2231: x_return_status := FND_API.G_RET_STS_ERROR;
2232:
2240:
2241: IF p_act_metric_fact_rec.trans_forecasted_value IS NULL
2242: THEN
2243: -- missing required fields
2244: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2245: THEN -- MMSG
2246: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_TRAN_FCST_VAL');
2247: FND_MSG_PUB.Add;
2248: END IF;
2243: -- missing required fields
2244: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2245: THEN -- MMSG
2246: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_TRAN_FCST_VAL');
2247: FND_MSG_PUB.Add;
2248: END IF;
2249:
2250: x_return_status := FND_API.G_RET_STS_ERROR;
2251:
2259: --FUNCTIONAL_CURRENCY_CODE
2260: IF p_act_metric_fact_rec.functional_currency_code IS NULL
2261: THEN
2262: -- missing required fields
2263: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2264: THEN -- MMSG
2265: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FUNC_CUR_CODE');
2266: FND_MSG_PUB.Add;
2267: END IF;
2262: -- missing required fields
2263: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2264: THEN -- MMSG
2265: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FUNC_CUR_CODE');
2266: FND_MSG_PUB.Add;
2267: END IF;
2268:
2269: x_return_status := FND_API.G_RET_STS_ERROR;
2270:
2278:
2279: IF p_act_metric_fact_rec.func_forecasted_value IS NULL
2280: THEN
2281: -- missing required fields
2282: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2283: THEN -- MMSG
2284: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FUNC_FCST_VAL');
2285: FND_MSG_PUB.Add;
2286: END IF;
2281: -- missing required fields
2282: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2283: THEN -- MMSG
2284: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FUNC_FCST_VAL');
2285: FND_MSG_PUB.Add;
2286: END IF;
2287:
2288: x_return_status := FND_API.G_RET_STS_ERROR;
2289:
2298:
2299: IF p_act_metric_fact_rec.de_metric_id IS NULL
2300: THEN
2301: -- missing required fields
2302: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2303: THEN -- MMSG
2304: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_METRIC_ID');
2305: FND_MSG_PUB.Add;
2306: END IF;
2301: -- missing required fields
2302: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2303: THEN -- MMSG
2304: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_METRIC_ID');
2305: FND_MSG_PUB.Add;
2306: END IF;
2307:
2308: x_return_status := FND_API.G_RET_STS_ERROR;
2309:
2318:
2319: IF p_act_metric_fact_rec.time_id1 IS NULL
2320: THEN
2321: -- missing required fields
2322: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2323: THEN -- MMSG
2324: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_TIME_ID1');
2325: FND_MSG_PUB.Add;
2326: END IF;
2321: -- missing required fields
2322: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2323: THEN -- MMSG
2324: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_TIME_ID1');
2325: FND_MSG_PUB.Add;
2326: END IF;
2327:
2328: x_return_status := FND_API.G_RET_STS_ERROR;
2329:
2349:
2350:
2351:
2352: -- missing required fields
2353: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2354: THEN -- MMSG
2355: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_NODE_ID');
2356: FND_MSG_PUB.Add;
2357: END IF;
2352: -- missing required fields
2353: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2354: THEN -- MMSG
2355: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_NODE_ID');
2356: FND_MSG_PUB.Add;
2357: END IF;
2358:
2359: x_return_status := FND_API.G_RET_STS_ERROR;
2360:
2367:
2368: IF p_act_metric_fact_rec.fact_value IS NULL
2369: THEN
2370: -- missing required fields
2371: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2372: THEN -- MMSG
2373: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FACT_VAL');
2374: FND_MSG_PUB.Add;
2375: END IF;
2370: -- missing required fields
2371: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2372: THEN -- MMSG
2373: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_MISSING_FACT_VAL');
2374: FND_MSG_PUB.Add;
2375: END IF;
2376:
2377: x_return_status := FND_API.G_RET_STS_ERROR;
2378:
2427: p_table_name => 'ams_act_metric_facts_all',
2428: p_where_clause => l_where_clause
2429: ) = FND_API.g_false
2430: THEN
2431: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
2432: THEN
2433: FND_MESSAGE.set_name('AMS', 'AMS_METR_FACT_DUP_ID');
2434: FND_MSG_PUB.add;
2435: END IF;
2430: THEN
2431: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
2432: THEN
2433: FND_MESSAGE.set_name('AMS', 'AMS_METR_FACT_DUP_ID');
2434: FND_MSG_PUB.add;
2435: END IF;
2436: x_return_status := FND_API.g_ret_sts_error;
2437: RETURN;
2438: END IF;
2510: ,p_pk_data_type => l_pk_data_type
2511: ,p_additional_where_clause => l_additional_where_clause
2512: ) = FND_API.G_FALSE
2513: THEN
2514: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2515: THEN
2516: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_MET');
2517: FND_MSG_PUB.Add;
2518: END IF;
2513: THEN
2514: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2515: THEN
2516: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_MET');
2517: FND_MSG_PUB.Add;
2518: END IF;
2519:
2520: x_return_status := FND_API.G_RET_STS_ERROR;
2521: RETURN;
2529: IF l_act_metric_fact_rec.arc_act_metric_used_by <> FND_API.G_MISS_CHAR THEN
2530: IF l_act_metric_fact_rec.arc_act_metric_used_by NOT IN
2531: ('CAMP','CSCH','EVEH','EVEO','DELV','FUND','FCST')
2532: THEN
2533: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2534: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2535: FND_MSG_PUB.Add;
2536: END IF;
2537:
2531: ('CAMP','CSCH','EVEH','EVEO','DELV','FUND','FCST')
2532: THEN
2533: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2534: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2535: FND_MSG_PUB.Add;
2536: END IF;
2537:
2538: x_return_status := FND_API.G_RET_STS_ERROR;
2539: RETURN;
2559: ,p_pk_data_type => l_pk_data_type
2560: ,p_additional_where_clause => l_additional_where_clause
2561: ) = FND_API.G_FALSE
2562: THEN
2563: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2564: THEN
2565: FND_MESSAGE.Set_Name('AMS', 'AMS_HIER_INVALID');
2566: FND_MSG_PUB.Add;
2567: END IF;
2562: THEN
2563: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2564: THEN
2565: FND_MESSAGE.Set_Name('AMS', 'AMS_HIER_INVALID');
2566: FND_MSG_PUB.Add;
2567: END IF;
2568:
2569: x_return_status := FND_API.G_RET_STS_ERROR;
2570: RETURN;
2595:
2596:
2597: IF c_hierarchy_node_check%FOUND THEN
2598: CLOSE c_hierarchy_node_check;
2599: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2600: FND_MESSAGE.set_name('AMS', 'AMS_METR_FACT_DUP_NODE_ID');
2601: FND_MSG_PUB.add;
2602: RAISE FND_API.g_exc_error;
2603: END IF;
2597: IF c_hierarchy_node_check%FOUND THEN
2598: CLOSE c_hierarchy_node_check;
2599: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
2600: FND_MESSAGE.set_name('AMS', 'AMS_METR_FACT_DUP_NODE_ID');
2601: FND_MSG_PUB.add;
2602: RAISE FND_API.g_exc_error;
2603: END IF;
2604: ELSE
2605: CLOSE c_hierarchy_node_check;
2678: ,p_additional_where_clause => l_additional_where_clause
2679: ) = FND_API.G_FALSE
2680: THEN
2681:
2682: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2683: THEN
2684: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_ACT_USAGE');
2685: FND_MSG_PUB.Add;
2686: END IF;
2681:
2682: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
2683: THEN
2684: FND_MESSAGE.Set_Name('AMS', 'AMS_METR_INVALID_ACT_USAGE');
2685: FND_MSG_PUB.Add;
2686: END IF;
2687:
2688: x_return_status := FND_API.G_RET_STS_ERROR;
2689:
2715: ,p_pk_data_type => l_pk_data_type
2716: ,p_additional_where_clause => NULL
2717: ) = FND_API.G_FALSE
2718: THEN
2719: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2720: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2721: FND_MSG_PUB.Add;
2722: END IF;
2723:
2717: ) = FND_API.G_FALSE
2718: THEN
2719: IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
2720: FND_MESSAGE.Set_Name ('AMS', 'AMS_METR_INVALID_USED_BY');
2721: FND_MSG_PUB.Add;
2722: END IF;
2723:
2724: x_return_status := FND_API.G_RET_STS_ERROR;
2725: RETURN;