175:
176: IF p_x_mr_relation_rec.RELATED_MR_TITLE IS NULL OR p_x_mr_relation_rec.RELATED_MR_TITLE=FND_API.G_MISS_CHAR
177: THEN
178: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_TITLE_NULL');
179: FND_MSG_PUB.ADD;
180: check_flag:='N';
181: ELSE
182: check_flag:='Y';
183: END IF;
206:
207: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATED_TITLE_INVAL');
208: FND_MESSAGE.SET_TOKEN('FIELD',l_title,false);
209: FND_MESSAGE.SET_TOKEN('RECORD', p_x_mr_relation_rec.RELATED_MR_TITLE, false);
210: FND_MSG_PUB.ADD;
211: ELSE
212: p_x_mr_relation_rec.related_mr_header_id:=l_rel_mr_header_id;
213: END IF;
214: CLOSE title_to_relmr_header_id;
244: EXCEPTION
245: WHEN l_cyclic_loop THEN
246: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATION_CYCLIC');
247: FND_MESSAGE.SET_TOKEN('RECORD', P_RELATED_MR_TITLE ,false);
248: FND_MSG_PUB.ADD;
249: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
251: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
252: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
248: FND_MSG_PUB.ADD;
249: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
250: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
251: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
252: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
253: p_count => x_msg_count,
254: p_data => x_msg_data);
255:
256: WHEN FND_API.G_EXC_ERROR THEN
254: p_data => x_msg_data);
255:
256: WHEN FND_API.G_EXC_ERROR THEN
257: X_return_status := FND_API.G_RET_STS_ERROR;
258: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
259: p_count => x_msg_count,
260: p_data => X_msg_data);
261: WHEN OTHERS THEN
262: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
259: p_count => x_msg_count,
260: p_data => X_msg_data);
261: WHEN OTHERS THEN
262: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
264: THEN
265: fnd_msg_pub.add_exc_msg(p_pkg_name =>'AHL_FMP_MR_RELATION_PVT',
266: p_procedure_name =>'NON_CYCLIC_ENF',
267: p_error_text =>SUBSTR(SQLERRM,1,240));
261: WHEN OTHERS THEN
262: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
263: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
264: THEN
265: fnd_msg_pub.add_exc_msg(p_pkg_name =>'AHL_FMP_MR_RELATION_PVT',
266: p_procedure_name =>'NON_CYCLIC_ENF',
267: p_error_text =>SUBSTR(SQLERRM,1,240));
268: END IF;
269: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
265: fnd_msg_pub.add_exc_msg(p_pkg_name =>'AHL_FMP_MR_RELATION_PVT',
266: p_procedure_name =>'NON_CYCLIC_ENF',
267: p_error_text =>SUBSTR(SQLERRM,1,240));
268: END IF;
269: FND_MSG_PUB.count_and_get( p_encoded => FND_API.G_FALSE,
270: p_count => x_msg_count,
271: p_data => X_msg_data);
272: END;
273:
322: IF p_mr_relation_rec.MR_HEADER_ID IS NULL or
323: p_mr_relation_rec.MR_HEADER_ID=FND_API.G_MISS_NUM
324: THEN
325: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_HEADER_ID_NULL');
326: FND_MSG_PUB.ADD;
327: ELSE
328: OPEN Check_mr_header_stat(p_mr_relation_rec.mr_header_id);
329: FETCH Check_mr_header_stat INTO l_head_rec;
330: IF Check_mr_header_stat%FOUND
337: END IF;
338: l_mr_check_flag:='Y';
339: ELSE
340: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_INVALID_MR_STATUS');
341: FND_MSG_PUB.ADD;
342: IF G_DEBUG='Y' THEN
343: AHL_DEBUG_PUB.debug( 'mr_Status_code'||l_head_rec.mr_status_code,'+DEBUG_RELATIONS+');
344: END IF;
345: l_mr_check_flag:='N';
348: IF ltrim(rtrim(l_head_rec.title))=rtrim(ltrim(p_mr_relation_rec.RELATED_MR_TITLE))
349: THEN
350: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATION_CYCLIC');
351: FND_MESSAGE.SET_TOKEN('RECORD',rtrim(ltrim(p_mr_relation_rec.RELATED_MR_TITLE)),false);
352: FND_MSG_PUB.ADD;
353: l_mr_check_flag:='N';
354: END IF;
355:
356: ELSE
354: END IF;
355:
356: ELSE
357: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_EDIT_STATUS_INVALID');
358: FND_MSG_PUB.ADD;
359: l_mr_check_flag:='N';
360: END IF;
361: CLOSE Check_mr_header_stat;
362: END IF;
368: IF p_mr_relation_rec.RELATED_MR_HEADER_ID IS NULL OR
369: p_mr_relation_rec.RELATED_MR_HEADER_ID=FND_API.G_MISS_NUM
370: THEN
371: FND_MESSAGE.SET_NAME('AHL','AHL_MR_HEADER_ID_NULL');
372: FND_MSG_PUB.ADD;
373: ELSE
374: OPEN Check_mr_header_stat(p_mr_relation_rec.RELATED_MR_HEADER_ID);
375: FETCH Check_mr_header_stat INTO l_rel_head_rec;
376: IF Check_mr_header_stat%FOUND
382: p_mr_relation_rec.relationship_code='PARENT'
383: THEN
384: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_PROGRM_RELCODE_INV');
385: FND_MESSAGE.SET_TOKEN('FIELD', l_head_rec.TITLE,false);
386: FND_MSG_PUB.ADD;
387: ELSIF l_head_rec.TYPE_CODE='ACTIVITY' and p_mr_relation_rec.relationship_code='CHILD'
388: THEN
389: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_ACTVTY_RELCODE_INV');
390: FND_MESSAGE.SET_TOKEN('FIELD', l_head_rec.TITLE,false);
387: ELSIF l_head_rec.TYPE_CODE='ACTIVITY' and p_mr_relation_rec.relationship_code='CHILD'
388: THEN
389: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_ACTVTY_RELCODE_INV');
390: FND_MESSAGE.SET_TOKEN('FIELD', l_head_rec.TITLE,false);
391: FND_MSG_PUB.ADD;
392: END IF;
393:
394: IF l_head_rec.TYPE_CODE='PROGRAM' and l_rel_head_rec.TYPE_CODE='PROGRAM'
395: THEN
394: IF l_head_rec.TYPE_CODE='PROGRAM' and l_rel_head_rec.TYPE_CODE='PROGRAM'
395: THEN
396: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_PROG_2_PROG_INV');
397: FND_MESSAGE.SET_TOKEN('FIELD', p_mr_relation_rec.RELATED_MR_TITLE,false);
398: FND_MSG_PUB.ADD;
399: ELSIF l_head_rec.TYPE_CODE='ACTIVITY' and l_rel_head_rec.TYPE_CODE='ACTIVITY'
400: THEN
401: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_ACTV_2_ACTV_INV');
402: FND_MESSAGE.SET_TOKEN('FIELD', p_mr_relation_rec.RELATED_MR_TITLE,false);
399: ELSIF l_head_rec.TYPE_CODE='ACTIVITY' and l_rel_head_rec.TYPE_CODE='ACTIVITY'
400: THEN
401: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_PM_ACTV_2_ACTV_INV');
402: FND_MESSAGE.SET_TOKEN('FIELD', p_mr_relation_rec.RELATED_MR_TITLE,false);
403: FND_MSG_PUB.ADD;
404: END IF;
405: END IF;
406: END IF;
407: CLOSE Check_mr_header_stat;
414: p_mr_relation_rec.MR_RELATIONSHIP_ID=FND_API.G_MISS_NUM)
415: THEN
416: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATIONSHIPID_NULL');
417: FND_MESSAGE.SET_TOKEN('RECORD', p_mr_relation_rec.RELATED_MR_TITLE,false);
418: FND_MSG_PUB.ADD;
419: END IF;
420:
421: IF (p_mr_relation_rec.OBJECT_VERSION_NUMBER IS NULL OR
422: p_mr_relation_rec.OBJECT_vERSION_NUMBER=FND_API.G_MISS_NUM)
422: p_mr_relation_rec.OBJECT_vERSION_NUMBER=FND_API.G_MISS_NUM)
423: THEN
424: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_REL_OBJ_VERSION_NULL');
425: FND_MESSAGE.SET_TOKEN('RECORD', p_mr_relation_rec.RELATED_MR_TITLE,false);
426: FND_MSG_PUB.ADD;
427: END IF;
428: END IF;
429:
430:
447: IF p_mr_relation_rec.dml_operation='C'
448: THEN
449: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATION_DUPLICATE');
450: FND_MESSAGE.SET_TOKEN('RECORD', p_mr_relation_rec.RELATED_MR_TITLE, false);
451: FND_MSG_PUB.ADD;
452: ELSIF P_mr_relation_rec.dml_operation='U'
453: THEN
454: IF l_rel_rec.MR_RELATIONSHIP_ID<>p_mr_relation_rec.MR_RELATIONSHIP_ID
455: THEN
454: IF l_rel_rec.MR_RELATIONSHIP_ID<>p_mr_relation_rec.MR_RELATIONSHIP_ID
455: THEN
456: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_MR_RELATION_DUPLICATE');
457: FND_MESSAGE.SET_TOKEN('RECORD', p_mr_relation_rec.RELATED_MR_TITLE, false);
458: FND_MSG_PUB.ADD;
459: END IF;
460: END IF;
461: END IF;
462: CLOSE check_UNIQ;
468: IF (check_mo_proc%FOUND)
469: THEN
470: FND_MESSAGE.SET_NAME('AHL', 'AHL_FMP_MRL_MO_PROC');
471: -- Relationships are not available for a Maintenance Requirement of (M) and (0) procedure program type.
472: FND_MSG_PUB.ADD;
473: END IF;
474: -- Tamal [MEL/CDL] -- End changes
475: END IF;
476: END;
508: END IF;
509:
510:
511: IF FND_API.to_boolean(p_init_msg_list) THEN
512: FND_MSG_PUB.initialize;
513: END IF;
514:
515:
516: x_return_status:=FND_API.G_RET_STS_SUCCESS;
584: p_x_mr_relation_tbl(i).RELATED_MR_HEADER_ID:=l_mr_relation_rec.RELATED_MR_HEADER_ID;
585:
586: END LOOP;
587:
588: l_msg_count := FND_MSG_PUB.count_msg;
589: IF l_msg_count > 0
590: THEN
591: X_msg_count := l_msg_count;
592: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
607: x_return_status =>x_return_Status,
608: p_mr_relation_rec =>p_x_mr_relation_tbl(i));
609:
610: END IF;
611: l_msg_count := FND_MSG_PUB.count_msg;
612: IF l_msg_count > 0
613: THEN
614: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
615: END IF;
637:
638: if sql%rowcount=0 then
639: FND_MESSAGE.SET_NAME('AHL','AHL_FMP_RECORD_CHANGED');
640: FND_MESSAGE.SET_TOKEN('FIELD',p_x_mr_relation_tbl(i).related_mr_title,false);
641: FND_MSG_PUB.ADD;
642: end if;
643: ELSIF p_x_mr_relation_tbl(i).DML_operation='U'
644: then
645:
675: and OBJECT_VERSION_NUMBER=p_x_mr_relation_tbl(i).OBJECT_VERSION_NUMBER;
676:
677: if sql%rowcount=0 then
678: FND_MESSAGE.SET_NAME('AHL','AHL_COM_RECORD_CHANGED');
679: FND_MSG_PUB.ADD;
680: end if;
681: END IF;
682:
683: ELSIF p_x_mr_relation_tbl(i).DML_operation='C'
764: p_related_mr_title=>p_x_mr_relation_tbl(i).RELATED_MR_TITLE);
765: END IF;
766: END LOOP;
767:
768: l_msg_count := FND_MSG_PUB.count_msg;
769: IF l_msg_count > 0 THEN
770: X_msg_count := l_msg_count;
771: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
772: RAISE FND_API.G_EXC_ERROR;
783: EXCEPTION
784: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
785: ROLLBACK TO PROCESS_MR_RELATION;
786: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
787: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
788: p_count => x_msg_count,
789: p_data => x_msg_data);
790:
791: WHEN FND_API.G_EXC_ERROR THEN
790:
791: WHEN FND_API.G_EXC_ERROR THEN
792: ROLLBACK TO PROCESS_MR_RELATION;
793: X_return_status := FND_API.G_RET_STS_ERROR;
794: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
795: p_count => x_msg_count,
796: p_data => X_msg_data);
797: WHEN OTHERS THEN
798: ROLLBACK TO PROCESS_MR_RELATION;
799: X_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
800: IF G_DEBUG='Y' THEN
801: AHL_DEBUG_PUB.debug( 'PROCESS-->'||sqlerrm,'DEBUG RELATIONS');
802: END IF;
803: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
804: THEN
805: fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
806: p_procedure_name =>L_API_NAME,
807: p_error_text =>SUBSTR(SQLERRM,1,240));
801: AHL_DEBUG_PUB.debug( 'PROCESS-->'||sqlerrm,'DEBUG RELATIONS');
802: END IF;
803: IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
804: THEN
805: fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
806: p_procedure_name =>L_API_NAME,
807: p_error_text =>SUBSTR(SQLERRM,1,240));
808: END IF;
809: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
805: fnd_msg_pub.add_exc_msg(p_pkg_name =>G_PKG_NAME,
806: p_procedure_name =>L_API_NAME,
807: p_error_text =>SUBSTR(SQLERRM,1,240));
808: END IF;
809: FND_MSG_PUB.count_and_get( p_encoded =>FND_API.G_FALSE,
810: p_count => x_msg_count,
811: p_data => X_msg_data);
812:
813: END;