7: g_view_name CONSTANT VARCHAR2(48) := 'jtf_dsp_amv_items_v';
8:
9: PROCEDURE list_deliverable (
10: p_api_version IN NUMBER,
11: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
12: x_return_status OUT VARCHAR2,
13: x_msg_count OUT NUMBER,
14: x_msg_data OUT VARCHAR2,
15: p_item_type IN VARCHAR2,
66:
67:
68: PROCEDURE list_deliverable (
69: p_api_version IN NUMBER,
70: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
71: x_return_status OUT VARCHAR2,
72: x_msg_count OUT NUMBER,
73: x_msg_data OUT VARCHAR2,
74: p_category_id IN NUMBER,
127:
128: BEGIN
129:
130: -- Standard call to check for call compatibility
131: IF NOT FND_API.compatible_api_call(
132: g_api_version,
133: p_api_version,
134: l_api_name,
135: g_pkg_name
133: p_api_version,
134: l_api_name,
135: g_pkg_name
136: ) THEN
137: RAISE FND_API.g_exc_unexpected_error;
138: END IF;
139:
140: -- Initialize message list if p_init_msg_list is set to TRUE
141: IF FND_API.to_boolean(p_init_msg_list) THEN
137: RAISE FND_API.g_exc_unexpected_error;
138: END IF;
139:
140: -- Initialize message list if p_init_msg_list is set to TRUE
141: IF FND_API.to_boolean(p_init_msg_list) THEN
142: FND_MSG_PUB.initialize;
143: END IF;
144:
145: -- Initialize API rturn status to success
142: FND_MSG_PUB.initialize;
143: END IF;
144:
145: -- Initialize API rturn status to success
146: x_return_status := FND_API.g_ret_sts_success;
147:
148: -- API body
149:
150: IF p_start_id < -1 OR p_batch_size < 0
152: FND_MESSAGE.set_name('JTF', 'JTF_DSP_QUERY_INVLD');
153: FND_MESSAGE.set_token('0', TO_CHAR(p_start_id));
154: FND_MESSAGE.set_token('1', TO_CHAR(p_batch_size));
155: FND_MSG_PUB.add;
156: RAISE FND_API.g_exc_unexpected_error;
157: END IF;
158:
159: IF p_category_id IS NOT NULL
160: AND TRIM(p_item_applicable_to) <> 'CATEGORY' THEN
161: FND_MESSAGE.set_name('JTF', 'JTF_DSP_AVAIL_INVLD');
162: FND_MESSAGE.set_token('0', TO_CHAR(p_category_id));
163: FND_MESSAGE.set_token('1', p_item_applicable_to);
164: FND_MSG_PUB.add;
165: RAISE FND_API.g_exc_unexpected_error;
166: END IF;
167:
168: IF TRIM(p_item_type) IS NOT NULL THEN
169: l_flag := 1;
249: CLOSE l_dlv_cv;
250:
251: IF x_row_count = 0 THEN
252: FND_MSG_PUB.count_and_get(
253: p_encoded => FND_API.g_false,
254: p_count => x_msg_count,
255: p_data => x_msg_data
256: );
257: RETURN;
274: -- Get matched rows
275: IF p_start_id > -1 THEN
276: IF p_start_id >= x_row_count THEN
277: FND_MSG_PUB.count_and_get(
278: p_encoded => FND_API.g_false,
279: p_count => x_msg_count,
280: p_data => x_msg_data
281: );
282: RETURN;
611: */
612:
613: -- Standard call to get message count and if count is 1, get message info
614: FND_MSG_PUB.count_and_get(
615: p_encoded => FND_API.g_false,
616: p_count => x_msg_count,
617: p_data => x_msg_data
618: );
619:
618: );
619:
620: EXCEPTION
621:
622: WHEN FND_API.g_exc_unexpected_error THEN
623: x_return_status := FND_API.g_ret_sts_unexp_error ;
624: FND_MSG_PUB.count_and_get(
625: p_encoded => FND_API.g_false,
626: p_count => x_msg_count,
619:
620: EXCEPTION
621:
622: WHEN FND_API.g_exc_unexpected_error THEN
623: x_return_status := FND_API.g_ret_sts_unexp_error ;
624: FND_MSG_PUB.count_and_get(
625: p_encoded => FND_API.g_false,
626: p_count => x_msg_count,
627: p_data => x_msg_data
621:
622: WHEN FND_API.g_exc_unexpected_error THEN
623: x_return_status := FND_API.g_ret_sts_unexp_error ;
624: FND_MSG_PUB.count_and_get(
625: p_encoded => FND_API.g_false,
626: p_count => x_msg_count,
627: p_data => x_msg_data
628: );
629:
627: p_data => x_msg_data
628: );
629:
630: WHEN OTHERS THEN
631: x_return_status := FND_API.g_ret_sts_unexp_error ;
632:
633: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
634: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
635: END IF;
634: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
635: END IF;
636:
637: FND_MSG_PUB.count_and_get(
638: p_encoded => FND_API.g_false,
639: p_count => x_msg_count,
640: p_data => x_msg_data
641: );
642:
665:
666: ---------------------------------------------------------------------
667: PROCEDURE save_deliverable (
668: p_api_version IN NUMBER,
669: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
670: p_commit IN VARCHAR2 := FND_API.g_false,
671: x_return_status OUT VARCHAR2,
672: x_msg_count OUT NUMBER,
673: x_msg_data OUT VARCHAR2,
666: ---------------------------------------------------------------------
667: PROCEDURE save_deliverable (
668: p_api_version IN NUMBER,
669: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
670: p_commit IN VARCHAR2 := FND_API.g_false,
671: x_return_status OUT VARCHAR2,
672: x_msg_count OUT NUMBER,
673: x_msg_data OUT VARCHAR2,
674: p_deliverable_rec IN OUT DELIVERABLE_REC_TYPE ) IS
689: -- Standard start of API savepoint
690: SAVEPOINT save_deliverable_grp;
691:
692: -- Standard call to check for call compatibility
693: IF NOT FND_API.compatible_api_call(
694: g_api_version,
695: p_api_version,
696: l_api_name,
697: g_pkg_name
695: p_api_version,
696: l_api_name,
697: g_pkg_name
698: ) THEN
699: RAISE FND_API.g_exc_unexpected_error;
700: END IF;
701:
702: -- Initialize message list if p_init_msg_list is set to TRUE
703: IF FND_API.to_boolean(p_init_msg_list) THEN
699: RAISE FND_API.g_exc_unexpected_error;
700: END IF;
701:
702: -- Initialize message list if p_init_msg_list is set to TRUE
703: IF FND_API.to_boolean(p_init_msg_list) THEN
704: FND_MSG_PUB.initialize;
705: END IF;
706:
707: -- Initialize API rturn status to success
704: FND_MSG_PUB.initialize;
705: END IF;
706:
707: -- Initialize API rturn status to success
708: x_return_status := FND_API.g_ret_sts_success;
709:
710: -- API body
711:
712: l_item_rec.external_access_flag := NULL;
737: l_item_rec.application_id := l_appl_id;
738:
739: /*
740: p_deliverable_rec.x_action_status
741: := FND_API.g_ret_sts_error;
742: */
743:
744: l_item_rec.item_id
745: := p_deliverable_rec.deliverable_id;
752: := p_deliverable_rec.object_version_number;
753:
754: IF NOT JTF_DSPMGRVALIDATION_GRP.check_deliverable_accessname(
755: l_item_rec.item_id, l_item_rec.access_name) THEN
756: RAISE FND_API.g_exc_error;
757: END IF;
758:
759: IF l_item_rec.item_id IS NOT NULL THEN
760: -- Update an existing deliverable
775: p_item_rec => l_item_rec,
776: x_item_id => l_deliverable_id
777: );
778:
779: IF l_return_status = FND_API.g_ret_sts_error THEN
780: RAISE FND_API.g_exc_error;
781: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
782: RAISE FND_API.g_exc_unexpected_error;
783: END IF;
776: x_item_id => l_deliverable_id
777: );
778:
779: IF l_return_status = FND_API.g_ret_sts_error THEN
780: RAISE FND_API.g_exc_error;
781: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
782: RAISE FND_API.g_exc_unexpected_error;
783: END IF;
784:
777: );
778:
779: IF l_return_status = FND_API.g_ret_sts_error THEN
780: RAISE FND_API.g_exc_error;
781: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
782: RAISE FND_API.g_exc_unexpected_error;
783: END IF;
784:
785: IF TRIM(p_deliverable_rec.keywords) IS NOT NULL THEN
778:
779: IF l_return_status = FND_API.g_ret_sts_error THEN
780: RAISE FND_API.g_exc_error;
781: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
782: RAISE FND_API.g_exc_unexpected_error;
783: END IF;
784:
785: IF TRIM(p_deliverable_rec.keywords) IS NOT NULL THEN
786: JTF_AMV_ITEM_PUB.add_itemkeyword(
791: p_item_id => l_deliverable_id,
792: p_keyword => p_deliverable_rec.keywords
793: );
794:
795: IF l_return_status = FND_API.g_ret_sts_error THEN
796: RAISE FND_API.g_exc_error;
797: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
798: RAISE FND_API.g_exc_unexpected_error;
799: END IF;
792: p_keyword => p_deliverable_rec.keywords
793: );
794:
795: IF l_return_status = FND_API.g_ret_sts_error THEN
796: RAISE FND_API.g_exc_error;
797: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
798: RAISE FND_API.g_exc_unexpected_error;
799: END IF;
800: END IF;
793: );
794:
795: IF l_return_status = FND_API.g_ret_sts_error THEN
796: RAISE FND_API.g_exc_error;
797: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
798: RAISE FND_API.g_exc_unexpected_error;
799: END IF;
800: END IF;
801:
794:
795: IF l_return_status = FND_API.g_ret_sts_error THEN
796: RAISE FND_API.g_exc_error;
797: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
798: RAISE FND_API.g_exc_unexpected_error;
799: END IF;
800: END IF;
801:
802: p_deliverable_rec.deliverable_id := l_deliverable_id;
803: p_deliverable_rec.object_version_number := 1;
804:
805: ELSE
806:
807: l_item_rec.deliverable_type_code := FND_API.g_miss_char;
808: l_item_rec.applicable_to_code := FND_API.g_miss_char;
809:
810: JTF_AMV_ITEM_PUB.update_item(
811: p_api_version => g_amv_api_version,
804:
805: ELSE
806:
807: l_item_rec.deliverable_type_code := FND_API.g_miss_char;
808: l_item_rec.applicable_to_code := FND_API.g_miss_char;
809:
810: JTF_AMV_ITEM_PUB.update_item(
811: p_api_version => g_amv_api_version,
812: x_return_status => l_return_status,
814: x_msg_data => x_msg_data,
815: p_item_rec => l_item_rec
816: );
817:
818: IF l_return_status = FND_API.g_ret_sts_error THEN
819: RAISE FND_API.g_exc_error;
820: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
821: RAISE FND_API.g_exc_unexpected_error;
822: END IF;
815: p_item_rec => l_item_rec
816: );
817:
818: IF l_return_status = FND_API.g_ret_sts_error THEN
819: RAISE FND_API.g_exc_error;
820: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
821: RAISE FND_API.g_exc_unexpected_error;
822: END IF;
823:
816: );
817:
818: IF l_return_status = FND_API.g_ret_sts_error THEN
819: RAISE FND_API.g_exc_error;
820: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
821: RAISE FND_API.g_exc_unexpected_error;
822: END IF;
823:
824: -- Delete existing keywords
817:
818: IF l_return_status = FND_API.g_ret_sts_error THEN
819: RAISE FND_API.g_exc_error;
820: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
821: RAISE FND_API.g_exc_unexpected_error;
822: END IF;
823:
824: -- Delete existing keywords
825: JTF_AMV_ITEM_PUB.delete_itemkeyword(
830: p_item_id => p_deliverable_rec.deliverable_id,
831: p_keyword_tab => NULL
832: );
833:
834: IF l_return_status = FND_API.g_ret_sts_error THEN
835: RAISE FND_API.g_exc_error;
836: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
837: RAISE FND_API.g_exc_unexpected_error;
838: END IF;
831: p_keyword_tab => NULL
832: );
833:
834: IF l_return_status = FND_API.g_ret_sts_error THEN
835: RAISE FND_API.g_exc_error;
836: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
837: RAISE FND_API.g_exc_unexpected_error;
838: END IF;
839:
832: );
833:
834: IF l_return_status = FND_API.g_ret_sts_error THEN
835: RAISE FND_API.g_exc_error;
836: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
837: RAISE FND_API.g_exc_unexpected_error;
838: END IF;
839:
840: IF TRIM(p_deliverable_rec.keywords) IS NOT NULL THEN
833:
834: IF l_return_status = FND_API.g_ret_sts_error THEN
835: RAISE FND_API.g_exc_error;
836: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
837: RAISE FND_API.g_exc_unexpected_error;
838: END IF;
839:
840: IF TRIM(p_deliverable_rec.keywords) IS NOT NULL THEN
841: JTF_AMV_ITEM_PUB.add_itemkeyword(
846: p_item_id => p_deliverable_rec.deliverable_id,
847: p_keyword => p_deliverable_rec.keywords
848: );
849:
850: IF l_return_status = FND_API.g_ret_sts_error THEN
851: RAISE FND_API.g_exc_error;
852: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
853: RAISE FND_API.g_exc_unexpected_error;
854: END IF;
847: p_keyword => p_deliverable_rec.keywords
848: );
849:
850: IF l_return_status = FND_API.g_ret_sts_error THEN
851: RAISE FND_API.g_exc_error;
852: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
853: RAISE FND_API.g_exc_unexpected_error;
854: END IF;
855: END IF;
848: );
849:
850: IF l_return_status = FND_API.g_ret_sts_error THEN
851: RAISE FND_API.g_exc_error;
852: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
853: RAISE FND_API.g_exc_unexpected_error;
854: END IF;
855: END IF;
856:
849:
850: IF l_return_status = FND_API.g_ret_sts_error THEN
851: RAISE FND_API.g_exc_error;
852: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
853: RAISE FND_API.g_exc_unexpected_error;
854: END IF;
855: END IF;
856:
857: -- update the object_version_number
860:
861: END IF;
862:
863: p_deliverable_rec.x_action_status
864: := FND_API.g_ret_sts_success;
865:
866: -- Check if the caller requested to commit ,
867: -- If p_commit set to true, commit the transaction
868: IF FND_API.to_boolean(p_commit) THEN
864: := FND_API.g_ret_sts_success;
865:
866: -- Check if the caller requested to commit ,
867: -- If p_commit set to true, commit the transaction
868: IF FND_API.to_boolean(p_commit) THEN
869: COMMIT;
870: END IF;
871:
872: -- Standard call to get message count and if count is 1, get message info
870: END IF;
871:
872: -- Standard call to get message count and if count is 1, get message info
873: FND_MSG_PUB.count_and_get(
874: p_encoded => FND_API.g_false,
875: p_count => x_msg_count,
876: p_data => x_msg_data
877: );
878:
877: );
878:
879: EXCEPTION
880:
881: WHEN FND_API.g_exc_error THEN
882: ROLLBACK TO save_deliverable_grp;
883: x_return_status := FND_API.g_ret_sts_error;
884: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_error;
885: FND_MSG_PUB.count_and_get(
879: EXCEPTION
880:
881: WHEN FND_API.g_exc_error THEN
882: ROLLBACK TO save_deliverable_grp;
883: x_return_status := FND_API.g_ret_sts_error;
884: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_error;
885: FND_MSG_PUB.count_and_get(
886: p_encoded => FND_API.g_false,
887: p_count => x_msg_count,
880:
881: WHEN FND_API.g_exc_error THEN
882: ROLLBACK TO save_deliverable_grp;
883: x_return_status := FND_API.g_ret_sts_error;
884: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_error;
885: FND_MSG_PUB.count_and_get(
886: p_encoded => FND_API.g_false,
887: p_count => x_msg_count,
888: p_data => x_msg_data
882: ROLLBACK TO save_deliverable_grp;
883: x_return_status := FND_API.g_ret_sts_error;
884: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_error;
885: FND_MSG_PUB.count_and_get(
886: p_encoded => FND_API.g_false,
887: p_count => x_msg_count,
888: p_data => x_msg_data
889: );
890:
887: p_count => x_msg_count,
888: p_data => x_msg_data
889: );
890:
891: WHEN FND_API.g_exc_unexpected_error THEN
892: ROLLBACK TO save_deliverable_grp;
893: x_return_status := FND_API.g_ret_sts_unexp_error;
894: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
895: FND_MSG_PUB.count_and_get(
889: );
890:
891: WHEN FND_API.g_exc_unexpected_error THEN
892: ROLLBACK TO save_deliverable_grp;
893: x_return_status := FND_API.g_ret_sts_unexp_error;
894: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
895: FND_MSG_PUB.count_and_get(
896: p_encoded => FND_API.g_false,
897: p_count => x_msg_count,
890:
891: WHEN FND_API.g_exc_unexpected_error THEN
892: ROLLBACK TO save_deliverable_grp;
893: x_return_status := FND_API.g_ret_sts_unexp_error;
894: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
895: FND_MSG_PUB.count_and_get(
896: p_encoded => FND_API.g_false,
897: p_count => x_msg_count,
898: p_data => x_msg_data
892: ROLLBACK TO save_deliverable_grp;
893: x_return_status := FND_API.g_ret_sts_unexp_error;
894: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
895: FND_MSG_PUB.count_and_get(
896: p_encoded => FND_API.g_false,
897: p_count => x_msg_count,
898: p_data => x_msg_data
899: );
900:
899: );
900:
901: WHEN OTHERS THEN
902: ROLLBACK TO save_deliverable_grp;
903: x_return_status := FND_API.g_ret_sts_unexp_error;
904: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
905:
906: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
907: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
900:
901: WHEN OTHERS THEN
902: ROLLBACK TO save_deliverable_grp;
903: x_return_status := FND_API.g_ret_sts_unexp_error;
904: p_deliverable_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
905:
906: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
907: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
908: END IF;
907: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
908: END IF;
909:
910: FND_MSG_PUB.count_and_get(
911: p_encoded => FND_API.g_false,
912: p_count => x_msg_count,
913: p_data => x_msg_data
914: );
915:
938:
939: ---------------------------------------------------------------------
940: PROCEDURE save_deliverable (
941: p_api_version IN NUMBER,
942: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
943: p_commit IN VARCHAR2 := FND_API.g_false,
944: x_return_status OUT VARCHAR2,
945: x_msg_count OUT NUMBER,
946: x_msg_data OUT VARCHAR2,
939: ---------------------------------------------------------------------
940: PROCEDURE save_deliverable (
941: p_api_version IN NUMBER,
942: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
943: p_commit IN VARCHAR2 := FND_API.g_false,
944: x_return_status OUT VARCHAR2,
945: x_msg_count OUT NUMBER,
946: x_msg_data OUT VARCHAR2,
947: p_deliverable_tbl IN OUT DELIVERABLE_TBL_TYPE ) IS
958: -- Standard start of API savepoint
959: SAVEPOINT save_deliverable_grp;
960:
961: -- Standard call to check for call compatibility
962: IF NOT FND_API.compatible_api_call(
963: g_api_version,
964: p_api_version,
965: l_api_name,
966: g_pkg_name
964: p_api_version,
965: l_api_name,
966: g_pkg_name
967: ) THEN
968: RAISE FND_API.g_exc_unexpected_error;
969: END IF;
970:
971: -- Initialize message list if p_init_msg_list is set to TRUE
972: IF FND_API.to_boolean(p_init_msg_list) THEN
968: RAISE FND_API.g_exc_unexpected_error;
969: END IF;
970:
971: -- Initialize message list if p_init_msg_list is set to TRUE
972: IF FND_API.to_boolean(p_init_msg_list) THEN
973: FND_MSG_PUB.initialize;
974: END IF;
975:
976: -- Initialize API rturn status to success
973: FND_MSG_PUB.initialize;
974: END IF;
975:
976: -- Initialize API rturn status to success
977: x_return_status := FND_API.g_ret_sts_success;
978:
979: -- API body
980:
981: IF p_deliverable_tbl IS NOT NULL THEN
988: x_msg_data => x_msg_data,
989: p_deliverable_rec => p_deliverable_tbl(l_index)
990: );
991:
992: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
993: x_return_status := FND_API.g_ret_sts_unexp_error;
994: ELSIF l_return_status = FND_API.g_ret_sts_error
995: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
996: x_return_status := FND_API.g_ret_sts_error;
989: p_deliverable_rec => p_deliverable_tbl(l_index)
990: );
991:
992: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
993: x_return_status := FND_API.g_ret_sts_unexp_error;
994: ELSIF l_return_status = FND_API.g_ret_sts_error
995: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
996: x_return_status := FND_API.g_ret_sts_error;
997: END IF;
990: );
991:
992: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
993: x_return_status := FND_API.g_ret_sts_unexp_error;
994: ELSIF l_return_status = FND_API.g_ret_sts_error
995: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
996: x_return_status := FND_API.g_ret_sts_error;
997: END IF;
998:
991:
992: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
993: x_return_status := FND_API.g_ret_sts_unexp_error;
994: ELSIF l_return_status = FND_API.g_ret_sts_error
995: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
996: x_return_status := FND_API.g_ret_sts_error;
997: END IF;
998:
999: END LOOP;
992: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
993: x_return_status := FND_API.g_ret_sts_unexp_error;
994: ELSIF l_return_status = FND_API.g_ret_sts_error
995: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
996: x_return_status := FND_API.g_ret_sts_error;
997: END IF;
998:
999: END LOOP;
1000: END IF;
1000: END IF;
1001:
1002: -- Check if the caller requested to commit ,
1003: -- If p_commit set to true, commit the transaction
1004: IF FND_API.to_boolean(p_commit) THEN
1005: COMMIT;
1006: END IF;
1007:
1008: -- Standard call to get message count and if count is 1, get message info
1006: END IF;
1007:
1008: -- Standard call to get message count and if count is 1, get message info
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:
1014:
1015:
1016: EXCEPTION
1017:
1018: WHEN FND_API.g_exc_error THEN
1019: ROLLBACK TO save_deliverable_grp;
1020: x_return_status := FND_API.g_ret_sts_error;
1021: FND_MSG_PUB.count_and_get(
1022: p_encoded => FND_API.g_false,
1016: EXCEPTION
1017:
1018: WHEN FND_API.g_exc_error THEN
1019: ROLLBACK TO save_deliverable_grp;
1020: x_return_status := FND_API.g_ret_sts_error;
1021: FND_MSG_PUB.count_and_get(
1022: p_encoded => FND_API.g_false,
1023: p_count => x_msg_count,
1024: p_data => x_msg_data
1018: WHEN FND_API.g_exc_error THEN
1019: ROLLBACK TO save_deliverable_grp;
1020: x_return_status := FND_API.g_ret_sts_error;
1021: FND_MSG_PUB.count_and_get(
1022: p_encoded => FND_API.g_false,
1023: p_count => x_msg_count,
1024: p_data => x_msg_data
1025: );
1026:
1023: p_count => x_msg_count,
1024: p_data => x_msg_data
1025: );
1026:
1027: WHEN FND_API.g_exc_unexpected_error THEN
1028: ROLLBACK TO save_deliverable_grp;
1029: x_return_status := FND_API.g_ret_sts_unexp_error ;
1030: FND_MSG_PUB.count_and_get(
1031: p_encoded => FND_API.g_false,
1025: );
1026:
1027: WHEN FND_API.g_exc_unexpected_error THEN
1028: ROLLBACK TO save_deliverable_grp;
1029: x_return_status := FND_API.g_ret_sts_unexp_error ;
1030: FND_MSG_PUB.count_and_get(
1031: p_encoded => FND_API.g_false,
1032: p_count => x_msg_count,
1033: p_data => x_msg_data
1027: WHEN FND_API.g_exc_unexpected_error THEN
1028: ROLLBACK TO save_deliverable_grp;
1029: x_return_status := FND_API.g_ret_sts_unexp_error ;
1030: FND_MSG_PUB.count_and_get(
1031: p_encoded => FND_API.g_false,
1032: p_count => x_msg_count,
1033: p_data => x_msg_data
1034: );
1035:
1035:
1036:
1037: WHEN OTHERS THEN
1038: ROLLBACK TO save_deliverable_grp;
1039: x_return_status := FND_API.g_ret_sts_unexp_error ;
1040:
1041: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1042: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1043: END IF;
1042: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1043: END IF;
1044:
1045: FND_MSG_PUB.count_and_get(
1046: p_encoded => FND_API.g_false,
1047: p_count => x_msg_count,
1048: p_data => x_msg_data
1049: );
1050:
1082:
1083: ---------------------------------------------------------------------
1084: PROCEDURE save_deliverable (
1085: p_api_version IN NUMBER,
1086: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1087: p_commit IN VARCHAR2 := FND_API.g_false,
1088: x_return_status OUT VARCHAR2,
1089: x_msg_count OUT NUMBER,
1090: x_msg_data OUT VARCHAR2,
1083: ---------------------------------------------------------------------
1084: PROCEDURE save_deliverable (
1085: p_api_version IN NUMBER,
1086: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1087: p_commit IN VARCHAR2 := FND_API.g_false,
1088: x_return_status OUT VARCHAR2,
1089: x_msg_count OUT NUMBER,
1090: x_msg_data OUT VARCHAR2,
1091: p_dlv_ath_rec IN OUT DLV_ATH_REC_TYPE ) IS
1093: l_api_name CONSTANT VARCHAR2(30) := 'save_deliverable';
1094: l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1095:
1096: l_operation_type VARCHAR2(10) := 'INSERT';
1097: l_create_attachment VARCHAR2(1) := FND_API.g_false;
1098: l_delete_mapping VARCHAR2(1) := FND_API.g_false;
1099: l_create_mapping VARCHAR2(1) := FND_API.g_false;
1100: l_attachment_id NUMBER;
1101:
1094: l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
1095:
1096: l_operation_type VARCHAR2(10) := 'INSERT';
1097: l_create_attachment VARCHAR2(1) := FND_API.g_false;
1098: l_delete_mapping VARCHAR2(1) := FND_API.g_false;
1099: l_create_mapping VARCHAR2(1) := FND_API.g_false;
1100: l_attachment_id NUMBER;
1101:
1102: l_deliverable_rec DELIVERABLE_REC_TYPE;
1095:
1096: l_operation_type VARCHAR2(10) := 'INSERT';
1097: l_create_attachment VARCHAR2(1) := FND_API.g_false;
1098: l_delete_mapping VARCHAR2(1) := FND_API.g_false;
1099: l_create_mapping VARCHAR2(1) := FND_API.g_false;
1100: l_attachment_id NUMBER;
1101:
1102: l_deliverable_rec DELIVERABLE_REC_TYPE;
1103: l_attachment_rec JTF_Attachment_GRP.ATTACHMENT_REC_TYPE;
1111: -- Standard start of API savepoint
1112: SAVEPOINT save_deliverable_grp;
1113:
1114: -- Standard call to check for call compatibility
1115: IF NOT FND_API.compatible_api_call(
1116: g_api_version,
1117: p_api_version,
1118: l_api_name,
1119: g_pkg_name
1117: p_api_version,
1118: l_api_name,
1119: g_pkg_name
1120: ) THEN
1121: RAISE FND_API.g_exc_unexpected_error;
1122: END IF;
1123:
1124: -- Initialize message list if p_init_msg_list is set to TRUE
1125: IF FND_API.to_boolean(p_init_msg_list) THEN
1121: RAISE FND_API.g_exc_unexpected_error;
1122: END IF;
1123:
1124: -- Initialize message list if p_init_msg_list is set to TRUE
1125: IF FND_API.to_boolean(p_init_msg_list) THEN
1126: FND_MSG_PUB.initialize;
1127: END IF;
1128:
1129: -- Initialize API rturn status to success
1126: FND_MSG_PUB.initialize;
1127: END IF;
1128:
1129: -- Initialize API rturn status to success
1130: x_return_status := FND_API.g_ret_sts_success;
1131:
1132: -- API body
1133:
1134: IF p_dlv_ath_rec.deliverable_id IS NOT NULL THEN
1157: p_dlv_ath_rec.deliverable_id := l_deliverable_rec.deliverable_id;
1158: p_dlv_ath_rec.object_version_number := l_deliverable_rec.object_version_number;
1159: p_dlv_ath_rec.x_action_status := l_deliverable_rec.x_action_status;
1160:
1161: IF l_return_status = FND_API.g_ret_sts_error THEN
1162: RAISE FND_API.g_exc_error;
1163: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1164: RAISE FND_API.g_exc_unexpected_error;
1165: END IF;
1158: p_dlv_ath_rec.object_version_number := l_deliverable_rec.object_version_number;
1159: p_dlv_ath_rec.x_action_status := l_deliverable_rec.x_action_status;
1160:
1161: IF l_return_status = FND_API.g_ret_sts_error THEN
1162: RAISE FND_API.g_exc_error;
1163: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1164: RAISE FND_API.g_exc_unexpected_error;
1165: END IF;
1166:
1159: p_dlv_ath_rec.x_action_status := l_deliverable_rec.x_action_status;
1160:
1161: IF l_return_status = FND_API.g_ret_sts_error THEN
1162: RAISE FND_API.g_exc_error;
1163: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1164: RAISE FND_API.g_exc_unexpected_error;
1165: END IF;
1166:
1167: -- Update/Create default attachment for all-site and all-language
1160:
1161: IF l_return_status = FND_API.g_ret_sts_error THEN
1162: RAISE FND_API.g_exc_error;
1163: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1164: RAISE FND_API.g_exc_unexpected_error;
1165: END IF;
1166:
1167: -- Update/Create default attachment for all-site and all-language
1168:
1173: IF l_operation_type = 'INSERT' THEN
1174:
1175: -- Create an attachment for all-site and all-language if any
1176: IF TRIM(p_dlv_ath_rec.ath_file_name) IS NOT NULL THEN
1177: l_create_attachment := FND_API.g_true;
1178: l_create_mapping := FND_API.g_true;
1179:
1180: END IF;
1181:
1174:
1175: -- Create an attachment for all-site and all-language if any
1176: IF TRIM(p_dlv_ath_rec.ath_file_name) IS NOT NULL THEN
1177: l_create_attachment := FND_API.g_true;
1178: l_create_mapping := FND_API.g_true;
1179:
1180: END IF;
1181:
1182: ELSE
1183:
1184: -- Update the default attachment for the existing deliverable
1185:
1186: IF TRIM(p_dlv_ath_rec.ath_file_name) IS NULL THEN
1187: l_delete_mapping := FND_API.g_true;
1188:
1189: ELSE
1190:
1191: -- Check if it's an existing attachment
1205: --modified by G. Zhang 05/23/01 10:57AM
1206: --IF NOT JTF_DSPMGRVALIDATION_GRP.check_attachment_deliverable(
1207: -- l_attachment_id, p_dlv_ath_rec.deliverable_id) THEN
1208: -- -- invalid attachment for the given deliverable
1209: -- RAISE FND_API.g_exc_error;
1210: --END IF;
1211:
1212: IF NOT JTF_DSPMGRVALIDATION_GRP.check_default_attachment(
1213: l_attachment_id) THEN
1210: --END IF;
1211:
1212: IF NOT JTF_DSPMGRVALIDATION_GRP.check_default_attachment(
1213: l_attachment_id) THEN
1214: l_delete_mapping := FND_API.g_true;
1215: l_create_mapping := FND_API.g_true;
1216: END IF;
1217:
1218: ELSE
1211:
1212: IF NOT JTF_DSPMGRVALIDATION_GRP.check_default_attachment(
1213: l_attachment_id) THEN
1214: l_delete_mapping := FND_API.g_true;
1215: l_create_mapping := FND_API.g_true;
1216: END IF;
1217:
1218: ELSE
1219: -- new attachment
1216: END IF;
1217:
1218: ELSE
1219: -- new attachment
1220: l_create_attachment := FND_API.g_true;
1221: l_delete_mapping := FND_API.g_true;
1222: l_create_mapping := FND_API.g_true;
1223: END IF;
1224:
1217:
1218: ELSE
1219: -- new attachment
1220: l_create_attachment := FND_API.g_true;
1221: l_delete_mapping := FND_API.g_true;
1222: l_create_mapping := FND_API.g_true;
1223: END IF;
1224:
1225: END IF;
1218: ELSE
1219: -- new attachment
1220: l_create_attachment := FND_API.g_true;
1221: l_delete_mapping := FND_API.g_true;
1222: l_create_mapping := FND_API.g_true;
1223: END IF;
1224:
1225: END IF;
1226:
1225: END IF;
1226:
1227: END IF;
1228:
1229: IF l_create_attachment = FND_API.g_true THEN
1230: l_attachment_rec.attachment_id := NULL;
1231: l_attachment_rec.deliverable_id := p_dlv_ath_rec.deliverable_id;
1232: l_attachment_rec.file_name := p_dlv_ath_rec.ath_file_name;
1233:
1244: x_msg_data => x_msg_data,
1245: p_attachment_rec => l_attachment_rec
1246: );
1247:
1248: IF l_return_status = FND_API.g_ret_sts_error THEN
1249: RAISE FND_API.g_exc_error;
1250: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1251: RAISE FND_API.g_exc_unexpected_error;
1252: END IF;
1245: p_attachment_rec => l_attachment_rec
1246: );
1247:
1248: IF l_return_status = FND_API.g_ret_sts_error THEN
1249: RAISE FND_API.g_exc_error;
1250: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1251: RAISE FND_API.g_exc_unexpected_error;
1252: END IF;
1253:
1246: );
1247:
1248: IF l_return_status = FND_API.g_ret_sts_error THEN
1249: RAISE FND_API.g_exc_error;
1250: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1251: RAISE FND_API.g_exc_unexpected_error;
1252: END IF;
1253:
1254: l_attachment_id := l_attachment_rec.attachment_id;
1247:
1248: IF l_return_status = FND_API.g_ret_sts_error THEN
1249: RAISE FND_API.g_exc_error;
1250: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1251: RAISE FND_API.g_exc_unexpected_error;
1252: END IF;
1253:
1254: l_attachment_id := l_attachment_rec.attachment_id;
1255: END IF;
1253:
1254: l_attachment_id := l_attachment_rec.attachment_id;
1255: END IF;
1256:
1257: IF l_delete_mapping = FND_API.g_true THEN
1258: -- Delete all-site and all-lang mapping for this deliverable
1259: JTF_PhysicalMap_GRP.delete_dlv_all_all(
1260: p_deliverable_id => p_dlv_ath_rec.deliverable_id
1261: );
1260: p_deliverable_id => p_dlv_ath_rec.deliverable_id
1261: );
1262: END IF;
1263:
1264: IF l_create_mapping = FND_API.g_true THEN
1265: -- Create all-site and all-lang mapping for this default attachment
1266: JTF_PhysicalMap_GRP.save_physicalmap(
1267: p_api_version => p_api_version,
1268: x_return_status => l_return_status,
1272: p_msite_id => NULL,
1273: p_language_code_tbl => l_language_code_tbl
1274: );
1275:
1276: IF l_return_status = FND_API.g_ret_sts_error THEN
1277: RAISE FND_API.g_exc_error;
1278: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1279: RAISE FND_API.g_exc_unexpected_error;
1280: END IF;
1273: p_language_code_tbl => l_language_code_tbl
1274: );
1275:
1276: IF l_return_status = FND_API.g_ret_sts_error THEN
1277: RAISE FND_API.g_exc_error;
1278: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1279: RAISE FND_API.g_exc_unexpected_error;
1280: END IF;
1281: END IF;
1274: );
1275:
1276: IF l_return_status = FND_API.g_ret_sts_error THEN
1277: RAISE FND_API.g_exc_error;
1278: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1279: RAISE FND_API.g_exc_unexpected_error;
1280: END IF;
1281: END IF;
1282:
1275:
1276: IF l_return_status = FND_API.g_ret_sts_error THEN
1277: RAISE FND_API.g_exc_error;
1278: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1279: RAISE FND_API.g_exc_unexpected_error;
1280: END IF;
1281: END IF;
1282:
1283: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_success;
1279: RAISE FND_API.g_exc_unexpected_error;
1280: END IF;
1281: END IF;
1282:
1283: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_success;
1284:
1285: EXCEPTION
1286:
1287: WHEN FND_API.g_exc_error THEN
1283: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_success;
1284:
1285: EXCEPTION
1286:
1287: WHEN FND_API.g_exc_error THEN
1288: ROLLBACK TO save_one_attachment_grp;
1289: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_error;
1290: x_return_status := FND_API.g_ret_sts_error;
1291:
1285: EXCEPTION
1286:
1287: WHEN FND_API.g_exc_error THEN
1288: ROLLBACK TO save_one_attachment_grp;
1289: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_error;
1290: x_return_status := FND_API.g_ret_sts_error;
1291:
1292: WHEN FND_API.g_exc_unexpected_error THEN
1293: ROLLBACK TO save_one_attachment_grp;
1286:
1287: WHEN FND_API.g_exc_error THEN
1288: ROLLBACK TO save_one_attachment_grp;
1289: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_error;
1290: x_return_status := FND_API.g_ret_sts_error;
1291:
1292: WHEN FND_API.g_exc_unexpected_error THEN
1293: ROLLBACK TO save_one_attachment_grp;
1294: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1288: ROLLBACK TO save_one_attachment_grp;
1289: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_error;
1290: x_return_status := FND_API.g_ret_sts_error;
1291:
1292: WHEN FND_API.g_exc_unexpected_error THEN
1293: ROLLBACK TO save_one_attachment_grp;
1294: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1295: x_return_status := FND_API.g_ret_sts_unexp_error;
1296:
1290: x_return_status := FND_API.g_ret_sts_error;
1291:
1292: WHEN FND_API.g_exc_unexpected_error THEN
1293: ROLLBACK TO save_one_attachment_grp;
1294: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1295: x_return_status := FND_API.g_ret_sts_unexp_error;
1296:
1297: WHEN OTHERS THEN
1298: ROLLBACK TO save_one_attachment_grp;
1291:
1292: WHEN FND_API.g_exc_unexpected_error THEN
1293: ROLLBACK TO save_one_attachment_grp;
1294: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1295: x_return_status := FND_API.g_ret_sts_unexp_error;
1296:
1297: WHEN OTHERS THEN
1298: ROLLBACK TO save_one_attachment_grp;
1299: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1295: x_return_status := FND_API.g_ret_sts_unexp_error;
1296:
1297: WHEN OTHERS THEN
1298: ROLLBACK TO save_one_attachment_grp;
1299: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1300: x_return_status := FND_API.g_ret_sts_unexp_error ;
1301:
1302: IF FND_MSG_PUB.check_msg_level(
1303: FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1296:
1297: WHEN OTHERS THEN
1298: ROLLBACK TO save_one_attachment_grp;
1299: p_dlv_ath_rec.x_ath_action_status := FND_API.g_ret_sts_unexp_error;
1300: x_return_status := FND_API.g_ret_sts_unexp_error ;
1301:
1302: IF FND_MSG_PUB.check_msg_level(
1303: FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1304: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1306: END;
1307:
1308: -- Check if the caller requested to commit ,
1309: -- If p_commit set to true, commit the transaction
1310: IF FND_API.to_boolean(p_commit) THEN
1311: COMMIT;
1312: END IF;
1313:
1314: -- Standard call to get message count and if count is 1, get message info
1312: END IF;
1313:
1314: -- Standard call to get message count and if count is 1, get message info
1315: FND_MSG_PUB.count_and_get(
1316: p_encoded => FND_API.g_false,
1317: p_count => x_msg_count,
1318: p_data => x_msg_data
1319: );
1320:
1319: );
1320:
1321: EXCEPTION
1322:
1323: WHEN FND_API.g_exc_error THEN
1324: ROLLBACK TO save_deliverable_grp;
1325: x_return_status := FND_API.g_ret_sts_error;
1326: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_error;
1327: FND_MSG_PUB.count_and_get(
1321: EXCEPTION
1322:
1323: WHEN FND_API.g_exc_error THEN
1324: ROLLBACK TO save_deliverable_grp;
1325: x_return_status := FND_API.g_ret_sts_error;
1326: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_error;
1327: FND_MSG_PUB.count_and_get(
1328: p_encoded => FND_API.g_false,
1329: p_count => x_msg_count,
1322:
1323: WHEN FND_API.g_exc_error THEN
1324: ROLLBACK TO save_deliverable_grp;
1325: x_return_status := FND_API.g_ret_sts_error;
1326: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_error;
1327: FND_MSG_PUB.count_and_get(
1328: p_encoded => FND_API.g_false,
1329: p_count => x_msg_count,
1330: p_data => x_msg_data
1324: ROLLBACK TO save_deliverable_grp;
1325: x_return_status := FND_API.g_ret_sts_error;
1326: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_error;
1327: FND_MSG_PUB.count_and_get(
1328: p_encoded => FND_API.g_false,
1329: p_count => x_msg_count,
1330: p_data => x_msg_data
1331: );
1332:
1329: p_count => x_msg_count,
1330: p_data => x_msg_data
1331: );
1332:
1333: WHEN FND_API.g_exc_unexpected_error THEN
1334: ROLLBACK TO save_deliverable_grp;
1335: x_return_status := FND_API.g_ret_sts_unexp_error ;
1336: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1337: FND_MSG_PUB.count_and_get(
1331: );
1332:
1333: WHEN FND_API.g_exc_unexpected_error THEN
1334: ROLLBACK TO save_deliverable_grp;
1335: x_return_status := FND_API.g_ret_sts_unexp_error ;
1336: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1337: FND_MSG_PUB.count_and_get(
1338: p_encoded => FND_API.g_false,
1339: p_count => x_msg_count,
1332:
1333: WHEN FND_API.g_exc_unexpected_error THEN
1334: ROLLBACK TO save_deliverable_grp;
1335: x_return_status := FND_API.g_ret_sts_unexp_error ;
1336: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1337: FND_MSG_PUB.count_and_get(
1338: p_encoded => FND_API.g_false,
1339: p_count => x_msg_count,
1340: p_data => x_msg_data
1334: ROLLBACK TO save_deliverable_grp;
1335: x_return_status := FND_API.g_ret_sts_unexp_error ;
1336: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1337: FND_MSG_PUB.count_and_get(
1338: p_encoded => FND_API.g_false,
1339: p_count => x_msg_count,
1340: p_data => x_msg_data
1341: );
1342:
1341: );
1342:
1343: WHEN OTHERS THEN
1344: ROLLBACK TO save_deliverable_grp;
1345: x_return_status := FND_API.g_ret_sts_unexp_error ;
1346: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1347:
1348: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1349: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1342:
1343: WHEN OTHERS THEN
1344: ROLLBACK TO save_deliverable_grp;
1345: x_return_status := FND_API.g_ret_sts_unexp_error ;
1346: p_dlv_ath_rec.x_action_status := FND_API.g_ret_sts_unexp_error;
1347:
1348: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1349: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1350: END IF;
1349: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1350: END IF;
1351:
1352: FND_MSG_PUB.count_and_get(
1353: p_encoded => FND_API.g_false,
1354: p_count => x_msg_count,
1355: p_data => x_msg_data
1356: );
1357:
1389:
1390: ---------------------------------------------------------------------
1391: PROCEDURE save_deliverable (
1392: p_api_version IN NUMBER,
1393: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1394: p_commit IN VARCHAR2 := FND_API.g_false,
1395: x_return_status OUT VARCHAR2,
1396: x_msg_count OUT NUMBER,
1397: x_msg_data OUT VARCHAR2,
1390: ---------------------------------------------------------------------
1391: PROCEDURE save_deliverable (
1392: p_api_version IN NUMBER,
1393: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1394: p_commit IN VARCHAR2 := FND_API.g_false,
1395: x_return_status OUT VARCHAR2,
1396: x_msg_count OUT NUMBER,
1397: x_msg_data OUT VARCHAR2,
1398: p_dlv_ath_tbl IN OUT DLV_ATH_TBL_TYPE ) IS
1407: -- Standard start of API savepoint
1408: SAVEPOINT save_deliverable_grp;
1409:
1410: -- Standard call to check for call compatibility
1411: IF NOT FND_API.compatible_api_call(
1412: g_api_version,
1413: p_api_version,
1414: l_api_name,
1415: g_pkg_name
1413: p_api_version,
1414: l_api_name,
1415: g_pkg_name
1416: ) THEN
1417: RAISE FND_API.g_exc_unexpected_error;
1418: END IF;
1419:
1420: -- Initialize message list if p_init_msg_list is set to TRUE
1421: IF FND_API.to_boolean(p_init_msg_list) THEN
1417: RAISE FND_API.g_exc_unexpected_error;
1418: END IF;
1419:
1420: -- Initialize message list if p_init_msg_list is set to TRUE
1421: IF FND_API.to_boolean(p_init_msg_list) THEN
1422: FND_MSG_PUB.initialize;
1423: END IF;
1424:
1425: -- Initialize API rturn status to success
1422: FND_MSG_PUB.initialize;
1423: END IF;
1424:
1425: -- Initialize API rturn status to success
1426: x_return_status := FND_API.g_ret_sts_success;
1427:
1428: -- API body
1429:
1430: IF p_dlv_ath_tbl IS NOT NULL THEN
1437: x_msg_data => x_msg_data,
1438: p_dlv_ath_rec => p_dlv_ath_tbl(l_index)
1439: );
1440:
1441: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1442: x_return_status := FND_API.g_ret_sts_unexp_error;
1443: ELSIF l_return_status = FND_API.g_ret_sts_error
1444: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1445: x_return_status := FND_API.g_ret_sts_error;
1438: p_dlv_ath_rec => p_dlv_ath_tbl(l_index)
1439: );
1440:
1441: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1442: x_return_status := FND_API.g_ret_sts_unexp_error;
1443: ELSIF l_return_status = FND_API.g_ret_sts_error
1444: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1445: x_return_status := FND_API.g_ret_sts_error;
1446: END IF;
1439: );
1440:
1441: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1442: x_return_status := FND_API.g_ret_sts_unexp_error;
1443: ELSIF l_return_status = FND_API.g_ret_sts_error
1444: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1445: x_return_status := FND_API.g_ret_sts_error;
1446: END IF;
1447:
1440:
1441: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1442: x_return_status := FND_API.g_ret_sts_unexp_error;
1443: ELSIF l_return_status = FND_API.g_ret_sts_error
1444: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1445: x_return_status := FND_API.g_ret_sts_error;
1446: END IF;
1447:
1448: END LOOP;
1441: IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1442: x_return_status := FND_API.g_ret_sts_unexp_error;
1443: ELSIF l_return_status = FND_API.g_ret_sts_error
1444: AND x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1445: x_return_status := FND_API.g_ret_sts_error;
1446: END IF;
1447:
1448: END LOOP;
1449: END IF;
1449: END IF;
1450:
1451: -- Check if the caller requested to commit ,
1452: -- If p_commit set to true, commit the transaction
1453: IF FND_API.to_boolean(p_commit) THEN
1454: COMMIT;
1455: END IF;
1456:
1457: -- Standard call to get message count and if count is 1, get message info
1455: END IF;
1456:
1457: -- Standard call to get message count and if count is 1, get message info
1458: FND_MSG_PUB.count_and_get(
1459: p_encoded => FND_API.g_false,
1460: p_count => x_msg_count,
1461: p_data => x_msg_data
1462: );
1463:
1462: );
1463:
1464: EXCEPTION
1465:
1466: WHEN FND_API.g_exc_error THEN
1467: ROLLBACK TO save_deliverable_grp;
1468: x_return_status := FND_API.g_ret_sts_error;
1469: FND_MSG_PUB.count_and_get(
1470: p_encoded => FND_API.g_false,
1464: EXCEPTION
1465:
1466: WHEN FND_API.g_exc_error THEN
1467: ROLLBACK TO save_deliverable_grp;
1468: x_return_status := FND_API.g_ret_sts_error;
1469: FND_MSG_PUB.count_and_get(
1470: p_encoded => FND_API.g_false,
1471: p_count => x_msg_count,
1472: p_data => x_msg_data
1466: WHEN FND_API.g_exc_error THEN
1467: ROLLBACK TO save_deliverable_grp;
1468: x_return_status := FND_API.g_ret_sts_error;
1469: FND_MSG_PUB.count_and_get(
1470: p_encoded => FND_API.g_false,
1471: p_count => x_msg_count,
1472: p_data => x_msg_data
1473: );
1474:
1471: p_count => x_msg_count,
1472: p_data => x_msg_data
1473: );
1474:
1475: WHEN FND_API.g_exc_unexpected_error THEN
1476: ROLLBACK TO save_deliverable_grp;
1477: x_return_status := FND_API.g_ret_sts_unexp_error ;
1478: FND_MSG_PUB.count_and_get(
1479: p_encoded => FND_API.g_false,
1473: );
1474:
1475: WHEN FND_API.g_exc_unexpected_error THEN
1476: ROLLBACK TO save_deliverable_grp;
1477: x_return_status := FND_API.g_ret_sts_unexp_error ;
1478: FND_MSG_PUB.count_and_get(
1479: p_encoded => FND_API.g_false,
1480: p_count => x_msg_count,
1481: p_data => x_msg_data
1475: WHEN FND_API.g_exc_unexpected_error THEN
1476: ROLLBACK TO save_deliverable_grp;
1477: x_return_status := FND_API.g_ret_sts_unexp_error ;
1478: FND_MSG_PUB.count_and_get(
1479: p_encoded => FND_API.g_false,
1480: p_count => x_msg_count,
1481: p_data => x_msg_data
1482: );
1483:
1482: );
1483:
1484: WHEN OTHERS THEN
1485: ROLLBACK TO save_deliverable_grp;
1486: x_return_status := FND_API.g_ret_sts_unexp_error ;
1487:
1488: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1489: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1490: END IF;
1489: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1490: END IF;
1491:
1492: FND_MSG_PUB.count_and_get(
1493: p_encoded => FND_API.g_false,
1494: p_count => x_msg_count,
1495: p_data => x_msg_data
1496: );
1497:
1519: -- 4. Raise an exception for any other errors
1520: ---------------------------------------------------------------------
1521: PROCEDURE delete_deliverable (
1522: p_api_version IN NUMBER,
1523: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1524: p_commit IN VARCHAR2 := FND_API.g_false,
1525: x_return_status OUT VARCHAR2,
1526: x_msg_count OUT NUMBER,
1527: x_msg_data OUT VARCHAR2,
1520: ---------------------------------------------------------------------
1521: PROCEDURE delete_deliverable (
1522: p_api_version IN NUMBER,
1523: p_init_msg_list IN VARCHAR2 := FND_API.g_false,
1524: p_commit IN VARCHAR2 := FND_API.g_false,
1525: x_return_status OUT VARCHAR2,
1526: x_msg_count OUT NUMBER,
1527: x_msg_data OUT VARCHAR2,
1528: p_dlv_id_ver_tbl IN OUT DLV_ID_VER_TBL_TYPE ) IS
1539: -- Standard start of API savepoint
1540: SAVEPOINT delete_deliverable_grp;
1541:
1542: -- Standard call to check for call compatibility
1543: IF NOT FND_API.compatible_api_call(
1544: g_api_version,
1545: p_api_version,
1546: l_api_name,
1547: g_pkg_name
1545: p_api_version,
1546: l_api_name,
1547: g_pkg_name
1548: ) THEN
1549: RAISE FND_API.g_exc_unexpected_error;
1550: END IF;
1551:
1552: -- Initialize message list if p_init_msg_list is set to TRUE
1553: IF FND_API.to_boolean(p_init_msg_list) THEN
1549: RAISE FND_API.g_exc_unexpected_error;
1550: END IF;
1551:
1552: -- Initialize message list if p_init_msg_list is set to TRUE
1553: IF FND_API.to_boolean(p_init_msg_list) THEN
1554: FND_MSG_PUB.initialize;
1555: END IF;
1556:
1557: -- Initialize API rturn status to success
1554: FND_MSG_PUB.initialize;
1555: END IF;
1556:
1557: -- Initialize API rturn status to success
1558: x_return_status := FND_API.g_ret_sts_success;
1559:
1560: -- API body
1561:
1562: -- Check if the deliverable exists
1569:
1570: IF NOT JTF_DSPMGRVALIDATION_GRP.check_deliverable_exists(
1571: p_dlv_id_ver_tbl(l_index).deliverable_id,
1572: p_dlv_id_ver_tbl(l_index).object_version_number) THEN
1573: RAISE FND_API.g_exc_error;
1574: END IF;
1575:
1576: -- Delete from the section tables
1577: JTF_DSP_SECTION_GRP.update_deliverable_to_null(
1581: x_msg_count => x_msg_count,
1582: x_msg_data => x_msg_data
1583: );
1584:
1585: IF l_return_status = FND_API.g_ret_sts_error THEN
1586: RAISE FND_API.g_exc_error;
1587: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1588: RAISE FND_API.g_exc_unexpected_error;
1589: END IF;
1582: x_msg_data => x_msg_data
1583: );
1584:
1585: IF l_return_status = FND_API.g_ret_sts_error THEN
1586: RAISE FND_API.g_exc_error;
1587: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1588: RAISE FND_API.g_exc_unexpected_error;
1589: END IF;
1590:
1583: );
1584:
1585: IF l_return_status = FND_API.g_ret_sts_error THEN
1586: RAISE FND_API.g_exc_error;
1587: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1588: RAISE FND_API.g_exc_unexpected_error;
1589: END IF;
1590:
1591: -- Delete all the associated display contexts
1584:
1585: IF l_return_status = FND_API.g_ret_sts_error THEN
1586: RAISE FND_API.g_exc_error;
1587: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1588: RAISE FND_API.g_exc_unexpected_error;
1589: END IF;
1590:
1591: -- Delete all the associated display contexts
1592: JTF_DisplayContext_GRP.delete_deliverable(
1616: x_msg_data => x_msg_data,
1617: p_item_id => p_dlv_id_ver_tbl(l_index).deliverable_id
1618: );
1619:
1620: IF l_return_status = FND_API.g_ret_sts_error THEN
1621: RAISE FND_API.g_exc_error;
1622: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1623: RAISE FND_API.g_exc_unexpected_error;
1624: END IF;
1617: p_item_id => p_dlv_id_ver_tbl(l_index).deliverable_id
1618: );
1619:
1620: IF l_return_status = FND_API.g_ret_sts_error THEN
1621: RAISE FND_API.g_exc_error;
1622: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1623: RAISE FND_API.g_exc_unexpected_error;
1624: END IF;
1625:
1618: );
1619:
1620: IF l_return_status = FND_API.g_ret_sts_error THEN
1621: RAISE FND_API.g_exc_error;
1622: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1623: RAISE FND_API.g_exc_unexpected_error;
1624: END IF;
1625:
1626: p_dlv_id_ver_tbl(l_index).x_action_status
1619:
1620: IF l_return_status = FND_API.g_ret_sts_error THEN
1621: RAISE FND_API.g_exc_error;
1622: ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
1623: RAISE FND_API.g_exc_unexpected_error;
1624: END IF;
1625:
1626: p_dlv_id_ver_tbl(l_index).x_action_status
1627: := FND_API.g_ret_sts_success;
1623: RAISE FND_API.g_exc_unexpected_error;
1624: END IF;
1625:
1626: p_dlv_id_ver_tbl(l_index).x_action_status
1627: := FND_API.g_ret_sts_success;
1628:
1629: EXCEPTION
1630:
1631: WHEN FND_API.g_exc_error THEN
1627: := FND_API.g_ret_sts_success;
1628:
1629: EXCEPTION
1630:
1631: WHEN FND_API.g_exc_error THEN
1632: ROLLBACK TO delete_one_deliverable_grp;
1633: IF x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1634: x_return_status := FND_API.g_ret_sts_error;
1635: END IF;
1629: EXCEPTION
1630:
1631: WHEN FND_API.g_exc_error THEN
1632: ROLLBACK TO delete_one_deliverable_grp;
1633: IF x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1634: x_return_status := FND_API.g_ret_sts_error;
1635: END IF;
1636: p_dlv_id_ver_tbl(l_index).x_action_status
1637: := FND_API.g_ret_sts_error;
1630:
1631: WHEN FND_API.g_exc_error THEN
1632: ROLLBACK TO delete_one_deliverable_grp;
1633: IF x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1634: x_return_status := FND_API.g_ret_sts_error;
1635: END IF;
1636: p_dlv_id_ver_tbl(l_index).x_action_status
1637: := FND_API.g_ret_sts_error;
1638:
1633: IF x_return_status <> FND_API.g_ret_sts_unexp_error THEN
1634: x_return_status := FND_API.g_ret_sts_error;
1635: END IF;
1636: p_dlv_id_ver_tbl(l_index).x_action_status
1637: := FND_API.g_ret_sts_error;
1638:
1639: WHEN FND_API.g_exc_unexpected_error THEN
1640: ROLLBACK TO delete_one_deliverable_grp;
1641: x_return_status := FND_API.g_ret_sts_unexp_error;
1635: END IF;
1636: p_dlv_id_ver_tbl(l_index).x_action_status
1637: := FND_API.g_ret_sts_error;
1638:
1639: WHEN FND_API.g_exc_unexpected_error THEN
1640: ROLLBACK TO delete_one_deliverable_grp;
1641: x_return_status := FND_API.g_ret_sts_unexp_error;
1642: p_dlv_id_ver_tbl(l_index).x_action_status
1643: := FND_API.g_ret_sts_unexp_error;
1637: := FND_API.g_ret_sts_error;
1638:
1639: WHEN FND_API.g_exc_unexpected_error THEN
1640: ROLLBACK TO delete_one_deliverable_grp;
1641: x_return_status := FND_API.g_ret_sts_unexp_error;
1642: p_dlv_id_ver_tbl(l_index).x_action_status
1643: := FND_API.g_ret_sts_unexp_error;
1644:
1645: WHEN OTHERS THEN
1639: WHEN FND_API.g_exc_unexpected_error THEN
1640: ROLLBACK TO delete_one_deliverable_grp;
1641: x_return_status := FND_API.g_ret_sts_unexp_error;
1642: p_dlv_id_ver_tbl(l_index).x_action_status
1643: := FND_API.g_ret_sts_unexp_error;
1644:
1645: WHEN OTHERS THEN
1646: ROLLBACK TO delete_one_deliverable_grp;
1647: x_return_status := FND_API.g_ret_sts_unexp_error ;
1643: := FND_API.g_ret_sts_unexp_error;
1644:
1645: WHEN OTHERS THEN
1646: ROLLBACK TO delete_one_deliverable_grp;
1647: x_return_status := FND_API.g_ret_sts_unexp_error ;
1648: p_dlv_id_ver_tbl(l_index).x_action_status
1649: := FND_API.g_ret_sts_unexp_error;
1650:
1651: IF FND_MSG_PUB.check_msg_level(
1645: WHEN OTHERS THEN
1646: ROLLBACK TO delete_one_deliverable_grp;
1647: x_return_status := FND_API.g_ret_sts_unexp_error ;
1648: p_dlv_id_ver_tbl(l_index).x_action_status
1649: := FND_API.g_ret_sts_unexp_error;
1650:
1651: IF FND_MSG_PUB.check_msg_level(
1652: FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1653: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1658: END IF;
1659:
1660: -- Check if the caller requested to commit ,
1661: -- If p_commit set to true, commit the transaction
1662: IF FND_API.to_boolean(p_commit) THEN
1663: COMMIT;
1664: END IF;
1665:
1666: -- Standard call to get message count and if count is 1, get message info
1664: END IF;
1665:
1666: -- Standard call to get message count and if count is 1, get message info
1667: FND_MSG_PUB.count_and_get(
1668: p_encoded => FND_API.g_false,
1669: p_count => x_msg_count,
1670: p_data => x_msg_data
1671: );
1672:
1671: );
1672:
1673: EXCEPTION
1674:
1675: WHEN FND_API.g_exc_error THEN
1676: ROLLBACK TO delete_deliverable_grp;
1677: x_return_status := FND_API.g_ret_sts_error;
1678: FND_MSG_PUB.count_and_get(
1679: p_encoded => FND_API.g_false,
1673: EXCEPTION
1674:
1675: WHEN FND_API.g_exc_error THEN
1676: ROLLBACK TO delete_deliverable_grp;
1677: x_return_status := FND_API.g_ret_sts_error;
1678: FND_MSG_PUB.count_and_get(
1679: p_encoded => FND_API.g_false,
1680: p_count => x_msg_count,
1681: p_data => x_msg_data
1675: WHEN FND_API.g_exc_error THEN
1676: ROLLBACK TO delete_deliverable_grp;
1677: x_return_status := FND_API.g_ret_sts_error;
1678: FND_MSG_PUB.count_and_get(
1679: p_encoded => FND_API.g_false,
1680: p_count => x_msg_count,
1681: p_data => x_msg_data
1682: );
1683:
1680: p_count => x_msg_count,
1681: p_data => x_msg_data
1682: );
1683:
1684: WHEN FND_API.g_exc_unexpected_error THEN
1685: ROLLBACK TO delete_deliverable_grp;
1686: x_return_status := FND_API.g_ret_sts_unexp_error ;
1687: FND_MSG_PUB.count_and_get(
1688: p_encoded => FND_API.g_false,
1682: );
1683:
1684: WHEN FND_API.g_exc_unexpected_error THEN
1685: ROLLBACK TO delete_deliverable_grp;
1686: x_return_status := FND_API.g_ret_sts_unexp_error ;
1687: FND_MSG_PUB.count_and_get(
1688: p_encoded => FND_API.g_false,
1689: p_count => x_msg_count,
1690: p_data => x_msg_data
1684: WHEN FND_API.g_exc_unexpected_error THEN
1685: ROLLBACK TO delete_deliverable_grp;
1686: x_return_status := FND_API.g_ret_sts_unexp_error ;
1687: FND_MSG_PUB.count_and_get(
1688: p_encoded => FND_API.g_false,
1689: p_count => x_msg_count,
1690: p_data => x_msg_data
1691: );
1692:
1691: );
1692:
1693: WHEN OTHERS THEN
1694: ROLLBACK TO delete_deliverable_grp;
1695: x_return_status := FND_API.g_ret_sts_unexp_error ;
1696:
1697: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
1698: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1699: END IF;
1698: FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
1699: END IF;
1700:
1701: FND_MSG_PUB.count_and_get(
1702: p_encoded => FND_API.g_false,
1703: p_count => x_msg_count,
1704: p_data => x_msg_data
1705: );
1706: