22:
23: PROCEDURE Create_Unit_Effectivity
24: (
25: p_api_version IN NUMBER,
26: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
27: p_commit IN VARCHAR2 := FND_API.G_FALSE,
28: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
23: PROCEDURE Create_Unit_Effectivity
24: (
25: p_api_version IN NUMBER,
26: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
27: p_commit IN VARCHAR2 := FND_API.G_FALSE,
28: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
31: x_msg_data OUT NOCOPY VARCHAR2,
24: (
25: p_api_version IN NUMBER,
26: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
27: p_commit IN VARCHAR2 := FND_API.G_FALSE,
28: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
29: x_return_status OUT NOCOPY VARCHAR2,
30: x_msg_count OUT NOCOPY NUMBER,
31: x_msg_data OUT NOCOPY VARCHAR2,
32: p_mr_header_id IN NUMBER,
137:
138: SAVEPOINT sp_create_unit_effectivity;
139:
140: -- Initialize return status to success initially
141: x_return_status:=FND_API.G_RET_STS_SUCCESS;
142:
143: IF NOT FND_API.compatible_api_call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
144: THEN
145: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
139:
140: -- Initialize return status to success initially
141: x_return_status:=FND_API.G_RET_STS_SUCCESS;
142:
143: IF NOT FND_API.compatible_api_call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
144: THEN
145: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
146: END IF;
147:
141: x_return_status:=FND_API.G_RET_STS_SUCCESS;
142:
143: IF NOT FND_API.compatible_api_call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
144: THEN
145: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
146: END IF;
147:
148: --Call the procedure AHL_UTIL_PKG.Get_Appln_Usage
149: AHL_UTIL_PKG.Get_Appln_Usage
152: x_return_status => l_return_status
153: );
154:
155: l_msg_count := FND_MSG_PUB.COUNT_MSG;
156: IF (l_msg_count > 0 OR l_return_status <> FND_API.G_RET_STS_SUCCESS)
157: THEN
158: RAISE FND_API.G_EXC_ERROR;
159: END IF;
160:
154:
155: l_msg_count := FND_MSG_PUB.COUNT_MSG;
156: IF (l_msg_count > 0 OR l_return_status <> FND_API.G_RET_STS_SUCCESS)
157: THEN
158: RAISE FND_API.G_EXC_ERROR;
159: END IF;
160:
161: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL ) THEN
162: FND_LOG.STRING(G_DEBUG_STMT, L_DEBUG_MODULE , ' After Calling AHL_UTIL_PKG.Get_Appln_Usage successfully' );
164: FND_LOG.STRING(G_DEBUG_STMT, L_DEBUG_MODULE , ' l_return_status: ' || l_return_status);
165: END IF;
166:
167:
168: IF (p_init_msg_list = FND_API.G_TRUE) THEN
169: FND_MSG_PUB.Initialize;
170: END IF;
171:
172: -- API body starts here
172: -- API body starts here
173: -- If (p_mr_header_id is null or p_instance_id is null), then display error
174: IF
175: (
176: p_mr_header_id IS NULL OR p_mr_header_id = FND_API.G_MISS_NUM OR
177: p_instance_id IS NULL OR p_instance_id = FND_API.G_MISS_NUM
178: )
179: THEN
180: FND_MESSAGE.SET_NAME('AHL', 'AHL_COM_INVALID_PROCEDURE_CALL');
173: -- If (p_mr_header_id is null or p_instance_id is null), then display error
174: IF
175: (
176: p_mr_header_id IS NULL OR p_mr_header_id = FND_API.G_MISS_NUM OR
177: p_instance_id IS NULL OR p_instance_id = FND_API.G_MISS_NUM
178: )
179: THEN
180: FND_MESSAGE.SET_NAME('AHL', 'AHL_COM_INVALID_PROCEDURE_CALL');
181: FND_MESSAGE.SET_TOKEN('PROCEDURE', l_api_name);
187: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||'.begin',
188: 'Invalid Procedure Call'
189: );
190: END IF;
191: RAISE FND_API.G_EXC_ERROR;
192: END IF;
193:
194: -- validate the mr header id
195: OPEN check_mr_exists (p_mr_header_id);
206: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||'.begin',
207: 'MR is not found'
208: );
209: END IF;
210: RAISE FND_API.G_EXC_ERROR;
211: END IF;
212: CLOSE check_mr_exists;
213:
214: -- validate the instance id
226: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||'.begin',
227: 'Instance Number is invalid'
228: );
229: END IF;
230: RAISE FND_API.G_EXC_ERROR;
231: END IF;
232: CLOSE check_instance_exists;
233:
234: --Set the return status to an error and raise an error message if the application code returned is not AHL
232: CLOSE check_instance_exists;
233:
234: --Set the return status to an error and raise an error message if the application code returned is not AHL
235: IF (l_appln_code <> 'AHL') THEN
236: x_return_status := FND_API.G_RET_STS_ERROR;
237: FND_MESSAGE.set_name('AHL', 'AHL_COM_APPL_USG_MODE_INVALID');
238: FND_MSG_PUB.add;
239: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
240: fnd_log.string
243: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||'.begin',
244: 'Application Usage Mode is not defined or is invalid'
245: );
246: END IF;
247: RAISE FND_API.G_EXC_ERROR;
248: END IF;
249:
250: OPEN is_grp_mr_check(p_mr_header_id);
251: FETCH is_grp_mr_check INTO l_dummy_varchar;
263: x_msg_count => x_msg_count,
264: x_msg_data => x_msg_data);
265:
266: x_msg_count := FND_MSG_PUB.count_msg;
267: IF ( x_msg_count > 0 OR x_return_status <> FND_API.G_RET_STS_SUCCESS )
268: THEN
269: RAISE FND_API.G_EXC_ERROR;
270: END IF;
271:
265:
266: x_msg_count := FND_MSG_PUB.count_msg;
267: IF ( x_msg_count > 0 OR x_return_status <> FND_API.G_RET_STS_SUCCESS )
268: THEN
269: RAISE FND_API.G_EXC_ERROR;
270: END IF;
271:
272: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL) THEN
273: FND_LOG.STRING(G_DEBUG_STMT, L_DEBUG_MODULE , 'AFTER Calling AHL_FMP_COMMON_PVT.Populate_Appl_MRs to populate AHL_APPLICABLE_MRS');
280: THEN
281: FND_MESSAGE.SET_NAME('AHL', 'AHL_UA_UE_NOT_FOUND');
282: FND_MSG_PUB.ADD;
283: CLOSE Get_all_appl_mrs;
284: RAISE FND_API.G_EXC_ERROR;
285: END IF;
286:
287: CLOSE Get_all_appl_mrs;
288:
300: p_components_flag => 'N', -- get applicability for only this instance.
301: x_applicable_mr_tbl => l_applicable_mr_tbl);
302:
303: x_msg_count := FND_MSG_PUB.count_msg;
304: IF ( x_msg_count > 0 OR x_return_status <> FND_API.G_RET_STS_SUCCESS )
305: THEN
306: RAISE FND_API.G_EXC_ERROR;
307: END IF;
308:
302:
303: x_msg_count := FND_MSG_PUB.count_msg;
304: IF ( x_msg_count > 0 OR x_return_status <> FND_API.G_RET_STS_SUCCESS )
305: THEN
306: RAISE FND_API.G_EXC_ERROR;
307: END IF;
308:
309: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL) THEN
310: FND_LOG.STRING(G_DEBUG_STMT, L_DEBUG_MODULE , 'AFTER Calling AHL_FMP_PVT.GET_APPLICABLE_MRS to validate MR-Instance applicability' );
324:
325: IF (l_mr_applicable_flag = false) THEN
326: FND_MESSAGE.SET_NAME('AHL', 'AHL_UA_UE_NOT_FOUND');
327: FND_MSG_PUB.ADD;
328: RAISE FND_API.G_EXC_ERROR;
329: END IF; -- MR applicable
330:
331: l_all_appl_mrs.csi_item_instance_id := p_instance_id;
332: l_all_appl_mrs.mr_header_id := p_mr_header_id;
420:
421: x_msg_count := FND_MSG_PUB.count_msg;
422: IF x_msg_count > 0
423: THEN
424: RAISE FND_API.G_EXC_ERROR;
425: END IF;
426:
427: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL) THEN
428: FND_LOG.STRING(G_DEBUG_STMT, L_DEBUG_MODULE , ' AFTER Calling AHL_UMP_UTIL_PKG.process_Group_MR_Instance to populate AHL_APPLICABLE_MR_RELNS' );
595: -- Check Error Message stack.
596: x_msg_count := FND_MSG_PUB.count_msg;
597: IF x_msg_count > 0
598: THEN
599: RAISE FND_API.G_EXC_ERROR;
600: END IF;
601:
602:
603: EXCEPTION
600: END IF;
601:
602:
603: EXCEPTION
604: WHEN FND_API.G_EXC_ERROR THEN
605: Rollback to sp_create_unit_effectivity;
606: x_return_status := FND_API.G_RET_STS_ERROR;
607: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
608: fnd_log.string
602:
603: EXCEPTION
604: WHEN FND_API.G_EXC_ERROR THEN
605: Rollback to sp_create_unit_effectivity;
606: x_return_status := FND_API.G_RET_STS_ERROR;
607: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
608: fnd_log.string
609: (
610: G_DEBUG_ERROR,
615: FND_MSG_PUB.count_and_get
616: (
617: p_count => x_msg_count,
618: p_data => x_msg_data,
619: p_encoded => FND_API.G_FALSE
620: );
621:
622: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
623: Rollback to sp_create_unit_effectivity;
618: p_data => x_msg_data,
619: p_encoded => FND_API.G_FALSE
620: );
621:
622: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
623: Rollback to sp_create_unit_effectivity;
624: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
625: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
626: fnd_log.string
620: );
621:
622: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
623: Rollback to sp_create_unit_effectivity;
624: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
625: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
626: fnd_log.string
627: (
628: G_DEBUG_ERROR,
633: FND_MSG_PUB.count_and_get
634: (
635: p_count => x_msg_count,
636: p_data => x_msg_data,
637: p_encoded => FND_API.G_FALSE
638: );
639:
640: WHEN OTHERS THEN
641: Rollback to sp_create_unit_effectivity;
638: );
639:
640: WHEN OTHERS THEN
641: Rollback to sp_create_unit_effectivity;
642: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
643: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
644: THEN
645: FND_MSG_PUB.add_exc_msg
646: (
660: FND_MSG_PUB.count_and_get
661: (
662: p_count => x_msg_count,
663: p_data => x_msg_data,
664: p_encoded => FND_API.G_FALSE
665: );
666: END Create_Unit_Effectivity;
667:
668:
668:
669: PROCEDURE Delete_Unit_Effectivity
670: (
671: p_api_version IN NUMBER,
672: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
673: p_commit IN VARCHAR2 := FND_API.G_FALSE,
674: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
675: x_return_status OUT NOCOPY VARCHAR2,
676: x_msg_count OUT NOCOPY NUMBER,
669: PROCEDURE Delete_Unit_Effectivity
670: (
671: p_api_version IN NUMBER,
672: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
673: p_commit IN VARCHAR2 := FND_API.G_FALSE,
674: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
675: x_return_status OUT NOCOPY VARCHAR2,
676: x_msg_count OUT NOCOPY NUMBER,
677: x_msg_data OUT NOCOPY VARCHAR2,
670: (
671: p_api_version IN NUMBER,
672: p_init_msg_list IN VARCHAR2 := FND_API.G_TRUE,
673: p_commit IN VARCHAR2 := FND_API.G_FALSE,
674: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
675: x_return_status OUT NOCOPY VARCHAR2,
676: x_msg_count OUT NOCOPY NUMBER,
677: x_msg_data OUT NOCOPY VARCHAR2,
678: p_unit_effectivity_id IN NUMBER
726: BEGIN
727:
728: SAVEPOINT sp_delete_unit_effectivity;
729: -- Standard call to check for call compatibility
730: IF NOT FND_API.compatible_api_call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
731: THEN
732: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
733: END IF;
734:
728: SAVEPOINT sp_delete_unit_effectivity;
729: -- Standard call to check for call compatibility
730: IF NOT FND_API.compatible_api_call(l_api_version, p_api_version, l_api_name, G_PKG_NAME)
731: THEN
732: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
733: END IF;
734:
735: -- Log API entry point
736: IF (G_DEBUG_PROC >= G_DEBUG_LEVEL)
744: END IF;
745:
746: -- API body starts here
747: -- Initialize API return status to success
748: x_return_status := FND_API.G_RET_STS_SUCCESS;
749:
750: --Call the procedure AHL_UTIL_PKG.Get_Appln_Usage
751: AHL_UTIL_PKG.Get_Appln_Usage
752: (
756:
757: l_msg_count := FND_MSG_PUB.COUNT_MSG;
758: IF (l_msg_count > 0)
759: THEN
760: RAISE FND_API.G_EXC_ERROR;
761: END IF;
762:
763: -- if the UE Id passed is a middle node then get the Top Node UE Id.
764: OPEN GetOrigUeId ( p_unit_effectivity_id );
782: IF (l_originator_ue_id IS NULL)
783: THEN
784: FND_MESSAGE.SET_NAME('AHL', 'AHL_UA_UE_NOT_FOUND');
785: FND_MSG_PUB.ADD;
786: RAISE FND_API.G_EXC_ERROR;
787: ELSE
788: -- validate the existance of the Unit Effectivity Id
789: OPEN GetStatusCode (p_unit_effectivity_id);
790: FETCH GetStatusCode INTO l_get_status_code,l_object_type;
791: IF (GetStatusCode%NOTFOUND) THEN
792: FND_MESSAGE.SET_NAME('AHL', 'AHL_UA_UE_NOT_FOUND');
793: FND_MSG_PUB.ADD;
794: CLOSE GetStatusCode;
795: RAISE FND_API.G_EXC_ERROR;
796: ELSIF ( l_get_status_code IS NOT NULL AND l_get_status_code NOT IN ('EXCEPTION')
797: AND l_object_type = 'SR')THEN
798: FND_MESSAGE.SET_NAME('AHL', 'AHL_UA_UE_CANNOT_DELETE');
799: FND_MSG_PUB.ADD;
818: THEN
819: FND_MESSAGE.SET_NAME('AHL', 'AHL_UMP_STATUS_NULL'); -- mesg reused
820: FND_MSG_PUB.ADD;
821: CLOSE GetStatusCode;
822: RAISE FND_API.G_EXC_ERROR;
823: END IF;
824: CLOSE GetStatusCode;
825: IF ( l_get_status_code IS NULL OR l_get_status_code IN ('EXCEPTION') )
826: THEN
839: 'ahl.plsql.'||g_pkg_name||'.'||l_api_name||'.begin',
840: 'Cannot delete UE'
841: );
842: END IF;
843: RAISE FND_API.G_EXC_ERROR;
844:
845: END IF;
846:
847: END LOOP;
874: -- Check Error Message stack.
875: x_msg_count := FND_MSG_PUB.count_msg;
876: IF x_msg_count > 0
877: THEN
878: RAISE FND_API.G_EXC_ERROR;
879: END IF;
880:
881: -- Standard call to get message count and if count is 1, get message info
882: FND_MSG_PUB.count_and_get
882: FND_MSG_PUB.count_and_get
883: (
884: p_count => x_msg_count,
885: p_data => x_msg_data,
886: p_encoded => FND_API.G_FALSE
887: );
888:
889: EXCEPTION
890: WHEN FND_API.G_EXC_ERROR THEN
886: p_encoded => FND_API.G_FALSE
887: );
888:
889: EXCEPTION
890: WHEN FND_API.G_EXC_ERROR THEN
891: Rollback to sp_delete_unit_effectivity;
892: x_return_status := FND_API.G_RET_STS_ERROR;
893: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
894: fnd_log.string
888:
889: EXCEPTION
890: WHEN FND_API.G_EXC_ERROR THEN
891: Rollback to sp_delete_unit_effectivity;
892: x_return_status := FND_API.G_RET_STS_ERROR;
893: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
894: fnd_log.string
895: (
896: G_DEBUG_ERROR,
901: FND_MSG_PUB.count_and_get
902: (
903: p_count => x_msg_count,
904: p_data => x_msg_data,
905: p_encoded => FND_API.G_FALSE
906: );
907:
908: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909: Rollback to sp_delete_unit_effectivity;
904: p_data => x_msg_data,
905: p_encoded => FND_API.G_FALSE
906: );
907:
908: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909: Rollback to sp_delete_unit_effectivity;
910: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
911: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
912: fnd_log.string
906: );
907:
908: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
909: Rollback to sp_delete_unit_effectivity;
910: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
911: IF (G_DEBUG_ERROR >= G_DEBUG_LEVEL)THEN
912: fnd_log.string
913: (
914: G_DEBUG_ERROR,
919: FND_MSG_PUB.count_and_get
920: (
921: p_count => x_msg_count,
922: p_data => x_msg_data,
923: p_encoded => FND_API.G_FALSE
924: );
925:
926: WHEN OTHERS THEN
927: Rollback to sp_delete_unit_effectivity;
924: );
925:
926: WHEN OTHERS THEN
927: Rollback to sp_delete_unit_effectivity;
928: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
929: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
930: THEN
931: FND_MSG_PUB.add_exc_msg
932: (
946: FND_MSG_PUB.count_and_get
947: (
948: p_count => x_msg_count,
949: p_data => x_msg_data,
950: p_encoded => FND_API.G_FALSE
951: );
952: End Delete_Unit_Effectivity;
953:
954: End AHL_UMP_UNPLANNED_PVT;