99: -- Parameters :
100: --
101: -- Standard IN Parameters :
102: -- p_api_version IN NUMBER Required
103: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
104: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
105: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
106: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
107: -- p_module_type IN VARCHAR2 Default NULL.
100: --
101: -- Standard IN Parameters :
102: -- p_api_version IN NUMBER Required
103: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
104: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
105: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
106: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
107: -- p_module_type IN VARCHAR2 Default NULL.
108: --
101: -- Standard IN Parameters :
102: -- p_api_version IN NUMBER Required
103: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
104: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
105: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
106: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
107: -- p_module_type IN VARCHAR2 Default NULL.
108: --
109: -- Standard OUT Parameters :
102: -- p_api_version IN NUMBER Required
103: -- p_init_msg_list IN VARCHAR2 Default FND_API.G_FALSE
104: -- p_commit IN VARCHAR2 Default FND_API.G_FALSE
105: -- p_validation_level IN NUMBER Default FND_API.G_VALID_LEVEL_FULL
106: -- p_default IN VARCHAR2 Default FND_API.G_TRUE
107: -- p_module_type IN VARCHAR2 Default NULL.
108: --
109: -- Standard OUT Parameters :
110: -- x_return_status OUT VARCHAR2 Required
120: -- Initial Version 1.0
121: -------------------------------------------------------------------
122: PROCEDURE Process_nonroutine_job (
123: p_api_version IN NUMBER,
124: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
125: p_commit IN VARCHAR2 := Fnd_Api.g_false,
126: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
127: p_module_type IN VARCHAR2 := 'JSP',
128: x_return_status OUT NOCOPY VARCHAR2,
121: -------------------------------------------------------------------
122: PROCEDURE Process_nonroutine_job (
123: p_api_version IN NUMBER,
124: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
125: p_commit IN VARCHAR2 := Fnd_Api.g_false,
126: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
127: p_module_type IN VARCHAR2 := 'JSP',
128: x_return_status OUT NOCOPY VARCHAR2,
129: x_msg_count OUT NOCOPY NUMBER,
122: PROCEDURE Process_nonroutine_job (
123: p_api_version IN NUMBER,
124: p_init_msg_list IN VARCHAR2 := Fnd_Api.g_false,
125: p_commit IN VARCHAR2 := Fnd_Api.g_false,
126: p_validation_level IN NUMBER := Fnd_Api.g_valid_level_full,
127: p_module_type IN VARCHAR2 := 'JSP',
128: x_return_status OUT NOCOPY VARCHAR2,
129: x_msg_count OUT NOCOPY NUMBER,
130: x_msg_data OUT NOCOPY VARCHAR2,
188: -- Standard start of API savepoint
189: SAVEPOINT AHL_PROCESS_NONROUTINE_JOB_PVT;
190:
191: -- Standard call to check for call compatibility
192: IF NOT FND_API.Compatible_API_Call(l_api_version,
193: p_api_version,
194: l_api_name,
195: G_PKG_NAME) THEN
196: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
192: IF NOT FND_API.Compatible_API_Call(l_api_version,
193: p_api_version,
194: l_api_name,
195: G_PKG_NAME) THEN
196: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
197: END IF;
198:
199: -- Initialize message list if p_init_msg_list is set to TRUE
200: IF FND_API.To_Boolean(p_init_msg_list) THEN
196: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
197: END IF;
198:
199: -- Initialize message list if p_init_msg_list is set to TRUE
200: IF FND_API.To_Boolean(p_init_msg_list) THEN
201: FND_MSG_PUB.Initialize;
202: END IF;
203:
204: -- Initialize Procedure return status to success
201: FND_MSG_PUB.Initialize;
202: END IF;
203:
204: -- Initialize Procedure return status to success
205: x_return_status := FND_API.G_RET_STS_SUCCESS;
206:
207: -- Enable Debug.
208: IF (G_DEBUG = 'Y') THEN
209: AHL_DEBUG_PUB.enable_debug;
230: AHL_DEBUG_PUB.debug('INPUT - module_type :'||p_module_type);
231: END IF;
232:
233:
234: l_convert_validate_status := FND_API.G_RET_STS_SUCCESS;
235:
236: FOR i IN p_x_sr_task_tbl.FIRST..p_x_sr_task_tbl.LAST LOOP
237:
238: -- Add the logic
242: IF upper(p_module_type) = 'JSP' THEN
243:
244: IF upper(l_sr_task_rec.operation_type) = 'CREATE' THEN
245:
246: l_sr_task_rec.type_id := FND_API.G_MISS_NUM;
247: l_sr_task_rec.severity_id := FND_API.G_MISS_NUM;
248: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
249: --problem code lov is modified to return problem_code instead of meaning
250: --for bug #4729005. Hence no need to convert value to id.
243:
244: IF upper(l_sr_task_rec.operation_type) = 'CREATE' THEN
245:
246: l_sr_task_rec.type_id := FND_API.G_MISS_NUM;
247: l_sr_task_rec.severity_id := FND_API.G_MISS_NUM;
248: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
249: --problem code lov is modified to return problem_code instead of meaning
250: --for bug #4729005. Hence no need to convert value to id.
251: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
244: IF upper(l_sr_task_rec.operation_type) = 'CREATE' THEN
245:
246: l_sr_task_rec.type_id := FND_API.G_MISS_NUM;
247: l_sr_task_rec.severity_id := FND_API.G_MISS_NUM;
248: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
249: --problem code lov is modified to return problem_code instead of meaning
250: --for bug #4729005. Hence no need to convert value to id.
251: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
252: -- NR MR ER -- start
247: l_sr_task_rec.severity_id := FND_API.G_MISS_NUM;
248: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
249: --problem code lov is modified to return problem_code instead of meaning
250: --for bug #4729005. Hence no need to convert value to id.
251: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
252: -- NR MR ER -- start
253: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
254: -- NR MR ER -- end
255: l_sr_task_rec.visit_id := FND_API.G_MISS_NUM;
249: --problem code lov is modified to return problem_code instead of meaning
250: --for bug #4729005. Hence no need to convert value to id.
251: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
252: -- NR MR ER -- start
253: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
254: -- NR MR ER -- end
255: l_sr_task_rec.visit_id := FND_API.G_MISS_NUM;
256: l_sr_task_rec.instance_id := FND_API.G_MISS_NUM;
257:
251: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
252: -- NR MR ER -- start
253: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
254: -- NR MR ER -- end
255: l_sr_task_rec.visit_id := FND_API.G_MISS_NUM;
256: l_sr_task_rec.instance_id := FND_API.G_MISS_NUM;
257:
258: ELSIF upper(l_sr_task_rec.operation_type) = 'UPDATE' THEN
259:
252: -- NR MR ER -- start
253: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
254: -- NR MR ER -- end
255: l_sr_task_rec.visit_id := FND_API.G_MISS_NUM;
256: l_sr_task_rec.instance_id := FND_API.G_MISS_NUM;
257:
258: ELSIF upper(l_sr_task_rec.operation_type) = 'UPDATE' THEN
259:
260: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
256: l_sr_task_rec.instance_id := FND_API.G_MISS_NUM;
257:
258: ELSIF upper(l_sr_task_rec.operation_type) = 'UPDATE' THEN
259:
260: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
261: --problem code lov is modified to return problem_code instead of meaning
262: --for bug #4729005. Hence no need to convert value to id.
263: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
264: -- NR MR ER -- start
259:
260: l_sr_task_rec.urgency_id := FND_API.G_MISS_NUM;
261: --problem code lov is modified to return problem_code instead of meaning
262: --for bug #4729005. Hence no need to convert value to id.
263: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
264: -- NR MR ER -- start
265: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
266: -- NR MR ER -- end
267: END IF;
261: --problem code lov is modified to return problem_code instead of meaning
262: --for bug #4729005. Hence no need to convert value to id.
263: --l_sr_task_rec.problem_code := FND_API.G_MISS_CHAR;
264: -- NR MR ER -- start
265: --l_sr_task_rec.resolution_code := FND_API.G_MISS_CHAR;
266: -- NR MR ER -- end
267: END IF;
268:
269: END IF;
275: -- Call value to id conversion
276: Convert_val_to_id( p_x_sr_task_rec => l_sr_task_rec,
277: x_return_status => l_return_status);
278:
279: IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
280: l_convert_validate_status := FND_API.G_RET_STS_ERROR;
281: END IF;
282:
283: IF (G_DEBUG = 'Y') THEN
276: Convert_val_to_id( p_x_sr_task_rec => l_sr_task_rec,
277: x_return_status => l_return_status);
278:
279: IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
280: l_convert_validate_status := FND_API.G_RET_STS_ERROR;
281: END IF;
282:
283: IF (G_DEBUG = 'Y') THEN
284: AHL_DEBUG_PUB.debug('PROC : Calling Default_and_validate_param procedure');
288: Default_and_validate_param( p_x_sr_task_rec => l_sr_task_rec,
289: p_module_type => p_module_type,
290: x_return_status => l_return_status);
291:
292: IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
293: l_convert_validate_status := FND_API.G_RET_STS_ERROR;
294: END IF;
295:
296: p_x_sr_task_tbl(i) := l_sr_task_rec;
289: p_module_type => p_module_type,
290: x_return_status => l_return_status);
291:
292: IF ( l_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
293: l_convert_validate_status := FND_API.G_RET_STS_ERROR;
294: END IF;
295:
296: p_x_sr_task_tbl(i) := l_sr_task_rec;
297:
297:
298: END LOOP;
299:
300: -- Check For Errors.
301: IF( l_convert_validate_status <> FND_API.G_RET_STS_SUCCESS ) THEN
302: RAISE FND_API.G_EXC_ERROR;
303: END IF;
304:
305: FOR i IN p_x_sr_task_tbl.FIRST..p_x_sr_task_tbl.LAST LOOP
298: END LOOP;
299:
300: -- Check For Errors.
301: IF( l_convert_validate_status <> FND_API.G_RET_STS_SUCCESS ) THEN
302: RAISE FND_API.G_EXC_ERROR;
303: END IF;
304:
305: FOR i IN p_x_sr_task_tbl.FIRST..p_x_sr_task_tbl.LAST LOOP
306:
317: Create_sr( p_x_sr_task_rec => l_sr_task_rec,
318: x_return_status => l_return_status);
319:
320:
321: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
322: RAISE FND_API.G_EXC_ERROR;
323: END IF;
324:
325: ELSIF ( upper(l_sr_task_rec.operation_type) = 'UPDATE' ) THEN
318: x_return_status => l_return_status);
319:
320:
321: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
322: RAISE FND_API.G_EXC_ERROR;
323: END IF;
324:
325: ELSIF ( upper(l_sr_task_rec.operation_type) = 'UPDATE' ) THEN
326:
333: IF p_module_type IS NULL OR p_module_type <> 'SR_OA' THEN
334: Update_sr( p_x_sr_task_rec => l_sr_task_rec,
335: x_return_status => l_return_status);
336:
337: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
338: RAISE FND_API.G_EXC_ERROR;
339: END IF;
340:
341: -- FP for ER 5716489 -- start
334: Update_sr( p_x_sr_task_rec => l_sr_task_rec,
335: x_return_status => l_return_status);
336:
337: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
338: RAISE FND_API.G_EXC_ERROR;
339: END IF;
340:
341: -- FP for ER 5716489 -- start
342: --- If the mode is update , then check if the NR has a corresponding workorder created or not
392: x_return_status => l_return_status);
393:
394: l_msg_count := FND_MSG_PUB.count_msg;
395:
396: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS or l_msg_count>0) THEN
397: RAISE FND_API.G_EXC_ERROR;
398: END IF;
399: */
400: -- NR MR ER - End
393:
394: l_msg_count := FND_MSG_PUB.count_msg;
395:
396: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS or l_msg_count>0) THEN
397: RAISE FND_API.G_EXC_ERROR;
398: END IF;
399: */
400: -- NR MR ER - End
401:
434: 'After calling Process_Mr...Return status->'||x_return_status
435: );
436: END IF;
437:
438: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
439: RAISE FND_API.G_EXC_ERROR;
440: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
441: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442: END IF;
435: );
436: END IF;
437:
438: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
439: RAISE FND_API.G_EXC_ERROR;
440: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
441: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442: END IF;
443: END IF;
436: END IF;
437:
438: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
439: RAISE FND_API.G_EXC_ERROR;
440: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
441: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442: END IF;
443: END IF;
444:
437:
438: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
439: RAISE FND_API.G_EXC_ERROR;
440: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
441: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
442: END IF;
443: END IF;
444:
445: IF (fnd_log.level_statement >= fnd_log.g_current_runtime_level)THEN
460: FETCH cs_sr_status INTO l_sr_status_id;
461: IF ( cs_sr_status%NOTFOUND) THEN
462: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_STATUS_ERROR');
463: Fnd_Msg_Pub.ADD;
464: x_return_status := FND_API.G_RET_STS_ERROR;
465: END IF;
466: */
467:
468: l_sr_status_id := G_SR_PLANNED_STATUS_ID;
492: -- Call Update Service Request procedure
493: Update_sr( p_x_sr_task_rec => l_sr_task_rec,
494: x_return_status => l_return_status);
495:
496: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
497: RAISE FND_API.G_EXC_ERROR;
498: END IF;
499:
500: END IF;
493: Update_sr( p_x_sr_task_rec => l_sr_task_rec,
494: x_return_status => l_return_status);
495:
496: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
497: RAISE FND_API.G_EXC_ERROR;
498: END IF;
499:
500: END IF;
501: -- FP for ER 5716489 -- end
499:
500: END IF;
501: -- FP for ER 5716489 -- end
502:
503: IF(( l_sr_task_rec.object_id IS NOT NULL AND l_sr_task_rec.object_id <> FND_API.G_MISS_NUM )
504: AND (l_sr_task_rec.object_type = 'AHL_PRD_DISP')) THEN
505:
506: AHL_PRD_DISP_UTIL_PVT.Create_SR_Disp_Link (
507:
505:
506: AHL_PRD_DISP_UTIL_PVT.Create_SR_Disp_Link (
507:
508: p_api_version => 1.0,
509: p_init_msg_list => FND_API.G_TRUE,
510: p_commit => FND_API.G_FALSE,
511: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
512: x_return_status => x_return_status,
513: x_msg_count => l_msg_count,
506: AHL_PRD_DISP_UTIL_PVT.Create_SR_Disp_Link (
507:
508: p_api_version => 1.0,
509: p_init_msg_list => FND_API.G_TRUE,
510: p_commit => FND_API.G_FALSE,
511: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
512: x_return_status => x_return_status,
513: x_msg_count => l_msg_count,
514: x_msg_data => l_msg_data,
507:
508: p_api_version => 1.0,
509: p_init_msg_list => FND_API.G_TRUE,
510: p_commit => FND_API.G_FALSE,
511: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
512: x_return_status => x_return_status,
513: x_msg_count => l_msg_count,
514: x_msg_data => l_msg_data,
515: p_service_request_id => l_sr_task_rec.incident_id,
516: p_disposition_id => l_sr_task_rec.object_id,
517: x_link_id => l_sr_task_rec.link_id
518: );
519:
520: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
521: RAISE FND_API.G_EXC_ERROR;
522: END IF;
523: END IF ;
524: END IF;
517: x_link_id => l_sr_task_rec.link_id
518: );
519:
520: IF ( upper(l_return_status) <> FND_API.G_RET_STS_SUCCESS ) THEN
521: RAISE FND_API.G_EXC_ERROR;
522: END IF;
523: END IF ;
524: END IF;
525:
540: FND_MSG_PUB.Initialize;
541: END IF;
542:
543: -- Standard check of p_commit
544: IF FND_API.TO_BOOLEAN(p_commit) THEN
545: COMMIT WORK;
546: END IF;
547:
548: IF (G_DEBUG = 'Y') THEN
550: END IF;
551:
552: -- Count and Get messages
553: FND_MSG_PUB.count_and_get
554: ( p_encoded => fnd_api.g_false,
555: p_count => x_msg_count,
556: p_data => x_msg_data
557: );
558:
561: AHL_DEBUG_PUB.disable_debug;
562: END IF;
563:
564: EXCEPTION
565: WHEN FND_API.G_EXC_ERROR THEN
566: x_return_status := FND_API.G_RET_STS_ERROR;
567: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
568: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
569: p_data => x_msg_data,
562: END IF;
563:
564: EXCEPTION
565: WHEN FND_API.G_EXC_ERROR THEN
566: x_return_status := FND_API.G_RET_STS_ERROR;
567: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
568: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
569: p_data => x_msg_data,
570: p_encoded => fnd_api.g_false);
566: x_return_status := FND_API.G_RET_STS_ERROR;
567: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
568: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
569: p_data => x_msg_data,
570: p_encoded => fnd_api.g_false);
571:
572: -- Disable debug
573: IF (G_DEBUG = 'Y') THEN
574: AHL_DEBUG_PUB.disable_debug;
574: AHL_DEBUG_PUB.disable_debug;
575: END IF;
576:
577:
578: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
579: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
580: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
581: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
582: p_data => x_msg_data,
575: END IF;
576:
577:
578: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
579: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
580: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
581: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
582: p_data => x_msg_data,
583: p_encoded => fnd_api.g_false);
579: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
580: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
581: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
582: p_data => x_msg_data,
583: p_encoded => fnd_api.g_false);
584:
585: -- Disable debug
586: IF (G_DEBUG = 'Y') THEN
587: AHL_DEBUG_PUB.disable_debug;
587: AHL_DEBUG_PUB.disable_debug;
588: END IF;
589:
590: WHEN OTHERS THEN
591: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
592: Rollback to AHL_PROCESS_NONROUTINE_JOB_PVT;
593: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
594: fnd_msg_pub.add_exc_msg(p_pkg_name => G_PKG_NAME,
595: p_procedure_name => 'Process_Nonroutine_Job',
596: p_error_text => SUBSTR(SQLERRM,1,240));
597: END IF;
598: FND_MSG_PUB.count_and_get( p_count => x_msg_count,
599: p_data => x_msg_data,
600: p_encoded => fnd_api.g_false);
601:
602: -- Disable debug
603: IF (G_DEBUG = 'Y') THEN
604: AHL_DEBUG_PUB.disable_debug;
660:
661: BEGIN
662:
663: -- Initialize Procedure return status to success
664: x_return_status := FND_API.G_RET_STS_SUCCESS;
665:
666: IF ( upper(p_x_sr_task_rec.operation_type) = 'CREATE' ) THEN
667:
668: -- Derive the Customer id, if its null.
671: -- return error msg. If only customer name is passed then
672: -- derive the customer id and name.
673:
674: IF( p_x_sr_task_rec.customer_id is not null and
675: p_x_sr_task_rec.customer_id <> FND_API.G_MISS_NUM
676: and (p_x_sr_task_rec.customer_name is not null and
677: p_x_sr_task_rec.customer_name <> FND_API.G_MISS_CHAR)) THEN
678: BEGIN
679: Select party_name
673:
674: IF( p_x_sr_task_rec.customer_id is not null and
675: p_x_sr_task_rec.customer_id <> FND_API.G_MISS_NUM
676: and (p_x_sr_task_rec.customer_name is not null and
677: p_x_sr_task_rec.customer_name <> FND_API.G_MISS_CHAR)) THEN
678: BEGIN
679: Select party_name
680: into
681: l_customer_name
683: where party_id
684: = p_x_sr_task_rec.customer_id;
685:
686: IF (l_customer_name <> nvl(p_x_sr_task_rec.customer_name,l_customer_name) and
687: (p_x_sr_task_rec.customer_name <> FND_API.G_MISS_CHAR) ) THEN
688: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_NAME_MISMATCH');
689: Fnd_Message.SET_TOKEN('CUST_NAME',p_x_sr_task_rec.customer_name);
690: Fnd_Message.SET_TOKEN('CUST_ID',p_x_sr_task_rec.customer_id);
691: Fnd_Msg_Pub.ADD;
688: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_NAME_MISMATCH');
689: Fnd_Message.SET_TOKEN('CUST_NAME',p_x_sr_task_rec.customer_name);
690: Fnd_Message.SET_TOKEN('CUST_ID',p_x_sr_task_rec.customer_id);
691: Fnd_Msg_Pub.ADD;
692: x_return_status := FND_API.G_RET_STS_ERROR;
693: END IF;
694:
695: EXCEPTION
696: WHEN NO_DATA_FOUND THEN
696: WHEN NO_DATA_FOUND THEN
697: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_ID_INVALID');
698: Fnd_Message.SET_TOKEN('CUST_ID',p_x_sr_task_rec.customer_id);
699: Fnd_Msg_Pub.ADD;
700: x_return_status := FND_API.G_RET_STS_ERROR;
701: WHEN TOO_MANY_ROWS THEN
702: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_ID_NOT_UNIQUE');
703: Fnd_Message.SET_TOKEN('CUST_ID',p_x_sr_task_rec.customer_id);
704: Fnd_Msg_Pub.ADD;
701: WHEN TOO_MANY_ROWS THEN
702: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_ID_NOT_UNIQUE');
703: Fnd_Message.SET_TOKEN('CUST_ID',p_x_sr_task_rec.customer_id);
704: Fnd_Msg_Pub.ADD;
705: x_return_status := FND_API.G_RET_STS_ERROR;
706: END;
707:
708:
709: ELSIF ( (p_x_sr_task_rec.customer_id is null or
706: END;
707:
708:
709: ELSIF ( (p_x_sr_task_rec.customer_id is null or
710: p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM)
711: and (p_x_sr_task_rec.customer_name is not null and
712: p_x_sr_task_rec.customer_name <> FND_API.G_MISS_CHAR)) THEN
713:
714: BEGIN
708:
709: ELSIF ( (p_x_sr_task_rec.customer_id is null or
710: p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM)
711: and (p_x_sr_task_rec.customer_name is not null and
712: p_x_sr_task_rec.customer_name <> FND_API.G_MISS_CHAR)) THEN
713:
714: BEGIN
715: Select party_id
716: into
723: WHEN NO_DATA_FOUND THEN
724: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_NAME_INVALID');
725: Fnd_Message.SET_TOKEN('CUST_NAME',p_x_sr_task_rec.customer_name);
726: Fnd_Msg_Pub.ADD;
727: x_return_status := FND_API.G_RET_STS_ERROR;
728: WHEN TOO_MANY_ROWS THEN
729: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_NAME_NOT_UNIQUE');
730: Fnd_Message.SET_TOKEN('CUST_NAME',p_x_sr_task_rec.customer_name);
731: Fnd_Msg_Pub.ADD;
728: WHEN TOO_MANY_ROWS THEN
729: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_NAME_NOT_UNIQUE');
730: Fnd_Message.SET_TOKEN('CUST_NAME',p_x_sr_task_rec.customer_name);
731: Fnd_Msg_Pub.ADD;
732: x_return_status := FND_API.G_RET_STS_ERROR;
733: END;
734: -- NR MR ER - start
735: -- Balaji added following elseif clause to explicitly pass null to
736: -- SR API so that appropriate error msg is thrown.
753:
754: IF (upper(p_x_sr_task_rec.contact_type) in ('PARTY_RELATIONSHIP','PERSON')) THEN
755:
756: IF( p_x_sr_task_rec.contact_id is not null and
757: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
758: and ( p_x_sr_task_rec.contact_name is not null and
759: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
760: BEGIN
761: Select party_name
755:
756: IF( p_x_sr_task_rec.contact_id is not null and
757: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
758: and ( p_x_sr_task_rec.contact_name is not null and
759: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
760: BEGIN
761: Select party_name
762: into
763: l_contact_name
766: = p_x_sr_task_rec.contact_id;
767:
768:
769: IF(l_contact_name <> nvl(p_x_sr_task_rec.contact_name,l_contact_name) and
770: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) )THEN
771: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
772: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
773: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
774: Fnd_Msg_Pub.ADD;
771: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
772: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
773: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
774: Fnd_Msg_Pub.ADD;
775: x_return_status := FND_API.G_RET_STS_ERROR;
776: END IF;
777:
778: EXCEPTION
779: WHEN NO_DATA_FOUND THEN
779: WHEN NO_DATA_FOUND THEN
780: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_INVALID');
781: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
782: Fnd_Msg_Pub.ADD;
783: x_return_status := FND_API.G_RET_STS_ERROR;
784: WHEN TOO_MANY_ROWS THEN
785: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
786: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
787: Fnd_Msg_Pub.ADD;
784: WHEN TOO_MANY_ROWS THEN
785: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
786: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
787: Fnd_Msg_Pub.ADD;
788: x_return_status := FND_API.G_RET_STS_ERROR;
789: END;
790:
791:
792: ELSIF ( (p_x_sr_task_rec.contact_id is null or
789: END;
790:
791:
792: ELSIF ( (p_x_sr_task_rec.contact_id is null or
793: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
794: and ( p_x_sr_task_rec.contact_name is not null and
795: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
796:
797: BEGIN
791:
792: ELSIF ( (p_x_sr_task_rec.contact_id is null or
793: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
794: and ( p_x_sr_task_rec.contact_name is not null and
795: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
796:
797: BEGIN
798: Select party_id
799: into
808: WHEN NO_DATA_FOUND THEN
809: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_INVALID');
810: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
811: Fnd_Msg_Pub.ADD;
812: x_return_status := FND_API.G_RET_STS_ERROR;
813: WHEN TOO_MANY_ROWS THEN
814: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
815: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
816: Fnd_Msg_Pub.ADD;
813: WHEN TOO_MANY_ROWS THEN
814: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
815: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
816: Fnd_Msg_Pub.ADD;
817: x_return_status := FND_API.G_RET_STS_ERROR;
818: END;
819: -- NR MR ER -- start
820: -- Balaji added following elseif clause to explicitly pass null to
821: -- SR API so that appropriate error msg is thrown.
838:
839: IF (upper(p_x_sr_task_rec.contact_type) = 'EMPLOYEE') THEN
840:
841: IF( p_x_sr_task_rec.contact_id is not null and
842: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
843: and ( p_x_sr_task_rec.contact_name is not null and
844: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
845: BEGIN
846: Select full_name
840:
841: IF( p_x_sr_task_rec.contact_id is not null and
842: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
843: and ( p_x_sr_task_rec.contact_name is not null and
844: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
845: BEGIN
846: Select full_name
847: into
848: l_contact_name
853: and trunc(nvl(effective_end_date,sysdate));
854:
855:
856: IF(l_contact_name <> nvl(p_x_sr_task_rec.contact_name,l_contact_name) and
857: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) ) THEN
858: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
859: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
860: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
861: Fnd_Msg_Pub.ADD;
858: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
859: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
860: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
861: Fnd_Msg_Pub.ADD;
862: x_return_status := FND_API.G_RET_STS_ERROR;
863: END IF;
864:
865: EXCEPTION
866: WHEN NO_DATA_FOUND THEN
866: WHEN NO_DATA_FOUND THEN
867: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_INVALID');
868: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
869: Fnd_Msg_Pub.ADD;
870: x_return_status := FND_API.G_RET_STS_ERROR;
871: WHEN TOO_MANY_ROWS THEN
872: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
873: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
874: Fnd_Msg_Pub.ADD;
871: WHEN TOO_MANY_ROWS THEN
872: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
873: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
874: Fnd_Msg_Pub.ADD;
875: x_return_status := FND_API.G_RET_STS_ERROR;
876: END;
877:
878:
879: ELSIF ( (p_x_sr_task_rec.contact_id is null or
876: END;
877:
878:
879: ELSIF ( (p_x_sr_task_rec.contact_id is null or
880: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
881: and ( p_x_sr_task_rec.contact_name is not null and
882: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
883:
884: BEGIN
878:
879: ELSIF ( (p_x_sr_task_rec.contact_id is null or
880: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
881: and ( p_x_sr_task_rec.contact_name is not null and
882: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
883:
884: BEGIN
885: Select person_id
886: into
896: WHEN NO_DATA_FOUND THEN
897: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_INVALID');
898: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
899: Fnd_Msg_Pub.ADD;
900: x_return_status := FND_API.G_RET_STS_ERROR;
901: WHEN TOO_MANY_ROWS THEN
902: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
903: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
904: Fnd_Msg_Pub.ADD;
901: WHEN TOO_MANY_ROWS THEN
902: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
903: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
904: Fnd_Msg_Pub.ADD;
905: x_return_status := FND_API.G_RET_STS_ERROR;
906: END;
907: -- NR MR ER -- start
908: -- Balaji added following elseif clause to explicitly pass null to
909: -- SR API so that appropriate error msg is thrown.
918:
919:
920: -- Derive the visit id from visit number
921: IF ((p_x_sr_task_rec.visit_id is null or
922: p_x_sr_task_rec.visit_id = FND_API.G_MISS_NUM) and
923: p_x_sr_task_rec.visit_number is not null) THEN
924:
925: OPEN ahl_visit(p_x_sr_task_rec.visit_number);
926: FETCH ahl_visit INTO p_x_sr_task_rec.visit_id;
930:
931:
932: -- Derive the instance id from instance number
933: IF ((p_x_sr_task_rec.instance_id is null or
934: p_x_sr_task_rec.instance_id = FND_API.G_MISS_NUM) and
935: p_x_sr_task_rec.instance_number is not null ) THEN
936:
937: OPEN sr_customer_product(p_x_sr_task_rec.instance_number);
938: FETCH sr_customer_product INTO p_x_sr_task_rec.instance_id;
942:
943:
944: -- Derive the problem code from problem meaning
945: IF ((p_x_sr_task_rec.problem_code is null or
946: p_x_sr_task_rec.problem_code = FND_API.G_MISS_CHAR) and
947: p_x_sr_task_rec.problem_meaning is not null ) THEN
948:
949: OPEN sr_problem_code(p_x_sr_task_rec.problem_meaning);
950: FETCH sr_problem_code INTO p_x_sr_task_rec.problem_code;
959: IF p_x_sr_task_rec.problem_code IS NULL THEN
960: Fnd_Message.SET_NAME('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
961: Fnd_Message.SET_TOKEN('CODE',p_x_sr_task_rec.problem_meaning);
962: Fnd_Msg_Pub.ADD;
963: x_return_status := FND_API.G_RET_STS_ERROR;
964: END IF;
965: -- NR MR ER - end
966:
967: END IF;
968:
969:
970: -- Derive the resolution code from resolution meaning.
971: IF ((p_x_sr_task_rec.resolution_code is null or
972: p_x_sr_task_rec.resolution_code = FND_API.G_MISS_CHAR) and
973: p_x_sr_task_rec.resolution_meaning is not null ) THEN
974:
975: OPEN sr_resolution_code(p_x_sr_task_rec.resolution_meaning);
976: FETCH sr_resolution_code INTO p_x_sr_task_rec.resolution_code;
985: IF p_x_sr_task_rec.resolution_code IS NULL THEN
986: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_INV');
987: Fnd_Message.SET_TOKEN('CODE',p_x_sr_task_rec.resolution_meaning);
988: Fnd_Msg_Pub.ADD;
989: x_return_status := FND_API.G_RET_STS_ERROR;
990: END IF;
991: -- NR MR ER -- end
992:
993: END IF;
1006:
1007: IF (upper(p_x_sr_task_rec.contact_type) in ('PARTY_RELATIONSHIP','PERSON')) THEN
1008:
1009: IF( p_x_sr_task_rec.contact_id is not null and
1010: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
1011: and ( p_x_sr_task_rec.contact_name is not null and
1012: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
1013: BEGIN
1014: Select party_name
1008:
1009: IF( p_x_sr_task_rec.contact_id is not null and
1010: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
1011: and ( p_x_sr_task_rec.contact_name is not null and
1012: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
1013: BEGIN
1014: Select party_name
1015: into
1016: l_contact_name
1018: where party_id
1019: = p_x_sr_task_rec.contact_id;
1020:
1021: IF(l_contact_name <> nvl(p_x_sr_task_rec.contact_name,l_contact_name) and
1022: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) )THEN
1023: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
1024: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1025: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1026: Fnd_Msg_Pub.ADD;
1023: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
1024: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1025: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1026: Fnd_Msg_Pub.ADD;
1027: x_return_status := FND_API.G_RET_STS_ERROR;
1028: END IF;
1029:
1030:
1031: EXCEPTION
1032: WHEN NO_DATA_FOUND THEN
1033: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_INVALID');
1034: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1035: Fnd_Msg_Pub.ADD;
1036: x_return_status := FND_API.G_RET_STS_ERROR;
1037: WHEN TOO_MANY_ROWS THEN
1038: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
1039: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1040: Fnd_Msg_Pub.ADD;
1037: WHEN TOO_MANY_ROWS THEN
1038: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
1039: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1040: Fnd_Msg_Pub.ADD;
1041: x_return_status := FND_API.G_RET_STS_ERROR;
1042: END;
1043:
1044:
1045: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1042: END;
1043:
1044:
1045: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1046: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
1047: and ( p_x_sr_task_rec.contact_name is not null and
1048: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
1049:
1050: BEGIN
1044:
1045: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1046: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
1047: and ( p_x_sr_task_rec.contact_name is not null and
1048: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR )) THEN
1049:
1050: BEGIN
1051: Select party_id
1052: into
1060: WHEN NO_DATA_FOUND THEN
1061: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_INVALID');
1062: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1063: Fnd_Msg_Pub.ADD;
1064: x_return_status := FND_API.G_RET_STS_ERROR;
1065: WHEN TOO_MANY_ROWS THEN
1066: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
1067: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1068: Fnd_Msg_Pub.ADD;
1065: WHEN TOO_MANY_ROWS THEN
1066: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
1067: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1068: Fnd_Msg_Pub.ADD;
1069: x_return_status := FND_API.G_RET_STS_ERROR;
1070: END;
1071: -- NR MR ER -- start
1072: -- Balaji added following elseif clause to explicitly pass null to
1073: -- SR API so that appropriate error msg is thrown.
1091:
1092: IF (upper(p_x_sr_task_rec.contact_type) = 'EMPLOYEE') THEN
1093:
1094: IF( p_x_sr_task_rec.contact_id is not null and
1095: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
1096: and ( p_x_sr_task_rec.contact_name is not null and
1097: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR)) THEN
1098: BEGIN
1099: Select full_name
1093:
1094: IF( p_x_sr_task_rec.contact_id is not null and
1095: p_x_sr_task_rec.contact_id <> FND_API.G_MISS_NUM
1096: and ( p_x_sr_task_rec.contact_name is not null and
1097: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR)) THEN
1098: BEGIN
1099: Select full_name
1100: into
1101: l_contact_name
1105: and trunc(sysdate) between trunc(nvl(effective_start_date,sysdate))
1106: and trunc(nvl(effective_end_date,sysdate));
1107:
1108: IF(l_contact_name <> nvl(p_x_sr_task_rec.contact_name,l_contact_name) and
1109: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) )THEN
1110: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
1111: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1112: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1113: Fnd_Msg_Pub.ADD;
1110: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_MISMATCH');
1111: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1112: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1113: Fnd_Msg_Pub.ADD;
1114: x_return_status := FND_API.G_RET_STS_ERROR;
1115: END IF;
1116:
1117: EXCEPTION
1118: WHEN NO_DATA_FOUND THEN
1118: WHEN NO_DATA_FOUND THEN
1119: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_INVALID');
1120: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1121: Fnd_Msg_Pub.ADD;
1122: x_return_status := FND_API.G_RET_STS_ERROR;
1123: WHEN TOO_MANY_ROWS THEN
1124: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
1125: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1126: Fnd_Msg_Pub.ADD;
1123: WHEN TOO_MANY_ROWS THEN
1124: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_ID_NOT_UNIQUE');
1125: Fnd_Message.SET_TOKEN('CONT_ID',p_x_sr_task_rec.contact_id);
1126: Fnd_Msg_Pub.ADD;
1127: x_return_status := FND_API.G_RET_STS_ERROR;
1128: END;
1129:
1130:
1131: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1128: END;
1129:
1130:
1131: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1132: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
1133: and ( p_x_sr_task_rec.contact_name is not null and
1134: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR)) THEN
1135:
1136: BEGIN
1130:
1131: ELSIF ( (p_x_sr_task_rec.contact_id is null or
1132: p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)
1133: and ( p_x_sr_task_rec.contact_name is not null and
1134: p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR)) THEN
1135:
1136: BEGIN
1137: Select person_id
1138: into
1148: WHEN NO_DATA_FOUND THEN
1149: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_INVALID');
1150: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1151: Fnd_Msg_Pub.ADD;
1152: x_return_status := FND_API.G_RET_STS_ERROR;
1153: WHEN TOO_MANY_ROWS THEN
1154: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
1155: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1156: Fnd_Msg_Pub.ADD;
1153: WHEN TOO_MANY_ROWS THEN
1154: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_NAME_NOT_UNIQUE');
1155: Fnd_Message.SET_TOKEN('CONT_NAME',p_x_sr_task_rec.contact_name);
1156: Fnd_Msg_Pub.ADD;
1157: x_return_status := FND_API.G_RET_STS_ERROR;
1158: END;
1159: -- NR MR ER -- start
1160: -- Balaji added following elseif clause to explicitly pass null to
1161: -- SR API so that appropriate error msg is thrown.
1171:
1172:
1173: -- Derive the problem code from problem meaning.
1174: IF ((p_x_sr_task_rec.problem_code is null or
1175: p_x_sr_task_rec.problem_code = FND_API.G_MISS_CHAR) and
1176: p_x_sr_task_rec.problem_meaning is not null ) THEN
1177:
1178: OPEN sr_problem_code(p_x_sr_task_rec.problem_meaning);
1179: FETCH sr_problem_code INTO p_x_sr_task_rec.problem_code;
1188: IF p_x_sr_task_rec.problem_code IS NULL THEN
1189: Fnd_Message.SET_NAME('AHL','AHL_PRD_PROBLEM_CODE_INVALID');
1190: Fnd_Message.SET_TOKEN('CODE',p_x_sr_task_rec.problem_meaning);
1191: Fnd_Msg_Pub.ADD;
1192: x_return_status := FND_API.G_RET_STS_ERROR;
1193: END IF;
1194: -- NR MR ER -- end
1195:
1196: END IF;
1196: END IF;
1197:
1198: -- Derive the resolution code from resolution meaning.
1199: IF ((p_x_sr_task_rec.resolution_code is null or
1200: p_x_sr_task_rec.resolution_code = FND_API.G_MISS_CHAR) and
1201: p_x_sr_task_rec.resolution_meaning is not null ) THEN
1202:
1203: OPEN sr_resolution_code(p_x_sr_task_rec.resolution_meaning);
1204: FETCH sr_resolution_code INTO p_x_sr_task_rec.resolution_code;
1213: IF p_x_sr_task_rec.resolution_code IS NULL THEN
1214: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_INV');
1215: Fnd_Message.SET_TOKEN('CODE',p_x_sr_task_rec.resolution_meaning);
1216: Fnd_Msg_Pub.ADD;
1217: x_return_status := FND_API.G_RET_STS_ERROR;
1218: END IF;
1219: -- NR MR ER -- end
1220:
1221: END IF;
1224: -- Balaji added the code for OGMA ER (Adding MRs to Non-Routine)
1225: -- Begin
1226: -- Derive the visit id from visit number
1227: IF ((p_x_sr_task_rec.visit_id is null or
1228: p_x_sr_task_rec.visit_id = FND_API.G_MISS_NUM) and
1229: p_x_sr_task_rec.visit_number is not null) THEN
1230:
1231: OPEN ahl_visit(p_x_sr_task_rec.visit_number);
1232: FETCH ahl_visit INTO p_x_sr_task_rec.visit_id;
1338:
1339: BEGIN
1340:
1341: -- Initialize Procedure return status to success
1342: x_return_status := FND_API.G_RET_STS_SUCCESS;
1343:
1344:
1345: IF (upper(p_x_sr_task_rec.operation_type) = 'CREATE') THEN
1346:
1346:
1347:
1348: -- Check if instance id is not null. If instance id
1349: -- is null then return error message.
1350: IF (p_x_sr_task_rec.instance_id is null or p_x_sr_task_rec.instance_id = FND_API.G_MISS_NUM) THEN
1351:
1352: Fnd_Message.SET_NAME('AHL','AHL_PRD_INSTANCE_VALUE_REQ');
1353: Fnd_Msg_Pub.ADD;
1354: RAISE FND_API.G_EXC_ERROR;
1350: IF (p_x_sr_task_rec.instance_id is null or p_x_sr_task_rec.instance_id = FND_API.G_MISS_NUM) THEN
1351:
1352: Fnd_Message.SET_NAME('AHL','AHL_PRD_INSTANCE_VALUE_REQ');
1353: Fnd_Msg_Pub.ADD;
1354: RAISE FND_API.G_EXC_ERROR;
1355:
1356: END IF;
1357:
1358: -- If originating work order id is null then
1356: END IF;
1357:
1358: -- If originating work order id is null then
1359: -- return an error message.
1360: IF (p_x_sr_task_rec.originating_wo_id is null or p_x_sr_task_rec.originating_wo_id = FND_API.G_MISS_NUM) THEN
1361:
1362: Fnd_Message.SET_NAME('AHL','AHL_PRD_TASK_ORG_WOID_REQ');
1363: Fnd_Msg_Pub.ADD;
1364: RAISE FND_API.G_EXC_ERROR;
1360: IF (p_x_sr_task_rec.originating_wo_id is null or p_x_sr_task_rec.originating_wo_id = FND_API.G_MISS_NUM) THEN
1361:
1362: Fnd_Message.SET_NAME('AHL','AHL_PRD_TASK_ORG_WOID_REQ');
1363: Fnd_Msg_Pub.ADD;
1364: RAISE FND_API.G_EXC_ERROR;
1365:
1366: END IF;
1367:
1368: -- bachandr added following validation for Bug # 6447467 (Base ER # 5571440)
1372:
1373: IF ( nvl(fnd_profile.value('AHL_SR_RESL_CODE_COMP'), 'N') = 'Y') THEN
1374:
1375: IF ( p_x_sr_task_rec.resolution_meaning IS NULL OR
1376: p_x_sr_task_rec.resolution_meaning = FND_API.G_MISS_CHAR) THEN
1377:
1378: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_REQ');
1379: Fnd_Msg_Pub.ADD;
1380: RAISE FND_API.G_EXC_ERROR;
1376: p_x_sr_task_rec.resolution_meaning = FND_API.G_MISS_CHAR) THEN
1377:
1378: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_REQ');
1379: Fnd_Msg_Pub.ADD;
1380: RAISE FND_API.G_EXC_ERROR;
1381:
1382: END IF;
1383: END IF;
1384: -- Bug # 6447467 -- End
1396: l_return_status := AHL_PRD_UTIL_PKG.Is_Unit_Locked(p_workorder_id => p_x_sr_task_rec.originating_wo_id,
1397: p_ue_id => NULL,
1398: p_visit_id => NULL,
1399: p_item_instance_id => NULL);
1400: IF l_return_status = FND_API.G_TRUE THEN
1401: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_CRT_SR_UNTLCKD');
1402: FND_MESSAGE.Set_Token('WO_NAME', l_wo_name);
1403: FND_MSG_PUB.ADD;
1404: RAISE FND_API.G_EXC_ERROR;
1400: IF l_return_status = FND_API.G_TRUE THEN
1401: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_CRT_SR_UNTLCKD');
1402: FND_MESSAGE.Set_Token('WO_NAME', l_wo_name);
1403: FND_MSG_PUB.ADD;
1404: RAISE FND_API.G_EXC_ERROR;
1405: END IF;
1406: -- rroy
1407: -- ACL Changes
1408:
1410: -- If type id is null then derive it
1411: -- from profile. If profile value is null then
1412: -- return an error message
1413:
1414: IF ((p_x_sr_task_rec.type_id is null or p_x_sr_task_rec.type_id = FND_API.G_MISS_NUM)and
1415: (p_x_sr_task_rec.type_name is null or p_x_sr_task_rec.type_name = FND_API.G_MISS_CHAR)) THEN
1416: IF (fnd_profile.value('AHL_PRD_SR_TYPE') is not null) THEN
1417: p_x_sr_task_rec.type_id := fnd_profile.value('AHL_PRD_SR_TYPE');
1418: p_x_sr_task_rec.type_name := fnd_profile.value('AHL_PRD_SR_TYPE');
1411: -- from profile. If profile value is null then
1412: -- return an error message
1413:
1414: IF ((p_x_sr_task_rec.type_id is null or p_x_sr_task_rec.type_id = FND_API.G_MISS_NUM)and
1415: (p_x_sr_task_rec.type_name is null or p_x_sr_task_rec.type_name = FND_API.G_MISS_CHAR)) THEN
1416: IF (fnd_profile.value('AHL_PRD_SR_TYPE') is not null) THEN
1417: p_x_sr_task_rec.type_id := fnd_profile.value('AHL_PRD_SR_TYPE');
1418: p_x_sr_task_rec.type_name := fnd_profile.value('AHL_PRD_SR_TYPE');
1419: ELSE
1420: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_TYPE_REQ');
1421: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1422: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1423: Fnd_Msg_Pub.ADD;
1424: x_return_status := FND_API.G_RET_STS_ERROR;
1425: END IF;
1426:
1427: END IF;
1428:
1428:
1429:
1430: -- If status is null then derive it from profile.
1431: -- If profile value is null then default it to OPEN.
1432: IF ((p_x_sr_task_rec.status_id is null or p_x_sr_task_rec.status_id = FND_API.G_MISS_NUM)and
1433: (p_x_sr_task_rec.status_name is null or p_x_sr_task_rec.status_name = FND_API.G_MISS_CHAR)) THEN
1434:
1435: IF (fnd_profile.value('AHL_PRD_SR_STATUS') is not null) THEN
1436: p_x_sr_task_rec.status_id := fnd_profile.value('AHL_PRD_SR_STATUS');
1429:
1430: -- If status is null then derive it from profile.
1431: -- If profile value is null then default it to OPEN.
1432: IF ((p_x_sr_task_rec.status_id is null or p_x_sr_task_rec.status_id = FND_API.G_MISS_NUM)and
1433: (p_x_sr_task_rec.status_name is null or p_x_sr_task_rec.status_name = FND_API.G_MISS_CHAR)) THEN
1434:
1435: IF (fnd_profile.value('AHL_PRD_SR_STATUS') is not null) THEN
1436: p_x_sr_task_rec.status_id := fnd_profile.value('AHL_PRD_SR_STATUS');
1437: ELSE
1443: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_STATUS_DEFAULT_ERR');
1444: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1445: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1446: Fnd_Msg_Pub.ADD;
1447: x_return_status := FND_API.G_RET_STS_ERROR;
1448: ELSE
1449: FETCH cs_sr_status INTO p_x_sr_task_rec.status_id;
1450: END IF;
1451:
1458:
1459:
1460: -- If severity is null then derive it from profile.
1461: -- If profile value is null then return an error message.
1462: IF ((p_x_sr_task_rec.severity_id is null or p_x_sr_task_rec.severity_id = FND_API.G_MISS_NUM)and
1463: (p_x_sr_task_rec.severity_name is null or p_x_sr_task_rec.severity_name = FND_API.G_MISS_CHAR)) THEN
1464:
1465: IF (fnd_profile.value('AHL_PRD_SR_SEVERITY') is not null) THEN
1466: p_x_sr_task_rec.severity_id := fnd_profile.value('AHL_PRD_SR_SEVERITY');
1459:
1460: -- If severity is null then derive it from profile.
1461: -- If profile value is null then return an error message.
1462: IF ((p_x_sr_task_rec.severity_id is null or p_x_sr_task_rec.severity_id = FND_API.G_MISS_NUM)and
1463: (p_x_sr_task_rec.severity_name is null or p_x_sr_task_rec.severity_name = FND_API.G_MISS_CHAR)) THEN
1464:
1465: IF (fnd_profile.value('AHL_PRD_SR_SEVERITY') is not null) THEN
1466: p_x_sr_task_rec.severity_id := fnd_profile.value('AHL_PRD_SR_SEVERITY');
1467:
1472: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_SEVERITY_INVALID');
1473: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1474: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1475: Fnd_Msg_Pub.ADD;
1476: x_return_status := FND_API.G_RET_STS_ERROR;
1477: END IF;
1478:
1479: CLOSE cs_sr_severity_validate;
1480: ELSE
1481: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_SEVERITY_REQ');
1482: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1483: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1484: Fnd_Msg_Pub.ADD;
1485: x_return_status := FND_API.G_RET_STS_ERROR;
1486: END IF;
1487:
1488: END IF;
1489:
1489:
1490: -- Default incident date to sysdate if
1491: -- request date is null
1492: IF (p_x_sr_task_rec.request_date is null or
1493: p_x_sr_task_rec.request_date = FND_API.G_MISS_DATE) THEN
1494:
1495: p_x_sr_task_rec.request_date := sysdate;
1496:
1497: END IF;
1498:
1499:
1500: -- If summary is null then return an
1501: -- error message.
1502: IF (p_x_sr_task_rec.summary is null or p_x_sr_task_rec.summary = FND_API.G_MISS_CHAR) THEN
1503:
1504: Fnd_Message.SET_NAME('AHL','AHL_PRD_SUMMARY_REQ');
1505: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1506: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1504: Fnd_Message.SET_NAME('AHL','AHL_PRD_SUMMARY_REQ');
1505: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1506: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1507: Fnd_Msg_Pub.ADD;
1508: x_return_status := FND_API.G_RET_STS_ERROR;
1509:
1510: END IF;
1511:
1512:
1511:
1512:
1513: -- If duration is null then derive it from profile.
1514: -- If profile value is null then default it to 1.
1515: IF (p_x_sr_task_rec.duration is null or p_x_sr_task_rec.duration = FND_API.G_MISS_NUM) THEN
1516:
1517: IF ( fnd_profile.value('AHL_PRD_TASK_EST_DURATION') is not null) THEN
1518: p_x_sr_task_rec.duration := fnd_profile.value('AHL_PRD_TASK_EST_DURATION');
1519: ELSE
1521: END IF;
1522: END IF;
1523:
1524: -- Changes made by VSUNDARA For SR Integration
1525: IF (p_x_sr_task_rec.customer_id IS NULL or p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM ) THEN
1526: OPEN default_party_id(p_x_sr_task_rec.instance_id);
1527: FETCH default_party_id INTO p_x_sr_task_rec.customer_id ;
1528: --Just to Check
1529: Select party_name
1535: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_CUST_ERROR');
1536: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1537: Fnd_Message.SET_TOKEN('INSTANCE_NUM',null);
1538: Fnd_Msg_Pub.ADD;
1539: x_return_status := FND_API.G_RET_STS_ERROR;
1540: END IF;
1541: OPEN owner_customer_type(p_x_sr_task_rec.customer_id);
1542: FETCH owner_customer_type INTO p_x_sr_task_rec.customer_type;
1543: IF ( owner_customer_type%NOTFOUND) THEN
1544: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_CUST_ERROR'); -- Customer Type is Invalid
1545: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1546: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1547: Fnd_Msg_Pub.ADD;
1548: x_return_status := FND_API.G_RET_STS_ERROR;
1549: END IF;
1550:
1551: CLOSE owner_customer_type;
1552: -- Defalut contact is Same
1556: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_CONT_ERROR');
1557: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1558: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1559: Fnd_Msg_Pub.ADD;
1560: x_return_status := FND_API.G_RET_STS_ERROR;
1561: ELSE
1562: p_x_sr_task_rec.contact_type := 'EMPLOYEE';
1563: END IF;
1564:
1568: --- Validation of the Customer ID with Owner of the Instance
1569: OPEN default_party_id(p_x_sr_task_rec.instance_id);
1570: FETCH default_party_id INTO l_owner_id ;
1571: IF( l_owner_id <> nvl(p_x_sr_task_rec.customer_id,l_owner_id) and
1572: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) )THEN
1573: Fnd_Message.SET_NAME('AHL','AHL_PRD_INVALID_OWNER'); -- New Error Message Should be added
1574: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1575: Fnd_Msg_Pub.ADD;
1576: x_return_status := FND_API.G_RET_STS_ERROR;
1572: (p_x_sr_task_rec.contact_name <> FND_API.G_MISS_CHAR) )THEN
1573: Fnd_Message.SET_NAME('AHL','AHL_PRD_INVALID_OWNER'); -- New Error Message Should be added
1574: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1575: Fnd_Msg_Pub.ADD;
1576: x_return_status := FND_API.G_RET_STS_ERROR;
1577: END IF;
1578:
1579: END IF;
1580:
1582:
1583: -- If Customer id and Contact id is null then
1584: -- Derive the Customer info from Profile and
1585: -- Contact info from fnd_user.user_id
1586: IF ((p_x_sr_task_rec.customer_id IS NULL or p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM ) and
1587: (p_x_sr_task_rec.contact_id IS NULL or p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)) THEN
1588: IF ( fnd_profile.value('AHL_PRD_SR_CUSTOMER_NAME') is not null ) THEN
1589:
1590: OPEN default_customer_type;
1583: -- If Customer id and Contact id is null then
1584: -- Derive the Customer info from Profile and
1585: -- Contact info from fnd_user.user_id
1586: IF ((p_x_sr_task_rec.customer_id IS NULL or p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM ) and
1587: (p_x_sr_task_rec.contact_id IS NULL or p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)) THEN
1588: IF ( fnd_profile.value('AHL_PRD_SR_CUSTOMER_NAME') is not null ) THEN
1589:
1590: OPEN default_customer_type;
1591: FETCH default_customer_type INTO p_x_sr_task_rec.customer_type;
1594: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_CUST_ERROR');
1595: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1596: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1597: Fnd_Msg_Pub.ADD;
1598: x_return_status := FND_API.G_RET_STS_ERROR;
1599: ELSE
1600: p_x_sr_task_rec.customer_id := fnd_profile.value('AHL_PRD_SR_CUSTOMER_NAME');
1601: END IF;
1602:
1608: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_CONT_ERROR');
1609: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1610: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1611: Fnd_Msg_Pub.ADD;
1612: x_return_status := FND_API.G_RET_STS_ERROR;
1613: ELSE
1614: p_x_sr_task_rec.contact_type := 'EMPLOYEE';
1615: END IF;
1616:
1621: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_PROFILE_REQ');
1622: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1623: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1624: Fnd_Msg_Pub.ADD;
1625: x_return_status := FND_API.G_RET_STS_ERROR;
1626:
1627: END IF;
1628:
1629: END IF;
1631:
1632: -- If Customer id is not null but Customer type is
1633: -- null then return an error message.
1634: IF (p_x_sr_task_rec.customer_id is not null and
1635: (p_x_sr_task_rec.customer_type is null or p_x_sr_task_rec.customer_type = FND_API.G_MISS_CHAR)) THEN
1636:
1637: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_TYPE_REQ');
1638: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1639: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1637: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUST_TYPE_REQ');
1638: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1639: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1640: Fnd_Msg_Pub.ADD;
1641: x_return_status := FND_API.G_RET_STS_ERROR;
1642:
1643: END IF;
1644:
1645:
1645:
1646: -- If Contact id is not null but Contact type is
1647: -- null then return an error message.
1648: IF (p_x_sr_task_rec.contact_id is not null and
1649: (p_x_sr_task_rec.contact_type is null or p_x_sr_task_rec.contact_type = FND_API.G_MISS_CHAR)) THEN
1650:
1651: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_TYPE_REQ');
1652: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1653: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1651: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_TYPE_REQ');
1652: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1653: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1654: Fnd_Msg_Pub.ADD;
1655: x_return_status := FND_API.G_RET_STS_ERROR;
1656:
1657: END IF;
1658:
1659:
1659:
1660: -- If Customer value is not null but Contact
1661: -- is null then return an error message.
1662: IF (p_x_sr_task_rec.customer_id is not null and
1663: (p_x_sr_task_rec.contact_id is null or p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM)) THEN
1664:
1665: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONTACT_REQ');
1666: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1667: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1665: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONTACT_REQ');
1666: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1667: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1668: Fnd_Msg_Pub.ADD;
1669: x_return_status := FND_API.G_RET_STS_ERROR;
1670:
1671: -- If Contact is not null but Customer is null then
1672: -- return an error message.
1673: ELSIF((p_x_sr_task_rec.customer_id is null or p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM) and
1669: x_return_status := FND_API.G_RET_STS_ERROR;
1670:
1671: -- If Contact is not null but Customer is null then
1672: -- return an error message.
1673: ELSIF((p_x_sr_task_rec.customer_id is null or p_x_sr_task_rec.customer_id = FND_API.G_MISS_NUM) and
1674: p_x_sr_task_rec.contact_id is not null ) THEN
1675:
1676: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUSTOMER_REQ');
1677: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1676: Fnd_Message.SET_NAME('AHL','AHL_PRD_CUSTOMER_REQ');
1677: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1678: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1679: Fnd_Msg_Pub.ADD;
1680: x_return_status := FND_API.G_RET_STS_ERROR;
1681:
1682: END IF;
1683:
1684:
1683:
1684:
1685: -- If visit id is null then return an error
1686: -- message.
1687: IF (p_x_sr_task_rec.visit_id is null or p_x_sr_task_rec.visit_id = FND_API.G_MISS_NUM) THEN
1688:
1689: Fnd_Message.SET_NAME('AHL','AHL_PRD_VISIT_VALUE_REQ');
1690: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1691: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1689: Fnd_Message.SET_NAME('AHL','AHL_PRD_VISIT_VALUE_REQ');
1690: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1691: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1692: Fnd_Msg_Pub.ADD;
1693: x_return_status := FND_API.G_RET_STS_ERROR;
1694:
1695: END IF;
1696: --amsriniv. Issue 105. Begin ER 6014567
1697: IF (p_x_sr_task_rec.instance_quantity IS NOT NULL AND p_x_sr_task_rec.instance_quantity <= 0) THEN
1696: --amsriniv. Issue 105. Begin ER 6014567
1697: IF (p_x_sr_task_rec.instance_quantity IS NOT NULL AND p_x_sr_task_rec.instance_quantity <= 0) THEN
1698: Fnd_Message.SET_NAME('AHL','AHL_POSITIVE_TSK_QTY');
1699: Fnd_Msg_Pub.ADD;
1700: x_return_status := FND_API.G_RET_STS_ERROR;
1701: END IF;
1702:
1703: IF (upper(p_x_sr_task_rec.WO_Create_flag) = 'N') THEN
1704: OPEN check_inst_nonserial(p_x_sr_task_rec.Instance_id, p_x_sr_task_rec.originating_wo_id);
1706: IF (check_inst_nonserial%FOUND) THEN
1707: Fnd_Message.SET_NAME('AHL','AHL_NO_CREATE_WO_NONSER');
1708: Fnd_Message.SET_TOKEN('FIELD',l_instance_num);
1709: Fnd_Msg_Pub.ADD;
1710: x_return_status := FND_API.G_RET_STS_ERROR;
1711: END IF;
1712: CLOSE check_inst_nonserial;
1713: END IF;
1714:
1720: Fnd_Message.SET_NAME('AHL','AHL_INST_NOT_ISSUED');
1721: Fnd_Message.SET_TOKEN('INS_NUM',l_instance_num);
1722: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1723: Fnd_Msg_Pub.ADD;
1724: x_return_status := FND_API.G_RET_STS_ERROR;
1725: ELSIF (l_quantity < p_x_sr_task_rec.instance_quantity) THEN
1726: Fnd_Message.SET_NAME('AHL','AHL_INST_NOT_AVAIL');
1727: Fnd_Message.SET_TOKEN('INS_NAME',l_instance_num);
1728: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1728: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1729: Fnd_Message.SET_TOKEN('QUANT_USER',TO_CHAR(p_x_sr_task_rec.instance_quantity));
1730: Fnd_Message.SET_TOKEN('QUANT_AVAIL',TO_CHAR(l_quantity));
1731: Fnd_Msg_Pub.ADD;
1732: x_return_status := FND_API.G_RET_STS_ERROR;
1733: END IF;
1734: ELSE
1735: Fnd_Message.SET_NAME('AHL','AHL_NR_WO_NOT_RELEASED');
1736: Fnd_Msg_Pub.ADD;
1733: END IF;
1734: ELSE
1735: Fnd_Message.SET_NAME('AHL','AHL_NR_WO_NOT_RELEASED');
1736: Fnd_Msg_Pub.ADD;
1737: x_return_status := FND_API.G_RET_STS_ERROR;
1738: END IF;
1739: END IF;
1740: --amsriniv. Issue 105. End ER 6014567
1741:
1749:
1750: IF ( nvl(fnd_profile.value('AHL_SR_RESL_CODE_COMP'), 'N') = 'Y') THEN
1751:
1752: IF ( p_x_sr_task_rec.resolution_meaning IS NULL OR
1753: p_x_sr_task_rec.resolution_meaning = FND_API.G_MISS_CHAR) THEN
1754:
1755: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_REQ');
1756: Fnd_Msg_Pub.ADD;
1757: RAISE FND_API.G_EXC_ERROR;
1753: p_x_sr_task_rec.resolution_meaning = FND_API.G_MISS_CHAR) THEN
1754:
1755: Fnd_Message.SET_NAME('AHL','AHL_PRD_RESL_CODE_REQ');
1756: Fnd_Msg_Pub.ADD;
1757: RAISE FND_API.G_EXC_ERROR;
1758:
1759: END IF;
1760: END IF;
1761: -- Bug # 6447467 -- end
1772: l_return_status := AHL_PRD_UTIL_PKG.Is_Unit_Locked(p_workorder_id => p_x_sr_task_rec.originating_wo_id,
1773: p_ue_id => NULL,
1774: p_visit_id => NULL,
1775: p_item_instance_id => NULL);
1776: IF l_return_status = FND_API.G_TRUE THEN
1777: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_UPD_SR_UNTLCKD');
1778: FND_MESSAGE.Set_Token('WO_NAME', l_wo_name);
1779: FND_MSG_PUB.ADD;
1780: RAISE FND_API.G_EXC_ERROR;
1776: IF l_return_status = FND_API.G_TRUE THEN
1777: FND_MESSAGE.Set_Name('AHL', 'AHL_PRD_UPD_SR_UNTLCKD');
1778: FND_MESSAGE.Set_Token('WO_NAME', l_wo_name);
1779: FND_MSG_PUB.ADD;
1780: RAISE FND_API.G_EXC_ERROR;
1781: END IF;
1782: -- rroy
1783: -- ACL Changes
1784:
1785: IF p_module_type IS NULL OR p_module_type <> 'SR_OA' THEN
1786:
1787: -- If contact id is null then return an
1788: -- error message.
1789: IF (p_x_sr_task_rec.contact_id is null or p_x_sr_task_rec.contact_id = FND_API.G_MISS_NUM) THEN
1790:
1791: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONTACT_REQ');
1792: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1793: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1791: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONTACT_REQ');
1792: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1793: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1794: Fnd_Msg_Pub.ADD;
1795: x_return_status := FND_API.G_RET_STS_ERROR;
1796:
1797: END IF;
1798:
1799:
1799:
1800: -- If Contact type is null then return an error
1801: -- message.
1802: IF (p_x_sr_task_rec.contact_id is not null and
1803: (p_x_sr_task_rec.contact_type is null or p_x_sr_task_rec.contact_type = FND_API.G_MISS_CHAR)) THEN
1804:
1805: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_TYPE_REQ');
1806: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1807: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1805: Fnd_Message.SET_NAME('AHL','AHL_PRD_CONT_TYPE_REQ');
1806: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1807: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1808: Fnd_Msg_Pub.ADD;
1809: x_return_status := FND_API.G_RET_STS_ERROR;
1810:
1811: END IF;
1812:
1813:
1812:
1813:
1814: -- If status is null then return an
1815: -- error message.
1816: IF ((p_x_sr_task_rec.status_id is null or p_x_sr_task_rec.status_id = FND_API.G_MISS_NUM)and
1817: (p_x_sr_task_rec.status_name is null or p_x_sr_task_rec.status_name = FND_API.G_MISS_CHAR)) THEN
1818:
1819: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_STATUS_REQ');
1820: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1813:
1814: -- If status is null then return an
1815: -- error message.
1816: IF ((p_x_sr_task_rec.status_id is null or p_x_sr_task_rec.status_id = FND_API.G_MISS_NUM)and
1817: (p_x_sr_task_rec.status_name is null or p_x_sr_task_rec.status_name = FND_API.G_MISS_CHAR)) THEN
1818:
1819: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_STATUS_REQ');
1820: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1821: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1819: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_STATUS_REQ');
1820: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1821: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1822: Fnd_Msg_Pub.ADD;
1823: x_return_status := FND_API.G_RET_STS_ERROR;
1824:
1825: END IF;
1826:
1827: END IF;
1828:
1829: -- If object version number is null then
1830: -- return an error message.
1831: IF (p_x_sr_task_rec.incident_object_version_number is null or
1832: p_x_sr_task_rec.incident_object_version_number = FND_API.G_MISS_NUM) THEN
1833:
1834: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_OBJ_VER_ID_REQ');
1835: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1836: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1834: Fnd_Message.SET_NAME('AHL','AHL_PRD_SR_OBJ_VER_ID_REQ');
1835: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1836: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1837: Fnd_Msg_Pub.ADD;
1838: x_return_status := FND_API.G_RET_STS_ERROR;
1839:
1840: END IF;
1841:
1842: -- If Incident number and incident id is null then
1841:
1842: -- If Incident number and incident id is null then
1843: -- return an error message.
1844: IF (p_x_sr_task_rec.incident_number is null or
1845: p_x_sr_task_rec.incident_number = FND_API.G_MISS_CHAR) and
1846: (p_x_sr_task_rec.incident_id is null or
1847: p_x_sr_task_rec.incident_id = FND_API.G_MISS_NUM)THEN
1848:
1849: Fnd_Message.SET_NAME('AHL','AHL_PRD_INCIDENT_VALUE_REQ');
1843: -- return an error message.
1844: IF (p_x_sr_task_rec.incident_number is null or
1845: p_x_sr_task_rec.incident_number = FND_API.G_MISS_CHAR) and
1846: (p_x_sr_task_rec.incident_id is null or
1847: p_x_sr_task_rec.incident_id = FND_API.G_MISS_NUM)THEN
1848:
1849: Fnd_Message.SET_NAME('AHL','AHL_PRD_INCIDENT_VALUE_REQ');
1850: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1851: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1849: Fnd_Message.SET_NAME('AHL','AHL_PRD_INCIDENT_VALUE_REQ');
1850: Fnd_Message.SET_TOKEN('WO_NAME',l_wo_name);
1851: Fnd_Message.SET_TOKEN('INSTANCE_NUM',l_instance_num);
1852: Fnd_Msg_Pub.ADD;
1853: x_return_status := FND_API.G_RET_STS_ERROR;
1854: END IF;
1855:
1856: END IF;
1857:
1855:
1856: END IF;
1857:
1858: IF (p_x_sr_task_rec.source_program_code is null or
1859: p_x_sr_task_rec.source_program_code = FND_API.G_MISS_CHAR) then
1860: p_x_sr_task_rec.source_program_code := 'AHL_ROUTINE';
1861: END IF;
1862:
1863: EXCEPTION
1860: p_x_sr_task_rec.source_program_code := 'AHL_ROUTINE';
1861: END IF;
1862:
1863: EXCEPTION
1864: WHEN FND_API.G_EXC_ERROR THEN
1865: x_return_status := FND_API.G_RET_STS_ERROR;
1866: END Default_and_validate_param;
1867:
1868:
1861: END IF;
1862:
1863: EXCEPTION
1864: WHEN FND_API.G_EXC_ERROR THEN
1865: x_return_status := FND_API.G_RET_STS_ERROR;
1866: END Default_and_validate_param;
1867:
1868:
1869: --------------------------------------------
1952: Fetch default_item_org_id INTO l_service_request_rec.inventory_item_id,l_service_request_rec.inventory_org_id;
1953: IF (default_item_org_id%NOTFOUND ) THEN
1954: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_ORG_ERROR');
1955: Fnd_Msg_Pub.ADD;
1956: x_return_status := FND_API.G_RET_STS_ERROR;
1957: END IF;
1958:
1959: open default_incident_type_id;
1960: Fetch default_incident_type_id INTO l_service_request_rec.type_id,l_service_request_rec.type_name;
1961:
1962: IF ( default_incident_type_id%NOTFOUND) THEN
1963: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_DEFAULT_INCIDENT_ERROR');
1964: Fnd_Msg_Pub.ADD;
1965: x_return_status := FND_API.G_RET_STS_ERROR;
1966: END IF;
1967: CLOSE default_item_org_id;
1968: CLOSE default_incident_type_id;
1969:
1995: -- Call to Service Request API
1996:
1997: CS_SERVICEREQUEST_PUB.Create_ServiceRequest(
1998: p_api_version => 3.0,
1999: p_init_msg_list => FND_API.G_TRUE,
2000: p_commit => FND_API.G_FALSE,
2001: x_return_status => x_return_status,
2002: x_msg_count => l_msg_count,
2003: x_msg_data => l_msg_data,
1996:
1997: CS_SERVICEREQUEST_PUB.Create_ServiceRequest(
1998: p_api_version => 3.0,
1999: p_init_msg_list => FND_API.G_TRUE,
2000: p_commit => FND_API.G_FALSE,
2001: x_return_status => x_return_status,
2002: x_msg_count => l_msg_count,
2003: x_msg_data => l_msg_data,
2004: p_resp_appl_id => NULL,
2070:
2071: WHEN OTHERS THEN
2072: FND_MESSAGE.SET_NAME ('AHL','AHL_PRD_ORIGINWO_UPD_FAILED');
2073: Fnd_Msg_Pub.ADD;
2074: x_return_status := FND_API.G_RET_STS_ERROR;
2075:
2076: END;
2077:
2078: END IF;
2221:
2222: -- 1. Create Unit Effectivity hierarchy for the SR - MR hieararchy.
2223: AHL_UMP_SR_PVT.Process_SR_MR_Associations(
2224: p_api_version => 1.0,
2225: p_init_msg_list => FND_API.G_TRUE,-- verify the value to be passed here
2226: p_commit => FND_API.G_FALSE,
2227: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2228: x_return_status => x_return_status,
2229: x_msg_count => x_msg_count,
2222: -- 1. Create Unit Effectivity hierarchy for the SR - MR hieararchy.
2223: AHL_UMP_SR_PVT.Process_SR_MR_Associations(
2224: p_api_version => 1.0,
2225: p_init_msg_list => FND_API.G_TRUE,-- verify the value to be passed here
2226: p_commit => FND_API.G_FALSE,
2227: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2228: x_return_status => x_return_status,
2229: x_msg_count => x_msg_count,
2230: x_msg_data => x_msg_data,
2223: AHL_UMP_SR_PVT.Process_SR_MR_Associations(
2224: p_api_version => 1.0,
2225: p_init_msg_list => FND_API.G_TRUE,-- verify the value to be passed here
2226: p_commit => FND_API.G_FALSE,
2227: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2228: x_return_status => x_return_status,
2229: x_msg_count => x_msg_count,
2230: x_msg_data => x_msg_data,
2231: p_user_id => fnd_global.user_id,
2243: 'After calling AHL_UMP_SR_PVT.Process_SR_MR_Associations...Return status->'||x_return_status
2244: );
2245: END IF;
2246:
2247: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2248: RAISE FND_API.G_EXC_ERROR;
2249: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2250: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2251: END IF;
2244: );
2245: END IF;
2246:
2247: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2248: RAISE FND_API.G_EXC_ERROR;
2249: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2250: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2251: END IF;
2252:
2245: END IF;
2246:
2247: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2248: RAISE FND_API.G_EXC_ERROR;
2249: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2250: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2251: END IF;
2252:
2253: END IF;
2246:
2247: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2248: RAISE FND_API.G_EXC_ERROR;
2249: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2250: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2251: END IF;
2252:
2253: END IF;
2254: -- 2. Call VWP API to create task Hiearchy.
2264: OPEN c_get_ue_id(p_x_task_tbl(i).incident_id);
2265: FETCH c_get_ue_id into l_unit_effectivity_id ;
2266: IF c_get_ue_id%NotFound
2267: THEN
2268: x_return_status := FND_API.G_RET_STS_ERROR;
2269: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_INVALID_SR');
2270: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2271: FND_MSG_PUB.ADD;
2272: RAISE FND_API.G_EXC_ERROR;
2268: x_return_status := FND_API.G_RET_STS_ERROR;
2269: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_INVALID_SR');
2270: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2271: FND_MSG_PUB.ADD;
2272: RAISE FND_API.G_EXC_ERROR;
2273: END IF;
2274: CLOSE c_get_ue_id;
2275:
2276: OPEN c_visit_task_csr(p_x_task_tbl(i).Originating_wo_id);
2309: END IF;
2310:
2311: AHL_VWP_TASKS_PVT.CREATE_PUP_TASKS(
2312: p_api_version => 1.0,
2313: p_init_msg_list => Fnd_Api.G_TRUE,
2314: p_module_type => 'SR',
2315: p_x_task_tbl => l_create_task_tbl,
2316: x_return_status => x_return_status,
2317: x_msg_count => x_msg_count,
2325: 'After calling AHL_VWP_TASKS_PVT.CREATE_PUP_TASKS...Return status->'||x_return_status
2326: );
2327: END IF;
2328:
2329: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2330: RAISE FND_API.G_EXC_ERROR;
2331: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2332: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2333: END IF;
2326: );
2327: END IF;
2328:
2329: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2330: RAISE FND_API.G_EXC_ERROR;
2331: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2332: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2333: END IF;
2334:
2327: END IF;
2328:
2329: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2330: RAISE FND_API.G_EXC_ERROR;
2331: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2332: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2333: END IF;
2334:
2335: -- 3. Call VWP API to push tasks into production.
2328:
2329: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2330: RAISE FND_API.G_EXC_ERROR;
2331: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2332: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2333: END IF;
2334:
2335: -- 3. Call VWP API to push tasks into production.
2336:
2346: THEN
2347:
2348: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2349: p_api_version => 1.0,
2350: p_init_msg_list => Fnd_Api.G_FALSE,
2351: p_commit => Fnd_Api.G_FALSE,
2352: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2353: p_module_type => 'SR',
2354: p_visit_id => p_x_task_tbl(i).visit_id,
2347:
2348: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2349: p_api_version => 1.0,
2350: p_init_msg_list => Fnd_Api.G_FALSE,
2351: p_commit => Fnd_Api.G_FALSE,
2352: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2353: p_module_type => 'SR',
2354: p_visit_id => p_x_task_tbl(i).visit_id,
2355: p_unit_effectivity_id => l_unit_effectivity_id,
2348: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2349: p_api_version => 1.0,
2350: p_init_msg_list => Fnd_Api.G_FALSE,
2351: p_commit => Fnd_Api.G_FALSE,
2352: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2353: p_module_type => 'SR',
2354: p_visit_id => p_x_task_tbl(i).visit_id,
2355: p_unit_effectivity_id => l_unit_effectivity_id,
2356: p_release_flag => 'Y',
2362:
2363: ELSE
2364: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2365: p_api_version => 1.0,
2366: p_init_msg_list => Fnd_Api.G_FALSE,
2367: p_commit => Fnd_Api.G_FALSE,
2368: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2369: p_module_type => 'SR',
2370: p_visit_id => p_x_task_tbl(i).visit_id,
2363: ELSE
2364: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2365: p_api_version => 1.0,
2366: p_init_msg_list => Fnd_Api.G_FALSE,
2367: p_commit => Fnd_Api.G_FALSE,
2368: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2369: p_module_type => 'SR',
2370: p_visit_id => p_x_task_tbl(i).visit_id,
2371: p_unit_effectivity_id => l_unit_effectivity_id,
2364: AHL_VWP_PROJ_PROD_PVT.Release_MR(
2365: p_api_version => 1.0,
2366: p_init_msg_list => Fnd_Api.G_FALSE,
2367: p_commit => Fnd_Api.G_FALSE,
2368: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2369: p_module_type => 'SR',
2370: p_visit_id => p_x_task_tbl(i).visit_id,
2371: p_unit_effectivity_id => l_unit_effectivity_id,
2372: p_release_flag => 'N',
2386: 'After calling AHL_VWP_PROJ_PROD_PVT.Release_MR...Return status ->'||x_return_status
2387: );
2388: END IF;
2389:
2390: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2391: RAISE FND_API.G_EXC_ERROR;
2392: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2393: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2394: END IF;
2387: );
2388: END IF;
2389:
2390: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2391: RAISE FND_API.G_EXC_ERROR;
2392: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2393: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2394: END IF;
2395:
2388: END IF;
2389:
2390: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2391: RAISE FND_API.G_EXC_ERROR;
2392: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2393: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2394: END IF;
2395:
2396: -- Added by jaramana on Oct 15
2389:
2390: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2391: RAISE FND_API.G_EXC_ERROR;
2392: ELSIF (x_return_status = FND_API.G_RET_STS_UNEXP_ERROR ) THEN
2393: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2394: END IF;
2395:
2396: -- Added by jaramana on Oct 15
2397: IF ( upper(p_x_task_tbl(i).operation_type) = 'CREATE') THEN
2424: IF (l_ins_cntr > 0)
2425: THEN
2426: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2427: p_api_version => 1.0,
2428: p_init_msg_list => Fnd_Api.G_FALSE,
2429: p_commit => Fnd_Api.G_FALSE,
2430: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2431: p_module_type => NULL,
2432: p_default => FND_API.G_TRUE,
2425: THEN
2426: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2427: p_api_version => 1.0,
2428: p_init_msg_list => Fnd_Api.G_FALSE,
2429: p_commit => Fnd_Api.G_FALSE,
2430: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2431: p_module_type => NULL,
2432: p_default => FND_API.G_TRUE,
2433: p_move_item_instance_tbl => l_move_item_ins_tbl,
2426: AHL_PRD_PARTS_CHANGE_PVT.move_instance_location(
2427: p_api_version => 1.0,
2428: p_init_msg_list => Fnd_Api.G_FALSE,
2429: p_commit => Fnd_Api.G_FALSE,
2430: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2431: p_module_type => NULL,
2432: p_default => FND_API.G_TRUE,
2433: p_move_item_instance_tbl => l_move_item_ins_tbl,
2434: x_return_status => x_return_status,
2428: p_init_msg_list => Fnd_Api.G_FALSE,
2429: p_commit => Fnd_Api.G_FALSE,
2430: p_validation_level => Fnd_Api.G_VALID_LEVEL_FULL,
2431: p_module_type => NULL,
2432: p_default => FND_API.G_TRUE,
2433: p_move_item_instance_tbl => l_move_item_ins_tbl,
2434: x_return_status => x_return_status,
2435: x_msg_count => x_msg_count,
2436: x_msg_data => x_msg_data
2549: l_org_task_id := null;
2550:
2551: -- Derive the request type
2552: IF (p_x_task_tbl(i).type_name is null or
2553: p_x_task_tbl(i).type_name = FND_API.G_MISS_CHAR)
2554: THEN
2555: Open GetRequestType(p_x_task_tbl(i).type_id);
2556: Fetch GetRequestType into l_request_type;
2557: Close GetRequestType;
2575: Then
2576: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_TASK_ID_NOT_UNIQUE');
2577: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2578: Fnd_Msg_Pub.ADD;
2579: RAISE FND_API.G_EXC_ERROR;
2580: ElsIf GetOrgTaskDet%NotFound
2581: Then
2582: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_INVALID_WO_ID');
2583: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2581: Then
2582: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_INVALID_WO_ID');
2583: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2584: Fnd_Msg_Pub.ADD;
2585: RAISE FND_API.G_EXC_ERROR;
2586: End if;
2587: Close GetOrgTaskDet;
2588:
2589: IF (l_debug_STMT >= l_debug_LEVEL) THEN
2595: END IF;
2596:
2597: -- If visit task name is null then default the values
2598: IF( p_x_task_tbl(i).visit_task_name is null or
2599: p_x_task_tbl(i).visit_task_name = FND_API.G_MISS_CHAR) THEN
2600: l_visit_task_name := substr(l_request_type,1,(78-length(p_x_task_tbl(i).incident_number)))||'-'
2601: ||p_x_task_tbl(i).incident_number;
2602:
2603: p_x_task_tbl(i).visit_task_name := l_visit_task_name;
2620: Then
2621: FND_MESSAGE.SET_NAME('AHL','AHL_PRD_INVALID_SR'); -- New Message needed to be added
2622: FND_MESSAGE.SET_TOKEN('WO_ID',p_x_task_tbl(i).originating_wo_id);
2623: Fnd_Msg_Pub.ADD;
2624: RAISE FND_API.G_EXC_ERROR;
2625: End if;
2626: Close getUnitEffectivity;
2627: l_create_job_task_tbl(i).unit_effectivity_id := l_unit_effectivity_id;
2628: --- END Changes by VSUNDARA for SR INTEGRATION
2665: END IF;
2666:
2667: AHL_VWP_PROJ_PROD_PVT.Create_job_tasks(
2668: p_api_version => 1.0,
2669: p_init_msg_list => FND_API.G_TRUE,
2670: p_commit => FND_API.G_FALSE,
2671: p_validation_level => Fnd_API.G_VALID_LEVEL_FULL,
2672: p_module_type => NULL,
2673: p_x_task_tbl => l_create_job_task_tbl,
2666:
2667: AHL_VWP_PROJ_PROD_PVT.Create_job_tasks(
2668: p_api_version => 1.0,
2669: p_init_msg_list => FND_API.G_TRUE,
2670: p_commit => FND_API.G_FALSE,
2671: p_validation_level => Fnd_API.G_VALID_LEVEL_FULL,
2672: p_module_type => NULL,
2673: p_x_task_tbl => l_create_job_task_tbl,
2674: x_return_status => x_return_status,
2667: AHL_VWP_PROJ_PROD_PVT.Create_job_tasks(
2668: p_api_version => 1.0,
2669: p_init_msg_list => FND_API.G_TRUE,
2670: p_commit => FND_API.G_FALSE,
2671: p_validation_level => Fnd_API.G_VALID_LEVEL_FULL,
2672: p_module_type => NULL,
2673: p_x_task_tbl => l_create_job_task_tbl,
2674: x_return_status => x_return_status,
2675: x_msg_count => l_msg_count,
2682: -- wo_id returned is null. Task is created.
2683:
2684: l_msg_count := FND_MSG_PUB.count_msg;
2685:
2686: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS OR l_msg_count > 0) THEN
2687:
2688: IF (l_debug_UEXP >= l_debug_LEVEL) THEN
2689: fnd_log.string
2690: (l_debug_UEXP,
2691: 'ahl.plsql.AHL_PRD_NONROUTINE_PVT.Create_task',
2692: 'Error ' || x_return_status ||' returned from AHL_VWP_PROJ_PROD_PVT.Create_job_tasks');
2693: END IF;
2694:
2695: RAISE FND_API.G_EXC_ERROR;
2696: END IF;
2697:
2698: END IF;
2699:
2697:
2698: END IF;
2699:
2700: /*
2701: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2702: x_return_status := FND_API.G_RET_STS_ERROR;
2703: END IF;
2704: */
2705:
2698: END IF;
2699:
2700: /*
2701: IF (x_return_status = FND_API.G_RET_STS_ERROR ) THEN
2702: x_return_status := FND_API.G_RET_STS_ERROR;
2703: END IF;
2704: */
2705:
2706: FOR i IN p_x_task_tbl.FIRST..p_x_task_tbl.LAST LOOP
2733:
2734: AHL_PRD_WORKORDER_PVT.Release_visit_jobs
2735: (
2736: p_api_version => 1.0,
2737: p_init_msg_list => FND_API.G_TRUE,
2738: p_commit => FND_API.G_FALSE,
2739: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2740: p_default => FND_API.G_FALSE,
2741: p_module_type => NULL,
2734: AHL_PRD_WORKORDER_PVT.Release_visit_jobs
2735: (
2736: p_api_version => 1.0,
2737: p_init_msg_list => FND_API.G_TRUE,
2738: p_commit => FND_API.G_FALSE,
2739: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2740: p_default => FND_API.G_FALSE,
2741: p_module_type => NULL,
2742: x_return_status => x_return_status,
2735: (
2736: p_api_version => 1.0,
2737: p_init_msg_list => FND_API.G_TRUE,
2738: p_commit => FND_API.G_FALSE,
2739: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2740: p_default => FND_API.G_FALSE,
2741: p_module_type => NULL,
2742: x_return_status => x_return_status,
2743: x_msg_count => l_msg_count,
2736: p_api_version => 1.0,
2737: p_init_msg_list => FND_API.G_TRUE,
2738: p_commit => FND_API.G_FALSE,
2739: p_validation_level => FND_API.G_VALID_LEVEL_FULL,
2740: p_default => FND_API.G_FALSE,
2741: p_module_type => NULL,
2742: x_return_status => x_return_status,
2743: x_msg_count => l_msg_count,
2744: x_msg_data => l_msg_data,
2746: p_unit_effectivity_id => NULL,
2747: p_workorder_id => l_create_job_task_tbl(i).workorder_id
2748: );
2749:
2750: IF ( x_return_status <> FND_API.G_RET_STS_SUCCESS ) THEN
2751: IF (l_debug_UEXP >= l_debug_LEVEL) THEN
2752: fnd_log.string
2753: (l_debug_UEXP,
2754: 'ahl.plsql.AHL_PRD_NONROUTINE_PVT.Create_task',
2753: (l_debug_UEXP,
2754: 'ahl.plsql.AHL_PRD_NONROUTINE_PVT.Create_task',
2755: 'Error ' || x_return_status ||' returned from AHL_PRD_WORKORDER_PVT.Release_visit_jobs');
2756: END IF;
2757: RAISE FND_API.G_EXC_ERROR;
2758: END IF;
2759:
2760: END IF; -- p_x_task_tbl(i).WO_Release_flag = 'Y'
2761:
2769: 'At the end of PLSQL procedure');
2770: END IF;
2771:
2772: EXCEPTION
2773: WHEN FND_API.G_EXC_ERROR THEN
2774: x_return_status := FND_API.G_RET_STS_ERROR;
2775: END Create_task;
2776:
2777:
2770: END IF;
2771:
2772: EXCEPTION
2773: WHEN FND_API.G_EXC_ERROR THEN
2774: x_return_status := FND_API.G_RET_STS_ERROR;
2775: END Create_task;
2776:
2777:
2778: --------------------------------------------
2827:
2828: -- Call to Service Request API
2829: CS_SERVICEREQUEST_PUB.Update_ServiceRequest(
2830: p_api_version => 3.0,
2831: p_init_msg_list => FND_API.G_TRUE,
2832: p_commit => FND_API.G_FALSE,
2833: x_return_status => x_return_status,
2834: x_msg_count => l_msg_count,
2835: x_msg_data => l_msg_data,
2828: -- Call to Service Request API
2829: CS_SERVICEREQUEST_PUB.Update_ServiceRequest(
2830: p_api_version => 3.0,
2831: p_init_msg_list => FND_API.G_TRUE,
2832: p_commit => FND_API.G_FALSE,
2833: x_return_status => x_return_status,
2834: x_msg_count => l_msg_count,
2835: x_msg_data => l_msg_data,
2836: p_request_id => p_x_sr_task_rec.incident_id,