83: -- 10/08/2001 huili Remove the message initialization in the
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.
203: FROM ams_metrics_all_b
204: WHERE to_number(compute_using_function) = p_met_id;
205:
206: BEGIN
207: x_return_status := FND_API.G_RET_STS_SUCCESS;
208:
209: OPEN c_metric;
210: FETCH c_metric INTO l_metric_rec;
211: CLOSE c_metric;
223: AND ( p_metric_rec.metric_calculation_type <>
224: l_metric_rec.metric_calculation_type
225: OR p_metric_rec.metric_category <> l_metric_rec.metric_category )
226: THEN
227: x_return_status := FND_API.G_RET_STS_ERROR;
228: RETURN;
229: END IF;
230:
231: --
236: OPEN c_check_summary_children (l_metric_rec.metric_id);
237: FETCH c_check_summary_children INTO l_check_children;
238: CLOSE c_check_summary_children;
239: IF l_check_children IS NOT NULL THEN
240: x_return_status := FND_API.G_RET_STS_ERROR;
241: RETURN;
242: END IF;
243:
244: --
251: CLOSE c_check_variable_met;
252: -- BUG2411660: Test for dependent metric corrected.
253: -- IF l_check_children IS NULL THEN
254: IF l_check_children IS NOT NULL THEN
255: x_return_status := FND_API.G_RET_STS_ERROR;
256: RETURN;
257: END IF;
258: END IF;
259: END;
289: -- End of comments
290:
291: PROCEDURE Create_Metric (
292: p_api_version IN NUMBER,
293: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
294: p_commit IN VARCHAR2 := FND_API.G_FALSE,
295: p_validation_level IN NUMBER := FND_API.G_Valid_Level_Full,
296:
297: x_return_status OUT NOCOPY VARCHAR2,
290:
291: PROCEDURE Create_Metric (
292: p_api_version IN NUMBER,
293: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
294: p_commit IN VARCHAR2 := FND_API.G_FALSE,
295: p_validation_level IN NUMBER := FND_API.G_Valid_Level_Full,
296:
297: x_return_status OUT NOCOPY VARCHAR2,
298: x_msg_count OUT NOCOPY NUMBER,
291: PROCEDURE Create_Metric (
292: p_api_version IN NUMBER,
293: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
294: p_commit IN VARCHAR2 := FND_API.G_FALSE,
295: p_validation_level IN NUMBER := FND_API.G_Valid_Level_Full,
296:
297: x_return_status OUT NOCOPY VARCHAR2,
298: x_msg_count OUT NOCOPY NUMBER,
299: x_msg_data OUT NOCOPY VARCHAR2,
341:
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: --
348:
349: --
350: -- Standard check for API version compatibility.
351: --
352: IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
353: p_api_version,
354: L_API_NAME,
355: G_PKG_NAME)
356: THEN
353: p_api_version,
354: L_API_NAME,
355: G_PKG_NAME)
356: THEN
357: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
358: END IF;
359:
360:
361: --
360:
361: --
362: -- Initialize API return status to success.
363: --
364: x_return_status := FND_API.G_RET_STS_SUCCESS;
365:
366: --
367: -- Begin API Body.
368: --
384: p_metric_rec => l_metrics_rec
385: );
386:
387: -- If any errors happen abort API.
388: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
389: RAISE FND_API.G_EXC_ERROR;
390: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
391: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392: END IF;
385: );
386:
387: -- If any errors happen abort API.
388: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
389: RAISE FND_API.G_EXC_ERROR;
390: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
391: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392: END IF;
393:
386:
387: -- If any errors happen abort API.
388: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
389: RAISE FND_API.G_EXC_ERROR;
390: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
391: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392: END IF;
393:
394: --
387: -- If any errors happen abort API.
388: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
389: RAISE FND_API.G_EXC_ERROR;
390: ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
391: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
392: END IF;
393:
394: --
395: -- Debug message.
414:
415: --function metric
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;
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:
425: Validate_Metric_Program (p_func_name => l_metrics_rec.function_name,
425: Validate_Metric_Program (p_func_name => l_metrics_rec.function_name,
426: x_func_type => l_func_type,
427: x_return_status => l_return_status);
428:
429: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
430: RAISE FND_API.G_EXC_ERROR;
431: END IF;
432:
433: -- elsif UPPER(l_metrics_rec.metric_calculation_type) = G_FORMULA THEN
426: x_func_type => l_func_type,
427: x_return_status => l_return_status);
428:
429: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
430: RAISE FND_API.G_EXC_ERROR;
431: END IF;
432:
433: -- elsif UPPER(l_metrics_rec.metric_calculation_type) = G_FORMULA THEN
434: -- l_metrics_rec.metric_category := null;
556:
557: --
558: -- Standard check for commit request.
559: --
560: IF FND_API.To_Boolean (p_commit) THEN
561: COMMIT WORK;
562: END IF;
563:
564: --
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: );
573:
574: --
575: -- Add success message to message list.
577: Ams_Utility_Pvt.debug_message(l_full_name ||': end Success');
578:
579:
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,
579:
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
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: );
589: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
585: p_encoded => FND_API.g_false,
586: p_count => x_msg_count,
587: p_data => x_msg_data
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,
587: p_data => x_msg_data
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
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: );
597: WHEN OTHERS THEN
595: p_data => x_msg_data
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 (
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: );
608: END Create_Metric;
625: -- End of comments
626:
627: PROCEDURE Update_Metric (
628: p_api_version IN NUMBER,
629: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
630: p_commit IN VARCHAR2 := FND_API.G_FALSE,
631: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
632:
633: x_return_status OUT NOCOPY VARCHAR2,
626:
627: PROCEDURE Update_Metric (
628: p_api_version IN NUMBER,
629: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
630: p_commit IN VARCHAR2 := FND_API.G_FALSE,
631: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
632:
633: x_return_status OUT NOCOPY VARCHAR2,
634: x_msg_count OUT NOCOPY NUMBER,
627: PROCEDURE Update_Metric (
628: p_api_version IN NUMBER,
629: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
630: p_commit IN VARCHAR2 := FND_API.G_FALSE,
631: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
632:
633: x_return_status OUT NOCOPY VARCHAR2,
634: x_msg_count OUT NOCOPY NUMBER,
635: x_msg_data OUT NOCOPY VARCHAR2,
661:
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: --
668:
669: --
670: -- Standard check for API version compatibility.
671: --
672: IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
673: p_api_version,
674: L_API_NAME,
675: G_PKG_NAME)
676: THEN
673: p_api_version,
674: L_API_NAME,
675: G_PKG_NAME)
676: THEN
677: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
678: END IF;
679:
680: --
681: -- Initialize API return status to success.
679:
680: --
681: -- Initialize API return status to success.
682: --
683: x_return_status := FND_API.G_RET_STS_SUCCESS;
684:
685: -- replace g_miss_char/num/date with current column values
686: Complete_Metric_Rec(p_metric_rec, l_metrics_rec, l_old_metrics_rec, l_seeded_ok);
687:
692: p_metric_rec => l_metrics_rec,
693: x_return_status => l_return_status
694: );
695:
696: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
697: Validate_Metric_Child (
698: p_metric_id => l_metrics_rec.metric_id,
699: x_return_status => l_return_status
700: );
699: x_return_status => l_return_status
700: );
701: END IF;
702:
703: IF l_return_status = FND_API.g_ret_sts_error THEN
704: IF l_metrics_rec.metric_calculation_type <>
705: l_old_metrics_rec.metric_calculation_type
706: OR l_metrics_rec.metric_category <> l_old_metrics_rec.metric_category
707: OR l_metrics_rec.accrual_type <> l_old_metrics_rec.accrual_type
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;
723: END IF;
724: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
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;
723: END IF;
724: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
725: RAISE FND_API.g_exc_unexpected_error;
726: END IF;
720: RAISE FND_API.g_exc_error;
721: ELSE
722: l_return_status := FND_API.G_RET_STS_SUCCESS;
723: END IF;
724: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
725: RAISE FND_API.g_exc_unexpected_error;
726: END IF;
727:
728: -- Ams_Utility_Pvt.debug_message(l_full_name ||': validate');
721: ELSE
722: l_return_status := FND_API.G_RET_STS_SUCCESS;
723: END IF;
724: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
725: RAISE FND_API.g_exc_unexpected_error;
726: END IF;
727:
728: -- Ams_Utility_Pvt.debug_message(l_full_name ||': validate');
729:
733: p_validation_mode => JTF_PLSQL_API.g_update,
734: x_return_status => l_return_status
735: );
736:
737: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
738: RAISE FND_API.g_exc_unexpected_error;
739: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
740: RAISE FND_API.g_exc_error;
741: END IF;
734: x_return_status => l_return_status
735: );
736:
737: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
738: RAISE FND_API.g_exc_unexpected_error;
739: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
740: RAISE FND_API.g_exc_error;
741: END IF;
742: END IF;
735: );
736:
737: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
738: RAISE FND_API.g_exc_unexpected_error;
739: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
740: RAISE FND_API.g_exc_error;
741: END IF;
742: END IF;
743:
736:
737: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
738: RAISE FND_API.g_exc_unexpected_error;
739: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
740: RAISE FND_API.g_exc_error;
741: END IF;
742: END IF;
743:
744: -- If seeded then only update of enable flag is permitted.
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;
754:
755: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
756: Validate_Metric_Record(
759: x_return_status => l_return_status
760: );
761:
762:
763: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
764: RAISE FND_API.g_exc_unexpected_error;
765: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
766: RAISE FND_API.g_exc_error;
767: END IF;
760: );
761:
762:
763: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
764: RAISE FND_API.g_exc_unexpected_error;
765: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
766: RAISE FND_API.g_exc_error;
767: END IF;
768: END IF;
761:
762:
763: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
764: RAISE FND_API.g_exc_unexpected_error;
765: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
766: RAISE FND_API.g_exc_error;
767: END IF;
768: END IF;
769:
762:
763: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
764: RAISE FND_API.g_exc_unexpected_error;
765: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
766: RAISE FND_API.g_exc_error;
767: END IF;
768: END IF;
769:
770: -- Ams_Utility_Pvt.debug_message(l_full_name ||': update Metrics Base Table');
771:
772: --function metric
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;
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:
782: -- choang - 06-jan-2005 - bug 4107480
785: Validate_Metric_Program (p_func_name => l_metrics_rec.function_name,
786: x_func_type => l_func_type,
787: x_return_status => l_return_status);
788:
789: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
790: RAISE FND_API.G_EXC_ERROR;
791: END IF;
792: END IF;
793:
786: x_func_type => l_func_type,
787: x_return_status => l_return_status);
788:
789: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
790: RAISE FND_API.G_EXC_ERROR;
791: END IF;
792: END IF;
793:
794: -- Update AMS_METRICS_ALL_B
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:
836: -- Debug message.
837: Ams_Utility_Pvt.debug_message(l_full_name ||': updateMetrics TL Table');
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;
863:
864: --
864: --
865: -- End API Body
866: --
867:
868: IF FND_API.to_boolean(p_commit) THEN
869: COMMIT;
870: END IF;
871:
872: --
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: );
881:
882: --
883: -- Debug message.
885: Ams_Utility_Pvt.debug_message(l_full_name ||': end');
886:
887:
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,
887:
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
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: );
897: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
893: p_encoded => FND_API.g_false,
894: p_count => x_msg_count,
895: p_data => x_msg_data
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,
895: p_data => x_msg_data
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
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: );
905: WHEN OTHERS THEN
903: p_data => x_msg_data
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 (
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: );
916: END Update_Metric;
932: -- End of comments
933:
934: PROCEDURE Delete_Metric (
935: p_api_version IN NUMBER,
936: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
937: p_commit IN VARCHAR2 := FND_API.G_FALSE,
938:
939: x_return_status OUT NOCOPY VARCHAR2,
940: x_msg_count OUT NOCOPY NUMBER,
933:
934: PROCEDURE Delete_Metric (
935: p_api_version IN NUMBER,
936: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
937: p_commit IN VARCHAR2 := FND_API.G_FALSE,
938:
939: x_return_status OUT NOCOPY VARCHAR2,
940: x_msg_count OUT NOCOPY NUMBER,
941: x_msg_data OUT NOCOPY VARCHAR2,
982:
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: --
989:
990: --
991: -- Standard check for API version compatibility.
992: --
993: IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
994: p_api_version,
995: L_API_NAME,
996: G_PKG_NAME)
997: THEN
994: p_api_version,
995: L_API_NAME,
996: G_PKG_NAME)
997: THEN
998: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
999: END IF;
1000:
1001: --
1002: -- Check if record is seeded.
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;
1012:
1013: --
1014: -- Initialize API return status to success.
1012:
1013: --
1014: -- Initialize API return status to success.
1015: --
1016: x_return_status := FND_API.G_RET_STS_SUCCESS;
1017:
1018: --
1019: -- Begin API Body.
1020: --
1025: );
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;
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;
1037: END IF;
1038:
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;
1037: END IF;
1038:
1039: --huili added on 07/09/2001 for bug fix #1865864
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;
1037: END IF;
1038:
1039: --huili added on 07/09/2001 for bug fix #1865864
1040: l_child_met_id := NULL;
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
1054:
1055: --huili added on 08/14/2001 for checking for dependent metric
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:
1070: l_sum_met_id := NULL;
1071: OPEN c_sum_met_id (p_metric_id);
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
1084:
1085: -- Debug message.
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:
1102:
1103: DELETE FROM ams_metrics_all_tl
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:
1115: -- 02-SEP-2003: dmvincen - formula metrics support.
1116: delete from ams_metric_formulas
1120: --
1121: -- End API Body.
1122: --
1123:
1124: IF FND_API.To_Boolean (p_commit) THEN
1125: COMMIT WORK;
1126: END IF;
1127:
1128: --
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: );
1143:
1144: EXCEPTION
1145: WHEN FND_API.G_EXC_ERROR THEN
1141: p_encoded => FND_API.G_FALSE
1142: );
1143:
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,
1143:
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
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: );
1153: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1149: p_encoded => FND_API.g_false,
1150: p_count => x_msg_count,
1151: p_data => x_msg_data
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,
1151: p_data => x_msg_data
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
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: );
1161: WHEN OTHERS THEN
1159: p_data => x_msg_data
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 (
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: );
1172: END Delete_Metric;
1188: -- End of comments
1189:
1190: PROCEDURE Lock_Metric (
1191: p_api_version IN NUMBER,
1192: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1193:
1194: x_return_status OUT NOCOPY VARCHAR2,
1195: x_msg_count OUT NOCOPY NUMBER,
1196: x_msg_data OUT NOCOPY VARCHAR2,
1226:
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: --
1233:
1234: --
1235: -- Standard check for API version compatibility.
1236: --
1237: IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
1238: p_api_version,
1239: L_API_NAME,
1240: G_PKG_NAME)
1241: THEN
1238: p_api_version,
1239: L_API_NAME,
1240: G_PKG_NAME)
1241: THEN
1242: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1243: END IF;
1244:
1245: --
1246: -- Initialize API return status to success.
1244:
1245: --
1246: -- Initialize API return status to success.
1247: --
1248: x_return_status := FND_API.G_RET_STS_SUCCESS;
1249:
1250: --
1251: -- Begin API Body
1252: --
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;
1270:
1271: OPEN c_language;
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: );
1283:
1284: --
1285: -- Debug message.
1287: Ams_Utility_Pvt.debug_message(l_full_name ||': end');
1288:
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
1288:
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: );
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
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,
1294: p_count => x_msg_count,
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
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: );
1304: WHEN Ams_Utility_Pvt.RESOURCE_LOCKED THEN
1301: p_count => x_msg_count,
1302: p_data => x_msg_data
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;
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: );
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
1314: p_data => x_msg_data,
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 (
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: );
1327: END Lock_Metric;
1328:
1329: -- Start of comments
1343: -- End of comments
1344:
1345: PROCEDURE Validate_Metric (
1346: p_api_version IN NUMBER,
1347: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1348: p_validation_level IN NUMBER := FND_API.G_Valid_Level_Full,
1349:
1350: x_return_status OUT NOCOPY VARCHAR2,
1351: x_msg_count OUT NOCOPY NUMBER,
1344:
1345: PROCEDURE Validate_Metric (
1346: p_api_version IN NUMBER,
1347: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1348: p_validation_level IN NUMBER := FND_API.G_Valid_Level_Full,
1349:
1350: x_return_status OUT NOCOPY VARCHAR2,
1351: x_msg_count OUT NOCOPY NUMBER,
1352: x_msg_data OUT NOCOPY VARCHAR2,
1369:
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: --
1376:
1377: --
1378: -- Standard check for API version compatibility.
1379: --
1380: IF NOT FND_API.Compatible_API_Call (L_API_VERSION,
1381: p_api_version,
1382: L_API_NAME,
1383: G_PKG_NAME)
1384: THEN
1381: p_api_version,
1382: L_API_NAME,
1383: G_PKG_NAME)
1384: THEN
1385: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1386: END IF;
1387:
1388: --
1389: -- Initialize API return status to success.
1387:
1388: --
1389: -- Initialize API return status to success.
1390: --
1391: x_return_status := FND_API.G_RET_STS_SUCCESS;
1392:
1393: --
1394: -- Begin API Body.
1395: --
1406: );
1407:
1408:
1409: -- If any errors happen abort API.
1410: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1411: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1412: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1413: RAISE FND_API.G_EXC_ERROR;
1414: END IF;
1407:
1408:
1409: -- If any errors happen abort API.
1410: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1411: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1412: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1413: RAISE FND_API.G_EXC_ERROR;
1414: END IF;
1415: END IF;
1408:
1409: -- If any errors happen abort API.
1410: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1411: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1412: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1413: RAISE FND_API.G_EXC_ERROR;
1414: END IF;
1415: END IF;
1416:
1409: -- If any errors happen abort API.
1410: IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1411: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1412: ELSIF l_return_status = FND_API.G_RET_STS_ERROR THEN
1413: RAISE FND_API.G_EXC_ERROR;
1414: END IF;
1415: END IF;
1416:
1417: Ams_Utility_Pvt.debug_message(l_full_name||': check record');
1423: p_complete_rec => p_metric_rec,
1424: x_return_status => l_return_status
1425: );
1426:
1427: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1428: RAISE FND_API.g_exc_unexpected_error;
1429: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1430: RAISE FND_API.g_exc_error;
1431: END IF;
1424: x_return_status => l_return_status
1425: );
1426:
1427: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1428: RAISE FND_API.g_exc_unexpected_error;
1429: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1430: RAISE FND_API.g_exc_error;
1431: END IF;
1432: END IF;
1425: );
1426:
1427: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1428: RAISE FND_API.g_exc_unexpected_error;
1429: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1430: RAISE FND_API.g_exc_error;
1431: END IF;
1432: END IF;
1433:
1426:
1427: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1428: RAISE FND_API.g_exc_unexpected_error;
1429: ELSIF l_return_status = FND_API.g_ret_sts_error THEN
1430: RAISE FND_API.g_exc_error;
1431: END IF;
1432: END IF;
1433:
1434: --
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: );
1447:
1448:
1449:
1451:
1452:
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,
1452:
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
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: );
1462: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1458: p_encoded => FND_API.g_false,
1459: p_count => x_msg_count,
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,
1459: p_count => x_msg_count,
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
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: );
1469: WHEN OTHERS THEN
1466: p_count => x_msg_count,
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 (
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: );
1479: END Validate_Metric;
1503: )
1504: IS
1505: BEGIN
1506: -- Initialize return status to success.
1507: x_return_status := FND_API.G_RET_STS_SUCCESS;
1508:
1509: -- VIEW_APPLICATION_ID
1510:
1511: IF p_metric_rec.application_id IS NULL
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:
1522: -- If any error happens abort API.
1523: RETURN;
1524: END IF;
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:
1539: -- If any error happens abort API.
1540: RETURN;
1541: END IF;
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:
1556: -- If any error happens abort API.
1557: RETURN;
1558: END IF;
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:
1574: -- If any error happens abort API.
1575: RETURN;
1576: END IF;
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:
1591: -- If any error happens abort API.
1592: RETURN;
1593: END IF;
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:
1608: -- If any error happens abort API.
1609: RETURN;
1610: END IF;
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:
1625: -- If any error happens abort API.
1626: RETURN;
1627: END IF;
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:
1642: -- If any error happens abort API.
1643: RETURN;
1644: END IF;
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:
1663: -- If any error happens abort API.
1664: RETURN;
1665: END IF;
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:
1680: -- If any error happens abort API.
1681: RETURN;
1682: END IF;
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:
1700: -- If any error happens abort API.
1701: RETURN;
1702: END IF;
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:
1717: -- If any error happens abort API.
1718: RETURN;
1719: END IF;
1766: l_dummy NUMBER;
1767:
1768: BEGIN
1769:
1770: x_return_status := FND_API.g_ret_sts_success;
1771:
1772: -- For create_metric, when metric_id is passed in, we need to
1773: -- check if this metric_id is unique.
1774: IF p_validation_mode = JTF_PLSQL_API.g_create
1778:
1779: IF Ams_Utility_Pvt.Check_Uniqueness(
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');
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;
1792: END IF;
1793:
1812:
1813: IF AMS_Utility_PVT.Check_Uniqueness(
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');
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;
1826: */
1827: -- For Updates, must also check that uniqueness is not checked against the same record.
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;
1840: RETURN;
1841: ELSE
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;
1853: RETURN;
1854: END IF;
1932: l_count number;
1933:
1934: BEGIN
1935: -- Initialize return status to success.
1936: x_return_status := FND_API.G_RET_STS_SUCCESS;
1937:
1938: --
1939:
1940: --
1943:
1944: -- METRIC_PARENT_ID
1945: -- Do not validate FK if NULL
1946:
1947: IF (l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM
1948: AND l_metrics_rec.metric_parent_id IS NOT NULL) THEN
1949:
1950: OPEN c_check_metric_id(l_metrics_rec.metric_parent_id,G_ROLLUP);
1951: IF c_check_metric_id%NOTFOUND
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;
1961: RETURN;
1962: END IF;
1963: CLOSE c_check_metric_id;
1978: ,p_pk_name => l_pk_name
1979: ,p_pk_value => l_pk_value
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');
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;*/
1992:
1993: /*added by sunkumar for alternate to the code commented above 20-apr-2004*/
1994:
1995:
1996:
1997:
1998: -- SUMMARY_METRIC_ID
1999: IF l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM AND
2000: l_metrics_rec.summary_metric_id IS NOT NULL THEN
2001:
2002:
2003: OPEN c_check_metric_id(l_metrics_rec.metric_parent_id,G_SUMMARY);
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;
2014: RETURN;
2015: END IF;
2016: CLOSE c_check_metric_id;
2031: ,p_pk_name => l_pk_name
2032: ,p_pk_value => l_pk_value
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');
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;
2045: END IF; -- Check_FK_Exists*/
2046:
2047:
2047:
2048:
2049:
2050: -- UOM_CLASS
2051: IF l_metrics_rec.uom_type <> FND_API.G_MISS_CHAR THEN
2052:
2053: OPEN c_check_uom(l_metrics_rec.uom_type);
2054: IF c_check_uom%NOTFOUND
2055: 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;
2064: RETURN;
2065: END IF;
2066: CLOSE c_check_uom;
2079: ,p_pk_name => l_pk_name
2080: ,p_pk_value => l_pk_value
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');
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;
2093: END IF; -- Check_FK_Exists*/
2094:
2095:
2094:
2095:
2096:
2097: -- Metric_category
2098: IF l_metrics_rec.metric_category <> FND_API.G_MISS_NUM THEN
2099:
2100:
2101: OPEN c_check_category(l_metrics_rec.metric_category);
2102: IF c_check_category%NOTFOUND
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;
2112: RETURN;
2113: END IF;
2114: CLOSE c_check_category;
2128: ,p_pk_name => l_pk_name
2129: ,p_pk_value => l_pk_value
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;
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;
2141: END IF;*/
2142:
2143:
2151: -- Begin Validate Flags
2152: --
2153:
2154: -- SENSITIVE_DATA_FLAG
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)
2153:
2154: -- SENSITIVE_DATA_FLAG
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');
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;
2167: END IF; -- Is_Y_Or_N
2168: END IF;
2169:
2167: END IF; -- Is_Y_Or_N
2168: END IF;
2169:
2170: -- ENABLED_FLAG
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)
2169:
2170: -- ENABLED_FLAG
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');
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;
2183: END IF; -- Is_Y_Or_N
2184: END IF;
2185:
2191: -- Begin Validate LOOKUPS
2192: --
2193:
2194: -- ACCRUAL_TYPE
2195: IF l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR THEN
2196: l_lookup_type := 'AMS_METRIC_ACCRUAL_TYPE';
2197: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2198: p_lookup_table_name => 'AMS_LOOKUPS'
2199: ,p_lookup_type => l_lookup_type
2197: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2198: p_lookup_table_name => 'AMS_LOOKUPS'
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;
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;
2210: END IF;
2211: END IF;
2212:
2211: END IF;
2212:
2213: -- METRIC_CALCULATION_TYPE
2214: -- DMVINCEN 05/15/2001: Allow SUMMARY for 11.5.4.11 (change in 11.5.5).
2215: IF l_metrics_rec.metric_calculation_type <> FND_API.G_MISS_CHAR THEN
2216: l_lookup_type := 'AMS_METRIC_CALCULATION_TYPE';
2217: IF -- l_metrics_rec.metric_calculation_type <> G_SUMMARY AND
2218: Ams_Utility_Pvt.Check_Lookup_Exists (
2219: p_lookup_table_name => 'AMS_LOOKUPS'
2218: Ams_Utility_Pvt.Check_Lookup_Exists (
2219: p_lookup_table_name => 'AMS_LOOKUPS'
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;
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;
2231: END IF;
2232: END IF;
2233:
2232: END IF;
2233:
2234:
2235: -- VALUE_TYPE
2236: IF l_metrics_rec.DISPLAY_TYPE <> FND_API.G_MISS_CHAR THEN
2237: l_lookup_type := 'AMS_METRIC_DISPLAY_TYPE';
2238: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2239: p_lookup_table_name => 'AMS_LOOKUPS'
2240: ,p_lookup_type => l_lookup_type
2238: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2239: p_lookup_table_name => 'AMS_LOOKUPS'
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);
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;
2252: END IF;
2253: END IF;
2254:
2252: END IF;
2253: END IF;
2254:
2255: -- VALUE_TYPE
2256: IF l_metrics_rec.value_type <> FND_API.G_MISS_CHAR THEN
2257: l_lookup_type := 'AMS_METRIC_VALUE_TYPE';
2258: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2259: p_lookup_table_name => 'AMS_LOOKUPS'
2260: ,p_lookup_type => l_lookup_type
2258: IF Ams_Utility_Pvt.Check_Lookup_Exists (
2259: p_lookup_table_name => 'AMS_LOOKUPS'
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);
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;
2272: END IF;
2273: END IF;
2274:
2279: -- 17-Apr-2000 tdonohoe@us modified, added FUND and FCST qualifiers.
2280: -- 11-Mar-2002 DMVINCEN Added components.
2281: -- 11-Mar-2003 BUG2845365: Removed dialgue components.
2282: -- ARC_METRIC_USED_FOR_OBJECT
2283: IF l_metrics_rec.arc_metric_used_for_object <> FND_API.G_MISS_CHAR THEN
2284: l_count := 0;
2285: IF l_metrics_rec.metric_calculation_type in (G_FUNCTION, G_MANUAL) THEN
2286: OPEN c_check_object_type(l_metrics_rec.arc_metric_used_for_object);
2287: fetch c_check_object_type into l_count;
2308: -- IF AMS_Utility_PVT.Check_Lookup_Exists (
2309: -- p_lookup_table_name => 'AMS_LOOKUPS'
2310: -- ,p_lookup_type => l_lookup_type
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');
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;
2322: END IF;
2323: END IF;
2324:
2334:
2335: EXCEPTION
2336: WHEN OTHERS THEN
2337:
2338: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2339: RETURN;
2340: -- RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2341: END Check_Metric_Items;
2342:
2336: WHEN OTHERS THEN
2337:
2338: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2339: RETURN;
2340: -- RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2341: END Check_Metric_Items;
2342:
2343: /**** OBSOLETE: DMVINCEN 03/04/2003
2344: --
2364: p_parent_metric_used_by IN VARCHAR2,
2365: x_return_status OUT NOCOPY VARCHAR2 )
2366: IS
2367: BEGIN
2368: x_return_status := FND_API.g_ret_sts_success;
2369:
2370: -- If Child is Attached to Program then Parent must be attached to Program
2371: IF p_metric_used_by = 'RCAM' AND
2372: p_parent_metric_used_by <> 'RCAM'
2370: -- If Child is Attached to Program then Parent must be attached to Program
2371: IF p_metric_used_by = 'RCAM' AND
2372: p_parent_metric_used_by <> 'RCAM'
2373: THEN
2374: x_return_status := FND_API.G_RET_STS_ERROR;
2375: RETURN;
2376: END IF;
2377:
2378: -- If Child is Attached to Campaign then Parent must be attached to Program
2378: -- If Child is Attached to Campaign then Parent must be attached to Program
2379: IF p_metric_used_by = 'CAMP' AND
2380: p_parent_metric_used_by <> 'RCAM'
2381: THEN
2382: x_return_status := FND_API.G_RET_STS_ERROR;
2383: RETURN;
2384: END IF;
2385:
2386: -- If Child is Attached to Campaign Schedule then Parent must be attached to Campaign
2386: -- If Child is Attached to Campaign Schedule then Parent must be attached to Campaign
2387: IF p_metric_used_by = 'CSCH' AND
2388: p_parent_metric_used_by <> 'CAMP'
2389: THEN
2390: x_return_status := FND_API.G_RET_STS_ERROR;
2391: RETURN;
2392: END IF;
2393:
2394: -- Deliverable Child can not be rolled up into any other entity
2393:
2394: -- Deliverable Child can not be rolled up into any other entity
2395: IF p_metric_used_by = 'DELV'
2396: THEN
2397: x_return_status := FND_API.G_RET_STS_ERROR;
2398: RETURN;
2399: END IF;
2400:
2401: --06/10/2001 huili changed logic
2402: -- If Child is Attached to Event Header then Parent must be attached to Program
2403: IF p_metric_used_by = 'EVEH' AND
2404: p_parent_metric_used_by <> 'RCAM'
2405: THEN
2406: x_return_status := FND_API.G_RET_STS_ERROR;
2407: RETURN;
2408: END IF;
2409:
2410: -- If Child is Attached to Event Offer then Parent must be attached to
2411: -- Event Header or Event Offer
2412: IF p_metric_used_by = 'EVEO' AND
2413: p_parent_metric_used_by <> 'EVEH'
2414: THEN
2415: x_return_status := FND_API.G_RET_STS_ERROR;
2416: RETURN;
2417: END IF;
2418:
2419: -- If Child is Attached to One Off Event then Parent must be attached to Program
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;
2427: RETURN;
2428: END IF;
2429:
2430: END Check_Valid_Parent;
2527: l_additional_where_clause VARCHAR2(4000); -- Used by Check_FK_Exists.
2528:
2529: BEGIN
2530:
2531: x_return_status := FND_API.g_ret_sts_success;
2532:
2533: IF --l_metrics_rec.metric_sub_category <> FND_API.G_MISS_NUM AND
2534: p_complete_rec.metric_sub_category IS NOT NULL THEN
2535: -- IF l_metrics_rec.metric_category = FND_API.G_MISS_NUM THEN
2529: BEGIN
2530:
2531: x_return_status := FND_API.g_ret_sts_success;
2532:
2533: IF --l_metrics_rec.metric_sub_category <> FND_API.G_MISS_NUM AND
2534: p_complete_rec.metric_sub_category IS NOT NULL THEN
2535: -- IF l_metrics_rec.metric_category = FND_API.G_MISS_NUM THEN
2536: -- l_metrics_rec.metric_category := p_complete_rec.metric_category ;
2537: -- END IF;
2531: x_return_status := FND_API.g_ret_sts_success;
2532:
2533: IF --l_metrics_rec.metric_sub_category <> FND_API.G_MISS_NUM AND
2534: p_complete_rec.metric_sub_category IS NOT NULL THEN
2535: -- IF l_metrics_rec.metric_category = FND_API.G_MISS_NUM THEN
2536: -- l_metrics_rec.metric_category := p_complete_rec.metric_category ;
2537: -- END IF;
2538:
2539: /*sunkumar 20 april 2004*/
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;
2551: RETURN;
2552: END IF;
2553: CLOSE c_check_subcategory;
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;
2572: RETURN;
2573: END IF;
2574: CLOSE c_check_uom;
2593: ,p_pk_name => l_pk_name
2594: ,p_pk_value => l_pk_value
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;
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;
2606: END IF; */
2607:
2608:
2606: END IF; */
2607:
2608:
2609: -- DEFAULT_UOM_CODE
2610: -- IF l_metrics_rec.default_uom_code <> FND_API.G_MISS_CHAR THEN
2611:
2612:
2613:
2614: -- IF l_metrics_rec.uom_type = FND_API.G_MISS_CHAR THEN
2610: -- IF l_metrics_rec.default_uom_code <> FND_API.G_MISS_CHAR THEN
2611:
2612:
2613:
2614: -- IF l_metrics_rec.uom_type = FND_API.G_MISS_CHAR THEN
2615: -- l_metrics_rec.uom_type := p_complete_rec.uom_type ;
2616: -- END IF;
2617: /* l_table_name := 'MTL_UNITS_OF_MEASURE';
2618: l_pk_name := 'UOM_CODE';
2625: ,p_pk_name => l_pk_name
2626: ,p_pk_value => l_pk_value
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');
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;
2639: END IF; -- Check_FK_Exists*/
2640:
2641:
2640:
2641:
2642:
2643: /*****
2644: IF (l_metrics_rec.metric_calculation_type <> FND_API.G_MISS_CHAR
2645: OR l_metrics_rec.function_name <> FND_API.G_MISS_CHAR
2646: OR l_metrics_rec.compute_using_function <> FND_API.G_MISS_CHAR
2647: OR l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR)
2648: THEN
2641:
2642:
2643: /*****
2644: IF (l_metrics_rec.metric_calculation_type <> FND_API.G_MISS_CHAR
2645: OR l_metrics_rec.function_name <> FND_API.G_MISS_CHAR
2646: OR l_metrics_rec.compute_using_function <> FND_API.G_MISS_CHAR
2647: OR l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR)
2648: THEN
2649: IF l_metrics_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
2642:
2643: /*****
2644: IF (l_metrics_rec.metric_calculation_type <> FND_API.G_MISS_CHAR
2645: OR l_metrics_rec.function_name <> FND_API.G_MISS_CHAR
2646: OR l_metrics_rec.compute_using_function <> FND_API.G_MISS_CHAR
2647: OR l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR)
2648: THEN
2649: IF l_metrics_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
2650: l_metrics_rec.metric_calculation_type :=
2643: /*****
2644: IF (l_metrics_rec.metric_calculation_type <> FND_API.G_MISS_CHAR
2645: OR l_metrics_rec.function_name <> FND_API.G_MISS_CHAR
2646: OR l_metrics_rec.compute_using_function <> FND_API.G_MISS_CHAR
2647: OR l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR)
2648: THEN
2649: IF l_metrics_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
2650: l_metrics_rec.metric_calculation_type :=
2651: p_complete_rec.metric_calculation_type ;
2645: OR l_metrics_rec.function_name <> FND_API.G_MISS_CHAR
2646: OR l_metrics_rec.compute_using_function <> FND_API.G_MISS_CHAR
2647: OR l_metrics_rec.accrual_type <> FND_API.G_MISS_CHAR)
2648: THEN
2649: IF l_metrics_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
2650: l_metrics_rec.metric_calculation_type :=
2651: p_complete_rec.metric_calculation_type ;
2652: END IF;
2653:
2650: l_metrics_rec.metric_calculation_type :=
2651: p_complete_rec.metric_calculation_type ;
2652: END IF;
2653:
2654: IF l_metrics_rec.function_name = FND_API.G_MISS_CHAR THEN
2655: l_metrics_rec.function_name := p_complete_rec.function_name ;
2656: END IF;
2657:
2658: IF l_metrics_rec.compute_using_function = FND_API.G_MISS_CHAR THEN
2654: IF l_metrics_rec.function_name = FND_API.G_MISS_CHAR THEN
2655: l_metrics_rec.function_name := p_complete_rec.function_name ;
2656: END IF;
2657:
2658: IF l_metrics_rec.compute_using_function = FND_API.G_MISS_CHAR THEN
2659: l_metrics_rec.compute_using_function :=
2660: p_complete_rec.compute_using_function ;
2661: END IF;
2662:
2659: l_metrics_rec.compute_using_function :=
2660: p_complete_rec.compute_using_function ;
2661: END IF;
2662:
2663: IF l_metrics_rec.accrual_type = FND_API.G_MISS_CHAR THEN
2664: l_metrics_rec.accrual_type := p_complete_rec.accrual_type ;
2665: END IF;
2666: *****/
2667: -- Has to change when routine for Validate Function is done
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
2677: IF p_complete_rec.metric_calculation_type = G_FUNCTION THEN
2678: IF p_complete_rec.function_name IS NULL THEN
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
2687: ELSE -- metric_calculation_type <> G_FUNCTION
2688: IF p_complete_rec.function_name IS NOT NULL THEN
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
2697: END IF; -- metric_calculation_type = 'FUNCTION'
2698: END IF; -- compute_using_function is not null
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
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
2718: OPEN c_check_multiplier(
2719: to_number(p_complete_rec.compute_using_function));
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;
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
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
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');
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
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');
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
2768:
2769: END IF; -- accrual_type = 'FIXED'
2772: --
2773: -- Begin Other Business Rule Validations
2774: --
2775: /*****
2776: IF (l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM OR
2777: l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM ) AND
2778: (l_metrics_rec.metric_parent_id IS NOT NULL OR
2779: l_metrics_rec.summary_metric_id IS NOT NULL )
2780: THEN
2773: -- Begin Other Business Rule Validations
2774: --
2775: /*****
2776: IF (l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM OR
2777: l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM ) AND
2778: (l_metrics_rec.metric_parent_id IS NOT NULL OR
2779: l_metrics_rec.summary_metric_id IS NOT NULL )
2780: THEN
2781: IF l_metrics_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
2777: l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM ) AND
2778: (l_metrics_rec.metric_parent_id IS NOT NULL OR
2779: l_metrics_rec.summary_metric_id IS NOT NULL )
2780: THEN
2781: IF l_metrics_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
2782: l_metrics_rec.metric_parent_id := p_complete_rec.metric_parent_id ;
2783: END IF;
2784:
2785: IF l_metrics_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
2781: IF l_metrics_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
2782: l_metrics_rec.metric_parent_id := p_complete_rec.metric_parent_id ;
2783: END IF;
2784:
2785: IF l_metrics_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
2786: l_metrics_rec.summary_metric_id := p_complete_rec.summary_metric_id ;
2787: END IF;
2788: /* **** DMVINCEN 04/27/2001 - Allow both same level and parent level.
2789: IF (l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM AND
2785: IF l_metrics_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
2786: l_metrics_rec.summary_metric_id := p_complete_rec.summary_metric_id ;
2787: END IF;
2788: /* **** DMVINCEN 04/27/2001 - Allow both same level and parent level.
2789: IF (l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM AND
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
2786: l_metrics_rec.summary_metric_id := p_complete_rec.summary_metric_id ;
2787: END IF;
2788: /* **** DMVINCEN 04/27/2001 - Allow both same level and parent level.
2789: IF (l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM AND
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
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;
2801: ***** * /
2802: END IF;
2803: ****/
2804: -- DMVINCEN 04/27/2001 - Summary metrics may not rollup.
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;
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;
2816:
2817: -- Validate ROLLUP_METRIC_ID
2815: END IF;
2816:
2817: -- Validate ROLLUP_METRIC_ID
2818:
2819: IF --l_metrics_rec.metric_parent_id <> FND_API.G_MISS_NUM AND
2820: p_complete_rec.metric_parent_id IS NOT NULL THEN
2821:
2822: -- Check if this Parent Metric is Summary Metric of any other Metric
2823: OPEN c_summary_count(p_complete_rec.metric_id);
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;
2835: END IF;
2836:
2837: OPEN c_rollup_metric(p_complete_rec.metric_parent_id);
2855: -- p_parent_metric_used_by => l_rollup_metric_rec.arc_metric_used_for_object,
2856: -- x_return_status => x_return_status );
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;
2865: -- RETURN;
2866: -- END IF;
2867:
2868: -- METRIC_CATEGORY
2869: -- IF l_metrics_rec.metric_category = FND_API.G_MISS_NUM THEN
2870: -- l_metrics_rec.metric_category := p_complete_rec.metric_category ;
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
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;
2882: END IF;
2883:
2884: -- VALUE_TYPE
2883:
2884: -- VALUE_TYPE
2885: -- The parent rollup metric return type must be the same as the child's.
2886: -- i.e. Numeric Metric can not be rolled up into Ratio Metric
2887: -- IF l_metrics_rec.value_type = FND_API.G_MISS_CHAR THEN
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
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;
2899: END IF;
2900:
2901: -- UOM_TYPE
2899: END IF;
2900:
2901: -- UOM_TYPE
2902: -- The parent rollup metric unit of measure must be the same as the child's.
2903: -- IF l_metrics_rec.uom_type = FND_API.G_MISS_CHAR THEN
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
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;
2915: END IF;
2916:
2917:
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;
2934:
2935: END IF;
2936:
2934:
2935: END IF;
2936:
2937: -- Validate SUMMARY_METRIC_ID
2938: IF --l_metrics_rec.summary_metric_id <> FND_API.G_MISS_NUM AND
2939: p_complete_rec.summary_metric_id IS NOT NULL THEN
2940: -- Check if this Parent Metric is Rollup Metric of any other Metric
2941: /*****
2942: OPEN c_rollup_count(p_complete_rec.metric_id);
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;
2954: END IF;
2955: ****/
2956: OPEN c_summary_metric(p_complete_rec.summary_metric_id);
2962: --
2963: CLOSE c_summary_metric;
2964:
2965: -- METRIC_CATEGORY
2966: -- IF l_metrics_rec.metric_category = FND_API.G_MISS_NUM THEN
2967: -- l_metrics_rec.metric_category := p_complete_rec.metric_category ;
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
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;
2979: END IF;
2980:
2981: -- UOM_TYPE
2978: RETURN;
2979: END IF;
2980:
2981: -- UOM_TYPE
2982: -- IF l_metrics_rec.uom_type = FND_API.G_MISS_CHAR THEN
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
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;
2994: END IF;
2995:
2996: -- VALUE_TYPE
2993: RETURN;
2994: END IF;
2995:
2996: -- VALUE_TYPE
2997: -- IF l_metrics_rec.value_type = FND_API.G_MISS_CHAR THEN
2998: -- l_metrics_rec.value_type := p_complete_rec.value_type ;
2999: -- END IF;
3000: -- The return value type of the parent metric must be the same
3001: -- as that of the child's.
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;
3010: END IF;
3011:
3012: -- ARC_METRIC_USED_FOR_OBJECT
3009: RETURN;
3010: END IF;
3011:
3012: -- ARC_METRIC_USED_FOR_OBJECT
3013: --IF l_metrics_rec.arc_metric_used_for_object = FND_API.G_MISS_CHAR THEN
3014: -- l_metrics_rec.arc_metric_used_for_object :=
3015: -- p_complete_rec.arc_metric_used_for_object ;
3016: --END IF;
3017: -- The return value type of the parent metric must be the same as that
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;
3033: -- END IF;
3034: END IF;
3035:
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;
3049:
3050: -- 04-OCT-2001 DMVINCEN New object type for summary and rollup.
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;
3061: END IF;
3062:
3063: -- 04-OCT-2001 DMVINCEN New object type for summary and rollup.
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;
3074: END IF;
3075:
3076: EXCEPTION
3074: END IF;
3075:
3076: EXCEPTION
3077: WHEN OTHERS THEN
3078: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3079: RETURN ;
3080:
3081: END Validate_Metric_record;
3082:
3107: p_metric_rec => p_metric_rec,
3108: x_return_status => x_return_status
3109: );
3110:
3111: IF x_return_status <> FND_API.g_ret_sts_success THEN
3112: RETURN;
3113: END IF;
3114:
3115: Check_Metric_Uk_Items(
3117: p_validation_mode => p_validation_mode,
3118: x_return_status => x_return_status
3119: );
3120:
3121: IF x_return_status <> FND_API.g_ret_sts_success THEN
3122: RETURN;
3123: END IF;
3124:
3125: Check_Metric_Items(
3126: p_metric_rec => p_metric_rec,
3127: x_return_status => x_return_status
3128: );
3129:
3130: IF x_return_status <> FND_API.g_ret_sts_success THEN
3131: RETURN;
3132: END IF;
3133:
3134:
3167:
3168:
3169: BEGIN
3170: -- Initialize return status to success.
3171: x_return_status := FND_API.G_RET_STS_SUCCESS;
3172:
3173: OPEN c_check_metric_id(l_metric_id);
3174: IF c_check_metric_id%NOTFOUND
3175: THEN
3172:
3173: OPEN c_check_metric_id(l_metric_id);
3174: IF c_check_metric_id%NOTFOUND
3175: THEN
3176: x_return_status := FND_API.G_RET_STS_ERROR;
3177: RETURN;
3178: END IF;
3179: CLOSE c_check_metric_id;
3180:
3185: p_table_name => 'AMS_ACT_METRICS_ALL',
3186: p_pk_name => 'METRIC_ID',
3187: p_pk_value => l_metric_id,
3188: p_pk_data_type => Ams_Utility_Pvt.G_NUMBER
3189: ) = FND_API.G_TRUE
3190: THEN
3191: x_return_status := FND_API.G_RET_STS_ERROR;
3192: RETURN;
3193: END IF;
3187: p_pk_value => l_metric_id,
3188: p_pk_data_type => Ams_Utility_Pvt.G_NUMBER
3189: ) = FND_API.G_TRUE
3190: THEN
3191: x_return_status := FND_API.G_RET_STS_ERROR;
3192: RETURN;
3193: END IF;
3194: */
3195: -- Do not validate FK if NULL
3193: END IF;
3194: */
3195: -- Do not validate FK if NULL
3196: -- IF l_metrics_rec.metric_parent_id IS NULL THEN
3197: -- l_metrics_validate_fk_rec.metric_parent_id := FND_API.G_FALSE;
3198: -- END IF;
3199: -- IF l_metrics_validate_fk_rec.metric_parent_id = FND_API.G_TRUE THEN
3200: -- AMS_METRICS_VL
3201: -- Start of the changes made by PTENDULK on 08/19/1999
3195: -- Do not validate FK if NULL
3196: -- IF l_metrics_rec.metric_parent_id IS NULL THEN
3197: -- l_metrics_validate_fk_rec.metric_parent_id := FND_API.G_FALSE;
3198: -- END IF;
3199: -- IF l_metrics_validate_fk_rec.metric_parent_id = FND_API.G_TRUE THEN
3200: -- AMS_METRICS_VL
3201: -- Start of the changes made by PTENDULK on 08/19/1999
3202: -- The check is modified to check whether this metric id is parent metric
3203: -- id of any other id
3207: -- IF AMS_Utility_PVT.Check_FK_Exists (
3208: -- p_table_name => 'AMS_METRICS_VL',
3209: -- p_pk_name => 'METRIC_ID',
3210: -- p_pk_value => l_metrics_rec.metric_parent_id
3211: -- ) = FND_API.G_TRUE
3212: -- THEN
3213: -- Modified Code
3214:
3215: --
3222: -- p_table_name => 'AMS_METRICS_VL',
3223: -- p_pk_name => 'METRIC_PARENT_ID',
3224: -- p_pk_value => l_metric_id,
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
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;
3237: -- end of change 07/17/2000 khung
3238:
3236: -- END IF;
3237: -- end of change 07/17/2000 khung
3238:
3239: -- IF l_metrics_rec.summary_metric_id IS NULL THEN
3240: -- l_metrics_validate_fk_rec.summary_metric_id := FND_API.G_FALSE;
3241: -- END IF;
3242: -- IF l_metrics_validate_fk_rec.summary_metric_id = FND_API.G_TRUE THEN
3243: -- AMS_METRICS_VL
3244: -- Start of the changes made by PTENDULK on 08/19/1999
3238:
3239: -- IF l_metrics_rec.summary_metric_id IS NULL THEN
3240: -- l_metrics_validate_fk_rec.summary_metric_id := FND_API.G_FALSE;
3241: -- END IF;
3242: -- IF l_metrics_validate_fk_rec.summary_metric_id = FND_API.G_TRUE THEN
3243: -- AMS_METRICS_VL
3244: -- Start of the changes made by PTENDULK on 08/19/1999
3245: -- The check is modified to check whether this metric id is Summary metric
3246: -- id of any other metric id
3248: -- IF AMS_Utility_PVT.Check_FK_Exists (
3249: -- p_table_name => 'AMS_METRICS_VL',
3250: -- p_pk_name => 'METRIC_ID',
3251: -- p_pk_value => l_metrics_rec.summary_metric_id
3252: -- ) = FND_API.G_TRUE
3253:
3254: -- Modified Code
3255: --
3256: -- Check that the metric is not used by another metric as
3262: -- p_table_name => 'AMS_METRICS_VL',
3263: -- p_pk_name => 'SUMMARY_METRIC_ID',
3264: -- p_pk_value => l_metric_id,
3265: -- p_pk_data_type => AMS_Utility_PVT.G_NUMBER
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;
3275: -- x_return_status := FND_API.G_RET_STS_ERROR;
3276: -- RETURN;
3277: -- END IF;
3278: -- end of change 07/17/2000 khung
3279: EXCEPTION
3277: -- END IF;
3278: -- end of change 07/17/2000 khung
3279: EXCEPTION
3280: WHEN OTHERS THEN
3281: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3282: RETURN ;
3283: END Validate_Metric_Child;
3284:
3285: --
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;
3359:
3360: IF p_metric_rec.application_id = FND_API.G_MISS_NUM THEN
3356: RAISE FND_API.g_exc_error;
3357: END IF;
3358: CLOSE c_metric;
3359:
3360: IF p_metric_rec.application_id = FND_API.G_MISS_NUM THEN
3361: x_complete_rec.application_id := x_old_metric_rec.application_id;
3362: END IF;
3363:
3364: IF p_metric_rec.arc_metric_used_for_object = FND_API.G_MISS_CHAR THEN
3360: IF p_metric_rec.application_id = FND_API.G_MISS_NUM THEN
3361: x_complete_rec.application_id := x_old_metric_rec.application_id;
3362: END IF;
3363:
3364: IF p_metric_rec.arc_metric_used_for_object = FND_API.G_MISS_CHAR THEN
3365: x_complete_rec.arc_metric_used_for_object := x_old_metric_rec.arc_metric_used_for_object;
3366: END IF;
3367:
3368: IF p_metric_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
3364: IF p_metric_rec.arc_metric_used_for_object = FND_API.G_MISS_CHAR THEN
3365: x_complete_rec.arc_metric_used_for_object := x_old_metric_rec.arc_metric_used_for_object;
3366: END IF;
3367:
3368: IF p_metric_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
3369: x_complete_rec.metric_calculation_type := x_old_metric_rec.metric_calculation_type ;
3370: END IF;
3371:
3372: IF p_metric_rec.metric_category = FND_API.G_MISS_NUM THEN
3368: IF p_metric_rec.metric_calculation_type = FND_API.G_MISS_CHAR THEN
3369: x_complete_rec.metric_calculation_type := x_old_metric_rec.metric_calculation_type ;
3370: END IF;
3371:
3372: IF p_metric_rec.metric_category = FND_API.G_MISS_NUM THEN
3373: x_complete_rec.metric_category := x_old_metric_rec.metric_category ;
3374: END IF;
3375:
3376: IF p_metric_rec.accrual_type = FND_API.G_MISS_CHAR THEN
3372: IF p_metric_rec.metric_category = FND_API.G_MISS_NUM THEN
3373: x_complete_rec.metric_category := x_old_metric_rec.metric_category ;
3374: END IF;
3375:
3376: IF p_metric_rec.accrual_type = FND_API.G_MISS_CHAR THEN
3377: x_complete_rec.accrual_type := x_old_metric_rec.accrual_type ;
3378: END IF;
3379:
3380: IF p_metric_rec.value_type = FND_API.G_MISS_CHAR THEN
3376: IF p_metric_rec.accrual_type = FND_API.G_MISS_CHAR THEN
3377: x_complete_rec.accrual_type := x_old_metric_rec.accrual_type ;
3378: END IF;
3379:
3380: IF p_metric_rec.value_type = FND_API.G_MISS_CHAR THEN
3381: x_complete_rec.value_type := x_old_metric_rec.value_type ;
3382: END IF;
3383:
3384: IF p_metric_rec.sensitive_data_flag = FND_API.G_MISS_CHAR THEN
3380: IF p_metric_rec.value_type = FND_API.G_MISS_CHAR THEN
3381: x_complete_rec.value_type := x_old_metric_rec.value_type ;
3382: END IF;
3383:
3384: IF p_metric_rec.sensitive_data_flag = FND_API.G_MISS_CHAR THEN
3385: x_complete_rec.sensitive_data_flag := x_old_metric_rec.sensitive_data_flag;
3386: END IF;
3387:
3388: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3384: IF p_metric_rec.sensitive_data_flag = FND_API.G_MISS_CHAR THEN
3385: x_complete_rec.sensitive_data_flag := x_old_metric_rec.sensitive_data_flag;
3386: END IF;
3387:
3388: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3389: x_complete_rec.enabled_flag := x_old_metric_rec.enabled_flag ;
3390: END IF;
3391:
3392: IF p_metric_rec.metric_sub_category = FND_API.G_MISS_NUM THEN
3388: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3389: x_complete_rec.enabled_flag := x_old_metric_rec.enabled_flag ;
3390: END IF;
3391:
3392: IF p_metric_rec.metric_sub_category = FND_API.G_MISS_NUM THEN
3393: x_complete_rec.metric_sub_category := x_old_metric_rec.metric_sub_category ;
3394: END IF;
3395:
3396: IF p_metric_rec.function_name = FND_API.G_MISS_CHAR THEN
3392: IF p_metric_rec.metric_sub_category = FND_API.G_MISS_NUM THEN
3393: x_complete_rec.metric_sub_category := x_old_metric_rec.metric_sub_category ;
3394: END IF;
3395:
3396: IF p_metric_rec.function_name = FND_API.G_MISS_CHAR THEN
3397: x_complete_rec.function_name := x_old_metric_rec.function_name ;
3398: END IF;
3399:
3400: IF p_metric_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
3396: IF p_metric_rec.function_name = FND_API.G_MISS_CHAR THEN
3397: x_complete_rec.function_name := x_old_metric_rec.function_name ;
3398: END IF;
3399:
3400: IF p_metric_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
3401: x_complete_rec.metric_parent_id := x_old_metric_rec.metric_parent_id ;
3402: END IF;
3403:
3404: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3400: IF p_metric_rec.metric_parent_id = FND_API.G_MISS_NUM THEN
3401: x_complete_rec.metric_parent_id := x_old_metric_rec.metric_parent_id ;
3402: END IF;
3403:
3404: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3405: x_complete_rec.enabled_flag := x_old_metric_rec.enabled_flag ;
3406: END IF;
3407:
3408: IF p_metric_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
3404: IF p_metric_rec.enabled_flag = FND_API.G_MISS_CHAR THEN
3405: x_complete_rec.enabled_flag := x_old_metric_rec.enabled_flag ;
3406: END IF;
3407:
3408: IF p_metric_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
3409: x_complete_rec.summary_metric_id := x_old_metric_rec.summary_metric_id ;
3410: END IF;
3411:
3412: IF p_metric_rec.compute_using_function = FND_API.G_MISS_CHAR THEN
3408: IF p_metric_rec.summary_metric_id = FND_API.G_MISS_NUM THEN
3409: x_complete_rec.summary_metric_id := x_old_metric_rec.summary_metric_id ;
3410: END IF;
3411:
3412: IF p_metric_rec.compute_using_function = FND_API.G_MISS_CHAR THEN
3413: x_complete_rec.compute_using_function := x_old_metric_rec.compute_using_function ;
3414: END IF;
3415:
3416: IF p_metric_rec.default_uom_code = FND_API.G_MISS_CHAR THEN
3412: IF p_metric_rec.compute_using_function = FND_API.G_MISS_CHAR THEN
3413: x_complete_rec.compute_using_function := x_old_metric_rec.compute_using_function ;
3414: END IF;
3415:
3416: IF p_metric_rec.default_uom_code = FND_API.G_MISS_CHAR THEN
3417: x_complete_rec.default_uom_code := x_old_metric_rec.default_uom_code ;
3418: END IF;
3419:
3420: IF p_metric_rec.uom_type = FND_API.G_MISS_CHAR THEN
3416: IF p_metric_rec.default_uom_code = FND_API.G_MISS_CHAR THEN
3417: x_complete_rec.default_uom_code := x_old_metric_rec.default_uom_code ;
3418: END IF;
3419:
3420: IF p_metric_rec.uom_type = FND_API.G_MISS_CHAR THEN
3421: x_complete_rec.uom_type := x_old_metric_rec.uom_type ;
3422: END IF;
3423:
3424: IF p_metric_rec.formula = FND_API.G_MISS_CHAR THEN
3420: IF p_metric_rec.uom_type = FND_API.G_MISS_CHAR THEN
3421: x_complete_rec.uom_type := x_old_metric_rec.uom_type ;
3422: END IF;
3423:
3424: IF p_metric_rec.formula = FND_API.G_MISS_CHAR THEN
3425: x_complete_rec.formula := x_old_metric_rec.formula ;
3426: END IF;
3427:
3428: IF p_metric_rec.metrics_name = FND_API.G_MISS_CHAR THEN
3424: IF p_metric_rec.formula = FND_API.G_MISS_CHAR THEN
3425: x_complete_rec.formula := x_old_metric_rec.formula ;
3426: END IF;
3427:
3428: IF p_metric_rec.metrics_name = FND_API.G_MISS_CHAR THEN
3429: x_complete_rec.metrics_name := x_old_metric_rec.metrics_name ;
3430: END IF;
3431:
3432: IF p_metric_rec.description = FND_API.G_MISS_CHAR THEN
3428: IF p_metric_rec.metrics_name = FND_API.G_MISS_CHAR THEN
3429: x_complete_rec.metrics_name := x_old_metric_rec.metrics_name ;
3430: END IF;
3431:
3432: IF p_metric_rec.description = FND_API.G_MISS_CHAR THEN
3433: x_complete_rec.description := x_old_metric_rec.description;
3434: END IF;
3435:
3436: IF p_metric_rec.formula_display = FND_API.G_MISS_CHAR THEN
3432: IF p_metric_rec.description = FND_API.G_MISS_CHAR THEN
3433: x_complete_rec.description := x_old_metric_rec.description;
3434: END IF;
3435:
3436: IF p_metric_rec.formula_display = FND_API.G_MISS_CHAR THEN
3437: x_complete_rec.formula_display := x_old_metric_rec.formula_display;
3438: END IF;
3439:
3440: -- 17-Apr-2000 tdonohoe@us added.
3437: x_complete_rec.formula_display := x_old_metric_rec.formula_display;
3438: END IF;
3439:
3440: -- 17-Apr-2000 tdonohoe@us added.
3441: IF p_metric_rec.hierarchy_id = FND_API.G_MISS_NUM THEN
3442: x_complete_rec.hierarchy_id := x_old_metric_rec.hierarchy_id;
3443: END IF;
3444:
3445: -- 17-Apr-2000 tdonohoe@us added.
3442: x_complete_rec.hierarchy_id := x_old_metric_rec.hierarchy_id;
3443: END IF;
3444:
3445: -- 17-Apr-2000 tdonohoe@us added.
3446: IF p_metric_rec.set_function_name = FND_API.G_MISS_CHAR THEN
3447: x_complete_rec.set_function_name := x_old_metric_rec.set_function_name;
3448: END IF;
3449:
3450: if p_metric_rec.display_type = FND_API.G_MISS_CHAR then
3446: IF p_metric_rec.set_function_name = FND_API.G_MISS_CHAR THEN
3447: x_complete_rec.set_function_name := x_old_metric_rec.set_function_name;
3448: END IF;
3449:
3450: if p_metric_rec.display_type = FND_API.G_MISS_CHAR then
3451: x_complete_rec.display_type := x_old_metric_rec.display_type;
3452: end if;
3453:
3454: if p_metric_rec.target_type = FND_API.G_MISS_CHAR then
3450: if p_metric_rec.display_type = FND_API.G_MISS_CHAR then
3451: x_complete_rec.display_type := x_old_metric_rec.display_type;
3452: end if;
3453:
3454: if p_metric_rec.target_type = FND_API.G_MISS_CHAR then
3455: x_complete_rec.target_type := x_old_metric_rec.target_type;
3456: end if;
3457:
3458: if p_metric_rec.denorm_code = FND_API.G_MISS_CHAR then
3454: if p_metric_rec.target_type = FND_API.G_MISS_CHAR then
3455: x_complete_rec.target_type := x_old_metric_rec.target_type;
3456: end if;
3457:
3458: if p_metric_rec.denorm_code = FND_API.G_MISS_CHAR then
3459: x_complete_rec.denorm_code := x_old_metric_rec.denorm_code;
3460: end if;
3461:
3462: x_seeded_ok := TRUE;
3468: x_old_metric_rec.metric_category <> x_complete_rec.metric_category OR
3469: x_old_metric_rec.accrual_type <> x_complete_rec.accrual_type OR
3470: x_old_metric_rec.value_type <> x_complete_rec.value_type OR
3471: x_old_metric_rec.sensitive_data_flag <> x_complete_rec.sensitive_data_flag OR
3472: NVL(x_old_metric_rec.metric_sub_category,FND_API.G_MISS_NUM) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3469: x_old_metric_rec.accrual_type <> x_complete_rec.accrual_type OR
3470: x_old_metric_rec.value_type <> x_complete_rec.value_type OR
3471: x_old_metric_rec.sensitive_data_flag <> x_complete_rec.sensitive_data_flag OR
3472: NVL(x_old_metric_rec.metric_sub_category,FND_API.G_MISS_NUM) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3470: x_old_metric_rec.value_type <> x_complete_rec.value_type OR
3471: x_old_metric_rec.sensitive_data_flag <> x_complete_rec.sensitive_data_flag OR
3472: NVL(x_old_metric_rec.metric_sub_category,FND_API.G_MISS_NUM) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3471: x_old_metric_rec.sensitive_data_flag <> x_complete_rec.sensitive_data_flag OR
3472: NVL(x_old_metric_rec.metric_sub_category,FND_API.G_MISS_NUM) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3472: NVL(x_old_metric_rec.metric_sub_category,FND_API.G_MISS_NUM) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3473: NVL(x_complete_rec.metric_sub_category,FND_API.G_MISS_NUM) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3474: NVL(x_old_metric_rec.function_name,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3475: NVL(x_complete_rec.function_name,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3476: NVL(x_old_metric_rec.metric_parent_id,FND_API.G_MISS_NUM) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3477: NVL(x_complete_rec.metric_parent_id,FND_API.G_MISS_NUM) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3478: NVL(x_old_metric_rec.summary_metric_id,FND_API.G_MISS_NUM) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3479: NVL(x_complete_rec.summary_metric_id,FND_API.G_MISS_NUM) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3480: NVL(x_old_metric_rec.compute_using_function,FND_API.G_MISS_CHAR) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3481: NVL(x_complete_rec.compute_using_function,FND_API.G_MISS_CHAR) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3482: NVL(x_old_metric_rec.default_uom_code,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3483: NVL(x_complete_rec.default_uom_code,FND_API.G_MISS_CHAR) OR
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3491: NVL(x_complete_rec.set_function_name,FND_API.G_MISS_CHAR) THEN
3484: NVL(x_old_metric_rec.uom_type,FND_API.G_MISS_CHAR) <>
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3491: NVL(x_complete_rec.set_function_name,FND_API.G_MISS_CHAR) THEN
3492: x_seeded_ok := FALSE;
3485: NVL(x_complete_rec.uom_type,FND_API.G_MISS_CHAR) OR
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3491: NVL(x_complete_rec.set_function_name,FND_API.G_MISS_CHAR) THEN
3492: x_seeded_ok := FALSE;
3493: END IF;
3486: NVL(x_old_metric_rec.formula,FND_API.G_MISS_CHAR) <>
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3491: NVL(x_complete_rec.set_function_name,FND_API.G_MISS_CHAR) THEN
3492: x_seeded_ok := FALSE;
3493: END IF;
3494: END Complete_Metric_Rec ;
3487: NVL(x_complete_rec.formula,FND_API.G_MISS_CHAR) OR
3488: NVL(x_old_metric_rec.hierarchy_id,FND_API.G_MISS_NUM) <>
3489: NVL(x_complete_rec.hierarchy_id,FND_API.G_MISS_NUM) OR
3490: NVL(x_old_metric_rec.set_function_name,FND_API.G_MISS_CHAR) <>
3491: NVL(x_complete_rec.set_function_name,FND_API.G_MISS_CHAR) THEN
3492: x_seeded_ok := FALSE;
3493: END IF;
3494: END Complete_Metric_Rec ;
3495:
3568:
3569: BEGIN
3570:
3571: x_func_type := NULL;
3572: x_return_status := FND_API.G_RET_STS_SUCCESS;
3573:
3574: l_parse_string := 'DECLARE l_num_value NUMBER; Begin l_num_value := '||
3575: p_func_name || '(10000); end;';
3576:
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:
3607: END Validate_Metric_Program;