305: BEGIN
306: SAVEPOINT Validate_FUND_Facts;
307: IF (AMS_DEBUG_HIGH_ON) THEN
308:
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;
327: -- top level: check against root budget
328: OPEN c_fundfact_getfundamt;
329: FETCH c_fundfact_getfundamt INTO l_avail_amount;
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');
372: IF (AMS_DEBUG_HIGH_ON) THEN
373:
374:
375:
376: AMS_Utility_PVT.debug_message('Validate_FundFact_FUND: end');
377:
378: END IF;
379:
380: EXCEPTION
378: END IF;
379:
380: EXCEPTION
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,
462: IF (AMS_DEBUG_HIGH_ON) THEN
463:
464:
465:
466: AMS_Utility_PVT.Debug_Message(l_full_name||': start');
467:
468: END IF;
469:
470: --
562: -- Debug message.
563: --
564: IF (AMS_DEBUG_HIGH_ON) THEN
565:
566: AMS_Utility_PVT.debug_message(l_full_name ||': insert');
567: END IF;
568:
569:
570:
825: -- Add success message to message list.
826: --
827: IF (AMS_DEBUG_HIGH_ON) THEN
828:
829: AMS_Utility_PVT.debug_message(l_full_name ||': end Success');
830: END IF;
831:
832:
833:
914: -- Output debug message.
915: --
916: IF (AMS_DEBUG_HIGH_ON) THEN
917:
918: AMS_Utility_PVT.debug_message(l_full_name||': start');
919: END IF;
920:
921: --
922: -- Initialize message list if p_init_msg_list is set to TRUE.
969:
970:
971:
972:
973: AMS_Utility_PVT.debug_message(l_full_name ||': validate');
974:
975:
976: END IF;
977:
1022:
1023:
1024:
1025:
1026: AMS_Utility_PVT.debug_message(l_full_name ||': Update Activity Metric Facts Table');
1027:
1028:
1029: END IF;
1030:
1168: -- Debug message.
1169: --
1170: IF (AMS_DEBUG_HIGH_ON) THEN
1171:
1172: AMS_Utility_PVT.debug_message(l_full_name ||': end');
1173: END IF;
1174:
1175:
1176: EXCEPTION
1254: -- Output debug message.
1255: --
1256: IF (AMS_DEBUG_HIGH_ON) THEN
1257:
1258: AMS_Utility_PVT.debug_message(l_full_name||': start');
1259: END IF;
1260:
1261: --
1262: -- Initialize message list if p_init_msg_list is set to TRUE.
1285: -- Begin API Body
1286: --
1287: IF (AMS_DEBUG_HIGH_ON) THEN
1288:
1289: AMS_Utility_PVT.debug_message(l_full_name||': lock');
1290: END IF;
1291:
1292: OPEN c_act_metric_fact_info;
1293: FETCH c_act_metric_fact_info INTO l_activity_metric_fact_id;
1319: -- Debug message.
1320: --
1321: IF (AMS_DEBUG_HIGH_ON) THEN
1322:
1323: AMS_Utility_PVT.debug_message(l_full_name ||': end');
1324: END IF;
1325:
1326:
1327: EXCEPTION
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
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');
1835: -- Output debug message.
1836: --
1837: IF (AMS_DEBUG_HIGH_ON) THEN
1838:
1839: AMS_Utility_PVT.debug_message(l_full_name||': start');
1840: END IF;
1841:
1842: --
1843: -- Initialize message list if p_init_msg_list is set to TRUE.
1868:
1869: -- Debug message.
1870: IF (AMS_DEBUG_HIGH_ON) THEN
1871:
1872: AMS_Utility_PVT.debug_message(l_full_name ||': delete with Validation');
1873: END IF;
1874:
1875: IF(p_activity_metric_id IS NOT NULL) THEN
1876:
1908: -- Debug message.
1909: --
1910: IF (AMS_DEBUG_HIGH_ON) THEN
1911:
1912: AMS_Utility_PVT.debug_message(l_full_name ||': End');
1913: END IF;
1914:
1915:
1916: --
1990: -- Output debug message.
1991: --
1992: IF (AMS_DEBUG_HIGH_ON) THEN
1993:
1994: AMS_Utility_PVT.debug_message(l_full_name||': start');
1995: END IF;
1996:
1997: --
1998: -- Initialize message list if p_init_msg_list is set to TRUE.
2024: IF (AMS_DEBUG_HIGH_ON) THEN
2025:
2026:
2027:
2028: AMS_Utility_PVT.debug_message(l_full_name||': Validate items');
2029:
2030: END IF;
2031:
2032:
2051: IF (AMS_DEBUG_HIGH_ON) THEN
2052:
2053:
2054:
2055: AMS_Utility_PVT.debug_message(l_full_name||': check record');
2056:
2057: END IF;
2058:
2059:
2098:
2099:
2100:
2101:
2102: AMS_Utility_PVT.debug_message(l_full_name ||': end');
2103:
2104:
2105:
2106: END IF;
2422: THEN
2423:
2424: l_where_clause := ' activity_metric_fact_id = '||p_act_metric_fact_rec.activity_metric_fact_id ;
2425:
2426: IF AMS_Utility_PVT.Check_Uniqueness(
2427: p_table_name => 'ams_act_metric_facts_all',
2428: p_where_clause => l_where_clause
2429: ) = FND_API.g_false
2430: THEN
2499: IF l_act_metric_fact_rec.activity_metric_id <> FND_API.G_MISS_NUM THEN
2500: l_table_name := 'AMS_ACT_METRICS_ALL';
2501: l_pk_name := 'ACTIVITY_METRIC_ID';
2502: l_pk_value := l_act_metric_fact_rec.activity_metric_id;
2503: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2504: l_additional_where_clause := NULL ;
2505:
2506: IF AMS_Utility_PVT.Check_FK_Exists (
2507: p_table_name => l_table_name
2502: l_pk_value := l_act_metric_fact_rec.activity_metric_id;
2503: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2504: l_additional_where_clause := NULL ;
2505:
2506: IF AMS_Utility_PVT.Check_FK_Exists (
2507: p_table_name => l_table_name
2508: ,p_pk_name => l_pk_name
2509: ,p_pk_value => l_pk_value
2510: ,p_pk_data_type => l_pk_data_type
2548:
2549: l_table_name := 'AMS_HIERARCHIES_ALL_B';
2550: l_pk_name := 'HIERARCHY_ID';
2551: l_pk_value := l_act_metric_fact_rec.hierarchy_id;
2552: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2553: l_additional_where_clause := NULL ;
2554:
2555: IF AMS_Utility_PVT.Check_FK_Exists (
2556: p_table_name => l_table_name
2551: l_pk_value := l_act_metric_fact_rec.hierarchy_id;
2552: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2553: l_additional_where_clause := NULL ;
2554:
2555: IF AMS_Utility_PVT.Check_FK_Exists (
2556: p_table_name => l_table_name
2557: ,p_pk_name => l_pk_name
2558: ,p_pk_value => l_pk_value
2559: ,p_pk_data_type => l_pk_data_type
2663: -- first Check whether the Metric is attached to same usage or not
2664: l_table_name := 'AMS_ACT_METRICS_ALL';
2665: l_pk_name := 'ACTIVITY_METRIC_ID';
2666: l_pk_value := l_act_metric_fact_rec.activity_metric_id;
2667: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2668: l_additional_where_clause := ' arc_act_metric_used_by = '||''''||
2669: l_act_metric_fact_rec.arc_act_metric_used_by||'''' ;
2670:
2671:
2669: l_act_metric_fact_rec.arc_act_metric_used_by||'''' ;
2670:
2671:
2672:
2673: IF AMS_Utility_PVT.Check_FK_Exists (
2674: p_table_name => l_table_name
2675: ,p_pk_name => l_pk_name
2676: ,p_pk_value => l_pk_value
2677: ,p_pk_data_type => l_pk_data_type
2694:
2695: /*
2696:
2697: -- Get table_name and pk_name for the ARC qualifier.
2698: AMS_Utility_PVT.Get_Qual_Table_Name_And_PK (
2699: p_sys_qual => l_act_metric_fact_rec.arc_act_metric_used_by,
2700: x_return_status => l_return_status,
2701: x_table_name => l_table_name,
2702: x_pk_name => l_pk_name
2704:
2705:
2706:
2707: l_pk_value := l_act_metric_fact_rec.act_metric_used_by_id;
2708: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2709: l_additional_where_clause := NULL;
2710:
2711: IF AMS_Utility_PVT.Check_FK_Exists (
2712: p_table_name => l_table_name
2707: l_pk_value := l_act_metric_fact_rec.act_metric_used_by_id;
2708: l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
2709: l_additional_where_clause := NULL;
2710:
2711: IF AMS_Utility_PVT.Check_FK_Exists (
2712: p_table_name => l_table_name
2713: ,p_pk_name => l_pk_name
2714: ,p_pk_value => l_pk_value
2715: ,p_pk_data_type => l_pk_data_type