66: p_rule_detail_rec,
67: l_rowid,
68: x_return_status
69: );
70: IF x_return_status = fnd_api.g_ret_sts_error THEN
71: RAISE fnd_api.g_exc_error;
72: END IF;
73:
74:
67: l_rowid,
68: x_return_status
69: );
70: IF x_return_status = fnd_api.g_ret_sts_error THEN
71: RAISE fnd_api.g_exc_error;
72: END IF;
73:
74:
75: FUN_RULE_DETAILS_PKG.Insert_Row (
144: THEN
145: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_RECORD_CHANGED');
146: FND_MESSAGE.SET_TOKEN('TABLE', 'FUN_RULE_DETAILS');
147: FND_MSG_PUB.ADD;
148: RAISE FND_API.G_EXC_ERROR;
149: END IF;
150:
151: p_object_version_number := nvl(l_object_version_number, 1) + 1;
152:
154: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_NO_RECORD');
155: FND_MESSAGE.SET_TOKEN('RECORD', 'FUN_RULE_DETAILS');
156: FND_MESSAGE.SET_TOKEN('VALUE', 'rule_name');
157: FND_MSG_PUB.ADD;
158: RAISE FND_API.G_EXC_ERROR;
159: END;
160:
161: -- call for validations.
162: FUN_RULE_VALIDATE_PKG.validate_rule_details(
166: x_return_status
167: );
168:
169:
170: IF x_return_status = fnd_api.g_ret_sts_error THEN
171: RAISE fnd_api.g_exc_error;
172: END IF;
173:
174: -- call to table-handler.
167: );
168:
169:
170: IF x_return_status = fnd_api.g_ret_sts_error THEN
171: RAISE fnd_api.g_exc_error;
172: END IF;
173:
174: -- call to table-handler.
175:
198: *
199: * ARGUMENTS
200: * IN:
201: * p_init_msg_list Initialize message stack if it is set to
202: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
203: * p_rule_detail_rec User defined Rules record.
204: * IN/OUT:
205: * OUT:
206: * x_return_status Return status after the call. The status can
203: * p_rule_detail_rec User defined Rules record.
204: * IN/OUT:
205: * OUT:
206: * x_return_status Return status after the call. The status can
207: * be FND_API.G_RET_STS_SUCCESS (success),
208: * FND_API.G_RET_STS_ERROR (error),
209: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
210: * x_msg_count Number of messages in message stack.
211: * x_msg_data Message text if x_msg_count is 1.
204: * IN/OUT:
205: * OUT:
206: * x_return_status Return status after the call. The status can
207: * be FND_API.G_RET_STS_SUCCESS (success),
208: * FND_API.G_RET_STS_ERROR (error),
209: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
210: * x_msg_count Number of messages in message stack.
211: * x_msg_data Message text if x_msg_count is 1.
212: *
205: * OUT:
206: * x_return_status Return status after the call. The status can
207: * be FND_API.G_RET_STS_SUCCESS (success),
208: * FND_API.G_RET_STS_ERROR (error),
209: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
210: * x_msg_count Number of messages in message stack.
211: * x_msg_data Message text if x_msg_count is 1.
212: *
213: * NOTES
218: *
219: */
220:
221: PROCEDURE create_rule_detail(
222: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
223: p_rule_detail_rec IN RULE_DETAILS_REC_TYPE,
224: x_rule_detail_id OUT NOCOPY NUMBER,
225: x_return_status OUT NOCOPY VARCHAR2,
226: x_msg_count OUT NOCOPY NUMBER,
234: -- standard start of API savepoint
235: SAVEPOINT create_rule_detail;
236:
237: -- initialize message list if p_init_msg_list is set to TRUE.
238: IF FND_API.to_Boolean(p_init_msg_list) THEN
239: FND_MSG_PUB.initialize;
240: END IF;
241:
242: -- initialize API return status to success.
239: FND_MSG_PUB.initialize;
240: END IF;
241:
242: -- initialize API return status to success.
243: x_return_status := FND_API.G_RET_STS_SUCCESS;
244:
245: -- call to business logic.
246: do_create_rule_detail(
247: l_rule_detail_rec,
249: x_return_status);
250:
251: -- standard call to get message count and if count is 1, get message info.
252: FND_MSG_PUB.Count_And_Get(
253: p_encoded => FND_API.G_FALSE,
254: p_count => x_msg_count,
255: p_data => x_msg_data);
256:
257:
255: p_data => x_msg_data);
256:
257:
258: EXCEPTION
259: WHEN FND_API.G_EXC_ERROR THEN
260: ROLLBACK TO create_rule_detail;
261: x_return_status := FND_API.G_RET_STS_ERROR;
262: FND_MSG_PUB.Count_And_Get(
263: p_encoded => FND_API.G_FALSE,
257:
258: EXCEPTION
259: WHEN FND_API.G_EXC_ERROR THEN
260: ROLLBACK TO create_rule_detail;
261: x_return_status := FND_API.G_RET_STS_ERROR;
262: FND_MSG_PUB.Count_And_Get(
263: p_encoded => FND_API.G_FALSE,
264: p_count => x_msg_count,
265: p_data => x_msg_data);
259: WHEN FND_API.G_EXC_ERROR THEN
260: ROLLBACK TO create_rule_detail;
261: x_return_status := FND_API.G_RET_STS_ERROR;
262: FND_MSG_PUB.Count_And_Get(
263: p_encoded => FND_API.G_FALSE,
264: p_count => x_msg_count,
265: p_data => x_msg_data);
266:
267: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
263: p_encoded => FND_API.G_FALSE,
264: p_count => x_msg_count,
265: p_data => x_msg_data);
266:
267: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
268: ROLLBACK TO create_rule_detail;
269: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: FND_MSG_PUB.Count_And_Get(
271: p_encoded => FND_API.G_FALSE,
265: p_data => x_msg_data);
266:
267: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
268: ROLLBACK TO create_rule_detail;
269: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: FND_MSG_PUB.Count_And_Get(
271: p_encoded => FND_API.G_FALSE,
272: p_count => x_msg_count,
273: p_data => x_msg_data);
267: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
268: ROLLBACK TO create_rule_detail;
269: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
270: FND_MSG_PUB.Count_And_Get(
271: p_encoded => FND_API.G_FALSE,
272: p_count => x_msg_count,
273: p_data => x_msg_data);
274:
275: WHEN OTHERS THEN
273: p_data => x_msg_data);
274:
275: WHEN OTHERS THEN
276: ROLLBACK TO create_rule_detail;
277: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
278: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
279: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
280: FND_MSG_PUB.ADD;
281: FND_MSG_PUB.Count_And_Get(
278: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
279: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
280: FND_MSG_PUB.ADD;
281: FND_MSG_PUB.Count_And_Get(
282: p_encoded => FND_API.G_FALSE,
283: p_count => x_msg_count,
284: p_data => x_msg_data);
285: END create_rule_detail;
286:
294: *
295: * ARGUMENTS
296: * IN:
297: * p_init_msg_list Initialize message stack if it is set to
298: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
299: * p_rule_detail_rec User defined Rules record.
300: * IN/OUT:
301: * p_object_version_number Used for locking the being updated record.
302: * OUT:
300: * IN/OUT:
301: * p_object_version_number Used for locking the being updated record.
302: * OUT:
303: * x_return_status Return status after the call. The status can
304: * be FND_API.G_RET_STS_SUCCESS (success),
305: * FND_API.G_RET_STS_ERROR (error),
306: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
307: * x_msg_count Number of messages in message stack.
308: * x_msg_data Message text if x_msg_count is 1.
301: * p_object_version_number Used for locking the being updated record.
302: * OUT:
303: * x_return_status Return status after the call. The status can
304: * be FND_API.G_RET_STS_SUCCESS (success),
305: * FND_API.G_RET_STS_ERROR (error),
306: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
307: * x_msg_count Number of messages in message stack.
308: * x_msg_data Message text if x_msg_count is 1.
309: *
302: * OUT:
303: * x_return_status Return status after the call. The status can
304: * be FND_API.G_RET_STS_SUCCESS (success),
305: * FND_API.G_RET_STS_ERROR (error),
306: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
307: * x_msg_count Number of messages in message stack.
308: * x_msg_data Message text if x_msg_count is 1.
309: *
310: * NOTES
315: *
316: */
317:
318: PROCEDURE update_rule_detail(
319: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
320: p_rule_detail_rec IN rule_details_REC_TYPE,
321: p_object_version_number IN OUT NOCOPY NUMBER,
322: x_return_status OUT NOCOPY VARCHAR2,
323: x_msg_count OUT NOCOPY NUMBER,
331: -- standard start of API savepoint
332: SAVEPOINT update_rule_detail;
333:
334: -- initialize message list if p_init_msg_list is set to TRUE.
335: IF FND_API.to_Boolean(p_init_msg_list) THEN
336: FND_MSG_PUB.initialize;
337: END IF;
338:
339: -- initialize API return status to success.
336: FND_MSG_PUB.initialize;
337: END IF;
338:
339: -- initialize API return status to success.
340: x_return_status := FND_API.G_RET_STS_SUCCESS;
341: -- Get old records. Will be used by business event system.
342: get_rule_detail_rec (
343: p_rule_detail_id => l_rule_detail_rec.rule_detail_id,
344: p_rule_object_id => l_rule_detail_rec.rule_object_id,
346: x_return_status => x_return_status,
347: x_msg_count => x_msg_count,
348: x_msg_data => x_msg_data );
349:
350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
351: RAISE FND_API.G_EXC_ERROR;
352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354: END IF;
347: x_msg_count => x_msg_count,
348: x_msg_data => x_msg_data );
349:
350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
351: RAISE FND_API.G_EXC_ERROR;
352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354: END IF;
355:
348: x_msg_data => x_msg_data );
349:
350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
351: RAISE FND_API.G_EXC_ERROR;
352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354: END IF;
355:
356: -- call to business logic.
349:
350: IF x_return_status = FND_API.G_RET_STS_ERROR THEN
351: RAISE FND_API.G_EXC_ERROR;
352: ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
353: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
354: END IF;
355:
356: -- call to business logic.
357: do_update_rule_detail(
359: p_object_version_number,
360: x_return_status);
361:
362:
363: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
364:
365: -- standard call to get message count and if count is 1, get message info.
366: FND_MSG_PUB.Count_And_Get(
367: p_encoded => FND_API.G_FALSE,
363: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
364:
365: -- standard call to get message count and if count is 1, get message info.
366: FND_MSG_PUB.Count_And_Get(
367: p_encoded => FND_API.G_FALSE,
368: p_count => x_msg_count,
369: p_data => x_msg_data);
370: END IF;
371:
370: END IF;
371:
372:
373: EXCEPTION
374: WHEN FND_API.G_EXC_ERROR THEN
375: ROLLBACK TO update_rule_detail;
376: x_return_status := FND_API.G_RET_STS_ERROR;
377: FND_MSG_PUB.Count_And_Get(
378: p_encoded => FND_API.G_FALSE,
372:
373: EXCEPTION
374: WHEN FND_API.G_EXC_ERROR THEN
375: ROLLBACK TO update_rule_detail;
376: x_return_status := FND_API.G_RET_STS_ERROR;
377: FND_MSG_PUB.Count_And_Get(
378: p_encoded => FND_API.G_FALSE,
379: p_count => x_msg_count,
380: p_data => x_msg_data);
374: WHEN FND_API.G_EXC_ERROR THEN
375: ROLLBACK TO update_rule_detail;
376: x_return_status := FND_API.G_RET_STS_ERROR;
377: FND_MSG_PUB.Count_And_Get(
378: p_encoded => FND_API.G_FALSE,
379: p_count => x_msg_count,
380: p_data => x_msg_data);
381:
382: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
378: p_encoded => FND_API.G_FALSE,
379: p_count => x_msg_count,
380: p_data => x_msg_data);
381:
382: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
383: ROLLBACK TO update_rule_detail;
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
385: FND_MSG_PUB.Count_And_Get(
386: p_encoded => FND_API.G_FALSE,
380: p_data => x_msg_data);
381:
382: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
383: ROLLBACK TO update_rule_detail;
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
385: FND_MSG_PUB.Count_And_Get(
386: p_encoded => FND_API.G_FALSE,
387: p_count => x_msg_count,
388: p_data => x_msg_data);
382: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
383: ROLLBACK TO update_rule_detail;
384: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
385: FND_MSG_PUB.Count_And_Get(
386: p_encoded => FND_API.G_FALSE,
387: p_count => x_msg_count,
388: p_data => x_msg_data);
389:
390: WHEN OTHERS THEN
388: p_data => x_msg_data);
389:
390: WHEN OTHERS THEN
391: ROLLBACK TO update_rule_detail;
392: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
393:
394: IF( INSTR(SQLERRM, 'FUN_RULE_DETAILS_U2') > 0 ) THEN
395: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_DUPLICATE_RULE_NAME');
396: ELSE
399: END IF;
400:
401: FND_MSG_PUB.ADD;
402: FND_MSG_PUB.Count_And_Get(
403: p_encoded => FND_API.G_FALSE,
404: p_count => x_msg_count,
405: p_data => x_msg_data);
406: END update_rule_detail;
407:
417: *
418: * ARGUMENTS
419: * IN:
420: * p_init_msg_list Initialize message stack if it is set to
421: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
422: * p_rule_detail_id Rule Id.
423: * IN/OUT:
424: * OUT:
425: * x_rule_detail_rec Returns Rules record.
423: * IN/OUT:
424: * OUT:
425: * x_rule_detail_rec Returns Rules record.
426: * x_return_status Return status after the call. The status can
427: * be FND_API.G_RET_STS_SUCCESS (success),
428: * FND_API.G_RET_STS_ERROR (error),
429: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
430: * x_msg_count Number of messages in message stack.
431: * x_msg_data Message text if x_msg_count is 1.
424: * OUT:
425: * x_rule_detail_rec Returns Rules record.
426: * x_return_status Return status after the call. The status can
427: * be FND_API.G_RET_STS_SUCCESS (success),
428: * FND_API.G_RET_STS_ERROR (error),
429: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
430: * x_msg_count Number of messages in message stack.
431: * x_msg_data Message text if x_msg_count is 1.
432: *
425: * x_rule_detail_rec Returns Rules record.
426: * x_return_status Return status after the call. The status can
427: * be FND_API.G_RET_STS_SUCCESS (success),
428: * FND_API.G_RET_STS_ERROR (error),
429: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
430: * x_msg_count Number of messages in message stack.
431: * x_msg_data Message text if x_msg_count is 1.
432: *
433: * NOTES
438: *
439: */
440:
441: PROCEDURE get_rule_detail_rec (
442: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
443: p_rule_detail_id IN NUMBER,
444: p_rule_object_id IN NUMBER,
445: x_rule_detail_rec OUT NOCOPY RULE_DETAILS_REC_TYPE,
446: x_return_status OUT NOCOPY VARCHAR2,
450:
451: BEGIN
452:
453: --Initialize message list if p_init_msg_list is set to TRUE.
454: IF FND_API.to_Boolean(p_init_msg_list) THEN
455: FND_MSG_PUB.initialize;
456: END IF;
457:
458: --Initialize API return status to success.
455: FND_MSG_PUB.initialize;
456: END IF;
457:
458: --Initialize API return status to success.
459: x_return_status := FND_API.G_RET_STS_SUCCESS;
460:
461: /*
462: --We can update the Rule Name. So we should not check for
463:
462: --We can update the Rule Name. So we should not check for
463:
464: --Check whether primary key has been passed in.
465: IF p_rule_detail_id IS NULL OR
466: p_rule_detail_id = FND_API.G_MISS_NUM THEN
467: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
468: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_name' );
469: FND_MSG_PUB.ADD;
470: RAISE FND_API.G_EXC_ERROR;
466: p_rule_detail_id = FND_API.G_MISS_NUM THEN
467: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
468: FND_MESSAGE.SET_TOKEN( 'COLUMN', 'rule_name' );
469: FND_MSG_PUB.ADD;
470: RAISE FND_API.G_EXC_ERROR;
471: END IF;
472: */
473:
474: x_rule_detail_rec.rule_detail_id := p_rule_detail_id;
488:
489:
490: --Standard call to get message count and if count is 1, get message info.
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:
496: EXCEPTION
493: p_count => x_msg_count,
494: p_data => x_msg_data );
495:
496: EXCEPTION
497: WHEN FND_API.G_EXC_ERROR THEN
498: x_return_status := FND_API.G_RET_STS_ERROR;
499:
500: FND_MSG_PUB.Count_And_Get(
501: p_encoded => FND_API.G_FALSE,
494: p_data => x_msg_data );
495:
496: EXCEPTION
497: WHEN FND_API.G_EXC_ERROR THEN
498: x_return_status := FND_API.G_RET_STS_ERROR;
499:
500: FND_MSG_PUB.Count_And_Get(
501: p_encoded => FND_API.G_FALSE,
502: p_count => x_msg_count,
497: WHEN FND_API.G_EXC_ERROR THEN
498: x_return_status := FND_API.G_RET_STS_ERROR;
499:
500: FND_MSG_PUB.Count_And_Get(
501: p_encoded => FND_API.G_FALSE,
502: p_count => x_msg_count,
503: p_data => x_msg_data );
504:
505: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
501: p_encoded => FND_API.G_FALSE,
502: p_count => x_msg_count,
503: p_data => x_msg_data );
504:
505: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
506: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
507:
508: FND_MSG_PUB.Count_And_Get(
509: p_encoded => FND_API.G_FALSE,
502: p_count => x_msg_count,
503: p_data => x_msg_data );
504:
505: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
506: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
507:
508: FND_MSG_PUB.Count_And_Get(
509: p_encoded => FND_API.G_FALSE,
510: p_count => x_msg_count,
505: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
506: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
507:
508: FND_MSG_PUB.Count_And_Get(
509: p_encoded => FND_API.G_FALSE,
510: p_count => x_msg_count,
511: p_data => x_msg_data );
512:
513: WHEN OTHERS THEN
510: p_count => x_msg_count,
511: p_data => x_msg_data );
512:
513: WHEN OTHERS THEN
514: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
515: FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_OTHERS_EXCEP' );
516: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
517: FND_MSG_PUB.ADD;
518:
516: FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
517: FND_MSG_PUB.ADD;
518:
519: FND_MSG_PUB.Count_And_Get(
520: p_encoded => FND_API.G_FALSE,
521: p_count => x_msg_count,
522: p_data => x_msg_data );
523:
524: END get_rule_detail_rec;
535: *
536: * ARGUMENTS
537: * IN:
538: * p_init_msg_list Initialize message stack if it is set to
539: * FND_API.G_TRUE. Default is FND_API.G_FALSE.
540: * p_rule_name Rule Name.
541: * p_rule_object_id Rule Object Id
542: * IN/OUT:
543: * OUT:
541: * p_rule_object_id Rule Object Id
542: * IN/OUT:
543: * OUT:
544: * x_return_status Return status after the call. The status can
545: * be FND_API.G_RET_STS_SUCCESS (success),
546: * FND_API.G_RET_STS_ERROR (error),
547: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
548: * x_msg_count Number of messages in message stack.
549: * x_msg_data Message text if x_msg_count is 1.
542: * IN/OUT:
543: * OUT:
544: * x_return_status Return status after the call. The status can
545: * be FND_API.G_RET_STS_SUCCESS (success),
546: * FND_API.G_RET_STS_ERROR (error),
547: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
548: * x_msg_count Number of messages in message stack.
549: * x_msg_data Message text if x_msg_count is 1.
550: *
543: * OUT:
544: * x_return_status Return status after the call. The status can
545: * be FND_API.G_RET_STS_SUCCESS (success),
546: * FND_API.G_RET_STS_ERROR (error),
547: * FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
548: * x_msg_count Number of messages in message stack.
549: * x_msg_data Message text if x_msg_count is 1.
550: *
551: * NOTES
556: *
557: */
558:
559: PROCEDURE delete_rule_detail(
560: p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
561: p_rule_name IN VARCHAR2,
562: p_rule_object_id IN NUMBER,
563: x_return_status OUT NOCOPY VARCHAR2,
564: x_msg_count OUT NOCOPY NUMBER,
572: -- standard start of API savepoint
573: SAVEPOINT delete_rule_detail;
574:
575: -- initialize message list if p_init_msg_list is set to TRUE.
576: IF FND_API.to_Boolean(p_init_msg_list) THEN
577: FND_MSG_PUB.initialize;
578: END IF;
579:
580: -- initialize API return status to success.
577: FND_MSG_PUB.initialize;
578: END IF;
579:
580: -- initialize API return status to success.
581: x_return_status := FND_API.G_RET_STS_SUCCESS;
582:
583: SELECT rule_detail_id INTO l_rule_detail_id
584: FROM fun_rule_details
585: WHERE rule_object_id = p_rule_object_id
592:
593:
594: -- standard call to get message count and if count is 1, get message info.
595: FND_MSG_PUB.Count_And_Get(
596: p_encoded => FND_API.G_FALSE,
597: p_count => x_msg_count,
598: p_data => x_msg_data);
599:
600:
598: p_data => x_msg_data);
599:
600:
601: EXCEPTION
602: WHEN FND_API.G_EXC_ERROR THEN
603: ROLLBACK TO delete_rule_detail;
604: x_return_status := FND_API.G_RET_STS_ERROR;
605: FND_MSG_PUB.Count_And_Get(
606: p_encoded => FND_API.G_FALSE,
600:
601: EXCEPTION
602: WHEN FND_API.G_EXC_ERROR THEN
603: ROLLBACK TO delete_rule_detail;
604: x_return_status := FND_API.G_RET_STS_ERROR;
605: FND_MSG_PUB.Count_And_Get(
606: p_encoded => FND_API.G_FALSE,
607: p_count => x_msg_count,
608: p_data => x_msg_data);
602: WHEN FND_API.G_EXC_ERROR THEN
603: ROLLBACK TO delete_rule_detail;
604: x_return_status := FND_API.G_RET_STS_ERROR;
605: FND_MSG_PUB.Count_And_Get(
606: p_encoded => FND_API.G_FALSE,
607: p_count => x_msg_count,
608: p_data => x_msg_data);
609:
610: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
606: p_encoded => FND_API.G_FALSE,
607: p_count => x_msg_count,
608: p_data => x_msg_data);
609:
610: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
611: ROLLBACK TO delete_rule_detail;
612: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
613: FND_MSG_PUB.Count_And_Get(
614: p_encoded => FND_API.G_FALSE,
608: p_data => x_msg_data);
609:
610: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
611: ROLLBACK TO delete_rule_detail;
612: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
613: FND_MSG_PUB.Count_And_Get(
614: p_encoded => FND_API.G_FALSE,
615: p_count => x_msg_count,
616: p_data => x_msg_data);
610: WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
611: ROLLBACK TO delete_rule_detail;
612: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
613: FND_MSG_PUB.Count_And_Get(
614: p_encoded => FND_API.G_FALSE,
615: p_count => x_msg_count,
616: p_data => x_msg_data);
617:
618: WHEN OTHERS THEN
616: p_data => x_msg_data);
617:
618: WHEN OTHERS THEN
619: ROLLBACK TO delete_rule_detail;
620: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
621: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
622: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
623: FND_MSG_PUB.ADD;
624: FND_MSG_PUB.Count_And_Get(
621: FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
622: FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
623: FND_MSG_PUB.ADD;
624: FND_MSG_PUB.Count_And_Get(
625: p_encoded => FND_API.G_FALSE,
626: p_count => x_msg_count,
627: p_data => x_msg_data);
628: END delete_rule_detail;
629: