67: PROCEDURE Create_SR
68: (
69: -- Standard IN params
70: p_api_version IN NUMBER,
71: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
72: p_commit IN VARCHAR2 := FND_API.G_FALSE,
73: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
74: p_default IN VARCHAR2 := FND_API.G_FALSE,
75: p_module_type IN VARCHAR2 := NULL,
68: (
69: -- Standard IN params
70: p_api_version IN NUMBER,
71: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
72: p_commit IN VARCHAR2 := FND_API.G_FALSE,
73: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
74: p_default IN VARCHAR2 := FND_API.G_FALSE,
75: p_module_type IN VARCHAR2 := NULL,
76: -- Standard OUT params
69: -- Standard IN params
70: p_api_version IN NUMBER,
71: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
72: p_commit IN VARCHAR2 := FND_API.G_FALSE,
73: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
74: p_default IN VARCHAR2 := FND_API.G_FALSE,
75: p_module_type IN VARCHAR2 := NULL,
76: -- Standard OUT params
77: x_return_status OUT NOCOPY VARCHAR2,
70: p_api_version IN NUMBER,
71: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
72: p_commit IN VARCHAR2 := FND_API.G_FALSE,
73: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
74: p_default IN VARCHAR2 := FND_API.G_FALSE,
75: p_module_type IN VARCHAR2 := NULL,
76: -- Standard OUT params
77: x_return_status OUT NOCOPY VARCHAR2,
78: x_msg_count OUT NOCOPY NUMBER,
118: -- Standard start of API savepoint
119: SAVEPOINT Create_SR_SP;
120:
121: -- Initialize return status to success before any code logic/validation
122: x_return_status := FND_API.G_RET_STS_SUCCESS;
123:
124: -- Standard call to check for call compatibility
125: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
126: THEN
121: -- Initialize return status to success before any code logic/validation
122: x_return_status := FND_API.G_RET_STS_SUCCESS;
123:
124: -- Standard call to check for call compatibility
125: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
126: THEN
127: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128: END IF;
129:
123:
124: -- Standard call to check for call compatibility
125: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
126: THEN
127: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128: END IF;
129:
130: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
131: IF FND_API.TO_BOOLEAN(p_init_msg_list)
126: THEN
127: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128: END IF;
129:
130: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
131: IF FND_API.TO_BOOLEAN(p_init_msg_list)
132: THEN
133: FND_MSG_PUB.INITIALIZE;
134: END IF;
127: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
128: END IF;
129:
130: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
131: IF FND_API.TO_BOOLEAN(p_init_msg_list)
132: THEN
133: FND_MSG_PUB.INITIALIZE;
134: END IF;
135:
154: -- Check Error Message stack.
155: x_msg_count := FND_MSG_PUB.count_msg;
156: IF (x_msg_count > 0)
157: THEN
158: RAISE FND_API.G_EXC_ERROR;
159: END IF;
160:
161: -- Initialize the SR record.
162: CS_SERVICEREQUEST_PUB.initialize_rec(l_service_request_rec);
162: CS_SERVICEREQUEST_PUB.initialize_rec(l_service_request_rec);
163:
164: -- Assign the SR rec values
165: l_service_request_rec.request_date := trunc(sysdate);
166: IF (p_x_nonroutine_rec.incident_date IS NULL OR p_x_nonroutine_rec.incident_date = FND_API.G_MISS_DATE)
167: THEN
168: l_service_request_rec.incident_occurred_date := l_service_request_rec.request_date;
169: ELSE
170: l_service_request_rec.incident_occurred_date := p_x_nonroutine_rec.incident_date;
192:
193: -- Handle the contact if any
194: IF
195: (
196: p_x_nonroutine_rec.contact_type IS NOT NULL AND p_x_nonroutine_rec.contact_type <> FND_API.G_MISS_CHAR
197: AND
198: p_x_nonroutine_rec.contact_id IS NOT NULL AND p_x_nonroutine_rec.contact_id <> FND_API.G_MISS_NUM
199: )
200: THEN
194: IF
195: (
196: p_x_nonroutine_rec.contact_type IS NOT NULL AND p_x_nonroutine_rec.contact_type <> FND_API.G_MISS_CHAR
197: AND
198: p_x_nonroutine_rec.contact_id IS NOT NULL AND p_x_nonroutine_rec.contact_id <> FND_API.G_MISS_NUM
199: )
200: THEN
201: l_contacts_table(1).contact_type := p_x_nonroutine_rec.contact_type;
202: l_contacts_table(1).party_id := p_x_nonroutine_rec.contact_id;
210: -- Call to Service Request API
211: CS_SERVICEREQUEST_PUB.Create_ServiceRequest
212: (
213: p_api_version => 3.0,
214: p_init_msg_list => FND_API.G_FALSE,
215: p_commit => FND_API.G_FALSE,
216: x_return_status => l_return_status,
217: x_msg_count => l_msg_count,
218: x_msg_data => l_msg_data,
211: CS_SERVICEREQUEST_PUB.Create_ServiceRequest
212: (
213: p_api_version => 3.0,
214: p_init_msg_list => FND_API.G_FALSE,
215: p_commit => FND_API.G_FALSE,
216: x_return_status => l_return_status,
217: x_msg_count => l_msg_count,
218: x_msg_data => l_msg_data,
219: p_resp_appl_id => fnd_global.resp_appl_id,
234: x_individual_owner => l_individual_owner,
235: x_group_owner => l_group_owner,
236: x_individual_type => l_individual_type
237: );
238: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)
239: THEN
240: IF (G_DEBUG_UEXP >= G_DEBUG_LEVEL)
241: THEN
242: fnd_log.string
246: 'Call to CS_SERVICEREQUEST_PUB.Create_ServiceRequest failed...'
247: );
248: END IF;
249:
250: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
251: END IF;
252:
253: -- l_cs_incident_id is anyway expected to be the same as p_x_nonroutine_rec.incident_id, still to be extra sure...
254: p_x_nonroutine_rec.incident_id := l_cs_incident_id;
285: -- Check Error Message stack.
286: x_msg_count := FND_MSG_PUB.count_msg;
287: IF (x_msg_count > 0)
288: THEN
289: RAISE FND_API.G_EXC_ERROR;
290: END IF;
291:
292: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)
293: THEN
338: * validate unit is availale and active
339: * Behavior of Log Series and Number in "Unit / Component Details" sub-header
340: * validate log_series is not null
341: */
342: IF (p_x_nonroutine_rec.unit_config_header_id is null or p_x_nonroutine_rec.unit_config_header_id = FND_API.G_MISS_NUM)
343: THEN
344: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_UNIT_MAND');
345: -- Unit is mandatory for associating MEL/CDL instructions
346: FND_MSG_PUB.ADD;
346: FND_MSG_PUB.ADD;
347: END IF;
348:
349: IF (
350: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
351: AND
352: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
353: )
354: THEN
348:
349: IF (
350: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
351: AND
352: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
353: )
354: THEN
355: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_MAND');
356: -- Log Series and Number are mandatory for associating MEL/CDL instructions
363: -- Check Error Message stack.
364: x_msg_count := FND_MSG_PUB.count_msg;
365: IF (x_msg_count > 0)
366: THEN
367: RAISE FND_API.G_EXC_ERROR;
368: END IF;
369:
370: IF (l_ata_sequence_id IS NOT NULL)
371: THEN
379: THEN
380: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_NO_ACCOM');
381: -- Repair Time of the associated MEL/CDL Instructions cannot accomodate resolution of the Non-routine before Log Date
382: FND_MSG_PUB.ADD;
383: RAISE FND_API.G_EXC_ERROR;
384: END IF;
385:
386: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)
387: THEN
462: -- Check Error Message stack.
463: x_msg_count := FND_MSG_PUB.count_msg;
464: IF (x_msg_count > 0)
465: THEN
466: RAISE FND_API.G_EXC_ERROR;
467: END IF;
468:
469: -- Commit if p_commit = FND_API.G_TRUE
470: IF FND_API.TO_BOOLEAN(p_commit)
465: THEN
466: RAISE FND_API.G_EXC_ERROR;
467: END IF;
468:
469: -- Commit if p_commit = FND_API.G_TRUE
470: IF FND_API.TO_BOOLEAN(p_commit)
471: THEN
472: COMMIT WORK;
473: END IF;
466: RAISE FND_API.G_EXC_ERROR;
467: END IF;
468:
469: -- Commit if p_commit = FND_API.G_TRUE
470: IF FND_API.TO_BOOLEAN(p_commit)
471: THEN
472: COMMIT WORK;
473: END IF;
474:
476: FND_MSG_PUB.count_and_get
477: (
478: p_count => x_msg_count,
479: p_data => x_msg_data,
480: p_encoded => FND_API.G_FALSE
481: );
482:
483: EXCEPTION
484: WHEN FND_API.G_EXC_ERROR THEN
480: p_encoded => FND_API.G_FALSE
481: );
482:
483: EXCEPTION
484: WHEN FND_API.G_EXC_ERROR THEN
485: x_return_status := FND_API.G_RET_STS_ERROR;
486: Rollback to Create_SR_SP;
487: FND_MSG_PUB.count_and_get
488: (
481: );
482:
483: EXCEPTION
484: WHEN FND_API.G_EXC_ERROR THEN
485: x_return_status := FND_API.G_RET_STS_ERROR;
486: Rollback to Create_SR_SP;
487: FND_MSG_PUB.count_and_get
488: (
489: p_count => x_msg_count,
487: FND_MSG_PUB.count_and_get
488: (
489: p_count => x_msg_count,
490: p_data => x_msg_data,
491: p_encoded => FND_API.G_FALSE
492: );
493:
494: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
495: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
490: p_data => x_msg_data,
491: p_encoded => FND_API.G_FALSE
492: );
493:
494: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
495: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496: Rollback to Create_SR_SP;
497: FND_MSG_PUB.count_and_get
498: (
491: p_encoded => FND_API.G_FALSE
492: );
493:
494: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
495: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
496: Rollback to Create_SR_SP;
497: FND_MSG_PUB.count_and_get
498: (
499: p_count => x_msg_count,
497: FND_MSG_PUB.count_and_get
498: (
499: p_count => x_msg_count,
500: p_data => x_msg_data,
501: p_encoded => FND_API.G_FALSE
502: );
503:
504: WHEN OTHERS THEN
505: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
501: p_encoded => FND_API.G_FALSE
502: );
503:
504: WHEN OTHERS THEN
505: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
506: Rollback to Create_SR_SP;
507: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
508: THEN
509: FND_MSG_PUB.add_exc_msg
516: FND_MSG_PUB.count_and_get
517: (
518: p_count => x_msg_count,
519: p_data => x_msg_data,
520: p_encoded => FND_API.G_FALSE
521: );
522: END Create_SR;
523:
524: ------------------------------
527: PROCEDURE Update_SR
528: (
529: -- Standard IN params
530: p_api_version IN NUMBER,
531: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
532: p_commit IN VARCHAR2 := FND_API.G_FALSE,
533: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
534: p_default IN VARCHAR2 := FND_API.G_FALSE,
535: p_module_type IN VARCHAR2 := NULL,
528: (
529: -- Standard IN params
530: p_api_version IN NUMBER,
531: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
532: p_commit IN VARCHAR2 := FND_API.G_FALSE,
533: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
534: p_default IN VARCHAR2 := FND_API.G_FALSE,
535: p_module_type IN VARCHAR2 := NULL,
536: -- Standard OUT params
529: -- Standard IN params
530: p_api_version IN NUMBER,
531: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
532: p_commit IN VARCHAR2 := FND_API.G_FALSE,
533: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
534: p_default IN VARCHAR2 := FND_API.G_FALSE,
535: p_module_type IN VARCHAR2 := NULL,
536: -- Standard OUT params
537: x_return_status OUT NOCOPY VARCHAR2,
530: p_api_version IN NUMBER,
531: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
532: p_commit IN VARCHAR2 := FND_API.G_FALSE,
533: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
534: p_default IN VARCHAR2 := FND_API.G_FALSE,
535: p_module_type IN VARCHAR2 := NULL,
536: -- Standard OUT params
537: x_return_status OUT NOCOPY VARCHAR2,
538: x_msg_count OUT NOCOPY NUMBER,
617: -- Standard start of API savepoint
618: SAVEPOINT Update_SR_SP;
619:
620: -- Initialize return status to success before any code logic/validation
621: x_return_status := FND_API.G_RET_STS_SUCCESS;
622:
623: -- Standard call to check for call compatibility
624: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
625: THEN
620: -- Initialize return status to success before any code logic/validation
621: x_return_status := FND_API.G_RET_STS_SUCCESS;
622:
623: -- Standard call to check for call compatibility
624: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
625: THEN
626: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627: END IF;
628:
622:
623: -- Standard call to check for call compatibility
624: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
625: THEN
626: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627: END IF;
628:
629: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
630: IF FND_API.TO_BOOLEAN(p_init_msg_list)
625: THEN
626: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627: END IF;
628:
629: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
630: IF FND_API.TO_BOOLEAN(p_init_msg_list)
631: THEN
632: FND_MSG_PUB.INITIALIZE;
633: END IF;
626: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
627: END IF;
628:
629: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
630: IF FND_API.TO_BOOLEAN(p_init_msg_list)
631: THEN
632: FND_MSG_PUB.INITIALIZE;
633: END IF;
634:
653: -- Check Error Message stack.
654: x_msg_count := FND_MSG_PUB.count_msg;
655: IF (x_msg_count > 0)
656: THEN
657: RAISE FND_API.G_EXC_ERROR;
658: END IF;
659:
660: -- Initialize the SR record.
661: CS_SERVICEREQUEST_PUB.initialize_rec(l_service_request_rec);
686:
687: -- Handle the contact if any (code below changed per new R12 CS package's CS_SRCONTACT_PKG.check_duplicates() method)
688: IF
689: (
690: p_x_nonroutine_rec.contact_type IS NOT NULL AND p_x_nonroutine_rec.contact_type <> FND_API.G_MISS_CHAR
691: AND
692: p_x_nonroutine_rec.contact_id IS NOT NULL AND p_x_nonroutine_rec.contact_id <> FND_API.G_MISS_NUM
693: )
694: THEN
688: IF
689: (
690: p_x_nonroutine_rec.contact_type IS NOT NULL AND p_x_nonroutine_rec.contact_type <> FND_API.G_MISS_CHAR
691: AND
692: p_x_nonroutine_rec.contact_id IS NOT NULL AND p_x_nonroutine_rec.contact_id <> FND_API.G_MISS_NUM
693: )
694: THEN
695: OPEN get_contact_details(p_x_nonroutine_rec.incident_id);
696: FETCH get_contact_details INTO l_contact_rec;
710: -- Call to Service Request API
711: CS_SERVICEREQUEST_PUB.Update_ServiceRequest
712: (
713: p_api_version => 3.0,
714: p_init_msg_list => FND_API.G_FALSE,
715: p_commit => FND_API.G_FALSE,
716: x_return_status => l_return_status,
717: x_msg_count => l_msg_count,
718: x_msg_data => l_msg_data,
711: CS_SERVICEREQUEST_PUB.Update_ServiceRequest
712: (
713: p_api_version => 3.0,
714: p_init_msg_list => FND_API.G_FALSE,
715: p_commit => FND_API.G_FALSE,
716: x_return_status => l_return_status,
717: x_msg_count => l_msg_count,
718: x_msg_data => l_msg_data,
719: p_request_id => p_x_nonroutine_rec.incident_id,
732: p_workflow_process_id => NULL,
733: x_workflow_process_id => l_workflow_process_id,
734: x_interaction_id => l_interaction_id
735: );
736: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS)
737: THEN
738: IF (G_DEBUG_UEXP >= G_DEBUG_LEVEL)
739: THEN
740: fnd_log.string
744: 'Call to CS_SERVICEREQUEST_PUB.Update_ServiceRequest failed...'
745: );
746: END IF;
747:
748: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
749: ELSE
750:
751: IF (G_DEBUG_UEXP >= G_DEBUG_LEVEL)
752: THEN
767: FND_MSG_PUB.INITIALIZE;
768: END IF;
769:
770: -- Retrieve ue_id and ovn accordingly...
771: IF (p_x_nonroutine_rec.unit_effectivity_id IS NOT NULL AND p_x_nonroutine_rec.unit_effectivity_id <> FND_API.G_MISS_NUM)
772: THEN
773: SELECT object_version_number
774: INTO p_x_nonroutine_rec.ue_object_version_number
775: FROM ahl_unit_effectivities_b
798: -- Check Error Message stack.
799: x_msg_count := FND_MSG_PUB.count_msg;
800: IF (x_msg_count > 0)
801: THEN
802: RAISE FND_API.G_EXC_ERROR;
803: END IF;
804:
805: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)
806: THEN
868: * validate unit is availale and active
869: * Behavior of Log Series and Number in "Unit / Component Details" sub-header
870: * validate log_series is not null
871: */
872: IF (p_x_nonroutine_rec.unit_config_header_id is null or p_x_nonroutine_rec.unit_config_header_id = FND_API.G_MISS_NUM)
873: THEN
874: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_UNIT_MAND');
875: -- Unit is mandatory for associating MEL/CDL instructions
876: FND_MSG_PUB.ADD;
876: FND_MSG_PUB.ADD;
877: END IF;
878:
879: IF (
880: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
881: AND
882: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
883: )
884: THEN
878:
879: IF (
880: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
881: AND
882: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
883: )
884: THEN
885: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_MAND');
886: -- Log Series and Number are mandatory for associating MEL/CDL instructions
893: -- Check Error Message stack.
894: x_msg_count := FND_MSG_PUB.count_msg;
895: IF (x_msg_count > 0)
896: THEN
897: RAISE FND_API.G_EXC_ERROR;
898: END IF;
899:
900: IF (l_ata_sequence_id IS NOT NULL)
901: THEN
909: THEN
910: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_NO_ACCOM');
911: -- Repair Time of the associated MEL/CDL Instructions cannot accomodate resolution of the Non-routine before Log Date
912: FND_MSG_PUB.ADD;
913: RAISE FND_API.G_EXC_ERROR;
914: END IF;
915:
916: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)
917: THEN
1085: -- Check Error Message stack.
1086: x_msg_count := FND_MSG_PUB.count_msg;
1087: IF (x_msg_count > 0)
1088: THEN
1089: RAISE FND_API.G_EXC_ERROR;
1090: END IF;
1091:
1092: -- Commit if p_commit = FND_API.G_TRUE
1093: IF FND_API.TO_BOOLEAN(p_commit)
1088: THEN
1089: RAISE FND_API.G_EXC_ERROR;
1090: END IF;
1091:
1092: -- Commit if p_commit = FND_API.G_TRUE
1093: IF FND_API.TO_BOOLEAN(p_commit)
1094: THEN
1095: COMMIT WORK;
1096: END IF;
1089: RAISE FND_API.G_EXC_ERROR;
1090: END IF;
1091:
1092: -- Commit if p_commit = FND_API.G_TRUE
1093: IF FND_API.TO_BOOLEAN(p_commit)
1094: THEN
1095: COMMIT WORK;
1096: END IF;
1097:
1099: FND_MSG_PUB.count_and_get
1100: (
1101: p_count => x_msg_count,
1102: p_data => x_msg_data,
1103: p_encoded => FND_API.G_FALSE
1104: );
1105:
1106: EXCEPTION
1107: WHEN FND_API.G_EXC_ERROR THEN
1103: p_encoded => FND_API.G_FALSE
1104: );
1105:
1106: EXCEPTION
1107: WHEN FND_API.G_EXC_ERROR THEN
1108: x_return_status := FND_API.G_RET_STS_ERROR;
1109: Rollback to Update_SR_SP;
1110: FND_MSG_PUB.count_and_get
1111: (
1104: );
1105:
1106: EXCEPTION
1107: WHEN FND_API.G_EXC_ERROR THEN
1108: x_return_status := FND_API.G_RET_STS_ERROR;
1109: Rollback to Update_SR_SP;
1110: FND_MSG_PUB.count_and_get
1111: (
1112: p_count => x_msg_count,
1110: FND_MSG_PUB.count_and_get
1111: (
1112: p_count => x_msg_count,
1113: p_data => x_msg_data,
1114: p_encoded => FND_API.G_FALSE
1115: );
1116:
1117: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1118: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1113: p_data => x_msg_data,
1114: p_encoded => FND_API.G_FALSE
1115: );
1116:
1117: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1118: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1119: Rollback to Update_SR_SP;
1120: FND_MSG_PUB.count_and_get
1121: (
1114: p_encoded => FND_API.G_FALSE
1115: );
1116:
1117: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1118: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1119: Rollback to Update_SR_SP;
1120: FND_MSG_PUB.count_and_get
1121: (
1122: p_count => x_msg_count,
1120: FND_MSG_PUB.count_and_get
1121: (
1122: p_count => x_msg_count,
1123: p_data => x_msg_data,
1124: p_encoded => FND_API.G_FALSE
1125: );
1126:
1127: WHEN OTHERS THEN
1128: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1124: p_encoded => FND_API.G_FALSE
1125: );
1126:
1127: WHEN OTHERS THEN
1128: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1129: Rollback to Update_SR_SP;
1130: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1131: THEN
1132: FND_MSG_PUB.add_exc_msg
1139: FND_MSG_PUB.count_and_get
1140: (
1141: p_count => x_msg_count,
1142: p_data => x_msg_data,
1143: p_encoded => FND_API.G_FALSE
1144: );
1145: END Update_SR;
1146:
1147: ----------------------------------------------
1150: PROCEDURE Initiate_Mel_Cdl_Approval
1151: (
1152: -- Standard IN params
1153: p_api_version IN NUMBER,
1154: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1155: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1157: p_default IN VARCHAR2 := FND_API.G_FALSE,
1158: p_module_type IN VARCHAR2 := NULL,
1151: (
1152: -- Standard IN params
1153: p_api_version IN NUMBER,
1154: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1155: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1157: p_default IN VARCHAR2 := FND_API.G_FALSE,
1158: p_module_type IN VARCHAR2 := NULL,
1159: -- Standard OUT params
1152: -- Standard IN params
1153: p_api_version IN NUMBER,
1154: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1155: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1157: p_default IN VARCHAR2 := FND_API.G_FALSE,
1158: p_module_type IN VARCHAR2 := NULL,
1159: -- Standard OUT params
1160: x_return_status OUT NOCOPY VARCHAR2,
1153: p_api_version IN NUMBER,
1154: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1155: p_commit IN VARCHAR2 := FND_API.G_FALSE,
1156: p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
1157: p_default IN VARCHAR2 := FND_API.G_FALSE,
1158: p_module_type IN VARCHAR2 := NULL,
1159: -- Standard OUT params
1160: x_return_status OUT NOCOPY VARCHAR2,
1161: x_msg_count OUT NOCOPY NUMBER,
1303: -- Standard start of API savepoint
1304: SAVEPOINT Initiate_Mel_Cdl_Approval_SP;
1305:
1306: -- Initialize return status to success before any code logic/validation
1307: x_return_status := FND_API.G_RET_STS_SUCCESS;
1308:
1309: -- Standard call to check for call compatibility
1310: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1311: THEN
1306: -- Initialize return status to success before any code logic/validation
1307: x_return_status := FND_API.G_RET_STS_SUCCESS;
1308:
1309: -- Standard call to check for call compatibility
1310: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1311: THEN
1312: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1313: END IF;
1314:
1308:
1309: -- Standard call to check for call compatibility
1310: IF NOT FND_API.COMPATIBLE_API_CALL (l_api_version, p_api_version, l_api_name, G_PKG_NAME)
1311: THEN
1312: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1313: END IF;
1314:
1315: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
1316: IF FND_API.TO_BOOLEAN(p_init_msg_list)
1311: THEN
1312: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1313: END IF;
1314:
1315: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
1316: IF FND_API.TO_BOOLEAN(p_init_msg_list)
1317: THEN
1318: FND_MSG_PUB.INITIALIZE;
1319: END IF;
1312: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1313: END IF;
1314:
1315: -- Initialize message list if p_init_msg_list = FND_API.G_TRUE
1316: IF FND_API.TO_BOOLEAN(p_init_msg_list)
1317: THEN
1318: FND_MSG_PUB.INITIALIZE;
1319: END IF;
1320:
1339: CLOSE unit_effect_csr;
1340: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_UE_INVALID');
1341: FND_MESSAGE.Set_Token('UE_ID',p_ue_id);
1342: FND_MSG_PUB.ADD;
1343: RAISE FND_API.G_EXC_ERROR;
1344: ELSIF (l_ue_rec.object_version_number <> p_ue_object_version) THEN
1345: CLOSE unit_effect_csr;
1346: FND_MESSAGE.Set_Name('AHL','AHL_COM_CHANGED');
1347: FND_MSG_PUB.ADD;
1344: ELSIF (l_ue_rec.object_version_number <> p_ue_object_version) THEN
1345: CLOSE unit_effect_csr;
1346: FND_MESSAGE.Set_Name('AHL','AHL_COM_CHANGED');
1347: FND_MSG_PUB.ADD;
1348: RAISE FND_API.G_EXC_ERROR;
1349: END IF;
1350: CLOSE unit_effect_csr;
1351:
1352: -- Check Unit locked.
1352: -- Check Unit locked.
1353: IF AHL_PRD_UTIL_PKG.Is_Unit_Locked(p_workorder_id => null,
1354: p_ue_id => p_ue_id,
1355: p_visit_id => null,
1356: p_item_instance_id => null) = FND_API.g_true THEN
1357: -- Unit is locked, therefore cannot proceed for approval.
1358: -- and cannot login to the workorder
1359: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_UNITLCKED');
1360: FND_MESSAGE.set_token('UE_ID', p_ue_id);
1358: -- and cannot login to the workorder
1359: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_UNITLCKED');
1360: FND_MESSAGE.set_token('UE_ID', p_ue_id);
1361: FND_MSG_PUB.ADD;
1362: RAISE FND_API.G_EXC_ERROR;
1363: END IF;
1364:
1365: -- check UE status.
1366: OPEN visit_det_csr(p_ue_id);
1369: CLOSE visit_det_csr;
1370: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_NOT_PRD');
1371: FND_MESSAGE.Set_Token('UE_ID',p_ue_id);
1372: FND_MSG_PUB.ADD;
1373: RAISE FND_API.G_EXC_ERROR;
1374: END IF;
1375: CLOSE visit_det_csr;
1376:
1377: -- Validate UE is already not pending for MEL/CDL approval / already not approved
1381: CLOSE ue_deferral_csr;
1382: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_NOT_DEFER');
1383: FND_MESSAGE.Set_Token('UE_ID',p_ue_id);
1384: FND_MSG_PUB.ADD;
1385: RAISE FND_API.G_EXC_ERROR;
1386: END IF;
1387: CLOSE ue_deferral_csr;
1388:
1389: IF (l_deferral_rec.approval_status_code IN ('DEFERRED','DEFERRAL_PENDING')) THEN
1388:
1389: IF (l_deferral_rec.approval_status_code IN ('DEFERRED','DEFERRAL_PENDING')) THEN
1390: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_APPR_STATUS_INVALID');
1391: FND_MSG_PUB.ADD;
1392: RAISE FND_API.G_EXC_ERROR;
1393: END IF;
1394:
1395: IF (l_deferral_rec.ata_sequence_id IS NULL) THEN
1396: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_NO_SYS_SEQ_ASSOC');
1394:
1395: IF (l_deferral_rec.ata_sequence_id IS NULL) THEN
1396: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_NO_SYS_SEQ_ASSOC');
1397: FND_MSG_PUB.ADD;
1398: RAISE FND_API.G_EXC_ERROR;
1399: END IF;
1400:
1401: -- validate ue is not being deferred.
1402: OPEN ue_defer_csr(p_ue_id);
1404: IF (ue_defer_csr%FOUND) THEN
1405: CLOSE ue_defer_csr;
1406: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_IN_DEFER');
1407: FND_MSG_PUB.ADD;
1408: RAISE FND_API.G_EXC_ERROR;
1409: END IF;
1410: CLOSE ue_defer_csr;
1411:
1412: -- validate there are no child UEs being deferred.
1415: IF (ue_defer_child_csr%FOUND) THEN
1416: CLOSE ue_defer_child_csr;
1417: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_CHILD_UE_DEFER');
1418: FND_MSG_PUB.ADD;
1419: RAISE FND_API.G_EXC_ERROR;
1420: END IF;
1421: CLOSE ue_defer_child_csr;
1422:
1423: -- Perform pre-MEL/CDL approval validations
1427: IF (mel_cdl_header_csr%NOTFOUND) THEN
1428: CLOSE mel_cdl_header_csr;
1429: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_MEL_CDL_INVALID');
1430: FND_MSG_PUB.ADD;
1431: RAISE FND_API.G_EXC_ERROR;
1432: END IF;
1433:
1434: -- validate repair category.
1435: OPEN get_exp_resolution_csr(l_ue_rec.cs_incident_id);
1437: IF (get_exp_resolution_csr%NOTFOUND) THEN
1438: CLOSE get_exp_resolution_csr;
1439: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_CS_INC_MISSING');
1440: FND_MSG_PUB.ADD;
1441: RAISE FND_API.G_EXC_ERROR;
1442: ELSIF (nvl(l_repair_time, 0) = 0) AND (l_expected_resolu_date IS NULL) THEN
1443: CLOSE get_exp_resolution_csr;
1444: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_RESOLUTION_MAND');
1445: FND_MSG_PUB.ADD;
1442: ELSIF (nvl(l_repair_time, 0) = 0) AND (l_expected_resolu_date IS NULL) THEN
1443: CLOSE get_exp_resolution_csr;
1444: FND_MESSAGE.Set_Name('AHL','AHL_UMP_NR_RESOLUTION_MAND');
1445: FND_MSG_PUB.ADD;
1446: RAISE FND_API.G_EXC_ERROR;
1447: END IF;
1448: CLOSE get_exp_resolution_csr;
1449:
1450: -- Bug #5230869 - validate inc_occ_date + rep_time >= inc_date
1452: THEN
1453: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_NO_ACCOM');
1454: -- Repair Time of the associated MEL/CDL Instructions cannot accomodate resolution of the Non-routine before Log Date
1455: FND_MSG_PUB.ADD;
1456: RAISE FND_API.G_EXC_ERROR;
1457: END IF;
1458:
1459: -- Validate log_series, number + unit_config are not null for NR that is being submitted for MEL/CDL deferral
1460: IF (l_ue_rec.unit_config_header_id is null or l_ue_rec.log_series_code is null or l_ue_rec.log_series_number is null)
1461: THEN
1462: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_APPR_MAND_INV');
1463: -- Unit, Log Series and Number are mandatory for submitting for MEL/CDL approval
1464: FND_MSG_PUB.ADD;
1465: RAISE FND_API.G_EXC_ERROR;
1466: END IF;
1467:
1468: --amsriniv. Bug 6659422. Adding condition below only when dispatch_number and installed_number
1469: --are both NOT NULL and dispatch_number is > 0.
1480:
1481: IF ((l_installed_number - l_NR_count) <= l_dispatch_number) THEN
1482: FND_MESSAGE.Set_Name('AHL','AHL_UMP_OPEN_NR_EXCEEDS');
1483: FND_MSG_PUB.ADD;
1484: RAISE FND_API.G_EXC_ERROR;
1485: END IF;
1486: END IF;
1487:
1488: -- validate workorder dependency.
1488: -- validate workorder dependency.
1489: AHL_PRD_WORKORDER_PVT.validate_dependencies
1490: (
1491: p_api_version => 1.0,
1492: p_init_msg_list => FND_API.G_TRUE,
1493: p_commit => FND_API.G_FALSE,
1494: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1495: p_default => FND_API.G_FALSE,
1496: p_module_type => NULL,
1489: AHL_PRD_WORKORDER_PVT.validate_dependencies
1490: (
1491: p_api_version => 1.0,
1492: p_init_msg_list => FND_API.G_TRUE,
1493: p_commit => FND_API.G_FALSE,
1494: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1495: p_default => FND_API.G_FALSE,
1496: p_module_type => NULL,
1497: x_return_status => l_return_status,
1490: (
1491: p_api_version => 1.0,
1492: p_init_msg_list => FND_API.G_TRUE,
1493: p_commit => FND_API.G_FALSE,
1494: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1495: p_default => FND_API.G_FALSE,
1496: p_module_type => NULL,
1497: x_return_status => l_return_status,
1498: x_msg_count => l_msg_count,
1491: p_api_version => 1.0,
1492: p_init_msg_list => FND_API.G_TRUE,
1493: p_commit => FND_API.G_FALSE,
1494: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
1495: p_default => FND_API.G_FALSE,
1496: p_module_type => NULL,
1497: x_return_status => l_return_status,
1498: x_msg_count => l_msg_count,
1499: x_msg_data => l_msg_data,
1502: p_workorder_id => NULL
1503: );
1504:
1505: -- if workorders under UE has external dependencies, dont submit for approval, raise error.
1506: IF(l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1507: IF (fnd_log.level_error >= G_DEBUG_LEVEL)THEN
1508: fnd_log.string
1509: (
1510: fnd_log.level_error,
1511: 'ahl.plsql.AHL_UMP_NONROUTINES_PVT.Initiate_Mel_Cdl_Approval',
1512: 'Can not go ahead with submission of approval because Workorder dependencies exists'
1513: );
1514: END IF;
1515: RAISE FND_API.G_EXC_ERROR;
1516: END IF;
1517:
1518: -- Kick off approval process if active, else complete approval process (post-MEL/CDL approval updations)
1519: ahl_utility_pvt.get_wf_process_name(
1545: );
1546:
1547: END IF;
1548:
1549: IF((l_return_status <> FND_API.G_RET_STS_SUCCESS) OR
1550: ( l_active <> G_YES_FLAG))THEN
1551: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)THEN
1552: fnd_log.string
1553: (
1565: p_object_version_number => l_deferral_rec.object_version_number,
1566: p_new_status => 'DEFERRAL_PENDING',
1567: x_return_status => l_return_status);
1568:
1569: IF(l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
1570: IF (fnd_log.level_error >= G_DEBUG_LEVEL)THEN
1571: fnd_log.string
1572: (
1573: fnd_log.level_error,
1574: 'ahl.plsql.AHL_UMP_NONROUTINES_PVT.submit_for_approval',
1575: 'Can not go ahead with approval because AHL_UMP_NONROUTINES_PVT.Initiate_Mel_Cdl_Approval threw error'
1576: );
1577: END IF;
1578: RAISE FND_API.G_EXC_ERROR;
1579: END IF;
1580:
1581: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL)THEN
1582: fnd_log.string
1660: 'At the end of PLSQL procedure'
1661: );
1662: END IF;
1663:
1664: -- Commit if p_commit = FND_API.G_TRUE
1665: IF FND_API.TO_BOOLEAN(p_commit)
1666: THEN
1667: COMMIT WORK;
1668: END IF;
1661: );
1662: END IF;
1663:
1664: -- Commit if p_commit = FND_API.G_TRUE
1665: IF FND_API.TO_BOOLEAN(p_commit)
1666: THEN
1667: COMMIT WORK;
1668: END IF;
1669:
1671: FND_MSG_PUB.count_and_get
1672: (
1673: p_count => x_msg_count,
1674: p_data => x_msg_data,
1675: p_encoded => FND_API.G_FALSE
1676: );
1677:
1678: EXCEPTION
1679: WHEN FND_API.G_EXC_ERROR THEN
1675: p_encoded => FND_API.G_FALSE
1676: );
1677:
1678: EXCEPTION
1679: WHEN FND_API.G_EXC_ERROR THEN
1680: x_return_status := FND_API.G_RET_STS_ERROR;
1681: Rollback to Initiate_Mel_Cdl_Approval_SP;
1682: FND_MSG_PUB.count_and_get
1683: (
1676: );
1677:
1678: EXCEPTION
1679: WHEN FND_API.G_EXC_ERROR THEN
1680: x_return_status := FND_API.G_RET_STS_ERROR;
1681: Rollback to Initiate_Mel_Cdl_Approval_SP;
1682: FND_MSG_PUB.count_and_get
1683: (
1684: p_count => x_msg_count,
1682: FND_MSG_PUB.count_and_get
1683: (
1684: p_count => x_msg_count,
1685: p_data => x_msg_data,
1686: p_encoded => FND_API.G_FALSE
1687: );
1688:
1689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1685: p_data => x_msg_data,
1686: p_encoded => FND_API.G_FALSE
1687: );
1688:
1689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1691: Rollback to Initiate_Mel_Cdl_Approval_SP;
1692: FND_MSG_PUB.count_and_get
1693: (
1686: p_encoded => FND_API.G_FALSE
1687: );
1688:
1689: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1690: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1691: Rollback to Initiate_Mel_Cdl_Approval_SP;
1692: FND_MSG_PUB.count_and_get
1693: (
1694: p_count => x_msg_count,
1692: FND_MSG_PUB.count_and_get
1693: (
1694: p_count => x_msg_count,
1695: p_data => x_msg_data,
1696: p_encoded => FND_API.G_FALSE
1697: );
1698:
1699: WHEN OTHERS THEN
1700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1696: p_encoded => FND_API.G_FALSE
1697: );
1698:
1699: WHEN OTHERS THEN
1700: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1701: Rollback to Initiate_Mel_Cdl_Approval_SP;
1702: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1703: THEN
1704: FND_MSG_PUB.add_exc_msg
1711: FND_MSG_PUB.count_and_get
1712: (
1713: p_count => x_msg_count,
1714: p_data => x_msg_data,
1715: p_encoded => FND_API.G_FALSE
1716: );
1717: END Initiate_Mel_Cdl_Approval;
1718:
1719: ----------------------------------------------
1788: )
1789: AND ROWNUM = 1;
1790: BEGIN
1791: -- Initialize return status to success before any code logic/validation
1792: x_return_status := FND_API.G_RET_STS_SUCCESS;
1793:
1794: -- Log API entry point
1795: IF (G_DEBUG_PROC >= G_DEBUG_LEVEL)
1796: THEN
1808: THEN
1809: -- return error.
1810: FND_MESSAGE.Set_Name('AHL', 'AHL_UMP_NR_MULTI_PARAM');
1811: FND_MSG_PUB.ADD;
1812: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1813: END IF;
1814:
1815: -- if p_mel_cdl_header_id is not null
1816: IF (p_mel_cdl_header_id IS NOT NULL)
1818: OPEN nr_mel_cdl_csr(p_mel_cdl_header_id);
1819: FETCH nr_mel_cdl_csr INTO l_junk;
1820: IF (nr_mel_cdl_csr%FOUND)
1821: THEN
1822: x_return_status := FND_API.G_RET_STS_ERROR;
1823: END IF;
1824: CLOSE nr_mel_cdl_csr;
1825: END IF; -- p_mel_cdl_header_id IS NOT NULL
1826:
1830: OPEN nr_pc_node_csr(p_pc_node_id);
1831: FETCH nr_pc_node_csr INTO l_junk;
1832: IF (nr_pc_node_csr%FOUND)
1833: THEN
1834: x_return_status := FND_API.G_RET_STS_ERROR;
1835: END IF;
1836: CLOSE nr_pc_node_csr;
1837: END IF; -- p_pc_node_id IS NOT NULL
1838:
1848: );
1849: END IF;
1850:
1851: EXCEPTION
1852: WHEN FND_API.G_EXC_ERROR THEN
1853: x_return_status := FND_API.G_RET_STS_ERROR;
1854:
1855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1849: END IF;
1850:
1851: EXCEPTION
1852: WHEN FND_API.G_EXC_ERROR THEN
1853: x_return_status := FND_API.G_RET_STS_ERROR;
1854:
1855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1857:
1851: EXCEPTION
1852: WHEN FND_API.G_EXC_ERROR THEN
1853: x_return_status := FND_API.G_RET_STS_ERROR;
1854:
1855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1857:
1858: WHEN OTHERS THEN
1859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1852: WHEN FND_API.G_EXC_ERROR THEN
1853: x_return_status := FND_API.G_RET_STS_ERROR;
1854:
1855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1857:
1858: WHEN OTHERS THEN
1859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1860: END Check_Open_NRs;
1855: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1856: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1857:
1858: WHEN OTHERS THEN
1859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1860: END Check_Open_NRs;
1861:
1862: -----------------------------------------
1863: -- Spec Function Get_Mel_Cdl_Header_Id --
1916: l_mel_version_number NUMBER;
1917:
1918: BEGIN
1919:
1920: IF (p_unit_effectivity_id IS NOT NULL AND p_unit_effectivity_id <> FND_API.G_MISS_NUM)
1921: THEN
1922: OPEN get_ue_details;
1923: FETCH get_ue_details INTO l_unit_config_id, l_mel_cdl_type_code;
1924: CLOSE get_ue_details;
1922: OPEN get_ue_details;
1923: FETCH get_ue_details INTO l_unit_config_id, l_mel_cdl_type_code;
1924: CLOSE get_ue_details;
1925: ELSIF (
1926: p_csi_instance_id IS NOT NULL AND p_csi_instance_id <> FND_API.G_MISS_NUM AND
1927: p_mel_cdl_type_code IS NOT NULL AND p_mel_cdl_type_code <> FND_API.G_MISS_CHAR
1928: )
1929: THEN
1930: --SELECT ahl_util_uc_pkg.get_uc_header_id(p_csi_instance_id) INTO l_unit_config_id FROM DUAL;
1923: FETCH get_ue_details INTO l_unit_config_id, l_mel_cdl_type_code;
1924: CLOSE get_ue_details;
1925: ELSIF (
1926: p_csi_instance_id IS NOT NULL AND p_csi_instance_id <> FND_API.G_MISS_NUM AND
1927: p_mel_cdl_type_code IS NOT NULL AND p_mel_cdl_type_code <> FND_API.G_MISS_CHAR
1928: )
1929: THEN
1930: --SELECT ahl_util_uc_pkg.get_uc_header_id(p_csi_instance_id) INTO l_unit_config_id FROM DUAL;
1931: l_unit_config_id := ahl_util_uc_pkg.get_uc_header_id(p_csi_instance_id);
1957: --------------------------------------
1958: FUNCTION Get_Mel_Cdl_Status
1959: (
1960: p_unit_effectivity_id NUMBER,
1961: p_get_code VARCHAR2 := FND_API.G_FALSE
1962: )
1963: RETURN VARCHAR2
1964: IS
1965: l_mel_cdl_status VARCHAR2(30) := 'OPEN';
1978: l_ret_val BOOLEAN;
1979:
1980: BEGIN
1981:
1982: IF (p_unit_effectivity_id IS NOT NULL AND p_unit_effectivity_id <> FND_API.G_MISS_NUM)
1983: THEN
1984: OPEN get_ue_details;
1985: FETCH get_ue_details INTO l_deferral_type, l_approval_code;
1986: IF (get_ue_details%FOUND)
1993: END IF;
1994: END IF;
1995: END IF;
1996:
1997: IF (p_get_code = FND_API.G_TRUE)
1998: THEN
1999: RETURN l_mel_cdl_status;
2000: ELSE
2001: AHL_UTIL_MC_PKG.Convert_To_LookupMeaning
2190: END IF;
2191:
2192: /*
2193: -- Validate unit_config_header_id NOT NULL
2194: IF (p_x_nonroutine_rec.unit_config_header_id is null or p_x_nonroutine_rec.unit_config_header_id = FND_API.G_MISS_NUM)
2195: THEN
2196: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_NULL');
2197: FND_MSG_PUB.ADD;
2198: RAISE FND_API.G_EXC_ERROR;
2194: IF (p_x_nonroutine_rec.unit_config_header_id is null or p_x_nonroutine_rec.unit_config_header_id = FND_API.G_MISS_NUM)
2195: THEN
2196: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_NULL');
2197: FND_MSG_PUB.ADD;
2198: RAISE FND_API.G_EXC_ERROR;
2199: */
2200:
2201: /* Behavior of Unit, Item, Serial and Instance LOVs in "Unit / Component Details" sub-header
2202: * if unit_config_header_id is not null, then it needs to be an active unit and instance should exist on the unit
2203: * if unit_config_header_id is null, try to derive an active unit from the instance
2204: * if unit_config_header_id is still not null, consider this a case of logging NR for IB component only
2205: * if either UI unit/derived unit is in quarantine/deactive_quarantine, throw error
2206: */
2207: IF (p_x_nonroutine_rec.unit_config_header_id is null or p_x_nonroutine_rec.unit_config_header_id = FND_API.G_MISS_NUM)
2208: THEN
2209: l_uc_header_id := ahl_util_uc_pkg.get_uc_header_id(p_x_nonroutine_rec.instance_id);
2210: l_uc_status_code := ahl_util_uc_pkg.get_uc_status_code(l_uc_header_id);
2211: IF (l_uc_status_code IN ('COMPLETE', 'INCOMPLETE'))
2214: ELSIF (l_uc_status_code IN ('QUARANTINE', 'DEACTIVATE_QUARANTINE'))
2215: THEN
2216: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_QUAR_INV');
2217: FND_MSG_PUB.ADD;
2218: RAISE FND_API.G_EXC_ERROR;
2219: END IF;
2220: ELSE
2221: l_uc_status_code := ahl_util_uc_pkg.get_uc_status_code(p_x_nonroutine_rec.unit_config_header_id);
2222: -- Check for not active and/or quarantined unit
2223: IF (l_uc_status_code IN ('QUARANTINE', 'DEACTIVATE_QUARANTINE'))
2224: THEN
2225: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_QUAR_INV');
2226: FND_MSG_PUB.ADD;
2227: RAISE FND_API.G_EXC_ERROR;
2228: ELSIF (l_uc_status_code IN ('COMPLETE', 'INCOMPLETE'))
2229: THEN
2230: -- Validate instance exists on the unit specified... Assume instance is validated before this is called...
2231: l_uc_header_id := ahl_util_uc_pkg.get_uc_header_id(p_x_nonroutine_rec.instance_id);
2232: IF (NVL(l_uc_header_id, -1 ) <> p_x_nonroutine_rec.unit_config_header_id)
2233: THEN
2234: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_NOMATCH');
2235: FND_MSG_PUB.ADD;
2236: RAISE FND_API.G_EXC_ERROR;
2237: END IF;
2238: ELSE
2239: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_ACTV_INV');
2240: FND_MSG_PUB.ADD;
2237: END IF;
2238: ELSE
2239: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_UNIT_ACTV_INV');
2240: FND_MSG_PUB.ADD;
2241: RAISE FND_API.G_EXC_ERROR;
2242: END IF;
2243: END IF;
2244:
2245: /* Behavior of Log Series and Number in "Unit / Component Details" sub-header
2247: * log_series and log_number exist in combination
2248: * log_series and log_number are always user-editable, but the combination is unique
2249: * post association of MEL/CDL instr, log_series and log_number cannot be NULL
2250: */
2251: IF (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2252: THEN
2253: IF (p_x_nonroutine_rec.log_series_meaning IS NOT NULL AND p_x_nonroutine_rec.log_series_meaning <> FND_API.G_MISS_CHAR)
2254: THEN
2255: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2249: * post association of MEL/CDL instr, log_series and log_number cannot be NULL
2250: */
2251: IF (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2252: THEN
2253: IF (p_x_nonroutine_rec.log_series_meaning IS NOT NULL AND p_x_nonroutine_rec.log_series_meaning <> FND_API.G_MISS_CHAR)
2254: THEN
2255: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2256: (
2257: p_lookup_type => 'AHL_LOG_SERIES_CODE',
2274: FND_MSG_PUB.ADD;
2275: END IF;
2276: END IF;
2277:
2278: IF (p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM AND p_x_nonroutine_rec.log_series_number < 0)
2279: THEN
2280: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_LOGNUM_INV');
2281: -- Non-routine Log Number must be a positive integer
2282: FND_MSG_PUB.ADD;
2282: FND_MSG_PUB.ADD;
2283: END IF;
2284:
2285: IF (
2286: (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2287: AND
2288: (p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM)
2289: )
2290: OR
2284:
2285: IF (
2286: (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2287: AND
2288: (p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM)
2289: )
2290: OR
2291: (
2292: (p_x_nonroutine_rec.log_series_code IS NOT NULL AND p_x_nonroutine_rec.log_series_code <> FND_API.G_MISS_CHAR)
2288: (p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM)
2289: )
2290: OR
2291: (
2292: (p_x_nonroutine_rec.log_series_code IS NOT NULL AND p_x_nonroutine_rec.log_series_code <> FND_API.G_MISS_CHAR)
2293: AND
2294: (p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM)
2295: )
2296: THEN
2290: OR
2291: (
2292: (p_x_nonroutine_rec.log_series_code IS NOT NULL AND p_x_nonroutine_rec.log_series_code <> FND_API.G_MISS_CHAR)
2293: AND
2294: (p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM)
2295: )
2296: THEN
2297: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_COMB');
2298: -- If Log Series is selected, Log Number is mandatory and vice-versa.
2299: FND_MSG_PUB.ADD;
2300: END IF;
2301:
2302: IF (
2303: p_x_nonroutine_rec.log_series_code IS NOT NULL AND p_x_nonroutine_rec.log_series_code <> FND_API.G_MISS_CHAR
2304: AND
2305: p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM
2306: )
2307: THEN
2301:
2302: IF (
2303: p_x_nonroutine_rec.log_series_code IS NOT NULL AND p_x_nonroutine_rec.log_series_code <> FND_API.G_MISS_CHAR
2304: AND
2305: p_x_nonroutine_rec.log_series_number IS NOT NULL AND p_x_nonroutine_rec.log_series_number <> FND_API.G_MISS_NUM
2306: )
2307: THEN
2308: OPEN check_lognum_unique;
2309: FETCH check_lognum_unique INTO l_dummy_varchar;
2325: FETCH is_ue_mel_cdl_qual INTO l_dummy_varchar;
2326: IF (is_ue_mel_cdl_qual%FOUND
2327: AND
2328: (
2329: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
2330: OR
2331: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
2332: )
2333: )
2327: AND
2328: (
2329: p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR
2330: OR
2331: p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM
2332: )
2333: )
2334: THEN
2335: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_NOCHG');
2342: /*
2343: -- Validate log series code
2344: IF (p_dml_operation = 'C')
2345: THEN
2346: IF (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2347: THEN
2348: IF (p_x_nonroutine_rec.log_series_meaning IS NULL OR p_x_nonroutine_rec.log_series_meaning = FND_API.G_MISS_CHAR)
2349: THEN
2350: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_MAND');
2344: IF (p_dml_operation = 'C')
2345: THEN
2346: IF (p_x_nonroutine_rec.log_series_code IS NULL OR p_x_nonroutine_rec.log_series_code = FND_API.G_MISS_CHAR)
2347: THEN
2348: IF (p_x_nonroutine_rec.log_series_meaning IS NULL OR p_x_nonroutine_rec.log_series_meaning = FND_API.G_MISS_CHAR)
2349: THEN
2350: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_NR_LOGSER_MAND');
2351: -- Log Series is mandatory
2352: FND_MSG_PUB.ADD;
2385:
2386: -- Validate log series number
2387: IF (p_dml_operation = 'C')
2388: THEN
2389: IF (p_x_nonroutine_rec.log_series_number IS NULL OR p_x_nonroutine_rec.log_series_number = FND_API.G_MISS_NUM)
2390: THEN
2391: SELECT ahl_log_series_s.NEXTVAL INTO p_x_nonroutine_rec.log_series_number FROM DUAL;
2392: ELSE
2393: OPEN check_lognum_unique;
2411: END IF;
2412: */
2413:
2414: -- Validate MEL/CDL type
2415: IF (p_x_nonroutine_rec.mel_cdl_type_code IS NULL OR p_x_nonroutine_rec.mel_cdl_type_code = FND_API.G_MISS_CHAR)
2416: THEN
2417: IF (p_x_nonroutine_rec.mel_cdl_type_meaning IS NOT NULL AND p_x_nonroutine_rec.mel_cdl_type_meaning <> FND_API.G_MISS_CHAR)
2418: THEN
2419: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2413:
2414: -- Validate MEL/CDL type
2415: IF (p_x_nonroutine_rec.mel_cdl_type_code IS NULL OR p_x_nonroutine_rec.mel_cdl_type_code = FND_API.G_MISS_CHAR)
2416: THEN
2417: IF (p_x_nonroutine_rec.mel_cdl_type_meaning IS NOT NULL AND p_x_nonroutine_rec.mel_cdl_type_meaning <> FND_API.G_MISS_CHAR)
2418: THEN
2419: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2420: (
2421: p_lookup_type => 'AHL_MEL_CDL_TYPE',
2439: END IF;
2440: END IF;
2441:
2442: -- Validate ata code
2443: IF (p_x_nonroutine_rec.ata_code IS NULL OR p_x_nonroutine_rec.ata_code = FND_API.G_MISS_CHAR)
2444: THEN
2445: IF (p_x_nonroutine_rec.ata_meaning IS NOT NULL AND p_x_nonroutine_rec.ata_meaning <> FND_API.G_MISS_CHAR)
2446: THEN
2447: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2441:
2442: -- Validate ata code
2443: IF (p_x_nonroutine_rec.ata_code IS NULL OR p_x_nonroutine_rec.ata_code = FND_API.G_MISS_CHAR)
2444: THEN
2445: IF (p_x_nonroutine_rec.ata_meaning IS NOT NULL AND p_x_nonroutine_rec.ata_meaning <> FND_API.G_MISS_CHAR)
2446: THEN
2447: AHL_UTIL_MC_PKG.Convert_To_LookupCode
2448: (
2449: p_lookup_type => 'AHL_ATA_CODE',
2467: END IF;
2468: END IF;
2469:
2470: -- Validate position path exists on the unit
2471: IF (p_x_nonroutine_rec.position_path_id IS NOT NULL AND p_x_nonroutine_rec.position_path_id <> FND_API.G_MISS_NUM)
2472: THEN
2473: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2474: (
2475: p_api_version => 1.0,
2472: THEN
2473: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2474: (
2475: p_api_version => 1.0,
2476: p_init_msg_list => FND_API.G_FALSE,
2477: p_commit => FND_API.G_FALSE,
2478: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2479: x_return_status => l_return_status,
2480: x_msg_count => l_msg_count,
2473: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2474: (
2475: p_api_version => 1.0,
2476: p_init_msg_list => FND_API.G_FALSE,
2477: p_commit => FND_API.G_FALSE,
2478: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2479: x_return_status => l_return_status,
2480: x_msg_count => l_msg_count,
2481: x_msg_data => l_msg_data,
2474: (
2475: p_api_version => 1.0,
2476: p_init_msg_list => FND_API.G_FALSE,
2477: p_commit => FND_API.G_FALSE,
2478: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2479: x_return_status => l_return_status,
2480: x_msg_count => l_msg_count,
2481: x_msg_data => l_msg_data,
2482: p_position_id => p_x_nonroutine_rec.position_path_id
2481: x_msg_data => l_msg_data,
2482: p_position_id => p_x_nonroutine_rec.position_path_id
2483: );
2484:
2485: IF (l_return_status = FND_API.G_RET_STS_SUCCESS)
2486: THEN
2487: OPEN check_pos_path_exists;
2488: FETCH check_pos_path_exists INTO l_dummy_varchar;
2489: IF (check_pos_path_exists%NOTFOUND)
2527: END IF;
2528:
2529: /*
2530: -- Validate clear station org
2531: IF (p_x_nonroutine_rec.clear_station_org_id IS NULL OR p_x_nonroutine_rec.clear_station_org_id = FND_API.G_MISS_NUM)
2532: THEN
2533: IF (p_x_nonroutine_rec.clear_station_org IS NOT NULL AND p_x_nonroutine_rec.clear_station_org <> FND_API.G_MISS_CHAR)
2534: THEN
2535: OPEN get_org_id_from_name(p_x_nonroutine_rec.clear_station_org);
2529: /*
2530: -- Validate clear station org
2531: IF (p_x_nonroutine_rec.clear_station_org_id IS NULL OR p_x_nonroutine_rec.clear_station_org_id = FND_API.G_MISS_NUM)
2532: THEN
2533: IF (p_x_nonroutine_rec.clear_station_org IS NOT NULL AND p_x_nonroutine_rec.clear_station_org <> FND_API.G_MISS_CHAR)
2534: THEN
2535: OPEN get_org_id_from_name(p_x_nonroutine_rec.clear_station_org);
2536: FETCH get_org_id_from_name INTO p_x_nonroutine_rec.clear_station_org_id;
2537: IF (get_org_id_from_name%NOTFOUND)
2554: CLOSE check_org_id;
2555: END IF;
2556:
2557: -- Validate clear station dept
2558: IF (p_x_nonroutine_rec.clear_station_dept_id IS NULL OR p_x_nonroutine_rec.clear_station_dept_id = FND_API.G_MISS_NUM)
2559: THEN
2560: IF (p_x_nonroutine_rec.clear_station_dept IS NOT NULL AND p_x_nonroutine_rec.clear_station_dept <> FND_API.G_MISS_CHAR)
2561: THEN
2562: OPEN get_dept_id_from_name(p_x_nonroutine_rec.clear_station_dept, p_x_nonroutine_rec.clear_station_org_id);
2556:
2557: -- Validate clear station dept
2558: IF (p_x_nonroutine_rec.clear_station_dept_id IS NULL OR p_x_nonroutine_rec.clear_station_dept_id = FND_API.G_MISS_NUM)
2559: THEN
2560: IF (p_x_nonroutine_rec.clear_station_dept IS NOT NULL AND p_x_nonroutine_rec.clear_station_dept <> FND_API.G_MISS_CHAR)
2561: THEN
2562: OPEN get_dept_id_from_name(p_x_nonroutine_rec.clear_station_dept, p_x_nonroutine_rec.clear_station_org_id);
2563: FETCH get_dept_id_from_name INTO p_x_nonroutine_rec.clear_station_dept_id;
2564: IF (get_dept_id_from_name%NOTFOUND)
2654: l_ata_for_position varchar2(30);
2655:
2656: BEGIN
2657:
2658: IF (p_unit_effectivity_id IS NOT NULL AND p_unit_effectivity_id <> FND_API.G_MISS_NUM)
2659: THEN
2660: OPEN get_ue_details;
2661: FETCH get_ue_details INTO l_ue_details_rec;
2662: CLOSE get_ue_details;
2673: [ata_code='||l_ue_details_rec.ata_code||']'
2674: );
2675: END IF;
2676:
2677: IF (l_ue_details_rec.mel_cdl_type_code IS NULL OR l_ue_details_rec.mel_cdl_type_code = FND_API.G_MISS_CHAR)
2678: THEN
2679: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_QUAL_TYPE_MAND');
2680: -- MEL/CDL Type is mandatory, hence cannot qualify for MEL/CDL
2681: FND_MSG_PUB.ADD;
2699: -- No MEL/CDL has been setup for the unit "UCNAME", hence cannot qualify for MEL/CDL
2700: FND_MSG_PUB.ADD;
2701: ELSE
2702: IF (
2703: (l_ue_details_rec.ata_code IS NULL OR l_ue_details_rec.ata_code = FND_API.G_MISS_CHAR)
2704: AND
2705: (l_ue_details_rec.position_path_id IS NULL OR l_ue_details_rec.position_path_id = FND_API.G_MISS_NUM)
2706: )
2707: THEN
2701: ELSE
2702: IF (
2703: (l_ue_details_rec.ata_code IS NULL OR l_ue_details_rec.ata_code = FND_API.G_MISS_CHAR)
2704: AND
2705: (l_ue_details_rec.position_path_id IS NULL OR l_ue_details_rec.position_path_id = FND_API.G_MISS_NUM)
2706: )
2707: THEN
2708: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_QUAL_ALL_NULL');
2709: -- One of Position ATA and Position is mandatory, hence cannot qualify for MEL/CDL
2709: -- One of Position ATA and Position is mandatory, hence cannot qualify for MEL/CDL
2710: FND_MSG_PUB.ADD;
2711: END IF;
2712:
2713: IF (l_ue_details_rec.position_path_id IS NOT NULL AND l_ue_details_rec.position_path_id <> FND_API.G_MISS_NUM)
2714: THEN
2715: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2716: (
2717: p_api_version => 1.0,
2714: THEN
2715: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2716: (
2717: p_api_version => 1.0,
2718: p_init_msg_list => FND_API.G_FALSE,
2719: p_commit => FND_API.G_FALSE,
2720: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2721: x_return_status => l_return_status,
2722: x_msg_count => l_msg_count,
2715: AHL_MC_PATH_POSITION_PVT.Map_Position_To_Instances
2716: (
2717: p_api_version => 1.0,
2718: p_init_msg_list => FND_API.G_FALSE,
2719: p_commit => FND_API.G_FALSE,
2720: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2721: x_return_status => l_return_status,
2722: x_msg_count => l_msg_count,
2723: x_msg_data => l_msg_data,
2716: (
2717: p_api_version => 1.0,
2718: p_init_msg_list => FND_API.G_FALSE,
2719: p_commit => FND_API.G_FALSE,
2720: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2721: x_return_status => l_return_status,
2722: x_msg_count => l_msg_count,
2723: x_msg_data => l_msg_data,
2724: p_position_id => l_ue_details_rec.position_path_id
2724: p_position_id => l_ue_details_rec.position_path_id
2725: );
2726:
2727:
2728: IF (l_return_status = FND_API.G_RET_STS_SUCCESS)
2729: THEN
2730: OPEN get_ata_for_position(l_ue_details_rec.position_path_id, l_ue_details_rec.unit_config_id);
2731: FETCH get_ata_for_position INTO l_ata_for_position;
2732: CLOSE get_ata_for_position;
2762: THEN
2763: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_MEL_CDL_POS_ATA_NO_MATCH');
2764: -- ATA code of the Position ATA and MC Position does not match .
2765: FND_MSG_PUB.ADD;
2766: RAISE FND_API.G_EXC_ERROR;
2767: END IF;
2768: --End of changes by Priyan
2769:
2770: OPEN check_ata_exists(l_mel_cdl_header_id, l_ata_for_position);
2800: END IF;
2801: END IF;
2802: END IF;
2803:
2804: IF (x_ata_sequence_id IS NULL AND l_ue_details_rec.ata_code IS NOT NULL AND l_ue_details_rec.ata_code <> FND_API.G_MISS_CHAR)
2805: THEN
2806: OPEN check_ata_exists(l_mel_cdl_header_id, l_ue_details_rec.ata_code);
2807: FETCH check_ata_exists INTO x_ata_sequence_id;
2808: CLOSE check_ata_exists;
2864:
2865: BEGIN
2866:
2867: -- Validate instance_number and instance_id
2868: IF (p_x_nonroutine_rec.instance_number IS NULL OR p_x_nonroutine_rec.instance_number = FND_API.G_MISS_CHAR)
2869: THEN
2870: IF (p_x_nonroutine_rec.instance_id is null or p_x_nonroutine_rec.instance_id = FND_API.G_MISS_NUM)
2871: THEN
2872: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_INSTANCE_NULL');
2866:
2867: -- Validate instance_number and instance_id
2868: IF (p_x_nonroutine_rec.instance_number IS NULL OR p_x_nonroutine_rec.instance_number = FND_API.G_MISS_CHAR)
2869: THEN
2870: IF (p_x_nonroutine_rec.instance_id is null or p_x_nonroutine_rec.instance_id = FND_API.G_MISS_NUM)
2871: THEN
2872: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_INSTANCE_NULL');
2873: FND_MSG_PUB.ADD;
2874: RAISE FND_API.G_EXC_ERROR;
2870: IF (p_x_nonroutine_rec.instance_id is null or p_x_nonroutine_rec.instance_id = FND_API.G_MISS_NUM)
2871: THEN
2872: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_INSTANCE_NULL');
2873: FND_MSG_PUB.ADD;
2874: RAISE FND_API.G_EXC_ERROR;
2875: END IF;
2876: ELSE
2877: BEGIN
2878: -- Bug #4918818: APPSPERF fix
2898: -- Commenting as the incident date can be any date prior to sysdate.
2899: -- p_x_nonroutine_rec.incident_date := sysdate;
2900:
2901: -- Validate and default SR type
2902: IF (p_x_nonroutine_rec.type_name is not null and p_x_nonroutine_rec.type_name <> FND_API.G_MISS_CHAR)
2903: THEN
2904: BEGIN
2905: SELECT incident_type_id
2906: INTO p_x_nonroutine_rec.type_id
2914: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_TYPE_INV');
2915: FND_MESSAGE.SET_TOKEN('TYPE', p_x_nonroutine_rec.type_name);
2916: FND_MSG_PUB.ADD;
2917: END;
2918: ELSIF (p_x_nonroutine_rec.type_id is null or p_x_nonroutine_rec.type_id = FND_API.G_MISS_NUM)
2919: THEN
2920: p_x_nonroutine_rec.type_id := fnd_profile.value('AHL_PRD_SR_TYPE');
2921:
2922: IF (p_x_nonroutine_rec.type_id is null or p_x_nonroutine_rec.type_id = FND_API.G_MISS_NUM)
2918: ELSIF (p_x_nonroutine_rec.type_id is null or p_x_nonroutine_rec.type_id = FND_API.G_MISS_NUM)
2919: THEN
2920: p_x_nonroutine_rec.type_id := fnd_profile.value('AHL_PRD_SR_TYPE');
2921:
2922: IF (p_x_nonroutine_rec.type_id is null or p_x_nonroutine_rec.type_id = FND_API.G_MISS_NUM)
2923: THEN
2924: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_TYPE_NULL');
2925: FND_MSG_PUB.ADD;
2926: END IF;
2926: END IF;
2927: END IF;
2928:
2929: -- Validate and default SR status
2930: IF (p_x_nonroutine_rec.status_name is not null and p_x_nonroutine_rec.status_name <> FND_API.G_MISS_CHAR)
2931: THEN
2932: BEGIN
2933: SELECT incident_status_id
2934: INTO p_x_nonroutine_rec.status_id
2940: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_STATUS_INV');
2941: FND_MESSAGE.SET_TOKEN('STATUS', p_x_nonroutine_rec.status_name);
2942: FND_MSG_PUB.ADD;
2943: END;
2944: ELSIF (p_x_nonroutine_rec.status_id is null or p_x_nonroutine_rec.status_id = FND_API.G_MISS_NUM)
2945: THEN
2946: p_x_nonroutine_rec.status_id := nvl(fnd_profile.value('AHL_PRD_SR_STATUS'), G_SR_OPEN_STATUS_ID);
2947: END IF;
2948:
2946: p_x_nonroutine_rec.status_id := nvl(fnd_profile.value('AHL_PRD_SR_STATUS'), G_SR_OPEN_STATUS_ID);
2947: END IF;
2948:
2949: -- Validate and default SR severity
2950: IF (p_x_nonroutine_rec.severity_name is not null and p_x_nonroutine_rec.severity_name <> FND_API.G_MISS_CHAR)
2951: THEN
2952: BEGIN
2953: SELECT incident_severity_id
2954: INTO p_x_nonroutine_rec.severity_id
2960: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_SEVERITY_INV');
2961: FND_MESSAGE.SET_TOKEN('SEVERITY', p_x_nonroutine_rec.severity_name);
2962: FND_MSG_PUB.ADD;
2963: END;
2964: ELSIF (p_x_nonroutine_rec.severity_id is null or p_x_nonroutine_rec.severity_id = FND_API.G_MISS_NUM)
2965: THEN
2966: p_x_nonroutine_rec.severity_id := fnd_profile.value('AHL_PRD_SR_SEVERITY');
2967:
2968: IF (p_x_nonroutine_rec.severity_id is null or p_x_nonroutine_rec.severity_id = FND_API.G_MISS_NUM)
2964: ELSIF (p_x_nonroutine_rec.severity_id is null or p_x_nonroutine_rec.severity_id = FND_API.G_MISS_NUM)
2965: THEN
2966: p_x_nonroutine_rec.severity_id := fnd_profile.value('AHL_PRD_SR_SEVERITY');
2967:
2968: IF (p_x_nonroutine_rec.severity_id is null or p_x_nonroutine_rec.severity_id = FND_API.G_MISS_NUM)
2969: THEN
2970: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_SEVERITY_NULL');
2971: FND_MSG_PUB.ADD;
2972: END IF;
2972: END IF;
2973: END IF;
2974:
2975: -- Validate severity against WIP_EAM_ACTIVITY_PRIORITY
2976: /*IF (p_x_nonroutine_rec.severity_id is not null and p_x_nonroutine_rec.severity_id <> FND_API.G_MISS_NUM)
2977: THEN
2978: OPEN cs_severity_in_eam_priority;
2979: FETCH cs_severity_in_eam_priority INTO l_dummy_varchar;
2980: IF (cs_severity_in_eam_priority%NOTFOUND) THEN
2990: FROM csi_item_instances
2991: WHERE instance_id = p_x_nonroutine_rec.instance_id;
2992:
2993: -- Validate and default customer...
2994: IF (p_x_nonroutine_rec.customer_name IS NOT NULL AND p_x_nonroutine_rec.customer_name <> FND_API.G_MISS_CHAR)
2995: THEN
2996: BEGIN
2997: SELECT party_id, party_type
2998: INTO p_x_nonroutine_rec.customer_id, p_x_nonroutine_rec.customer_type
3018: THEN
3019: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_CUSTOMER_NOMATCH');
3020: FND_MSG_PUB.ADD;
3021: END IF;
3022: ELSIF (p_x_nonroutine_rec.customer_id IS NULL or p_x_nonroutine_rec.customer_id = FND_API.G_MISS_NUM)
3023: THEN
3024: p_x_nonroutine_rec.customer_id := l_instance_owner_id;
3025:
3026: -- Default customer_type if customer_id is read from profile
3023: THEN
3024: p_x_nonroutine_rec.customer_id := l_instance_owner_id;
3025:
3026: -- Default customer_type if customer_id is read from profile
3027: IF (p_x_nonroutine_rec.customer_id IS NOT NULL AND p_x_nonroutine_rec.customer_id <> FND_API.G_MISS_NUM)
3028: THEN
3029: SELECT party_name, party_type
3030: INTO p_x_nonroutine_rec.customer_name, p_x_nonroutine_rec.customer_type
3031: FROM hz_parties
3037:
3038: -- Error if customer_type is NULL and customer_id NOT NULL
3039: IF
3040: (
3041: p_x_nonroutine_rec.customer_id is not null AND p_x_nonroutine_rec.customer_id <> FND_API.G_MISS_NUM
3042: AND
3043: (p_x_nonroutine_rec.customer_type is null or p_x_nonroutine_rec.customer_type = FND_API.G_MISS_CHAR)
3044: )
3045: THEN
3039: IF
3040: (
3041: p_x_nonroutine_rec.customer_id is not null AND p_x_nonroutine_rec.customer_id <> FND_API.G_MISS_NUM
3042: AND
3043: (p_x_nonroutine_rec.customer_type is null or p_x_nonroutine_rec.customer_type = FND_API.G_MISS_CHAR)
3044: )
3045: THEN
3046: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_CUST_TYPE_NULL');
3047: FND_MSG_PUB.ADD;
3047: FND_MSG_PUB.ADD;
3048: END IF;
3049:
3050: -- Validate and contact name and type... Error if contact_type is NULL and contact_id NOT NULL
3051: IF (p_x_nonroutine_rec.contact_name IS NOT NULL AND p_x_nonroutine_rec.contact_name <> FND_API.G_MISS_CHAR)
3052: THEN
3053: BEGIN
3054: IF (p_x_nonroutine_rec.contact_type in ('PARTY_RELATIONSHIP', 'PERSON'))
3055: THEN
3083: END;
3084: END IF;
3085:
3086: -- Error if problem_summary NULL
3087: IF (p_x_nonroutine_rec.problem_summary is null or p_x_nonroutine_rec.problem_summary = FND_API.G_MISS_CHAR)
3088: THEN
3089: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_SUMMARY_NULL');
3090: FND_MSG_PUB.ADD;
3091: END IF;
3097:
3098: IF ( nvl(fnd_profile.value('AHL_SR_RESL_CODE_COMP'), 'N') = 'Y') THEN
3099:
3100: IF ( p_x_nonroutine_rec.resolution_code IS NULL OR
3101: p_x_nonroutine_rec.resolution_code = FND_API.G_MISS_CHAR) THEN
3102:
3103: Fnd_Message.SET_NAME(G_APP_NAME,'AHL_PRD_RESL_CODE_REQ');
3104: Fnd_Msg_Pub.ADD;
3105: END IF;
3106:
3107: END IF;
3108:
3109: -- Validate if expected resolution date is passed, it is greater than the incident date
3110: IF (p_x_nonroutine_rec.expected_resolution_date is not null and p_x_nonroutine_rec.expected_resolution_date <> FND_API.G_MISS_DATE and trunc(p_x_nonroutine_rec.expected_resolution_date) < trunc(sysdate))
3111: THEN
3112: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_EXP_RES_DATE_INV');
3113: FND_MSG_PUB.ADD;
3114: END IF;
3114: END IF;
3115:
3116: -- Validate if the incident date is greater than the sysdate
3117: -- Changes made for Bug # 5183032
3118: IF (p_x_nonroutine_rec.incident_date is not null and p_x_nonroutine_rec.incident_date <> FND_API.G_MISS_DATE and trunc(p_x_nonroutine_rec.incident_date) > trunc(sysdate))
3119: THEN
3120: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_INC_DATE_INV');
3121: FND_MSG_PUB.ADD;
3122: END IF;
3130: THEN
3131: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_INC_INV');
3132: FND_MSG_PUB.ADD;
3133: CLOSE cs_incident_exists;
3134: RAISE FND_API.G_EXC_ERROR;
3135: ELSIF (l_incident_number <> p_x_nonroutine_rec.incident_number)
3136: THEN
3137: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_NUM_INV');
3138: FND_MSG_PUB.ADD;
3136: THEN
3137: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_NUM_INV');
3138: FND_MSG_PUB.ADD;
3139: CLOSE cs_incident_exists;
3140: RAISE FND_API.G_EXC_ERROR;
3141: END IF;
3142: CLOSE cs_incident_exists;
3143:
3144: -- Validate status_id is not null
3141: END IF;
3142: CLOSE cs_incident_exists;
3143:
3144: -- Validate status_id is not null
3145: IF (p_x_nonroutine_rec.status_id is null or p_x_nonroutine_rec.status_id = FND_API.G_MISS_NUM)
3146: THEN
3147: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_STATUS_NULL');
3148: FND_MSG_PUB.ADD;
3149: END IF;
3148: FND_MSG_PUB.ADD;
3149: END IF;
3150:
3151: -- Validate type_id is not null
3152: IF (p_x_nonroutine_rec.type_id is null or p_x_nonroutine_rec.type_id = FND_API.G_MISS_NUM)
3153: THEN
3154: FND_MESSAGE.SET_NAME(G_APP_NAME,'AHL_UMP_NR_TYPE_NULL');
3155: FND_MSG_PUB.ADD;
3156: END IF;
3155: FND_MSG_PUB.ADD;
3156: END IF;
3157:
3158: -- Error if problem_summary NULL
3159: IF (p_x_nonroutine_rec.problem_summary is null or p_x_nonroutine_rec.problem_summary = FND_API.G_MISS_CHAR)
3160: THEN
3161: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_SUMMARY_NULL');
3162: FND_MSG_PUB.ADD;
3163: END IF;
3169:
3170: IF ( nvl(fnd_profile.value('AHL_SR_RESL_CODE_COMP'), 'N') = 'Y') THEN
3171:
3172: IF ( p_x_nonroutine_rec.resolution_code IS NULL OR
3173: p_x_nonroutine_rec.resolution_code = FND_API.G_MISS_CHAR) THEN
3174:
3175: Fnd_Message.SET_NAME(G_APP_NAME,'AHL_PRD_RESL_CODE_REQ');
3176: Fnd_Msg_Pub.ADD;
3177: END IF;
3179: END IF;
3180:
3181: -- Validate if the expected resolution date is not null and that it is not lesser than the Incident Request Date
3182: -- Changes made for Bug # 5183032
3183: IF (p_x_nonroutine_rec.expected_resolution_date is not null and p_x_nonroutine_rec.expected_resolution_date <> FND_API.G_MISS_DATE and trunc(p_x_nonroutine_rec.expected_resolution_date) < trunc(l_incident_date))
3184: THEN
3185: FND_MESSAGE.SET_NAME(G_APP_NAME, 'AHL_UMP_NR_EXP_RES_DATE_INV');
3186: FND_MSG_PUB.ADD;
3187: END IF;
3352: CLOSE cs_inc_csr;
3353: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_INC_ERROR');
3354: FND_MESSAGE.set_token('INC_ID', p_cs_incident_id);
3355: FND_MSG_PUB.ADD;
3356: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3357: END IF;
3358:
3359: -- Debug Checkpoint.
3360: IF (G_DEBUG_STMT >= G_DEBUG_LEVEL) THEN
3369: CLOSE get_urgency_details_csr;
3370: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_ATA_ERROR');
3371: FND_MESSAGE.set_token('ATA_ID', p_ata_sequence_id);
3372: FND_MSG_PUB.ADD;
3373: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3374: END IF;
3375: CLOSE get_urgency_details_csr;
3376:
3377: -- Update SR for the urgency and exp. resolution date.
3387: -- Call SR API.
3388: CS_SERVICEREQUEST_PUB.Update_ServiceRequest
3389: (
3390: p_api_version => 3.0,
3391: p_init_msg_list => FND_API.G_FALSE,
3392: p_commit => FND_API.G_FALSE,
3393: x_return_status => l_return_status,
3394: x_msg_count => l_msg_count,
3395: x_msg_data => l_msg_data,
3388: CS_SERVICEREQUEST_PUB.Update_ServiceRequest
3389: (
3390: p_api_version => 3.0,
3391: p_init_msg_list => FND_API.G_FALSE,
3392: p_commit => FND_API.G_FALSE,
3393: x_return_status => l_return_status,
3394: x_msg_count => l_msg_count,
3395: x_msg_data => l_msg_data,
3396: p_request_id => p_cs_incident_id,
3417: 'After call to Update Service Request :return_status:' || l_return_status);
3418: END IF;
3419:
3420: -- Raise errors if exceptions occur
3421: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3422: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3423: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3424: RAISE FND_API.G_EXC_ERROR;
3425: ELSE
3418: END IF;
3419:
3420: -- Raise errors if exceptions occur
3421: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3422: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3423: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3424: RAISE FND_API.G_EXC_ERROR;
3425: ELSE
3426: FND_MSG_PUB.INITIALIZE;
3419:
3420: -- Raise errors if exceptions occur
3421: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3422: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3423: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3424: RAISE FND_API.G_EXC_ERROR;
3425: ELSE
3426: FND_MSG_PUB.INITIALIZE;
3427: END IF;
3420: -- Raise errors if exceptions occur
3421: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3422: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3423: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3424: RAISE FND_API.G_EXC_ERROR;
3425: ELSE
3426: FND_MSG_PUB.INITIALIZE;
3427: END IF;
3428:
3448: IF ( default_incident_type_csr%NOTFOUND) THEN
3449: CLOSE default_incident_type_csr;
3450: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_INCIDENT_ERROR');
3451: Fnd_Msg_Pub.ADD;
3452: RAISE FND_API.G_EXC_ERROR;
3453: END IF;
3454: CLOSE default_incident_type_csr;
3455:
3456: --Initialize the SR record.
3485: l_service_request_rec.inventory_org_id;
3486: IF (default_item_org_id%NOTFOUND ) THEN
3487: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_ORG_ERROR');
3488: Fnd_Msg_Pub.ADD;
3489: RAISE FND_API.G_EXC_ERROR;
3490: END IF;
3491:
3492: -- Call to Service Request API
3493:
3492: -- Call to Service Request API
3493:
3494: CS_SERVICEREQUEST_PUB.Create_ServiceRequest(
3495: p_api_version => 3.0,
3496: p_init_msg_list => FND_API.G_TRUE,
3497: p_commit => FND_API.G_FALSE,
3498: x_return_status => l_return_status,
3499: x_msg_count => l_msg_count,
3500: x_msg_data => l_msg_data,
3493:
3494: CS_SERVICEREQUEST_PUB.Create_ServiceRequest(
3495: p_api_version => 3.0,
3496: p_init_msg_list => FND_API.G_TRUE,
3497: p_commit => FND_API.G_FALSE,
3498: x_return_status => l_return_status,
3499: x_msg_count => l_msg_count,
3500: x_msg_data => l_msg_data,
3501: p_resp_appl_id => NULL,
3525: 'After call to Create Service Request :return_status:' || l_return_status);
3526: END IF;
3527:
3528: -- Raise errors if exceptions occur
3529: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3530: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3532: RAISE FND_API.G_EXC_ERROR;
3533: ELSE
3526: END IF;
3527:
3528: -- Raise errors if exceptions occur
3529: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3530: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3532: RAISE FND_API.G_EXC_ERROR;
3533: ELSE
3534: FND_MSG_PUB.INITIALIZE;
3527:
3528: -- Raise errors if exceptions occur
3529: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3530: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3532: RAISE FND_API.G_EXC_ERROR;
3533: ELSE
3534: FND_MSG_PUB.INITIALIZE;
3535: END IF;
3528: -- Raise errors if exceptions occur
3529: IF (upper(l_return_status) = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3530: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3531: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3532: RAISE FND_API.G_EXC_ERROR;
3533: ELSE
3534: FND_MSG_PUB.INITIALIZE;
3535: END IF;
3536:
3541: CLOSE get_ue_detls;
3542: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_UE_ERROR');
3543: FND_MESSAGE.set_token('INC_ID', p_cs_incident_id);
3544: FND_MSG_PUB.ADD;
3545: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3546: END IF;
3547:
3548: -- Add M and O procedures to the SR.
3549: i := 1;
3561: IF (l_mr_sr_assoc_tbl.count > 0) THEN
3562: AHL_UMP_SR_PVT.Process_SR_MR_Associations
3563: (
3564: p_api_version => 1.0,
3565: p_init_msg_list => FND_API.G_FALSE,
3566: p_commit => FND_API.G_FALSE,
3567: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3568: --p_module_type => 'MEL_CDL',
3569: x_return_status => l_return_status,
3562: AHL_UMP_SR_PVT.Process_SR_MR_Associations
3563: (
3564: p_api_version => 1.0,
3565: p_init_msg_list => FND_API.G_FALSE,
3566: p_commit => FND_API.G_FALSE,
3567: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3568: --p_module_type => 'MEL_CDL',
3569: x_return_status => l_return_status,
3570: x_msg_count => l_msg_count,
3563: (
3564: p_api_version => 1.0,
3565: p_init_msg_list => FND_API.G_FALSE,
3566: p_commit => FND_API.G_FALSE,
3567: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
3568: --p_module_type => 'MEL_CDL',
3569: x_return_status => l_return_status,
3570: x_msg_count => l_msg_count,
3571: x_msg_data => l_msg_data,
3583: 'After call to Process_SR_MR_Associations :return_status:' || l_return_status);
3584: END IF;
3585:
3586: -- Raise errors if exceptions occur
3587: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3588: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3589: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3590: RAISE FND_API.G_EXC_ERROR;
3591: END IF;
3584: END IF;
3585:
3586: -- Raise errors if exceptions occur
3587: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3588: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3589: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3590: RAISE FND_API.G_EXC_ERROR;
3591: END IF;
3592:
3585:
3586: -- Raise errors if exceptions occur
3587: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3588: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3589: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3590: RAISE FND_API.G_EXC_ERROR;
3591: END IF;
3592:
3593: END IF;
3586: -- Raise errors if exceptions occur
3587: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3588: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3589: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3590: RAISE FND_API.G_EXC_ERROR;
3591: END IF;
3592:
3593: END IF;
3594:
3599: l_vwp_task_rec.task_type_code := 'PLANNED';
3600:
3601: AHL_VWP_TASKS_PVT.Create_Task (
3602: p_api_version => 1.0,
3603: p_init_msg_list => Fnd_Api.g_false,
3604: p_commit => Fnd_Api.g_false,
3605: p_validation_level => Fnd_Api.g_valid_level_full,
3606: p_module_type => 'SR',
3607: p_x_task_rec => l_vwp_task_rec,
3600:
3601: AHL_VWP_TASKS_PVT.Create_Task (
3602: p_api_version => 1.0,
3603: p_init_msg_list => Fnd_Api.g_false,
3604: p_commit => Fnd_Api.g_false,
3605: p_validation_level => Fnd_Api.g_valid_level_full,
3606: p_module_type => 'SR',
3607: p_x_task_rec => l_vwp_task_rec,
3608: x_return_status => l_return_status,
3601: AHL_VWP_TASKS_PVT.Create_Task (
3602: p_api_version => 1.0,
3603: p_init_msg_list => Fnd_Api.g_false,
3604: p_commit => Fnd_Api.g_false,
3605: p_validation_level => Fnd_Api.g_valid_level_full,
3606: p_module_type => 'SR',
3607: p_x_task_rec => l_vwp_task_rec,
3608: x_return_status => l_return_status,
3609: x_msg_count => l_msg_count,
3615: 'After call to Create Task API:return_status:' || l_return_status);
3616: END IF;
3617:
3618: -- Raise errors if exceptions occur
3619: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3621: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3622: RAISE FND_API.G_EXC_ERROR;
3623: END IF;
3616: END IF;
3617:
3618: -- Raise errors if exceptions occur
3619: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3621: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3622: RAISE FND_API.G_EXC_ERROR;
3623: END IF;
3624:
3617:
3618: -- Raise errors if exceptions occur
3619: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3621: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3622: RAISE FND_API.G_EXC_ERROR;
3623: END IF;
3624:
3625:
3618: -- Raise errors if exceptions occur
3619: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3620: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3621: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3622: RAISE FND_API.G_EXC_ERROR;
3623: END IF;
3624:
3625:
3626: -- Release MR.
3625:
3626: -- Release MR.
3627: AHL_VWP_PROJ_PROD_PVT.Release_MR(
3628: p_api_version => 1.0,
3629: p_init_msg_list => Fnd_Api.G_FALSE,
3630: p_commit => Fnd_Api.G_FALSE,
3631: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
3632: p_module_type => 'PROD',
3633: p_visit_id => l_visit_id,
3626: -- Release MR.
3627: AHL_VWP_PROJ_PROD_PVT.Release_MR(
3628: p_api_version => 1.0,
3629: p_init_msg_list => Fnd_Api.G_FALSE,
3630: p_commit => Fnd_Api.G_FALSE,
3631: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
3632: p_module_type => 'PROD',
3633: p_visit_id => l_visit_id,
3634: p_unit_effectivity_id => l_new_ue_id,
3627: AHL_VWP_PROJ_PROD_PVT.Release_MR(
3628: p_api_version => 1.0,
3629: p_init_msg_list => Fnd_Api.G_FALSE,
3630: p_commit => Fnd_Api.G_FALSE,
3631: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
3632: p_module_type => 'PROD',
3633: p_visit_id => l_visit_id,
3634: p_unit_effectivity_id => l_new_ue_id,
3635: -- fix for bug# 5498884. Created work orders should be in released status.
3645: 'After call to release workorders:return_status:' || l_return_status);
3646: END IF;
3647:
3648: -- Raise errors if exceptions occur
3649: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3651: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3652: RAISE FND_API.G_EXC_ERROR;
3653: END IF;
3646: END IF;
3647:
3648: -- Raise errors if exceptions occur
3649: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3651: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3652: RAISE FND_API.G_EXC_ERROR;
3653: END IF;
3654:
3647:
3648: -- Raise errors if exceptions occur
3649: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3651: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3652: RAISE FND_API.G_EXC_ERROR;
3653: END IF;
3654:
3655: IF (fnd_msg_pub.count_msg > 0) THEN
3648: -- Raise errors if exceptions occur
3649: IF (l_return_status = FND_API.G_RET_STS_UNEXP_ERROR) THEN
3650: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3651: ELSIF (l_return_status = FND_API.G_RET_STS_ERROR) THEN
3652: RAISE FND_API.G_EXC_ERROR;
3653: END IF;
3654:
3655: IF (fnd_msg_pub.count_msg > 0) THEN
3656: RAISE FND_API.G_EXC_ERROR;
3652: RAISE FND_API.G_EXC_ERROR;
3653: END IF;
3654:
3655: IF (fnd_msg_pub.count_msg > 0) THEN
3656: RAISE FND_API.G_EXC_ERROR;
3657: END IF;
3658:
3659: -- make a call for automatic approval
3660: AHL_PRD_DF_PVT.process_approval_approved(
3663: --l_deferral_rec.object_version_number,
3664: p_new_status => 'DEFERRED',
3665: x_return_status => l_return_status);
3666:
3667: IF(l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
3668: IF (fnd_log.level_error >= G_DEBUG_LEVEL)THEN
3669: fnd_log.string
3670: (
3671: fnd_log.level_error,
3671: fnd_log.level_error,
3672: 'ahl.plsql.AHL_UMP_NONROUTINES_PVT.Initiate_Mel_Cdl_Approval',
3673: 'Can not go ahead with automatic approval because AHL_UMP_NONROUTINES_PVT.Initiate_Mel_Cdl_Approval threw error');
3674: END IF;
3675: RAISE FND_API.G_EXC_ERROR;
3676: END IF;
3677:
3678: -- create a new deferral row for the new ue ID. Copy the attributes from the old deferral record.
3679: OPEN deferral_ue_csr(p_unit_deferral_id);
3682: CLOSE deferral_ue_csr;
3683: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_UE_DEF_MISSING');
3684: FND_MESSAGE.set_token('UE_DEF', p_unit_deferral_id);
3685: FND_MSG_PUB.ADD;
3686: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3687: END IF;
3688: CLOSE deferral_ue_csr;
3689:
3690: -- find the new ue ID.
3694: CLOSE get_new_ue_csr;
3695: FND_MESSAGE.set_name('AHL', 'AHL_UMP_NR_NEW_UE_MISSING');
3696: FND_MESSAGE.set_token('INC_ID', p_cs_incident_id);
3697: FND_MSG_PUB.ADD;
3698: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3699: END IF;
3700: CLOSE get_new_ue_csr;
3701:
3702: -- Insert row.