420:
421: -- Hint: Primary key needs to be returned.
422: PROCEDURE Create_Ctd(
423: p_api_version_number IN NUMBER,
424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
427:
428: x_return_status OUT NOCOPY VARCHAR2,
421: -- Hint: Primary key needs to be returned.
422: PROCEDURE Create_Ctd(
423: p_api_version_number IN NUMBER,
424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
427:
428: x_return_status OUT NOCOPY VARCHAR2,
429: x_msg_count OUT NOCOPY NUMBER,
422: PROCEDURE Create_Ctd(
423: p_api_version_number IN NUMBER,
424: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
425: p_commit IN VARCHAR2 := FND_API.G_FALSE,
426: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
427:
428: x_return_status OUT NOCOPY VARCHAR2,
429: x_msg_count OUT NOCOPY NUMBER,
430: x_msg_data OUT NOCOPY VARCHAR2,
437: L_API_NAME CONSTANT VARCHAR2(30) := 'Create_Ctd';
438: L_API_VERSION_NUMBER CONSTANT NUMBER := 1.0;
439: l_return_status_full VARCHAR2(1);
440: l_object_version_number NUMBER := 1;
441: l_org_id NUMBER := FND_API.G_MISS_NUM;
442: l_CTD_ID NUMBER;
443: l_dummy NUMBER;
444:
445: CURSOR c_id IS
455: -- Standard Start of API savepoint
456: SAVEPOINT CREATE_Ctd_PVT;
457:
458: -- Standard call to check for call compatibility.
459: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
460: p_api_version_number,
461: l_api_name,
462: G_PKG_NAME)
463: THEN
460: p_api_version_number,
461: l_api_name,
462: G_PKG_NAME)
463: THEN
464: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
465: END IF;
466:
467: -- Initialize message list if p_init_msg_list is set to TRUE.
468: IF FND_API.to_Boolean( p_init_msg_list )
464: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
465: END IF;
466:
467: -- Initialize message list if p_init_msg_list is set to TRUE.
468: IF FND_API.to_Boolean( p_init_msg_list )
469: THEN
470: FND_MSG_PUB.initialize;
471: END IF;
472:
474: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
475:
476:
477: -- Initialize API return status to SUCCESS
478: x_return_status := FND_API.G_RET_STS_SUCCESS;
479:
480: -- Local variable initialization
481:
482: IF p_ctd_rec.CTD_ID IS NULL OR p_ctd_rec.CTD_ID = FND_API.g_miss_num THEN
478: x_return_status := FND_API.G_RET_STS_SUCCESS;
479:
480: -- Local variable initialization
481:
482: IF p_ctd_rec.CTD_ID IS NULL OR p_ctd_rec.CTD_ID = FND_API.g_miss_num THEN
483: LOOP
484: l_dummy := NULL;
485: OPEN c_id;
486: FETCH c_id INTO l_CTD_ID;
499:
500: IF FND_GLOBAL.User_Id IS NULL
501: THEN
502: AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
503: RAISE FND_API.G_EXC_ERROR;
504: END IF;
505:
506: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
507: THEN
502: AMS_Utility_PVT.Error_Message(p_message_name => 'USER_PROFILE_MISSING');
503: RAISE FND_API.G_EXC_ERROR;
504: END IF;
505:
506: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
507: THEN
508: -- Debug message
509: AMS_UTILITY_PVT.debug_message('Private API: Validate_Ctd');
510:
510:
511: -- Invoke validation procedures
512: Validate_ctd(
513: p_api_version_number => 1.0,
514: p_init_msg_list => FND_API.G_FALSE,
515: p_validation_level => p_validation_level,
516: p_ctd_rec => p_ctd_rec,
517: x_return_status => x_return_status,
518: x_msg_count => x_msg_count,
518: x_msg_count => x_msg_count,
519: x_msg_data => x_msg_data);
520: END IF;
521:
522: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
523: RAISE FND_API.G_EXC_ERROR;
524: END IF;
525:
526:
519: x_msg_data => x_msg_data);
520: END IF;
521:
522: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
523: RAISE FND_API.G_EXC_ERROR;
524: END IF;
525:
526:
527: -- Debug Message
542: p_created_by => G_USER_ID,
543: p_last_update_login => G_LOGIN_ID,
544: p_security_group_id => p_ctd_rec.security_group_id);
545:
546: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
547: RAISE FND_API.G_EXC_ERROR;
548: END IF;
549:
550: x_ctd_id := l_ctd_id;
543: p_last_update_login => G_LOGIN_ID,
544: p_security_group_id => p_ctd_rec.security_group_id);
545:
546: IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
547: RAISE FND_API.G_EXC_ERROR;
548: END IF;
549:
550: x_ctd_id := l_ctd_id;
551: --
552: -- End of API body
553: --
554:
555: -- Standard check for p_commit
556: IF FND_API.to_Boolean( p_commit )
557: THEN
558: COMMIT WORK;
559: END IF;
560:
569: );
570: EXCEPTION
571:
572: WHEN AMS_Utility_PVT.resource_locked THEN
573: x_return_status := FND_API.g_ret_sts_error;
574: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
575:
576: WHEN FND_API.G_EXC_ERROR THEN
577: ROLLBACK TO CREATE_Ctd_PVT;
572: WHEN AMS_Utility_PVT.resource_locked THEN
573: x_return_status := FND_API.g_ret_sts_error;
574: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
575:
576: WHEN FND_API.G_EXC_ERROR THEN
577: ROLLBACK TO CREATE_Ctd_PVT;
578: x_return_status := FND_API.G_RET_STS_ERROR;
579: -- Standard call to get message count and if count=1, get the message
580: FND_MSG_PUB.Count_And_Get (
574: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
575:
576: WHEN FND_API.G_EXC_ERROR THEN
577: ROLLBACK TO CREATE_Ctd_PVT;
578: x_return_status := FND_API.G_RET_STS_ERROR;
579: -- Standard call to get message count and if count=1, get the message
580: FND_MSG_PUB.Count_And_Get (
581: p_encoded => FND_API.G_FALSE,
582: p_count => x_msg_count,
577: ROLLBACK TO CREATE_Ctd_PVT;
578: x_return_status := FND_API.G_RET_STS_ERROR;
579: -- Standard call to get message count and if count=1, get the message
580: FND_MSG_PUB.Count_And_Get (
581: p_encoded => FND_API.G_FALSE,
582: p_count => x_msg_count,
583: p_data => x_msg_data
584: );
585:
582: p_count => x_msg_count,
583: p_data => x_msg_data
584: );
585:
586: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
587: ROLLBACK TO CREATE_Ctd_PVT;
588: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
584: );
585:
586: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
587: ROLLBACK TO CREATE_Ctd_PVT;
588: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
591: p_encoded => FND_API.G_FALSE,
592: p_count => x_msg_count,
587: ROLLBACK TO CREATE_Ctd_PVT;
588: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
589: -- Standard call to get message count and if count=1, get the message
590: FND_MSG_PUB.Count_And_Get (
591: p_encoded => FND_API.G_FALSE,
592: p_count => x_msg_count,
593: p_data => x_msg_data
594: );
595:
594: );
595:
596: WHEN OTHERS THEN
597: ROLLBACK TO CREATE_Ctd_PVT;
598: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
599: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
600: THEN
601: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
602: END IF;
601: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
602: END IF;
603: -- Standard call to get message count and if count=1, get the message
604: FND_MSG_PUB.Count_And_Get (
605: p_encoded => FND_API.G_FALSE,
606: p_count => x_msg_count,
607: p_data => x_msg_data
608: );
609: End Create_Ctd;
610:
611:
612: PROCEDURE Update_Ctd(
613: p_api_version_number IN NUMBER,
614: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
615: p_commit IN VARCHAR2 := FND_API.G_FALSE,
616: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
617:
618: x_return_status OUT NOCOPY VARCHAR2,
611:
612: PROCEDURE Update_Ctd(
613: p_api_version_number IN NUMBER,
614: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
615: p_commit IN VARCHAR2 := FND_API.G_FALSE,
616: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
617:
618: x_return_status OUT NOCOPY VARCHAR2,
619: x_msg_count OUT NOCOPY NUMBER,
612: PROCEDURE Update_Ctd(
613: p_api_version_number IN NUMBER,
614: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
615: p_commit IN VARCHAR2 := FND_API.G_FALSE,
616: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
617:
618: x_return_status OUT NOCOPY VARCHAR2,
619: x_msg_count OUT NOCOPY NUMBER,
620: x_msg_data OUT NOCOPY VARCHAR2,
641: -- Standard Start of API savepoint
642: SAVEPOINT UPDATE_Ctd_PVT;
643:
644: -- Standard call to check for call compatibility.
645: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
646: p_api_version_number,
647: l_api_name,
648: G_PKG_NAME)
649: THEN
646: p_api_version_number,
647: l_api_name,
648: G_PKG_NAME)
649: THEN
650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
651: END IF;
652:
653: -- Initialize message list if p_init_msg_list is set to TRUE.
654: IF FND_API.to_Boolean( p_init_msg_list )
650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
651: END IF;
652:
653: -- Initialize message list if p_init_msg_list is set to TRUE.
654: IF FND_API.to_Boolean( p_init_msg_list )
655: THEN
656: FND_MSG_PUB.initialize;
657: END IF;
658:
660: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
661:
662:
663: -- Initialize API return status to SUCCESS
664: x_return_status := FND_API.G_RET_STS_SUCCESS;
665:
666: -- Debug Message
667: AMS_UTILITY_PVT.debug_message('Private API: - Open Cursor to Select');
668:
674: If ( c_get_Ctd%NOTFOUND) THEN
675: AMS_Utility_PVT.Error_Message(p_message_name => 'API_MISSING_UPDATE_TARGET',
676: p_token_name => 'INFO',
677: p_token_value => 'Ctd') ;
678: RAISE FND_API.G_EXC_ERROR;
679: END IF;
680: -- Debug Message
681: AMS_UTILITY_PVT.debug_message('Private API: - Close Cursor');
682: CLOSE c_get_Ctd;
683: */
684:
685:
686: If (l_tar_ctd_rec.object_version_number is NULL or
687: l_tar_ctd_rec.object_version_number = FND_API.G_MISS_NUM ) Then
688: AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
689: p_token_name => 'COLUMN',
690: p_token_value => 'Last_Update_Date') ;
691: raise FND_API.G_EXC_ERROR;
687: l_tar_ctd_rec.object_version_number = FND_API.G_MISS_NUM ) Then
688: AMS_Utility_PVT.Error_Message(p_message_name => 'API_VERSION_MISSING',
689: p_token_name => 'COLUMN',
690: p_token_value => 'Last_Update_Date') ;
691: raise FND_API.G_EXC_ERROR;
692: End if;
693: -- Check Whether record has been changed by someone else
694: If (l_tar_ctd_rec.object_version_number <> l_ref_ctd_rec.object_version_number) Then
695: AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
694: If (l_tar_ctd_rec.object_version_number <> l_ref_ctd_rec.object_version_number) Then
695: AMS_Utility_PVT.Error_Message(p_message_name => 'API_RECORD_CHANGED',
696: p_token_name => 'INFO',
697: p_token_value => 'Ctd') ;
698: raise FND_API.G_EXC_ERROR;
699: End if;
700: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
701: THEN
702: -- Debug message
696: p_token_name => 'INFO',
697: p_token_value => 'Ctd') ;
698: raise FND_API.G_EXC_ERROR;
699: End if;
700: IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
701: THEN
702: -- Debug message
703: AMS_UTILITY_PVT.debug_message('Private API: Validate_Ctd');
704:
704:
705: -- Invoke validation procedures
706: Validate_ctd(
707: p_api_version_number => 1.0,
708: p_init_msg_list => FND_API.G_FALSE,
709: p_validation_level => p_validation_level,
710: p_ctd_rec => p_ctd_rec,
711: x_return_status => x_return_status,
712: x_msg_count => x_msg_count,
712: x_msg_count => x_msg_count,
713: x_msg_data => x_msg_data);
714: END IF;
715:
716: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
717: RAISE FND_API.G_EXC_ERROR;
718: END IF;
719:
720:
713: x_msg_data => x_msg_data);
714: END IF;
715:
716: IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
717: RAISE FND_API.G_EXC_ERROR;
718: END IF;
719:
720:
721: -- Debug Message
740: -- End of API body.
741: --
742:
743: -- Standard check for p_commit
744: IF FND_API.to_Boolean( p_commit )
745: THEN
746: COMMIT WORK;
747: END IF;
748:
757: );
758: EXCEPTION
759:
760: WHEN AMS_Utility_PVT.resource_locked THEN
761: x_return_status := FND_API.g_ret_sts_error;
762: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
763:
764: WHEN FND_API.G_EXC_ERROR THEN
765: ROLLBACK TO UPDATE_Ctd_PVT;
760: WHEN AMS_Utility_PVT.resource_locked THEN
761: x_return_status := FND_API.g_ret_sts_error;
762: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
763:
764: WHEN FND_API.G_EXC_ERROR THEN
765: ROLLBACK TO UPDATE_Ctd_PVT;
766: x_return_status := FND_API.G_RET_STS_ERROR;
767: -- Standard call to get message count and if count=1, get the message
768: FND_MSG_PUB.Count_And_Get (
762: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
763:
764: WHEN FND_API.G_EXC_ERROR THEN
765: ROLLBACK TO UPDATE_Ctd_PVT;
766: x_return_status := FND_API.G_RET_STS_ERROR;
767: -- Standard call to get message count and if count=1, get the message
768: FND_MSG_PUB.Count_And_Get (
769: p_encoded => FND_API.G_FALSE,
770: p_count => x_msg_count,
765: ROLLBACK TO UPDATE_Ctd_PVT;
766: x_return_status := FND_API.G_RET_STS_ERROR;
767: -- Standard call to get message count and if count=1, get the message
768: FND_MSG_PUB.Count_And_Get (
769: p_encoded => FND_API.G_FALSE,
770: p_count => x_msg_count,
771: p_data => x_msg_data
772: );
773:
770: p_count => x_msg_count,
771: p_data => x_msg_data
772: );
773:
774: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
775: ROLLBACK TO UPDATE_Ctd_PVT;
776: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
772: );
773:
774: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
775: ROLLBACK TO UPDATE_Ctd_PVT;
776: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
779: p_encoded => FND_API.G_FALSE,
780: p_count => x_msg_count,
775: ROLLBACK TO UPDATE_Ctd_PVT;
776: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
777: -- Standard call to get message count and if count=1, get the message
778: FND_MSG_PUB.Count_And_Get (
779: p_encoded => FND_API.G_FALSE,
780: p_count => x_msg_count,
781: p_data => x_msg_data
782: );
783:
782: );
783:
784: WHEN OTHERS THEN
785: ROLLBACK TO UPDATE_Ctd_PVT;
786: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
787: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
788: THEN
789: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
790: END IF;
789: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
790: END IF;
791: -- Standard call to get message count and if count=1, get the message
792: FND_MSG_PUB.Count_And_Get (
793: p_encoded => FND_API.G_FALSE,
794: p_count => x_msg_count,
795: p_data => x_msg_data
796: );
797: End Update_Ctd;
798:
799:
800: PROCEDURE Delete_Ctd(
801: p_api_version_number IN NUMBER,
802: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
803: p_commit IN VARCHAR2 := FND_API.G_FALSE,
804: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
805: x_return_status OUT NOCOPY VARCHAR2,
806: x_msg_count OUT NOCOPY NUMBER,
799:
800: PROCEDURE Delete_Ctd(
801: p_api_version_number IN NUMBER,
802: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
803: p_commit IN VARCHAR2 := FND_API.G_FALSE,
804: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
805: x_return_status OUT NOCOPY VARCHAR2,
806: x_msg_count OUT NOCOPY NUMBER,
807: x_msg_data OUT NOCOPY VARCHAR2,
800: PROCEDURE Delete_Ctd(
801: p_api_version_number IN NUMBER,
802: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
803: p_commit IN VARCHAR2 := FND_API.G_FALSE,
804: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
805: x_return_status OUT NOCOPY VARCHAR2,
806: x_msg_count OUT NOCOPY NUMBER,
807: x_msg_data OUT NOCOPY VARCHAR2,
808: p_ctd_id IN NUMBER,
818: -- Standard Start of API savepoint
819: SAVEPOINT DELETE_Ctd_PVT;
820:
821: -- Standard call to check for call compatibility.
822: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
823: p_api_version_number,
824: l_api_name,
825: G_PKG_NAME)
826: THEN
823: p_api_version_number,
824: l_api_name,
825: G_PKG_NAME)
826: THEN
827: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
828: END IF;
829:
830: -- Initialize message list if p_init_msg_list is set to TRUE.
831: IF FND_API.to_Boolean( p_init_msg_list )
827: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
828: END IF;
829:
830: -- Initialize message list if p_init_msg_list is set to TRUE.
831: IF FND_API.to_Boolean( p_init_msg_list )
832: THEN
833: FND_MSG_PUB.initialize;
834: END IF;
835:
837: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
838:
839:
840: -- Initialize API return status to SUCCESS
841: x_return_status := FND_API.G_RET_STS_SUCCESS;
842:
843: --
844: -- Api body
845: --
853: -- End of API body
854: --
855:
856: -- Standard check for p_commit
857: IF FND_API.to_Boolean( p_commit )
858: THEN
859: COMMIT WORK;
860: END IF;
861:
870: );
871: EXCEPTION
872:
873: WHEN AMS_Utility_PVT.resource_locked THEN
874: x_return_status := FND_API.g_ret_sts_error;
875: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
876:
877: WHEN FND_API.G_EXC_ERROR THEN
878: ROLLBACK TO DELETE_Ctd_PVT;
873: WHEN AMS_Utility_PVT.resource_locked THEN
874: x_return_status := FND_API.g_ret_sts_error;
875: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
876:
877: WHEN FND_API.G_EXC_ERROR THEN
878: ROLLBACK TO DELETE_Ctd_PVT;
879: x_return_status := FND_API.G_RET_STS_ERROR;
880: -- Standard call to get message count and if count=1, get the message
881: FND_MSG_PUB.Count_And_Get (
875: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
876:
877: WHEN FND_API.G_EXC_ERROR THEN
878: ROLLBACK TO DELETE_Ctd_PVT;
879: x_return_status := FND_API.G_RET_STS_ERROR;
880: -- Standard call to get message count and if count=1, get the message
881: FND_MSG_PUB.Count_And_Get (
882: p_encoded => FND_API.G_FALSE,
883: p_count => x_msg_count,
878: ROLLBACK TO DELETE_Ctd_PVT;
879: x_return_status := FND_API.G_RET_STS_ERROR;
880: -- Standard call to get message count and if count=1, get the message
881: FND_MSG_PUB.Count_And_Get (
882: p_encoded => FND_API.G_FALSE,
883: p_count => x_msg_count,
884: p_data => x_msg_data
885: );
886:
883: p_count => x_msg_count,
884: p_data => x_msg_data
885: );
886:
887: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
888: ROLLBACK TO DELETE_Ctd_PVT;
889: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
890: -- Standard call to get message count and if count=1, get the message
891: FND_MSG_PUB.Count_And_Get (
885: );
886:
887: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
888: ROLLBACK TO DELETE_Ctd_PVT;
889: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
890: -- Standard call to get message count and if count=1, get the message
891: FND_MSG_PUB.Count_And_Get (
892: p_encoded => FND_API.G_FALSE,
893: p_count => x_msg_count,
888: ROLLBACK TO DELETE_Ctd_PVT;
889: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
890: -- Standard call to get message count and if count=1, get the message
891: FND_MSG_PUB.Count_And_Get (
892: p_encoded => FND_API.G_FALSE,
893: p_count => x_msg_count,
894: p_data => x_msg_data
895: );
896:
895: );
896:
897: WHEN OTHERS THEN
898: ROLLBACK TO DELETE_Ctd_PVT;
899: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
900: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
901: THEN
902: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
903: END IF;
902: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
903: END IF;
904: -- Standard call to get message count and if count=1, get the message
905: FND_MSG_PUB.Count_And_Get (
906: p_encoded => FND_API.G_FALSE,
907: p_count => x_msg_count,
908: p_data => x_msg_data
909: );
910: End Delete_Ctd;
913:
914: -- Hint: Primary key needs to be returned.
915: PROCEDURE Lock_Ctd(
916: p_api_version_number IN NUMBER,
917: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
918:
919: x_return_status OUT NOCOPY VARCHAR2,
920: x_msg_count OUT NOCOPY NUMBER,
921: x_msg_data OUT NOCOPY VARCHAR2,
942: -- Debug Message
943: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
944:
945: -- Initialize message list if p_init_msg_list is set to TRUE.
946: IF FND_API.to_Boolean( p_init_msg_list )
947: THEN
948: FND_MSG_PUB.initialize;
949: END IF;
950:
948: FND_MSG_PUB.initialize;
949: END IF;
950:
951: -- Standard call to check for call compatibility.
952: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
953: p_api_version_number,
954: l_api_name,
955: G_PKG_NAME)
956: THEN
953: p_api_version_number,
954: l_api_name,
955: G_PKG_NAME)
956: THEN
957: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
958: END IF;
959:
960:
961: -- Initialize API return status to SUCCESS
958: END IF;
959:
960:
961: -- Initialize API return status to SUCCESS
962: x_return_status := FND_API.G_RET_STS_SUCCESS;
963:
964:
965: ------------------------ lock -------------------------
966:
974: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
975: FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
976: FND_MSG_PUB.add;
977: END IF;
978: RAISE FND_API.g_exc_error;
979: END IF;
980:
981: CLOSE c_Ctd;
982:
981: CLOSE c_Ctd;
982:
983: -------------------- finish --------------------------
984: FND_MSG_PUB.count_and_get(
985: p_encoded => FND_API.g_false,
986: p_count => x_msg_count,
987: p_data => x_msg_data);
988: AMS_Utility_PVT.debug_message(l_full_name ||': end');
989: EXCEPTION
988: AMS_Utility_PVT.debug_message(l_full_name ||': end');
989: EXCEPTION
990:
991: WHEN AMS_Utility_PVT.resource_locked THEN
992: x_return_status := FND_API.g_ret_sts_error;
993: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
994:
995: WHEN FND_API.G_EXC_ERROR THEN
996: ROLLBACK TO LOCK_Ctd_PVT;
991: WHEN AMS_Utility_PVT.resource_locked THEN
992: x_return_status := FND_API.g_ret_sts_error;
993: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
994:
995: WHEN FND_API.G_EXC_ERROR THEN
996: ROLLBACK TO LOCK_Ctd_PVT;
997: x_return_status := FND_API.G_RET_STS_ERROR;
998: -- Standard call to get message count and if count=1, get the message
999: FND_MSG_PUB.Count_And_Get (
993: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
994:
995: WHEN FND_API.G_EXC_ERROR THEN
996: ROLLBACK TO LOCK_Ctd_PVT;
997: x_return_status := FND_API.G_RET_STS_ERROR;
998: -- Standard call to get message count and if count=1, get the message
999: FND_MSG_PUB.Count_And_Get (
1000: p_encoded => FND_API.G_FALSE,
1001: p_count => x_msg_count,
996: ROLLBACK TO LOCK_Ctd_PVT;
997: x_return_status := FND_API.G_RET_STS_ERROR;
998: -- Standard call to get message count and if count=1, get the message
999: FND_MSG_PUB.Count_And_Get (
1000: p_encoded => FND_API.G_FALSE,
1001: p_count => x_msg_count,
1002: p_data => x_msg_data
1003: );
1004:
1001: p_count => x_msg_count,
1002: p_data => x_msg_data
1003: );
1004:
1005: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1006: ROLLBACK TO LOCK_Ctd_PVT;
1007: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1008: -- Standard call to get message count and if count=1, get the message
1009: FND_MSG_PUB.Count_And_Get (
1003: );
1004:
1005: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1006: ROLLBACK TO LOCK_Ctd_PVT;
1007: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1008: -- Standard call to get message count and if count=1, get the message
1009: FND_MSG_PUB.Count_And_Get (
1010: p_encoded => FND_API.G_FALSE,
1011: p_count => x_msg_count,
1006: ROLLBACK TO LOCK_Ctd_PVT;
1007: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1008: -- Standard call to get message count and if count=1, get the message
1009: FND_MSG_PUB.Count_And_Get (
1010: p_encoded => FND_API.G_FALSE,
1011: p_count => x_msg_count,
1012: p_data => x_msg_data
1013: );
1014:
1013: );
1014:
1015: WHEN OTHERS THEN
1016: ROLLBACK TO LOCK_Ctd_PVT;
1017: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1018: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1019: THEN
1020: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1021: END IF;
1020: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1021: END IF;
1022: -- Standard call to get message count and if count=1, get the message
1023: FND_MSG_PUB.Count_And_Get (
1024: p_encoded => FND_API.G_FALSE,
1025: p_count => x_msg_count,
1026: p_data => x_msg_data
1027: );
1028: End Lock_Ctd;
1035: IS
1036: l_valid_flag VARCHAR2(1);
1037:
1038: BEGIN
1039: x_return_status := FND_API.g_ret_sts_success;
1040: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1041: l_valid_flag := AMS_Utility_PVT.check_uniqueness(
1042: 'AMS_CTDS',
1043: 'CTD_ID = ''' || p_ctd_rec.CTD_ID ||''''
1049: ''' AND CTD_ID <> ' || p_ctd_rec.CTD_ID
1050: );
1051: END IF;
1052:
1053: IF l_valid_flag = FND_API.g_false THEN
1054: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CTD_ID_DUPLICATE');
1055: x_return_status := FND_API.g_ret_sts_error;
1056: RETURN;
1057: END IF;
1051: END IF;
1052:
1053: IF l_valid_flag = FND_API.g_false THEN
1054: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_CTD_ID_DUPLICATE');
1055: x_return_status := FND_API.g_ret_sts_error;
1056: RETURN;
1057: END IF;
1058:
1059: END check_ctd_uk_items;
1064: x_return_status OUT NOCOPY VARCHAR2
1065: )
1066: IS
1067: BEGIN
1068: x_return_status := FND_API.g_ret_sts_success;
1069:
1070: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1071:
1072:
1069:
1070: IF p_validation_mode = JTF_PLSQL_API.g_create THEN
1071:
1072:
1073: IF p_ctd_rec.ctd_id = FND_API.g_miss_num OR p_ctd_rec.ctd_id IS NULL THEN
1074: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_ctd_id');
1075: x_return_status := FND_API.g_ret_sts_error;
1076: RETURN;
1077: END IF;
1071:
1072:
1073: IF p_ctd_rec.ctd_id = FND_API.g_miss_num OR p_ctd_rec.ctd_id IS NULL THEN
1074: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_ctd_id');
1075: x_return_status := FND_API.g_ret_sts_error;
1076: RETURN;
1077: END IF;
1078:
1079:
1076: RETURN;
1077: END IF;
1078:
1079:
1080: IF p_ctd_rec.action_id = FND_API.g_miss_num OR p_ctd_rec.action_id IS NULL THEN
1081: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_action_id');
1082: x_return_status := FND_API.g_ret_sts_error;
1083: RETURN;
1084: END IF;
1078:
1079:
1080: IF p_ctd_rec.action_id = FND_API.g_miss_num OR p_ctd_rec.action_id IS NULL THEN
1081: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_action_id');
1082: x_return_status := FND_API.g_ret_sts_error;
1083: RETURN;
1084: END IF;
1085:
1086:
1083: RETURN;
1084: END IF;
1085:
1086:
1087: IF p_ctd_rec.object_version_number = FND_API.g_miss_num OR p_ctd_rec.object_version_number IS NULL THEN
1088: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_object_version_number');
1089: x_return_status := FND_API.g_ret_sts_error;
1090: RETURN;
1091: END IF;
1085:
1086:
1087: IF p_ctd_rec.object_version_number = FND_API.g_miss_num OR p_ctd_rec.object_version_number IS NULL THEN
1088: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_object_version_number');
1089: x_return_status := FND_API.g_ret_sts_error;
1090: RETURN;
1091: END IF;
1092:
1093:
1090: RETURN;
1091: END IF;
1092:
1093:
1094: IF p_ctd_rec.last_update_date = FND_API.g_miss_date OR p_ctd_rec.last_update_date IS NULL THEN
1095: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_update_date');
1096: x_return_status := FND_API.g_ret_sts_error;
1097: RETURN;
1098: END IF;
1092:
1093:
1094: IF p_ctd_rec.last_update_date = FND_API.g_miss_date OR p_ctd_rec.last_update_date IS NULL THEN
1095: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_update_date');
1096: x_return_status := FND_API.g_ret_sts_error;
1097: RETURN;
1098: END IF;
1099:
1100:
1097: RETURN;
1098: END IF;
1099:
1100:
1101: IF p_ctd_rec.last_updated_by = FND_API.g_miss_num OR p_ctd_rec.last_updated_by IS NULL THEN
1102: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_updated_by');
1103: x_return_status := FND_API.g_ret_sts_error;
1104: RETURN;
1105: END IF;
1099:
1100:
1101: IF p_ctd_rec.last_updated_by = FND_API.g_miss_num OR p_ctd_rec.last_updated_by IS NULL THEN
1102: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_updated_by');
1103: x_return_status := FND_API.g_ret_sts_error;
1104: RETURN;
1105: END IF;
1106:
1107:
1104: RETURN;
1105: END IF;
1106:
1107:
1108: IF p_ctd_rec.creation_date = FND_API.g_miss_date OR p_ctd_rec.creation_date IS NULL THEN
1109: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_creation_date');
1110: x_return_status := FND_API.g_ret_sts_error;
1111: RETURN;
1112: END IF;
1106:
1107:
1108: IF p_ctd_rec.creation_date = FND_API.g_miss_date OR p_ctd_rec.creation_date IS NULL THEN
1109: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_creation_date');
1110: x_return_status := FND_API.g_ret_sts_error;
1111: RETURN;
1112: END IF;
1113:
1114:
1111: RETURN;
1112: END IF;
1113:
1114:
1115: IF p_ctd_rec.created_by = FND_API.g_miss_num OR p_ctd_rec.created_by IS NULL THEN
1116: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_created_by');
1117: x_return_status := FND_API.g_ret_sts_error;
1118: RETURN;
1119: END IF;
1113:
1114:
1115: IF p_ctd_rec.created_by = FND_API.g_miss_num OR p_ctd_rec.created_by IS NULL THEN
1116: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_created_by');
1117: x_return_status := FND_API.g_ret_sts_error;
1118: RETURN;
1119: END IF;
1120: ELSE
1121:
1121:
1122:
1123: IF p_ctd_rec.ctd_id IS NULL THEN
1124: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_ctd_id');
1125: x_return_status := FND_API.g_ret_sts_error;
1126: RETURN;
1127: END IF;
1128:
1129:
1128:
1129:
1130: IF p_ctd_rec.action_id IS NULL THEN
1131: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_action_id');
1132: x_return_status := FND_API.g_ret_sts_error;
1133: RETURN;
1134: END IF;
1135:
1136:
1135:
1136:
1137: IF p_ctd_rec.object_version_number IS NULL THEN
1138: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_object_version_number');
1139: x_return_status := FND_API.g_ret_sts_error;
1140: RETURN;
1141: END IF;
1142:
1143:
1142:
1143:
1144: IF p_ctd_rec.last_update_date IS NULL THEN
1145: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_update_date');
1146: x_return_status := FND_API.g_ret_sts_error;
1147: RETURN;
1148: END IF;
1149:
1150:
1149:
1150:
1151: IF p_ctd_rec.last_updated_by IS NULL THEN
1152: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_last_updated_by');
1153: x_return_status := FND_API.g_ret_sts_error;
1154: RETURN;
1155: END IF;
1156:
1157:
1156:
1157:
1158: IF p_ctd_rec.creation_date IS NULL THEN
1159: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_creation_date');
1160: x_return_status := FND_API.g_ret_sts_error;
1161: RETURN;
1162: END IF;
1163:
1164:
1163:
1164:
1165: IF p_ctd_rec.created_by IS NULL THEN
1166: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_ctd_NO_created_by');
1167: x_return_status := FND_API.g_ret_sts_error;
1168: RETURN;
1169: END IF;
1170: END IF;
1171:
1176: x_return_status OUT NOCOPY VARCHAR2
1177: )
1178: IS
1179: BEGIN
1180: x_return_status := FND_API.g_ret_sts_success;
1181:
1182: -- Enter custom code here
1183:
1184: END check_ctd_FK_items;
1188: x_return_status OUT NOCOPY VARCHAR2
1189: )
1190: IS
1191: BEGIN
1192: x_return_status := FND_API.g_ret_sts_success;
1193:
1194: -- Enter custom code here
1195:
1196: END check_ctd_Lookup_items;
1208: check_ctd_uk_items(
1209: p_ctd_rec => p_ctd_rec,
1210: p_validation_mode => p_validation_mode,
1211: x_return_status => x_return_status);
1212: IF x_return_status <> FND_API.g_ret_sts_success THEN
1213: RETURN;
1214: END IF;
1215:
1216: -- Check Items Required/NOT NULL API calls
1218: check_ctd_req_items(
1219: p_ctd_rec => p_ctd_rec,
1220: p_validation_mode => p_validation_mode,
1221: x_return_status => x_return_status);
1222: IF x_return_status <> FND_API.g_ret_sts_success THEN
1223: RETURN;
1224: END IF;
1225: -- Check Items Foreign Keys API calls
1226:
1226:
1227: check_ctd_FK_items(
1228: p_ctd_rec => p_ctd_rec,
1229: x_return_status => x_return_status);
1230: IF x_return_status <> FND_API.g_ret_sts_success THEN
1231: RETURN;
1232: END IF;
1233: -- Check Items Lookups
1234:
1234:
1235: check_ctd_Lookup_items(
1236: p_ctd_rec => p_ctd_rec,
1237: x_return_status => x_return_status);
1238: IF x_return_status <> FND_API.g_ret_sts_success THEN
1239: RETURN;
1240: END IF;
1241:
1242: END Check_ctd_Items;
1261: FETCH c_complete INTO l_ctd_rec;
1262: CLOSE c_complete;
1263:
1264: -- ctd_id
1265: IF p_ctd_rec.ctd_id = FND_API.g_miss_num THEN
1266: x_complete_rec.ctd_id := l_ctd_rec.ctd_id;
1267: END IF;
1268:
1269: -- action_id
1266: x_complete_rec.ctd_id := l_ctd_rec.ctd_id;
1267: END IF;
1268:
1269: -- action_id
1270: IF p_ctd_rec.action_id = FND_API.g_miss_num THEN
1271: x_complete_rec.action_id := l_ctd_rec.action_id;
1272: END IF;
1273:
1274: -- forward_url
1271: x_complete_rec.action_id := l_ctd_rec.action_id;
1272: END IF;
1273:
1274: -- forward_url
1275: IF p_ctd_rec.forward_url = FND_API.g_miss_char THEN
1276: x_complete_rec.forward_url := l_ctd_rec.forward_url;
1277: END IF;
1278:
1279: -- track_url
1276: x_complete_rec.forward_url := l_ctd_rec.forward_url;
1277: END IF;
1278:
1279: -- track_url
1280: IF p_ctd_rec.track_url = FND_API.g_miss_char THEN
1281: x_complete_rec.track_url := l_ctd_rec.track_url;
1282: END IF;
1283:
1284: -- activity_product_id
1281: x_complete_rec.track_url := l_ctd_rec.track_url;
1282: END IF;
1283:
1284: -- activity_product_id
1285: IF p_ctd_rec.activity_product_id = FND_API.g_miss_num THEN
1286: x_complete_rec.activity_product_id := l_ctd_rec.activity_product_id;
1287: END IF;
1288:
1289: -- activity_offer_id
1286: x_complete_rec.activity_product_id := l_ctd_rec.activity_product_id;
1287: END IF;
1288:
1289: -- activity_offer_id
1290: IF p_ctd_rec.activity_offer_id = FND_API.g_miss_num THEN
1291: x_complete_rec.activity_offer_id := l_ctd_rec.activity_offer_id;
1292: END IF;
1293:
1294: -- object_version_number
1291: x_complete_rec.activity_offer_id := l_ctd_rec.activity_offer_id;
1292: END IF;
1293:
1294: -- object_version_number
1295: IF p_ctd_rec.object_version_number = FND_API.g_miss_num THEN
1296: x_complete_rec.object_version_number := l_ctd_rec.object_version_number;
1297: END IF;
1298:
1299: -- last_update_date
1296: x_complete_rec.object_version_number := l_ctd_rec.object_version_number;
1297: END IF;
1298:
1299: -- last_update_date
1300: IF p_ctd_rec.last_update_date = FND_API.g_miss_date THEN
1301: x_complete_rec.last_update_date := l_ctd_rec.last_update_date;
1302: END IF;
1303:
1304: -- last_updated_by
1301: x_complete_rec.last_update_date := l_ctd_rec.last_update_date;
1302: END IF;
1303:
1304: -- last_updated_by
1305: IF p_ctd_rec.last_updated_by = FND_API.g_miss_num THEN
1306: x_complete_rec.last_updated_by := l_ctd_rec.last_updated_by;
1307: END IF;
1308:
1309: -- creation_date
1306: x_complete_rec.last_updated_by := l_ctd_rec.last_updated_by;
1307: END IF;
1308:
1309: -- creation_date
1310: IF p_ctd_rec.creation_date = FND_API.g_miss_date THEN
1311: x_complete_rec.creation_date := l_ctd_rec.creation_date;
1312: END IF;
1313:
1314: -- created_by
1311: x_complete_rec.creation_date := l_ctd_rec.creation_date;
1312: END IF;
1313:
1314: -- created_by
1315: IF p_ctd_rec.created_by = FND_API.g_miss_num THEN
1316: x_complete_rec.created_by := l_ctd_rec.created_by;
1317: END IF;
1318:
1319: -- last_update_login
1316: x_complete_rec.created_by := l_ctd_rec.created_by;
1317: END IF;
1318:
1319: -- last_update_login
1320: IF p_ctd_rec.last_update_login = FND_API.g_miss_num THEN
1321: x_complete_rec.last_update_login := l_ctd_rec.last_update_login;
1322: END IF;
1323:
1324: -- security_group_id
1321: x_complete_rec.last_update_login := l_ctd_rec.last_update_login;
1322: END IF;
1323:
1324: -- security_group_id
1325: IF p_ctd_rec.security_group_id = FND_API.g_miss_num THEN
1326: x_complete_rec.security_group_id := l_ctd_rec.security_group_id;
1327: END IF;
1328: -- Note: Developers need to modify the procedure
1329: -- to handle any business specific requirements.
1329: -- to handle any business specific requirements.
1330: END Complete_ctd_Rec;
1331: PROCEDURE Validate_ctd(
1332: p_api_version_number IN NUMBER,
1333: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1334: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1335: p_ctd_rec IN ctd_rec_type,
1336: x_return_status OUT NOCOPY VARCHAR2,
1337: x_msg_count OUT NOCOPY NUMBER,
1330: END Complete_ctd_Rec;
1331: PROCEDURE Validate_ctd(
1332: p_api_version_number IN NUMBER,
1333: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1334: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1335: p_ctd_rec IN ctd_rec_type,
1336: x_return_status OUT NOCOPY VARCHAR2,
1337: x_msg_count OUT NOCOPY NUMBER,
1338: x_msg_data OUT NOCOPY VARCHAR2
1347: -- Standard Start of API savepoint
1348: SAVEPOINT VALIDATE_Ctd_;
1349:
1350: -- Standard call to check for call compatibility.
1351: IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
1352: p_api_version_number,
1353: l_api_name,
1354: G_PKG_NAME)
1355: THEN
1352: p_api_version_number,
1353: l_api_name,
1354: G_PKG_NAME)
1355: THEN
1356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1357: END IF;
1358:
1359: -- Initialize message list if p_init_msg_list is set to TRUE.
1360: IF FND_API.to_Boolean( p_init_msg_list )
1356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1357: END IF;
1358:
1359: -- Initialize message list if p_init_msg_list is set to TRUE.
1360: IF FND_API.to_Boolean( p_init_msg_list )
1361: THEN
1362: FND_MSG_PUB.initialize;
1363: END IF;
1364: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1367: p_validation_mode => JTF_PLSQL_API.g_update,
1368: x_return_status => x_return_status
1369: );
1370:
1371: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1372: RAISE FND_API.G_EXC_ERROR;
1373: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1374: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1375: END IF;
1368: x_return_status => x_return_status
1369: );
1370:
1371: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1372: RAISE FND_API.G_EXC_ERROR;
1373: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1374: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1375: END IF;
1376: END IF;
1369: );
1370:
1371: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1372: RAISE FND_API.G_EXC_ERROR;
1373: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1374: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1375: END IF;
1376: END IF;
1377:
1370:
1371: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1372: RAISE FND_API.G_EXC_ERROR;
1373: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1374: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1375: END IF;
1376: END IF;
1377:
1378: Complete_ctd_Rec(
1382:
1383: IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
1384: Validate_ctd_Rec(
1385: p_api_version_number => 1.0,
1386: p_init_msg_list => FND_API.G_FALSE,
1387: x_return_status => x_return_status,
1388: x_msg_count => x_msg_count,
1389: x_msg_data => x_msg_data,
1390: p_ctd_rec => l_ctd_rec);
1388: x_msg_count => x_msg_count,
1389: x_msg_data => x_msg_data,
1390: p_ctd_rec => l_ctd_rec);
1391:
1392: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1393: RAISE FND_API.G_EXC_ERROR;
1394: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1395: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1396: END IF;
1389: x_msg_data => x_msg_data,
1390: p_ctd_rec => l_ctd_rec);
1391:
1392: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1393: RAISE FND_API.G_EXC_ERROR;
1394: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1395: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1396: END IF;
1397: END IF;
1390: p_ctd_rec => l_ctd_rec);
1391:
1392: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1393: RAISE FND_API.G_EXC_ERROR;
1394: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1395: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1396: END IF;
1397: END IF;
1398:
1391:
1392: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
1393: RAISE FND_API.G_EXC_ERROR;
1394: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1395: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1396: END IF;
1397: END IF;
1398:
1399:
1401: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'start');
1402:
1403:
1404: -- Initialize API return status to SUCCESS
1405: x_return_status := FND_API.G_RET_STS_SUCCESS;
1406:
1407:
1408: -- Debug Message
1409: AMS_UTILITY_PVT.debug_message('Private API: ' || l_api_name || 'end');
1415: );
1416: EXCEPTION
1417:
1418: WHEN AMS_Utility_PVT.resource_locked THEN
1419: x_return_status := FND_API.g_ret_sts_error;
1420: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1421:
1422: WHEN FND_API.G_EXC_ERROR THEN
1423: ROLLBACK TO VALIDATE_Ctd_;
1418: WHEN AMS_Utility_PVT.resource_locked THEN
1419: x_return_status := FND_API.g_ret_sts_error;
1420: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1421:
1422: WHEN FND_API.G_EXC_ERROR THEN
1423: ROLLBACK TO VALIDATE_Ctd_;
1424: x_return_status := FND_API.G_RET_STS_ERROR;
1425: -- Standard call to get message count and if count=1, get the message
1426: FND_MSG_PUB.Count_And_Get (
1420: AMS_Utility_PVT.Error_Message(p_message_name => 'AMS_API_RESOURCE_LOCKED');
1421:
1422: WHEN FND_API.G_EXC_ERROR THEN
1423: ROLLBACK TO VALIDATE_Ctd_;
1424: x_return_status := FND_API.G_RET_STS_ERROR;
1425: -- Standard call to get message count and if count=1, get the message
1426: FND_MSG_PUB.Count_And_Get (
1427: p_encoded => FND_API.G_FALSE,
1428: p_count => x_msg_count,
1423: ROLLBACK TO VALIDATE_Ctd_;
1424: x_return_status := FND_API.G_RET_STS_ERROR;
1425: -- Standard call to get message count and if count=1, get the message
1426: FND_MSG_PUB.Count_And_Get (
1427: p_encoded => FND_API.G_FALSE,
1428: p_count => x_msg_count,
1429: p_data => x_msg_data
1430: );
1431:
1428: p_count => x_msg_count,
1429: p_data => x_msg_data
1430: );
1431:
1432: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1433: ROLLBACK TO VALIDATE_Ctd_;
1434: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1435: -- Standard call to get message count and if count=1, get the message
1436: FND_MSG_PUB.Count_And_Get (
1430: );
1431:
1432: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1433: ROLLBACK TO VALIDATE_Ctd_;
1434: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1435: -- Standard call to get message count and if count=1, get the message
1436: FND_MSG_PUB.Count_And_Get (
1437: p_encoded => FND_API.G_FALSE,
1438: p_count => x_msg_count,
1433: ROLLBACK TO VALIDATE_Ctd_;
1434: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1435: -- Standard call to get message count and if count=1, get the message
1436: FND_MSG_PUB.Count_And_Get (
1437: p_encoded => FND_API.G_FALSE,
1438: p_count => x_msg_count,
1439: p_data => x_msg_data
1440: );
1441:
1440: );
1441:
1442: WHEN OTHERS THEN
1443: ROLLBACK TO VALIDATE_Ctd_;
1444: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1445: IF FND_MSG_PUB.Check_Msg_Level ( FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1446: THEN
1447: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1448: END IF;
1447: FND_MSG_PUB.Add_Exc_Msg( G_PKG_NAME,l_api_name);
1448: END IF;
1449: -- Standard call to get message count and if count=1, get the message
1450: FND_MSG_PUB.Count_And_Get (
1451: p_encoded => FND_API.G_FALSE,
1452: p_count => x_msg_count,
1453: p_data => x_msg_data
1454: );
1455: End Validate_Ctd;
1456:
1457:
1458: PROCEDURE Validate_ctd_rec(
1459: p_api_version_number IN NUMBER,
1460: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1461: x_return_status OUT NOCOPY VARCHAR2,
1462: x_msg_count OUT NOCOPY NUMBER,
1463: x_msg_data OUT NOCOPY VARCHAR2,
1464: p_ctd_rec IN ctd_rec_type
1465: )
1466: IS
1467: BEGIN
1468: -- Initialize message list if p_init_msg_list is set to TRUE.
1469: IF FND_API.to_Boolean( p_init_msg_list )
1470: THEN
1471: FND_MSG_PUB.initialize;
1472: END IF;
1473:
1471: FND_MSG_PUB.initialize;
1472: END IF;
1473:
1474: -- Initialize API return status to SUCCESS
1475: x_return_status := FND_API.G_RET_STS_SUCCESS;
1476:
1477: -- Hint: Validate data
1478: -- If data not valid
1479: -- THEN
1476:
1477: -- Hint: Validate data
1478: -- If data not valid
1479: -- THEN
1480: -- x_return_status := FND_API.G_RET_STS_ERROR;
1481:
1482: -- Debug Message
1483: AMS_UTILITY_PVT.debug_message('Private API: Validate_dm_model_rec');
1484: -- Standard call to get message count and if count is 1, get message info.
1506: )
1507: IS
1508:
1509: BEGIN
1510: x_return_status := FND_API.g_ret_sts_success;
1511:
1512: IF P_ctd_rec.ctd_id = FND_API.g_miss_num OR P_ctd_rec.ctd_id IS NULL THEN
1513: --AMS_Utility_PVT.Error_Message('AMS_ctd_NO_ctd_id');
1514: x_return_status := FND_API.g_ret_sts_error;
1508:
1509: BEGIN
1510: x_return_status := FND_API.g_ret_sts_success;
1511:
1512: IF P_ctd_rec.ctd_id = FND_API.g_miss_num OR P_ctd_rec.ctd_id IS NULL THEN
1513: --AMS_Utility_PVT.Error_Message('AMS_ctd_NO_ctd_id');
1514: x_return_status := FND_API.g_ret_sts_error;
1515: FND_MESSAGE.set_name('AMS', 'AMS_ctd_NO_ctd_id');
1516: FND_MSG_PUB.add;
1510: x_return_status := FND_API.g_ret_sts_success;
1511:
1512: IF P_ctd_rec.ctd_id = FND_API.g_miss_num OR P_ctd_rec.ctd_id IS NULL THEN
1513: --AMS_Utility_PVT.Error_Message('AMS_ctd_NO_ctd_id');
1514: x_return_status := FND_API.g_ret_sts_error;
1515: FND_MESSAGE.set_name('AMS', 'AMS_ctd_NO_ctd_id');
1516: FND_MSG_PUB.add;
1517: RETURN;
1518: END IF;
1519:
1520: IF P_ctd_rec.track_url IS NOT NULL THEN
1521: IF P_ctd_rec.forward_url IS NULL AND P_ctd_rec.action_id =1 THEN
1522: --AMS_Utility_PVT.Error_Message('AMS_ctd_NO_FORWARD_URL');
1523: x_return_status := FND_API.g_ret_sts_error;
1524: FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1525: FND_MSG_PUB.add;
1526: RETURN;
1527: ELSIF P_ctd_rec.action_id = 5 THEN -- Go to Section. Site and Section should be provided
1525: FND_MSG_PUB.add;
1526: RETURN;
1527: ELSIF P_ctd_rec.action_id = 5 THEN -- Go to Section. Site and Section should be provided
1528: IF P_ctd_rec.forward_url like '%go=section%' AND (P_ctd_rec.forward_url not like '%minisite=%' OR P_ctd_rec.forward_url not like '%section=%') THEN
1529: x_return_status := FND_API.g_ret_sts_error;
1530: FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1531: FND_MSG_PUB.add;
1532: RETURN;
1533: END IF;
1534: RETURN;
1535:
1536: ELSIF P_ctd_rec.action_id = 7 THEN -- Goto Site. Site should be provided
1537: IF P_ctd_rec.forward_url like '%go=catalog%' AND P_ctd_rec.forward_url not like '%minisite=%' THEN
1538: x_return_status := FND_API.g_ret_sts_error;
1539: FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1540: FND_MSG_PUB.add;
1541: RETURN;
1542: END IF;
1540: FND_MSG_PUB.add;
1541: RETURN;
1542: END IF;
1543: ELSIF P_ctd_rec.action_id = 8 AND P_ctd_rec.forward_url like '%TO_BE_COMPUTED%' THEN -- Goto Web Script. Script should be provided
1544: x_return_status := FND_API.g_ret_sts_error;
1545: FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1546: FND_MSG_PUB.add;
1547: RETURN;
1548: ELSIF P_ctd_rec.action_id = 9 THEN -- Goto Content item. Item and stylesheet should be provided
1546: FND_MSG_PUB.add;
1547: RETURN;
1548: ELSIF P_ctd_rec.action_id = 9 THEN -- Goto Content item. Item and stylesheet should be provided
1549: IF P_ctd_rec.forward_url like '%cItemId=&%' OR P_ctd_rec.forward_url like '%stlId=&%' THEN
1550: x_return_status := FND_API.g_ret_sts_error;
1551: FND_MESSAGE.set_name('AMS', 'AMS_PU_REQ_FIELDS_NOT_MAPPED');
1552: FND_MSG_PUB.add;
1553: RETURN;
1554: END IF;
1554: END IF;
1555: END IF;
1556:
1557: ELSIF P_ctd_rec.action_id IS NOT NULL AND P_ctd_rec.track_url IS NULL THEN
1558: x_return_status := FND_API.g_ret_sts_error;
1559: FND_MESSAGE.set_name('AMS', 'AMS_CTD_NO_TRACK_GEN');
1560: FND_MSG_PUB.add;
1561: RETURN;
1562: END IF;