[Home] [Help]
PACKAGE BODY: APPS.FUN_RULE_DETAILS_PUB
Source
1 PACKAGE BODY FUN_RULE_DETAILS_PUB AS
2 /*$Header: FUNXTMRULRDTPUB.pls 120.0 2005/06/20 04:30:02 ammishra noship $ */
3
4
5 ------------------------------------
6 -- declaration of private procedures
7 ------------------------------------
8
9
10 PROCEDURE do_create_rule_detail(
11 p_rule_detail_rec IN OUT NOCOPY RULE_DETAILS_REC_TYPE,
12 x_rule_detail_id OUT NOCOPY NUMBER,
13 x_return_status IN OUT NOCOPY VARCHAR2
14 );
15
16 PROCEDURE do_update_rule_detail(
17 p_rule_detail_rec IN OUT NOCOPY RULE_DETAILS_REC_TYPE,
18 p_object_version_number IN OUT NOCOPY NUMBER,
19 x_return_status IN OUT NOCOPY VARCHAR2
20 );
21
22
23 --------------------------------------
24 -- private procedures and functions
25 --------------------------------------
26
27 /*===========================================================================+
28 | PROCEDURE
29 | do_create_rule_detail
30 |
31 | DESCRIPTION
32 | Creates rules record
33 |
34 | SCOPE - PRIVATE
35 |
36 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
37 |
38 | ARGUMENTS : IN:
39 | OUT:
40 | IN/ OUT:
41 | p_rule_detail_rec
42 | x_return_status
43 |
44 | RETURNS : NONE
45 |
46 | NOTES
47 |
48 | MODIFICATION HISTORY
49 | 10-Sep-2004 Amulya Mishra Created.
50 +===========================================================================*/
51
52 PROCEDURE do_create_rule_detail(
53 p_rule_detail_rec IN OUT NOCOPY RULE_DETAILS_REC_TYPE,
54 x_rule_detail_id OUT NOCOPY NUMBER,
55 x_return_status IN OUT NOCOPY VARCHAR2
56 ) IS
57
58 l_rowid rowid;
59 BEGIN
60
61 -- validate the input record
62
63
64 FUN_RULE_VALIDATE_PKG.validate_rule_details(
65 'C',
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
75 FUN_RULE_DETAILS_PKG.Insert_Row (
76 X_ROWID =>l_rowid,
77 X_RULE_DETAIL_ID =>p_rule_detail_rec.rule_detail_id,
78 X_RULE_OBJECT_ID =>p_rule_detail_rec.rule_object_id,
79 X_RULE_NAME =>p_rule_detail_rec.rule_name,
80 X_SEQ =>p_rule_detail_rec.seq,
81 X_OPERATOR =>p_rule_detail_rec.operator,
82 X_ENABLED_FLAG =>p_rule_detail_rec.enabled_flag,
83 X_RESULT_APPLICATION_ID =>p_rule_detail_rec.result_application_id,
84 X_RESULT_VALUE =>p_rule_detail_rec.result_value,
85 X_CREATED_BY_MODULE =>p_rule_detail_rec.created_by_module
86 );
87
88 x_rule_detail_id := p_rule_detail_rec.rule_detail_id;
89
90
91 END;
92
93 /*===========================================================================+
94 | PROCEDURE
95 | do_update_rule_detail
96 |
97 | DESCRIPTION
98 | Updates rules record
99 |
100 | SCOPE - PRIVATE
101 |
102 | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
103 |
104 | ARGUMENTS : IN:
105 | OUT:
106 | IN/ OUT:
107 | p_rule_detail_rec
108 | p_object_version_number
109 | x_return_status
110 |
111 | RETURNS : NONE
112 |
113 | NOTES
114 |
115 | MODIFICATION HISTORY
116 |
117 +===========================================================================*/
118
119 PROCEDURE do_update_rule_detail(
120 p_rule_detail_rec IN OUT NOCOPY RULE_DETAILS_REC_TYPE,
121 p_object_version_number IN OUT NOCOPY NUMBER,
122 x_return_status IN OUT NOCOPY VARCHAR2
123 ) IS
124
125 l_object_version_number NUMBER;
126 l_rowid ROWID;
127 BEGIN
128
129 -- check whether record has been updated by another user. If not, lock it.
130 BEGIN
131
132 SELECT OBJECT_VERSION_NUMBER,
133 ROWID
134 INTO l_object_version_number,
135 l_rowid
136 FROM FUN_rule_details
137 WHERE RULE_DETAIL_ID = p_rule_detail_rec.rule_detail_id
138 AND RULE_OBJECT_ID = p_rule_detail_rec.rule_object_id
139 FOR UPDATE OF RULE_NAME NOWAIT;
140
141
142 IF NOT ((p_object_version_number is null and l_object_version_number is null)
143 OR (p_object_version_number = l_object_version_number))
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
153 EXCEPTION WHEN NO_DATA_FOUND THEN
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(
163 'U',
164 p_rule_detail_rec,
165 l_rowid,
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.
175
176 FUN_RULE_DETAILS_PKG.Update_Row (
177 X_RULE_DETAIL_ID =>p_rule_detail_rec.rule_detail_id,
178 X_RULE_OBJECT_ID =>p_rule_detail_rec.rule_object_id,
179 X_RULE_NAME =>p_rule_detail_rec.rule_name,
180 X_SEQ =>p_rule_detail_rec.seq,
181 X_OPERATOR =>p_rule_detail_rec.operator,
182 X_ENABLED_FLAG =>p_rule_detail_rec.enabled_flag,
183 X_RESULT_APPLICATION_ID =>p_rule_detail_rec.result_application_id,
184 X_RESULT_VALUE =>p_rule_detail_rec.result_value,
185 X_CREATED_BY_MODULE =>p_rule_detail_rec.created_by_module
186 );
187
188 END;
189
190 /**
191 * PROCEDURE create_rule_detail
192 *
193 * DESCRIPTION
194 * Creates User Defined Rules
195 *
196 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
197 *
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
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
214 *
215 * MODIFICATION HISTORY
216 *
217 * 10-Sep-2004 Amulya Mishra Created.
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,
227 x_msg_data OUT NOCOPY VARCHAR2
228 ) IS
229
230 l_rule_detail_rec RULE_DETAILS_REC_TYPE:= p_rule_detail_rec;
231
232 BEGIN
233
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.
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,
248 x_rule_detail_id,
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
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);
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);
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(
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
287 /**
288 * PROCEDURE update_rule_detail
289 *
290 * DESCRIPTION
291 * Updates A Rule
292 *
293 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
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:
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
311 *
312 * MODIFICATION HISTORY
313 *
314 * 10-Sep-2004 Amulya Mishra Created.
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,
324 x_msg_data OUT NOCOPY VARCHAR2
325 ) IS
326
327 l_rule_detail_rec rule_details_REC_TYPE := p_rule_detail_rec;
328 l_old_rule_detail_rec rule_details_REC_TYPE;
329
330 BEGIN
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.
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,
345 x_rule_detail_rec => l_old_rule_detail_rec,
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;
355
356 -- call to business logic.
357 do_update_rule_detail(
358 l_rule_detail_rec,
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,
368 p_count => x_msg_count,
369 p_data => x_msg_data);
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,
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,
387 p_count => x_msg_count,
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
397 FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
398 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
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
408
409 /**
410 * PROCEDURE get_rule_detail_rec
411 *
412 * DESCRIPTION
413 * Gets user defined Rules record.
414 *
415 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
416 * FUN_rule_details_PKG.Select_Row
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.
425 * x_rule_detail_rec Returns Rules record.
422 * p_rule_detail_id Rule Id.
423 * IN/OUT:
424 * OUT:
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
434 *
435 * MODIFICATION HISTORY
436 *
437 * 10-Sep-2004 Amulya Mishra Created.
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,
447 x_msg_count OUT NOCOPY NUMBER,
448 x_msg_data OUT NOCOPY VARCHAR2
449 ) IS
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.
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
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;
471 END IF;
472 */
473
474 x_rule_detail_rec.rule_detail_id := p_rule_detail_id;
475 x_rule_detail_rec.rule_object_id := p_rule_object_id;
476
477 FUN_RULE_DETAILS_PKG.Select_Row (
478 X_RULE_NAME =>x_rule_detail_rec.rule_name,
479 X_RULE_DETAIL_ID =>x_rule_detail_rec.rule_detail_id,
480 X_RULE_OBJECT_ID =>x_rule_detail_rec.rule_object_id,
481 X_SEQ =>x_rule_detail_rec.seq,
482 X_OPERATOR =>x_rule_detail_rec.operator,
483 X_ENABLED_FLAG =>x_rule_detail_rec.enabled_flag,
484 X_RESULT_APPLICATION_ID =>x_rule_detail_rec.result_application_id,
485 X_RESULT_VALUE =>x_rule_detail_rec.result_value,
486 X_CREATED_BY_MODULE =>x_rule_detail_rec.created_by_module
487 );
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
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
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
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
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;
525
526
527 /**
528 * PROCEDURE delete_rule_detail
529 *
530 * DESCRIPTION
531 * Deletes A Rule.
532 *
533 * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
534 *
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:
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
552 *
553 * MODIFICATION HISTORY
554 *
555 * 10-Sep-2004 Amulya Mishra Created.
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,
568 l_rule_detail_id NUMBER;
565 x_msg_data OUT NOCOPY VARCHAR2
566 ) IS
567
569
570 BEGIN
571
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.
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
586 AND rule_name = p_rule_name;
587
588 -- call to table-handler.
589 FUN_RULE_DETAILS_PKG.Delete_Row (
590 X_RULE_DETAIL_ID => l_rule_detail_id
591 );
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
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);
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);
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(
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
630 END FUN_RULE_DETAILS_PUB;