74: l_rowid,
75: x_return_status
76: );
77:
78: IF x_return_status = fnd_api.g_ret_sts_error THEN
79: RAISE fnd_api.g_exc_error;
80: END IF;
81:
82: /********************************************************************************
75: x_return_status
76: );
77:
78: IF x_return_status = fnd_api.g_ret_sts_error THEN
79: RAISE fnd_api.g_exc_error;
80: END IF;
81:
82: /********************************************************************************
83: Dont pass X_INSTANCE_LABEL,X_PARENT_RULE_OBJECT_ID,X_ORG_ID
167: x_msg_count => x_msg_count,
168: x_msg_data => x_msg_data );
169:
170:
171: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
172: RAISE FND_API.G_EXC_ERROR;
173: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
174: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
175: END IF;
168: x_msg_data => x_msg_data );
169:
170:
171: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
172: RAISE FND_API.G_EXC_ERROR;
173: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
174: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
175: END IF;
176:
169:
170:
171: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
172: RAISE FND_API.G_EXC_ERROR;
173: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
174: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
175: END IF;
176:
177: --Validate if the parent rule object has use_instance_flag as Y or not.
170:
171: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
172: RAISE FND_API.G_EXC_ERROR;
173: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
174: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
175: END IF;
176:
177: --Validate if the parent rule object has use_instance_flag as Y or not.
178: --If not, then we will raise user defined exception and come out.
179:
180: IF (NOT UPPER(l_orig_rule_object_rec.use_instance_flag) = 'Y') THEN
181: fnd_message.set_name('FUN', 'FUN_RULE_NO_CREATE_ROB_INST');
182: fnd_msg_pub.add;
183: x_return_status := fnd_api.g_ret_sts_error;
184: RAISE FND_API.G_EXC_ERROR;
185: END IF;
186:
187:
180: IF (NOT UPPER(l_orig_rule_object_rec.use_instance_flag) = 'Y') THEN
181: fnd_message.set_name('FUN', 'FUN_RULE_NO_CREATE_ROB_INST');
182: fnd_msg_pub.add;
183: x_return_status := fnd_api.g_ret_sts_error;
184: RAISE FND_API.G_EXC_ERROR;
185: END IF;
186:
187:
188: --If we have reached here, that means we have got the Rule Object Name for which
207: l_rowid,
208: x_return_status
209: );
210:
211: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
212: RAISE FND_API.G_EXC_ERROR;
213: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
214: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
215: END IF;
208: x_return_status
209: );
210:
211: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
212: RAISE FND_API.G_EXC_ERROR;
213: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
214: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
215: END IF;
216:
209: );
210:
211: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
212: RAISE FND_API.G_EXC_ERROR;
213: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
214: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
215: END IF;
216:
217: FUN_RULE_OBJECTS_PKG.Insert_Row (
210:
211: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
212: RAISE FND_API.G_EXC_ERROR;
213: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
214: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
215: END IF;
216:
217: FUN_RULE_OBJECTS_PKG.Insert_Row (
218: X_ROWID =>l_rowid,
252: EXCEPTION
253: WHEN NO_DATA_FOUND THEN
254: fnd_message.set_name('FUN', 'FUN_RULE_API_INVALID_ROB');
255: fnd_msg_pub.add;
256: x_return_status := fnd_api.g_ret_sts_error;
257: END;
258:
259: /**************************************************************************************
260: Since the newly created Rule Object Instance will have the same criteria parameters
262: Create the Criteria Parameters for the Rule Object Instance with Rule_Object_id
263: as X_RULE_OBJECT_ID.
264: **************************************************************************************/
265: FUN_RULE_CRIT_PARAMS_PUB.CREATE_DUP_RULE_CRIT_PARAMS(
266: p_init_msg_list => FND_API.G_FALSE,
267: p_from_rule_object_id => l_orig_rule_object_rec.rule_object_id,
268: p_to_rule_object_id => X_RULE_OBJECT_ID,
269: x_return_status => x_return_status,
270: x_msg_count => x_msg_count,
269: x_return_status => x_return_status,
270: x_msg_count => x_msg_count,
271: x_msg_data => x_msg_data);
272:
273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
274: RAISE FND_API.G_EXC_ERROR;
275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
277: END IF;
270: x_msg_count => x_msg_count,
271: x_msg_data => x_msg_data);
272:
273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
274: RAISE FND_API.G_EXC_ERROR;
275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
277: END IF;
278:
271: x_msg_data => x_msg_data);
272:
273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
274: RAISE FND_API.G_EXC_ERROR;
275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
277: END IF;
278:
279:
272:
273: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
274: RAISE FND_API.G_EXC_ERROR;
275: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
276: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
277: END IF;
278:
279:
280: END do_create_rule_object_instance;
334:
335: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_RECORD_CHANGED');
336: FND_MESSAGE.SET_TOKEN('TABLE', 'FUN_RULE_OBJECTS');
337: FND_MSG_PUB.ADD;
338: RAISE FND_API.G_EXC_ERROR;
339: END IF;
340:
341: p_object_version_number := nvl(l_object_version_number, 1) + 1;
342:
344: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_NO_RECORD');
345: FND_MESSAGE.SET_TOKEN('RECORD', 'FUN_RULE_OBJECTS');
346: FND_MESSAGE.SET_TOKEN('VALUE', 'rule_object_id'||to_char(p_rule_object_rec.rule_object_id));
347: FND_MSG_PUB.ADD;
348: RAISE FND_API.G_EXC_ERROR;
349: END;
350:
351: -- call for validations.
352: IF( p_update_instance = 'Y' ) THEN
366: x_return_status
367: );
368: END IF;
369:
370: IF x_return_status = fnd_api.g_ret_sts_error THEN
371: RAISE fnd_api.g_exc_error;
372: END IF;
373: -- call to table-handler.
374: FUN_RULE_OBJECTS_PKG.Update_Row (
367: );
368: END IF;
369:
370: IF x_return_status = fnd_api.g_ret_sts_error THEN
371: RAISE fnd_api.g_exc_error;
372: END IF;
373: -- call to table-handler.
374: FUN_RULE_OBJECTS_PKG.Update_Row (
375: X_RULE_OBJECT_ID =>p_rule_object_rec.rule_object_id,
407: *
408: * ARGUMENTS
409: * IN:
410: * p_init_msg_list Initialize message stack if it is set to
411: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
412: * p_rule_object_rec User customizable object record.
413: * IN/OUT:
414: * OUT:
415: * x_return_status Return status after the call. The status can
412: * p_rule_object_rec User customizable object record.
413: * IN/OUT:
414: * OUT:
415: * x_return_status Return status after the call. The status can
416: * be FND_API.G_RET_STS_SUCCESS (success),
417: * FND_API.G_RET_STS_ERROR (error),
418: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
419: * x_msg_count Number of messages in message stack.
420: * x_msg_data Message text if x_msg_count is 1.
413: * IN/OUT:
414: * OUT:
415: * x_return_status Return status after the call. The status can
416: * be FND_API.G_RET_STS_SUCCESS (success),
417: * FND_API.G_RET_STS_ERROR (error),
418: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
419: * x_msg_count Number of messages in message stack.
420: * x_msg_data Message text if x_msg_count is 1.
421: *
414: * OUT:
415: * x_return_status Return status after the call. The status can
416: * be FND_API.G_RET_STS_SUCCESS (success),
417: * FND_API.G_RET_STS_ERROR (error),
418: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
419: * x_msg_count Number of messages in message stack.
420: * x_msg_data Message text if x_msg_count is 1.
421: *
422: * NOTES
427: *
428: */
429:
430: PROCEDURE create_rule_object(
431: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
432: p_rule_object_rec IN RULE_OBJECTS_REC_TYPE,
433: x_rule_object_id OUT NOCOPY NUMBER,
434: x_return_status OUT NOCOPY VARCHAR2,
435: x_msg_count OUT NOCOPY NUMBER,
443: -- standard start of API savepoint
444: SAVEPOINT create_rule_objects;
445:
446: -- initialize message list if p_init_msg_list is set to TRUE.
447: IF FND_API.to_Boolean(p_init_msg_list) THEN
448: FND_MSG_PUB.initialize;
449: END IF;
450:
451: -- initialize API return status to success.
448: FND_MSG_PUB.initialize;
449: END IF;
450:
451: -- initialize API return status to success.
452: x_return_status := FND_API.G_RET_STS_SUCCESS;
453:
454:
455: -- call to business logic.
456: do_create_rule_object(
459: x_return_status);
460:
461: -- standard call to get message count and if count is 1, get message info.
462: FND_MSG_PUB.Count_And_Get(
463: p_encoded => FND_API.G_FALSE,
464: p_count => x_msg_count,
465: p_data => x_msg_data);
466:
467: EXCEPTION
464: p_count => x_msg_count,
465: p_data => x_msg_data);
466:
467: EXCEPTION
468: WHEN FND_API.G_EXC_ERROR THEN
469: ROLLBACK TO create_rule_objects;
470: x_return_status := FND_API.G_RET_STS_ERROR;
471: FND_MSG_PUB.Count_And_Get(
472: p_encoded => FND_API.G_FALSE,
466:
467: EXCEPTION
468: WHEN FND_API.G_EXC_ERROR THEN
469: ROLLBACK TO create_rule_objects;
470: x_return_status := FND_API.G_RET_STS_ERROR;
471: FND_MSG_PUB.Count_And_Get(
472: p_encoded => FND_API.G_FALSE,
473: p_count => x_msg_count,
474: p_data => x_msg_data);
468: WHEN FND_API.G_EXC_ERROR THEN
469: ROLLBACK TO create_rule_objects;
470: x_return_status := FND_API.G_RET_STS_ERROR;
471: FND_MSG_PUB.Count_And_Get(
472: p_encoded => FND_API.G_FALSE,
473: p_count => x_msg_count,
474: p_data => x_msg_data);
475: x_msg_data := FND_MSG_PUB.Get_Detail;
476:
473: p_count => x_msg_count,
474: p_data => x_msg_data);
475: x_msg_data := FND_MSG_PUB.Get_Detail;
476:
477: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
478: ROLLBACK TO create_rule_objects;
479: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480: FND_MSG_PUB.Count_And_Get(
481: p_encoded => FND_API.G_FALSE,
475: x_msg_data := FND_MSG_PUB.Get_Detail;
476:
477: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
478: ROLLBACK TO create_rule_objects;
479: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480: FND_MSG_PUB.Count_And_Get(
481: p_encoded => FND_API.G_FALSE,
482: p_count => x_msg_count,
483: p_data => x_msg_data);
477: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
478: ROLLBACK TO create_rule_objects;
479: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480: FND_MSG_PUB.Count_And_Get(
481: p_encoded => FND_API.G_FALSE,
482: p_count => x_msg_count,
483: p_data => x_msg_data);
484: x_msg_data := FND_MSG_PUB.Get_Detail;
485: WHEN OTHERS THEN
483: p_data => x_msg_data);
484: x_msg_data := FND_MSG_PUB.Get_Detail;
485: WHEN OTHERS THEN
486: ROLLBACK TO create_rule_objects;
487: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
488: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
489: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
490: FND_MSG_PUB.ADD;
491: FND_MSG_PUB.Count_And_Get(
488: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
489: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
490: FND_MSG_PUB.ADD;
491: FND_MSG_PUB.Count_And_Get(
492: p_encoded => FND_API.G_FALSE,
493: p_count => x_msg_count,
494: p_data => x_msg_data);
495: x_msg_data := FND_MSG_PUB.Get_Detail;
496: END create_rule_object;
500: * With this API you can create a record in the FUN_RULE_OBJECTS_B ,
501: * table provided the flag USE_INSTANCE_FLAG is set to 'Y'. This API will return
502: * the rule_object_id of the newly created rule object instance record.
503: *
504: * p_init_msg_list Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
505: * p_application_id Application identifier
506: * p_rule_object_name Name of Rule Object
507: * p_instance_label Name of the Instance.
508: * p_rule_object_id Internal identifier for the Rule Object
513: * 27-Dec-2005 Amulya Mishra Created
514: */
515:
516: PROCEDURE create_rule_object_instance(
517: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
518: p_application_id IN NUMBER,
519: p_rule_object_name IN VARCHAR2,
520: p_instance_label IN VARCHAR2,
521: p_org_id IN NUMBER,
530: -- standard start of API savepoint
531: SAVEPOINT create_rule_object_instance;
532:
533: -- initialize message list if p_init_msg_list is set to TRUE.
534: IF FND_API.to_Boolean(p_init_msg_list) THEN
535: FND_MSG_PUB.initialize;
536: END IF;
537:
538: -- initialize API return status to success.
535: FND_MSG_PUB.initialize;
536: END IF;
537:
538: -- initialize API return status to success.
539: x_return_status := FND_API.G_RET_STS_SUCCESS;
540:
541: --Dont create the Rule Object Intance, if it already exists. Simply return to
542: --calling procedure.
543:
573: x_return_status);
574: END IF;
575: -- standard call to get message count and if count is 1, get message info.
576: FND_MSG_PUB.Count_And_Get(
577: p_encoded => FND_API.G_FALSE,
578: p_count => x_msg_count,
579: p_data => x_msg_data);
580: EXCEPTION
581: WHEN FND_API.G_EXC_ERROR THEN
577: p_encoded => FND_API.G_FALSE,
578: p_count => x_msg_count,
579: p_data => x_msg_data);
580: EXCEPTION
581: WHEN FND_API.G_EXC_ERROR THEN
582: ROLLBACK TO create_rule_object_instance;
583: x_return_status := FND_API.G_RET_STS_ERROR;
584: FND_MSG_PUB.Count_And_Get(
585: p_encoded => FND_API.G_FALSE,
579: p_data => x_msg_data);
580: EXCEPTION
581: WHEN FND_API.G_EXC_ERROR THEN
582: ROLLBACK TO create_rule_object_instance;
583: x_return_status := FND_API.G_RET_STS_ERROR;
584: FND_MSG_PUB.Count_And_Get(
585: p_encoded => FND_API.G_FALSE,
586: p_count => x_msg_count,
587: p_data => x_msg_data);
581: WHEN FND_API.G_EXC_ERROR THEN
582: ROLLBACK TO create_rule_object_instance;
583: x_return_status := FND_API.G_RET_STS_ERROR;
584: FND_MSG_PUB.Count_And_Get(
585: p_encoded => FND_API.G_FALSE,
586: p_count => x_msg_count,
587: p_data => x_msg_data);
588: x_msg_data := FND_MSG_PUB.Get_Detail;
589:
586: p_count => x_msg_count,
587: p_data => x_msg_data);
588: x_msg_data := FND_MSG_PUB.Get_Detail;
589:
590: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
591: ROLLBACK TO create_rule_object_instance;
592: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
593: FND_MSG_PUB.Count_And_Get(
594: p_encoded => FND_API.G_FALSE,
588: x_msg_data := FND_MSG_PUB.Get_Detail;
589:
590: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
591: ROLLBACK TO create_rule_object_instance;
592: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
593: FND_MSG_PUB.Count_And_Get(
594: p_encoded => FND_API.G_FALSE,
595: p_count => x_msg_count,
596: p_data => x_msg_data);
590: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
591: ROLLBACK TO create_rule_object_instance;
592: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
593: FND_MSG_PUB.Count_And_Get(
594: p_encoded => FND_API.G_FALSE,
595: p_count => x_msg_count,
596: p_data => x_msg_data);
597: x_msg_data := FND_MSG_PUB.Get_Detail;
598: WHEN OTHERS THEN
596: p_data => x_msg_data);
597: x_msg_data := FND_MSG_PUB.Get_Detail;
598: WHEN OTHERS THEN
599: ROLLBACK TO create_rule_object_instance;
600: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
601: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
602: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
603: FND_MSG_PUB.ADD;
604: FND_MSG_PUB.Count_And_Get(
601: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
602: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
603: FND_MSG_PUB.ADD;
604: FND_MSG_PUB.Count_And_Get(
605: p_encoded => FND_API.G_FALSE,
606: p_count => x_msg_count,
607: p_data => x_msg_data);
608: x_msg_data := FND_MSG_PUB.Get_Detail;
609:
619: *
620: * ARGUMENTS
621: * IN:
622: * p_init_msg_list Initialize message stack if it is set to
623: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
624: * p_rules_object_rec User Customizable Object record.
625: * IN/OUT:
626: * p_object_version_number Used for locking the being updated record.
627: * OUT:
625: * IN/OUT:
626: * p_object_version_number Used for locking the being updated record.
627: * OUT:
628: * x_return_status Return status after the call. The status can
629: * be FND_API.G_RET_STS_SUCCESS (success),
630: * FND_API.G_RET_STS_ERROR (error),
631: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
632: * x_msg_count Number of messages in message stack.
633: * x_msg_data Message text if x_msg_count is 1.
626: * p_object_version_number Used for locking the being updated record.
627: * OUT:
628: * x_return_status Return status after the call. The status can
629: * be FND_API.G_RET_STS_SUCCESS (success),
630: * FND_API.G_RET_STS_ERROR (error),
631: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
632: * x_msg_count Number of messages in message stack.
633: * x_msg_data Message text if x_msg_count is 1.
634: *
627: * OUT:
628: * x_return_status Return status after the call. The status can
629: * be FND_API.G_RET_STS_SUCCESS (success),
630: * FND_API.G_RET_STS_ERROR (error),
631: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
632: * x_msg_count Number of messages in message stack.
633: * x_msg_data Message text if x_msg_count is 1.
634: *
635: * NOTES
640: *
641: */
642:
643: PROCEDURE update_rule_object (
644: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
645: p_rule_object_rec IN RULE_OBJECTS_REC_TYPE,
646: p_object_version_number IN OUT NOCOPY NUMBER,
647: x_return_status OUT NOCOPY VARCHAR2,
648: x_msg_count OUT NOCOPY NUMBER,
685: -- standard start of API savepoint
686: SAVEPOINT update_rule_objects;
687:
688: -- initialize message list if p_init_msg_list is set to TRUE.
689: IF FND_API.to_Boolean(p_init_msg_list) THEN
690: FND_MSG_PUB.initialize;
691: END IF;
692:
693: -- initialize API return status to success.
690: FND_MSG_PUB.initialize;
691: END IF;
692:
693: -- initialize API return status to success.
694: x_return_status := FND_API.G_RET_STS_SUCCESS;
695:
696: -- Get old records. Will be used by business event system.
697: get_rule_object_rec (
698: p_rule_object_id => l_rule_object_rec.rule_object_id,
700: x_return_status => x_return_status,
701: x_msg_count => x_msg_count,
702: x_msg_data => x_msg_data );
703:
704: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
707: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
708: END IF;
701: x_msg_count => x_msg_count,
702: x_msg_data => x_msg_data );
703:
704: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
707: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
708: END IF;
709:
702: x_msg_data => x_msg_data );
703:
704: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
707: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
708: END IF;
709:
710:
703:
704: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
705: RAISE FND_API.G_EXC_ERROR;
706: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
707: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
708: END IF;
709:
710:
711: --Make sure to make the fields related to Rule Object Instance as NULL.
720: l_rule_object_rec,
721: p_object_version_number,
722: x_return_status);
723:
724: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
725:
726: -- standard call to get message count and if count is 1, get message info.
727: FND_MSG_PUB.Count_And_Get(
728: p_encoded => FND_API.G_FALSE,
724: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
725:
726: -- standard call to get message count and if count is 1, get message info.
727: FND_MSG_PUB.Count_And_Get(
728: p_encoded => FND_API.G_FALSE,
729: p_count => x_msg_count,
730: p_data => x_msg_data);
731: END IF;
732:
746: x_return_status => x_return_status,
747: x_msg_count => x_msg_count,
748: x_msg_data => x_msg_data );
749:
750: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
751: RAISE FND_API.G_EXC_ERROR;
752: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754: END IF;
747: x_msg_count => x_msg_count,
748: x_msg_data => x_msg_data );
749:
750: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
751: RAISE FND_API.G_EXC_ERROR;
752: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754: END IF;
755:
748: x_msg_data => x_msg_data );
749:
750: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
751: RAISE FND_API.G_EXC_ERROR;
752: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754: END IF;
755:
756: -- initialize API return status to success.
749:
750: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
751: RAISE FND_API.G_EXC_ERROR;
752: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
753: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754: END IF;
755:
756: -- initialize API return status to success.
757: x_return_status := FND_API.G_RET_STS_SUCCESS;
753: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
754: END IF;
755:
756: -- initialize API return status to success.
757: x_return_status := FND_API.G_RET_STS_SUCCESS;
758:
759: --Only propagate the changes of parent rule object record to the instance records.
760:
761: l_rule_object_rec.rule_object_id := c_rec.rule_object_id;
775: l_rule_object_rec,
776: C_REC.OBJECT_VERSION_NUMBER,
777: x_return_status);
778:
779: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
780:
781: -- standard call to get message count and if count is 1, get message info.
782: FND_MSG_PUB.Count_And_Get(
783: p_encoded => FND_API.G_FALSE,
779: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
780:
781: -- standard call to get message count and if count is 1, get message info.
782: FND_MSG_PUB.Count_And_Get(
783: p_encoded => FND_API.G_FALSE,
784: p_count => x_msg_count,
785: p_data => x_msg_data);
786: END IF;
787:
789: END IF;
790:
791:
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
794: ROLLBACK TO update_rule_objects;
795: x_return_status := FND_API.G_RET_STS_ERROR;
796: FND_MSG_PUB.Count_And_Get(
797: p_encoded => FND_API.G_FALSE,
791:
792: EXCEPTION
793: WHEN FND_API.G_EXC_ERROR THEN
794: ROLLBACK TO update_rule_objects;
795: x_return_status := FND_API.G_RET_STS_ERROR;
796: FND_MSG_PUB.Count_And_Get(
797: p_encoded => FND_API.G_FALSE,
798: p_count => x_msg_count,
799: p_data => x_msg_data);
793: WHEN FND_API.G_EXC_ERROR THEN
794: ROLLBACK TO update_rule_objects;
795: x_return_status := FND_API.G_RET_STS_ERROR;
796: FND_MSG_PUB.Count_And_Get(
797: p_encoded => FND_API.G_FALSE,
798: p_count => x_msg_count,
799: p_data => x_msg_data);
800:
801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
797: p_encoded => FND_API.G_FALSE,
798: p_count => x_msg_count,
799: p_data => x_msg_data);
800:
801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
802: ROLLBACK TO update_rule_objects;
803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
804: FND_MSG_PUB.Count_And_Get(
805: p_encoded => FND_API.G_FALSE,
799: p_data => x_msg_data);
800:
801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
802: ROLLBACK TO update_rule_objects;
803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
804: FND_MSG_PUB.Count_And_Get(
805: p_encoded => FND_API.G_FALSE,
806: p_count => x_msg_count,
807: p_data => x_msg_data);
801: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
802: ROLLBACK TO update_rule_objects;
803: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
804: FND_MSG_PUB.Count_And_Get(
805: p_encoded => FND_API.G_FALSE,
806: p_count => x_msg_count,
807: p_data => x_msg_data);
808:
809: WHEN OTHERS THEN
807: p_data => x_msg_data);
808:
809: WHEN OTHERS THEN
810: ROLLBACK TO update_rule_objects;
811: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
812: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
813: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
814: FND_MSG_PUB.ADD;
815: FND_MSG_PUB.Count_And_Get(
812: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
813: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
814: FND_MSG_PUB.ADD;
815: FND_MSG_PUB.Count_And_Get(
816: p_encoded => FND_API.G_FALSE,
817: p_count => x_msg_count,
818: p_data => x_msg_data);
819: END update_rule_object;
820:
830: *
831: * ARGUMENTS
832: * IN:
833: * p_init_msg_list Initialize message stack if it is set to
834: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
835: * p_rule_objects User customizable objects name.
836: * IN/OUT:
837: * OUT:
838: * x_rule_object_rec Returned class category record.
836: * IN/OUT:
837: * OUT:
838: * x_rule_object_rec Returned class category record.
839: * x_return_status Return status after the call. The status can
840: * be FND_API.G_RET_STS_SUCCESS (success),
841: * FND_API.G_RET_STS_ERROR (error),
842: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
843: * x_msg_count Number of messages in message stack.
844: * x_msg_data Message text if x_msg_count is 1.
837: * OUT:
838: * x_rule_object_rec Returned class category record.
839: * x_return_status Return status after the call. The status can
840: * be FND_API.G_RET_STS_SUCCESS (success),
841: * FND_API.G_RET_STS_ERROR (error),
842: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
843: * x_msg_count Number of messages in message stack.
844: * x_msg_data Message text if x_msg_count is 1.
845: *
838: * x_rule_object_rec Returned class category record.
839: * x_return_status Return status after the call. The status can
840: * be FND_API.G_RET_STS_SUCCESS (success),
841: * FND_API.G_RET_STS_ERROR (error),
842: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
843: * x_msg_count Number of messages in message stack.
844: * x_msg_data Message text if x_msg_count is 1.
845: *
846: * NOTES
851: *
852: */
853:
854: PROCEDURE get_rule_object_rec (
855: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
856: p_rule_object_name IN VARCHAR2,
857: p_application_id IN NUMBER,
858: p_instance_label IN VARCHAR2,
859: p_org_id IN NUMBER,
865:
866: BEGIN
867:
868: --Initialize message list if p_init_msg_list is set to TRUE.
869: IF FND_API.to_Boolean(p_init_msg_list) THEN
870: FND_MSG_PUB.initialize;
871: END IF;
872:
873: --Initialize API return status to success.
870: FND_MSG_PUB.initialize;
871: END IF;
872:
873: --Initialize API return status to success.
874: x_return_status := FND_API.G_RET_STS_SUCCESS;
875:
876: --Check whether primary key has been passed in.
877: IF p_rule_object_name IS NULL OR
878: p_rule_object_name = FND_API.G_MISS_CHAR THEN
874: x_return_status := FND_API.G_RET_STS_SUCCESS;
875:
876: --Check whether primary key has been passed in.
877: IF p_rule_object_name IS NULL OR
878: p_rule_object_name = FND_API.G_MISS_CHAR THEN
879: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
880: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_object_name' );
881: FND_MSG_PUB.ADD;
882: RAISE FND_API.G_EXC_ERROR;
878: p_rule_object_name = FND_API.G_MISS_CHAR THEN
879: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
880: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_object_name' );
881: FND_MSG_PUB.ADD;
882: RAISE FND_API.G_EXC_ERROR;
883: END IF;
884:
885:
886: x_rule_object_rec.rule_object_name := p_rule_object_name;
912:
913:
914: --Standard call to get message count and if count is 1, get message info.
915: FND_MSG_PUB.Count_And_Get(
916: p_encoded => FND_API.G_FALSE,
917: p_count => x_msg_count,
918: p_data => x_msg_data );
919:
920: EXCEPTION
917: p_count => x_msg_count,
918: p_data => x_msg_data );
919:
920: EXCEPTION
921: WHEN FND_API.G_EXC_ERROR THEN
922: x_return_status := FND_API.G_RET_STS_ERROR;
923:
924: FND_MSG_PUB.Count_And_Get(
925: p_encoded => FND_API.G_FALSE,
918: p_data => x_msg_data );
919:
920: EXCEPTION
921: WHEN FND_API.G_EXC_ERROR THEN
922: x_return_status := FND_API.G_RET_STS_ERROR;
923:
924: FND_MSG_PUB.Count_And_Get(
925: p_encoded => FND_API.G_FALSE,
926: p_count => x_msg_count,
921: WHEN FND_API.G_EXC_ERROR THEN
922: x_return_status := FND_API.G_RET_STS_ERROR;
923:
924: FND_MSG_PUB.Count_And_Get(
925: p_encoded => FND_API.G_FALSE,
926: p_count => x_msg_count,
927: p_data => x_msg_data );
928:
929: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
925: p_encoded => FND_API.G_FALSE,
926: p_count => x_msg_count,
927: p_data => x_msg_data );
928:
929: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
930: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
931:
932: FND_MSG_PUB.Count_And_Get(
933: p_encoded => FND_API.G_FALSE,
926: p_count => x_msg_count,
927: p_data => x_msg_data );
928:
929: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
930: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
931:
932: FND_MSG_PUB.Count_And_Get(
933: p_encoded => FND_API.G_FALSE,
934: p_count => x_msg_count,
929: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
930: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
931:
932: FND_MSG_PUB.Count_And_Get(
933: p_encoded => FND_API.G_FALSE,
934: p_count => x_msg_count,
935: p_data => x_msg_data );
936:
937: WHEN OTHERS THEN
934: p_count => x_msg_count,
935: p_data => x_msg_data );
936:
937: WHEN OTHERS THEN
938: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
939:
940: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_OTHERS_EXCEP' );
941: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
942: FND_MSG_PUB.ADD;
941: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
942: FND_MSG_PUB.ADD;
943:
944: FND_MSG_PUB.Count_And_Get(
945: p_encoded => FND_API.G_FALSE,
946: p_count => x_msg_count,
947: p_data => x_msg_data );
948:
949: END get_rule_object_rec;
959: *
960: * ARGUMENTS
961: * IN:
962: * p_init_msg_list Initialize message stack if it is set to
963: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
964: * p_rule_objects User customizable objects name.
965: * IN/OUT:
966: * OUT:
967: * x_rule_object_rec Returned class category record.
965: * IN/OUT:
966: * OUT:
967: * x_rule_object_rec Returned class category record.
968: * x_return_status Return status after the call. The status can
969: * be FND_API.G_RET_STS_SUCCESS (success),
970: * FND_API.G_RET_STS_ERROR (error),
971: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
972: * x_msg_count Number of messages in message stack.
973: * x_msg_data Message text if x_msg_count is 1.
966: * OUT:
967: * x_rule_object_rec Returned class category record.
968: * x_return_status Return status after the call. The status can
969: * be FND_API.G_RET_STS_SUCCESS (success),
970: * FND_API.G_RET_STS_ERROR (error),
971: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
972: * x_msg_count Number of messages in message stack.
973: * x_msg_data Message text if x_msg_count is 1.
974: *
967: * x_rule_object_rec Returned class category record.
968: * x_return_status Return status after the call. The status can
969: * be FND_API.G_RET_STS_SUCCESS (success),
970: * FND_API.G_RET_STS_ERROR (error),
971: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
972: * x_msg_count Number of messages in message stack.
973: * x_msg_data Message text if x_msg_count is 1.
974: *
975: * NOTES
980: *
981: */
982:
983: PROCEDURE get_rule_object_rec (
984: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
985: p_rule_object_id IN NUMBER,
986: x_rule_object_rec OUT NOCOPY RULE_OBJECTS_REC_TYPE,
987: x_return_status OUT NOCOPY VARCHAR2,
988: x_msg_count OUT NOCOPY NUMBER,
991:
992: BEGIN
993:
994: --Initialize message list if p_init_msg_list is set to TRUE.
995: IF FND_API.to_Boolean(p_init_msg_list) THEN
996: FND_MSG_PUB.initialize;
997: END IF;
998:
999: --Initialize API return status to success.
996: FND_MSG_PUB.initialize;
997: END IF;
998:
999: --Initialize API return status to success.
1000: x_return_status := FND_API.G_RET_STS_SUCCESS;
1001:
1002: --Check whether primary key has been passed in.
1003: IF p_rule_object_id IS NULL OR
1004: p_rule_object_id = FND_API.G_MISS_NUM THEN
1000: x_return_status := FND_API.G_RET_STS_SUCCESS;
1001:
1002: --Check whether primary key has been passed in.
1003: IF p_rule_object_id IS NULL OR
1004: p_rule_object_id = FND_API.G_MISS_NUM THEN
1005: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
1006: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_object_id' );
1007: FND_MSG_PUB.ADD;
1008: RAISE FND_API.G_EXC_ERROR;
1004: p_rule_object_id = FND_API.G_MISS_NUM THEN
1005: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
1006: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_object_id' );
1007: FND_MSG_PUB.ADD;
1008: RAISE FND_API.G_EXC_ERROR;
1009: END IF;
1010:
1011:
1012: x_rule_object_rec.rule_object_id := p_rule_object_id;
1035:
1036:
1037: --Standard call to get message count and if count is 1, get message info.
1038: FND_MSG_PUB.Count_And_Get(
1039: p_encoded => FND_API.G_FALSE,
1040: p_count => x_msg_count,
1041: p_data => x_msg_data );
1042:
1043: EXCEPTION
1040: p_count => x_msg_count,
1041: p_data => x_msg_data );
1042:
1043: EXCEPTION
1044: WHEN FND_API.G_EXC_ERROR THEN
1045: x_return_status := FND_API.G_RET_STS_ERROR;
1046:
1047: FND_MSG_PUB.Count_And_Get(
1048: p_encoded => FND_API.G_FALSE,
1041: p_data => x_msg_data );
1042:
1043: EXCEPTION
1044: WHEN FND_API.G_EXC_ERROR THEN
1045: x_return_status := FND_API.G_RET_STS_ERROR;
1046:
1047: FND_MSG_PUB.Count_And_Get(
1048: p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1044: WHEN FND_API.G_EXC_ERROR THEN
1045: x_return_status := FND_API.G_RET_STS_ERROR;
1046:
1047: FND_MSG_PUB.Count_And_Get(
1048: p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1050: p_data => x_msg_data );
1051:
1052: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1048: p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1050: p_data => x_msg_data );
1051:
1052: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1053: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1054:
1055: FND_MSG_PUB.Count_And_Get(
1056: p_encoded => FND_API.G_FALSE,
1049: p_count => x_msg_count,
1050: p_data => x_msg_data );
1051:
1052: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1053: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1054:
1055: FND_MSG_PUB.Count_And_Get(
1056: p_encoded => FND_API.G_FALSE,
1057: p_count => x_msg_count,
1052: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1053: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1054:
1055: FND_MSG_PUB.Count_And_Get(
1056: p_encoded => FND_API.G_FALSE,
1057: p_count => x_msg_count,
1058: p_data => x_msg_data );
1059:
1060: WHEN OTHERS THEN
1057: p_count => x_msg_count,
1058: p_data => x_msg_data );
1059:
1060: WHEN OTHERS THEN
1061: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1062:
1063: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_OTHERS_EXCEP' );
1064: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1065: FND_MSG_PUB.ADD;
1064: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
1065: FND_MSG_PUB.ADD;
1066:
1067: FND_MSG_PUB.Count_And_Get(
1068: p_encoded => FND_API.G_FALSE,
1069: p_count => x_msg_count,
1070: p_data => x_msg_data );
1071:
1072: END get_rule_object_rec;
1082: *
1083: * ARGUMENTS
1084: * IN:
1085: * p_init_msg_list Initialize message stack if it is set to
1086: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
1087: * p_rule_object_name User customizable object Name.
1088: * p_application_id Application Id
1089: * IN/OUT:
1090: * OUT:
1088: * p_application_id Application Id
1089: * IN/OUT:
1090: * OUT:
1091: * x_return_status Return status after the call. The status can
1092: * be FND_API.G_RET_STS_SUCCESS (success),
1093: * FND_API.G_RET_STS_ERROR (error),
1094: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1095: * x_msg_count Number of messages in message stack.
1096: * x_msg_data Message text if x_msg_count is 1.
1089: * IN/OUT:
1090: * OUT:
1091: * x_return_status Return status after the call. The status can
1092: * be FND_API.G_RET_STS_SUCCESS (success),
1093: * FND_API.G_RET_STS_ERROR (error),
1094: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1095: * x_msg_count Number of messages in message stack.
1096: * x_msg_data Message text if x_msg_count is 1.
1097: *
1090: * OUT:
1091: * x_return_status Return status after the call. The status can
1092: * be FND_API.G_RET_STS_SUCCESS (success),
1093: * FND_API.G_RET_STS_ERROR (error),
1094: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1095: * x_msg_count Number of messages in message stack.
1096: * x_msg_data Message text if x_msg_count is 1.
1097: *
1098: * NOTES
1103: *
1104: */
1105:
1106: PROCEDURE delete_rule_object(
1107: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1108: p_rule_object_name IN VARCHAR2,
1109: p_application_id IN NUMBER,
1110: x_return_status OUT NOCOPY VARCHAR2,
1111: x_msg_count OUT NOCOPY NUMBER,
1145: EXCEPTION
1146: WHEN NO_DATA_FOUND THEN
1147: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_INVALID_ROB');
1148: FND_MSG_PUB.ADD;
1149: RAISE FND_API.G_EXC_ERROR;
1150: END;
1151:
1152: --Instead of calling the delete apis of the tables for each record, from performance point of view
1153: --its better to issue direct delete statement.
1211: FROM FUN_RULE_OBJECTS_B WHERE
1212: RULE_OBJECT_NAME = P_RULE_OBJECT_NAME);
1213:
1214: -- initialize message list if p_init_msg_list is set to TRUE.
1215: IF FND_API.to_Boolean(p_init_msg_list) THEN
1216: FND_MSG_PUB.initialize;
1217: END IF;
1218:
1219: -- initialize API return status to success.
1216: FND_MSG_PUB.initialize;
1217: END IF;
1218:
1219: -- initialize API return status to success.
1220: x_return_status := FND_API.G_RET_STS_SUCCESS;
1221:
1222: -- call to table-handler.
1223: FUN_RULE_OBJECTS_PKG.Delete_Row (
1224: X_RULE_OBJECT_NAME =>p_rule_object_name,
1232:
1233: FOR C_REC IN FUN_RULE_OBJECTS_CUR(l_rule_object_id) LOOP
1234:
1235: -- initialize API return status to success.
1236: x_return_status := FND_API.G_RET_STS_SUCCESS;
1237:
1238: delete_rule_object_instance(
1239: p_application_id => C_REC.application_id,
1240: p_rule_object_name => C_REC.rule_object_name,
1244: x_msg_count => x_msg_count,
1245: x_msg_data => x_msg_data);
1246:
1247:
1248: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1249:
1250: -- standard call to get message count and if count is 1, get message info.
1251: FND_MSG_PUB.Count_And_Get(
1252: p_encoded => FND_API.G_FALSE,
1248: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
1249:
1250: -- standard call to get message count and if count is 1, get message info.
1251: FND_MSG_PUB.Count_And_Get(
1252: p_encoded => FND_API.G_FALSE,
1253: p_count => x_msg_count,
1254: p_data => x_msg_data);
1255: END IF;
1256:
1257: END LOOP;
1258:
1259: -- standard call to get message count and if count is 1, get message info.
1260: FND_MSG_PUB.Count_And_Get(
1261: p_encoded => FND_API.G_FALSE,
1262: p_count => x_msg_count,
1263: p_data => x_msg_data);
1264:
1265: EXCEPTION
1262: p_count => x_msg_count,
1263: p_data => x_msg_data);
1264:
1265: EXCEPTION
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO delete_rule_object;
1268: x_return_status := FND_API.G_RET_STS_ERROR;
1269: FND_MSG_PUB.Count_And_Get(
1270: p_encoded => FND_API.G_FALSE,
1264:
1265: EXCEPTION
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO delete_rule_object;
1268: x_return_status := FND_API.G_RET_STS_ERROR;
1269: FND_MSG_PUB.Count_And_Get(
1270: p_encoded => FND_API.G_FALSE,
1271: p_count => x_msg_count,
1272: p_data => x_msg_data);
1266: WHEN FND_API.G_EXC_ERROR THEN
1267: ROLLBACK TO delete_rule_object;
1268: x_return_status := FND_API.G_RET_STS_ERROR;
1269: FND_MSG_PUB.Count_And_Get(
1270: p_encoded => FND_API.G_FALSE,
1271: p_count => x_msg_count,
1272: p_data => x_msg_data);
1273:
1274: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1270: p_encoded => FND_API.G_FALSE,
1271: p_count => x_msg_count,
1272: p_data => x_msg_data);
1273:
1274: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1275: ROLLBACK TO delete_rule_object;
1276: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1277: FND_MSG_PUB.Count_And_Get(
1278: p_encoded => FND_API.G_FALSE,
1272: p_data => x_msg_data);
1273:
1274: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1275: ROLLBACK TO delete_rule_object;
1276: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1277: FND_MSG_PUB.Count_And_Get(
1278: p_encoded => FND_API.G_FALSE,
1279: p_count => x_msg_count,
1280: p_data => x_msg_data);
1274: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1275: ROLLBACK TO delete_rule_object;
1276: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1277: FND_MSG_PUB.Count_And_Get(
1278: p_encoded => FND_API.G_FALSE,
1279: p_count => x_msg_count,
1280: p_data => x_msg_data);
1281:
1282: WHEN OTHERS THEN
1280: p_data => x_msg_data);
1281:
1282: WHEN OTHERS THEN
1283: ROLLBACK TO delete_rule_object;
1284: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1285: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1286: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1287: FND_MSG_PUB.ADD;
1288: FND_MSG_PUB.Count_And_Get(
1285: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1286: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1287: FND_MSG_PUB.ADD;
1288: FND_MSG_PUB.Count_And_Get(
1289: p_encoded => FND_API.G_FALSE,
1290: p_count => x_msg_count,
1291: p_data => x_msg_data);
1292: END delete_rule_object;
1293:
1297: * Use this routine to delete a rule object instance. The API deletes a record in the
1298: * FUN_RULE_OBJECTS_B table after checking if the USE_INSTANCE_FLAG is Y or not.
1299: *
1300: *
1301: * p_init_msg_list Initialize message stack if it is set to FND_API.G_TRUE. Default is FND_API.G_FALSE.
1302: * p_application_id Application identifier
1303: * p_rule_object_name Name of Rule Object
1304: * p_instance_label Name of the Instance.
1305: * x_return_status Return status after the call.
1309: * 27-Dec-2005 Amulya Mishra Created
1310: */
1311:
1312: PROCEDURE delete_rule_object_instance(
1313: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1314: p_application_id IN NUMBER,
1315: p_rule_object_name IN VARCHAR2,
1316: p_instance_label IN VARCHAR2,
1317: p_org_id IN NUMBER,
1344: WHEN NO_DATA_FOUND THEN
1345: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_NO_INSTANCE');
1346: FND_MESSAGE.SET_TOKEN('INSTANCE_LABEL' ,p_instance_label);
1347: FND_MSG_PUB.ADD;
1348: RAISE FND_API.G_EXC_ERROR;
1349: END;
1350:
1351: --Instead of calling the delete apis of the tables for each record, from performance point of view
1352: --its better to issue direct delete statement.
1479: AND PARENT_RULE_OBJECT_ID IS NOT NULL);
1480:
1481:
1482: -- initialize message list if p_init_msg_list is set to TRUE.
1483: IF FND_API.to_Boolean(p_init_msg_list) THEN
1484: FND_MSG_PUB.initialize;
1485: END IF;
1486:
1487: -- initialize API return status to success.
1484: FND_MSG_PUB.initialize;
1485: END IF;
1486:
1487: -- initialize API return status to success.
1488: x_return_status := FND_API.G_RET_STS_SUCCESS;
1489:
1490: -- call to table-handler.
1491: FUN_RULE_OBJECTS_PKG.Delete_Row (
1492: X_RULE_OBJECT_ID =>l_rule_object_id
1493: );
1494:
1495: -- standard call to get message count and if count is 1, get message info.
1496: FND_MSG_PUB.Count_And_Get(
1497: p_encoded => FND_API.G_FALSE,
1498: p_count => x_msg_count,
1499: p_data => x_msg_data);
1500:
1501: EXCEPTION
1498: p_count => x_msg_count,
1499: p_data => x_msg_data);
1500:
1501: EXCEPTION
1502: WHEN FND_API.G_EXC_ERROR THEN
1503: ROLLBACK TO delete_rule_object_instance;
1504: x_return_status := FND_API.G_RET_STS_ERROR;
1505: FND_MSG_PUB.Count_And_Get(
1506: p_encoded => FND_API.G_FALSE,
1500:
1501: EXCEPTION
1502: WHEN FND_API.G_EXC_ERROR THEN
1503: ROLLBACK TO delete_rule_object_instance;
1504: x_return_status := FND_API.G_RET_STS_ERROR;
1505: FND_MSG_PUB.Count_And_Get(
1506: p_encoded => FND_API.G_FALSE,
1507: p_count => x_msg_count,
1508: p_data => x_msg_data);
1502: WHEN FND_API.G_EXC_ERROR THEN
1503: ROLLBACK TO delete_rule_object_instance;
1504: x_return_status := FND_API.G_RET_STS_ERROR;
1505: FND_MSG_PUB.Count_And_Get(
1506: p_encoded => FND_API.G_FALSE,
1507: p_count => x_msg_count,
1508: p_data => x_msg_data);
1509:
1510: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1506: p_encoded => FND_API.G_FALSE,
1507: p_count => x_msg_count,
1508: p_data => x_msg_data);
1509:
1510: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1511: ROLLBACK TO delete_rule_object_instance;
1512: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1513: FND_MSG_PUB.Count_And_Get(
1514: p_encoded => FND_API.G_FALSE,
1508: p_data => x_msg_data);
1509:
1510: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1511: ROLLBACK TO delete_rule_object_instance;
1512: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1513: FND_MSG_PUB.Count_And_Get(
1514: p_encoded => FND_API.G_FALSE,
1515: p_count => x_msg_count,
1516: p_data => x_msg_data);
1510: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1511: ROLLBACK TO delete_rule_object_instance;
1512: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1513: FND_MSG_PUB.Count_And_Get(
1514: p_encoded => FND_API.G_FALSE,
1515: p_count => x_msg_count,
1516: p_data => x_msg_data);
1517:
1518: WHEN OTHERS THEN
1516: p_data => x_msg_data);
1517:
1518: WHEN OTHERS THEN
1519: ROLLBACK TO delete_rule_object_instance;
1520: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1521: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1522: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1523: FND_MSG_PUB.ADD;
1524: FND_MSG_PUB.Count_And_Get(
1521: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1522: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1523: FND_MSG_PUB.ADD;
1524: FND_MSG_PUB.Count_And_Get(
1525: p_encoded => FND_API.G_FALSE,
1526: p_count => x_msg_count,
1527: p_data => x_msg_data);
1528: END delete_rule_object_instance;
1529:
1707: *
1708: * ARGUMENTS
1709: * IN:
1710: * p_init_msg_list Initialize message stack if it is set to
1711: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
1712: * p_rule_object_id Internal identifier for the Rule Object
1713: * p_instance_flag Use Instance Flag value for the Rule Object
1714: * p_instance_label Instance Label to be associated with the Rule Object Instances.
1715: * p_org_id Internal identifier for the organization id to be
1716: * associated with the Rule Object Instances
1717: * IN/OUT:
1718: * OUT:
1719: * x_return_status Return status after the call. The status can
1720: * be FND_API.G_RET_STS_SUCCESS (success),
1721: * FND_API.G_RET_STS_ERROR (error),
1722: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1723: * x_msg_count Number of messages in message stack.
1724: * x_msg_data Message text if x_msg_count is 1.
1717: * IN/OUT:
1718: * OUT:
1719: * x_return_status Return status after the call. The status can
1720: * be FND_API.G_RET_STS_SUCCESS (success),
1721: * FND_API.G_RET_STS_ERROR (error),
1722: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1723: * x_msg_count Number of messages in message stack.
1724: * x_msg_data Message text if x_msg_count is 1.
1725: *
1718: * OUT:
1719: * x_return_status Return status after the call. The status can
1720: * be FND_API.G_RET_STS_SUCCESS (success),
1721: * FND_API.G_RET_STS_ERROR (error),
1722: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
1723: * x_msg_count Number of messages in message stack.
1724: * x_msg_data Message text if x_msg_count is 1.
1725: *
1726: * NOTES
1754: */
1755:
1756:
1757: PROCEDURE convert_use_instance(
1758: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
1759: p_rule_object_id IN NUMBER,
1760: p_use_instance_flag IN VARCHAR2,
1761: p_instance_label IN VARCHAR2 DEFAULT NULL,
1762: P_ORG_ID IN NUMBER DEFAULT NULL,
1781: -- standard start of API savepoint
1782: SAVEPOINT convert_use_instance;
1783:
1784: -- initialize message list if p_init_msg_list is set to TRUE.
1785: IF FND_API.to_Boolean(p_init_msg_list) THEN
1786: FND_MSG_PUB.initialize;
1787: END IF;
1788:
1789: -- initialize API return status to success.
1786: FND_MSG_PUB.initialize;
1787: END IF;
1788:
1789: -- initialize API return status to success.
1790: x_return_status := FND_API.G_RET_STS_SUCCESS;
1791:
1792: /*The Rule Object Id passed is for an Instance which cannt be processed.
1793: *Only parent Rule Objects should be processed through this method
1794: */
1795:
1796: IF (FUN_RULE_UTILITY_PKG.IS_USE_INSTANCE(p_rule_object_id)) THEN
1797: fnd_message.set_name('FUN', 'FUN_RULE_NO_CONV_ROB_INST');
1798: fnd_msg_pub.add;
1799: x_return_status := fnd_api.g_ret_sts_error;
1800: RAISE FND_API.G_EXC_ERROR;
1801: END IF;
1802:
1803: /*Compare the USE_INSTANCE_FLAG from Database for the Rule Object Id and compare
1796: IF (FUN_RULE_UTILITY_PKG.IS_USE_INSTANCE(p_rule_object_id)) THEN
1797: fnd_message.set_name('FUN', 'FUN_RULE_NO_CONV_ROB_INST');
1798: fnd_msg_pub.add;
1799: x_return_status := fnd_api.g_ret_sts_error;
1800: RAISE FND_API.G_EXC_ERROR;
1801: END IF;
1802:
1803: /*Compare the USE_INSTANCE_FLAG from Database for the Rule Object Id and compare
1804: *with the passed value i.e p_use_instance_flag. If same, then simply exit.
1907: --Invalid P_USE_INSTANCE_FLAG
1908:
1909: fnd_message.set_name('FUN', 'FUN_RULE_INVALID_INST_FLAG');
1910: fnd_msg_pub.add;
1911: x_return_status := fnd_api.g_ret_sts_error;
1912: RAISE FND_API.G_EXC_ERROR;
1913: END IF;
1914:
1915: EXCEPTION
1908:
1909: fnd_message.set_name('FUN', 'FUN_RULE_INVALID_INST_FLAG');
1910: fnd_msg_pub.add;
1911: x_return_status := fnd_api.g_ret_sts_error;
1912: RAISE FND_API.G_EXC_ERROR;
1913: END IF;
1914:
1915: EXCEPTION
1916: WHEN FND_API.G_EXC_ERROR THEN
1912: RAISE FND_API.G_EXC_ERROR;
1913: END IF;
1914:
1915: EXCEPTION
1916: WHEN FND_API.G_EXC_ERROR THEN
1917: ROLLBACK TO convert_use_instance;
1918: x_return_status := FND_API.G_RET_STS_ERROR;
1919: FND_MSG_PUB.Count_And_Get(
1920: p_encoded => FND_API.G_FALSE,
1914:
1915: EXCEPTION
1916: WHEN FND_API.G_EXC_ERROR THEN
1917: ROLLBACK TO convert_use_instance;
1918: x_return_status := FND_API.G_RET_STS_ERROR;
1919: FND_MSG_PUB.Count_And_Get(
1920: p_encoded => FND_API.G_FALSE,
1921: p_count => x_msg_count,
1922: p_data => x_msg_data);
1916: WHEN FND_API.G_EXC_ERROR THEN
1917: ROLLBACK TO convert_use_instance;
1918: x_return_status := FND_API.G_RET_STS_ERROR;
1919: FND_MSG_PUB.Count_And_Get(
1920: p_encoded => FND_API.G_FALSE,
1921: p_count => x_msg_count,
1922: p_data => x_msg_data);
1923: x_msg_data := FND_MSG_PUB.Get_Detail;
1924:
1921: p_count => x_msg_count,
1922: p_data => x_msg_data);
1923: x_msg_data := FND_MSG_PUB.Get_Detail;
1924:
1925: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1926: ROLLBACK TO convert_use_instance;
1927: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1928: FND_MSG_PUB.Count_And_Get(
1929: p_encoded => FND_API.G_FALSE,
1923: x_msg_data := FND_MSG_PUB.Get_Detail;
1924:
1925: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1926: ROLLBACK TO convert_use_instance;
1927: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1928: FND_MSG_PUB.Count_And_Get(
1929: p_encoded => FND_API.G_FALSE,
1930: p_count => x_msg_count,
1931: p_data => x_msg_data);
1925: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1926: ROLLBACK TO convert_use_instance;
1927: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1928: FND_MSG_PUB.Count_And_Get(
1929: p_encoded => FND_API.G_FALSE,
1930: p_count => x_msg_count,
1931: p_data => x_msg_data);
1932: x_msg_data := FND_MSG_PUB.Get_Detail;
1933: WHEN OTHERS THEN
1931: p_data => x_msg_data);
1932: x_msg_data := FND_MSG_PUB.Get_Detail;
1933: WHEN OTHERS THEN
1934: ROLLBACK TO convert_use_instance;
1935: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1936: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1937: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1938: FND_MSG_PUB.ADD;
1939: FND_MSG_PUB.Count_And_Get(
1936: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
1937: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
1938: FND_MSG_PUB.ADD;
1939: FND_MSG_PUB.Count_And_Get(
1940: p_encoded => FND_API.G_FALSE,
1941: p_count => x_msg_count,
1942: p_data => x_msg_data);
1943: x_msg_data := FND_MSG_PUB.Get_Detail;
1944: END convert_use_instance;