DBA Data[Home] [Help]

PACKAGE BODY: APPS.FUN_RICH_MESSAGES_PUB

Source


1 PACKAGE BODY FUN_RICH_MESSAGES_PUB AS
2 /*$Header: FUNXTMRULRTMPUB.pls 120.0 2005/06/20 04:30:08 ammishra noship $ */
3 
4 
5 ------------------------------------
6 -- declaration of private procedures
7 ------------------------------------
8 
9 
10 PROCEDURE do_create_rich_messages(
11     p_rich_messages_rec     IN OUT NOCOPY RICH_MESSAGES_REC_TYPE,
12     p_message_text          IN OUT NOCOPY CLOB,
13     x_message_name          OUT NOCOPY    VARCHAR2,
14     x_return_status        IN OUT NOCOPY VARCHAR2
15 );
16 
17 PROCEDURE do_update_rich_messages(
18     p_rich_messages_rec      IN OUT NOCOPY RICH_MESSAGES_REC_TYPE,
19     p_message_text          IN OUT NOCOPY CLOB,
20     p_object_version_number IN OUT NOCOPY   NUMBER,
21     x_return_status         IN OUT NOCOPY   VARCHAR2
22 );
23 
24 
25 --------------------------------------
26 -- private procedures and functions
27 --------------------------------------
28 
29 /*===========================================================================+
30  | PROCEDURE
31  |              do_create_rich_messages
32  |
33  | DESCRIPTION
34  |              Creates Rich Text Messages
35  |
36  | SCOPE - PRIVATE
37  |
38  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
39  |
40  | ARGUMENTS  : IN:
41  |              OUT:
42  |          IN/ OUT:
43  |                    p_rich_messages_rec
44  |                    x_return_status
45  |
46  | RETURNS    : NONE
47  |
48  | NOTES
49  |
50  | MODIFICATION HISTORY
51  |          10-Sep-2004    Amulya Mishra         Created.
52  +===========================================================================*/
53 
54 PROCEDURE do_create_rich_messages(
55     p_rich_messages_rec     IN OUT NOCOPY RICH_MESSAGES_REC_TYPE,
56     p_message_text          IN OUT NOCOPY CLOB,
57     x_message_name          OUT NOCOPY    VARCHAR2,
58     x_return_status        IN OUT NOCOPY VARCHAR2
59 ) IS
60 
61     l_rowid                      rowid:= NULL;
62 
63 
64 BEGIN
65 
66 
67    -- validate the input record
68     FUN_RULE_VALIDATE_PKG.validate_rich_messages(
69       'C',
70       p_rich_messages_rec,
71       l_rowid,
72       x_return_status
73     );
74 
75 
76 
77     IF x_return_status = fnd_api.g_ret_sts_error THEN
78       RAISE fnd_api.g_exc_error;
79     END IF;
80 
81 
82 
83     FUN_RICH_MESSAGES_PKG.Insert_Row (
84         X_ROWID                                =>l_rowid,
85         X_APPLICATION_ID                       =>p_rich_messages_rec.application_id,
86         X_MESSAGE_TEXT                         =>p_message_text,
87         X_MESSAGE_NAME                         =>p_rich_messages_rec.MESSAGE_NAME,
88         X_CREATED_BY_MODULE                    =>p_rich_messages_rec.created_by_module
89     );
90 
91 
92 
93 END;
94 
95 /*===========================================================================+
96  | PROCEDURE
97  |              do_update_rich_messages
98  |
99  | DESCRIPTION
100  |              Updates Rich Text Messages
101  |
102  | SCOPE - PRIVATE
103  |
104  | EXETERNAL PROCEDURES/FUNCTIONS ACCESSED
105  |
106  | ARGUMENTS  : IN:
107  |              OUT:
108  |          IN/ OUT:
109  |                    p_rich_messages_rec
110  |                    p_object_version_number
111  |                    x_return_status
112  |
113  | RETURNS    : NONE
114  |
115  | NOTES
116  |
117  | MODIFICATION HISTORY
118  |
119  +===========================================================================*/
120 
121 PROCEDURE do_update_rich_messages(
122     p_rich_messages_rec         IN OUT    NOCOPY RICH_MESSAGES_REC_TYPE,
123     p_message_text              IN OUT NOCOPY CLOB,
124     p_object_version_number     IN OUT NOCOPY  NUMBER,
125     x_return_status             IN OUT NOCOPY  VARCHAR2
126 ) IS
127 
128     l_object_version_number             NUMBER;
129     l_rowid                             ROWID;
130 BEGIN
131 
132 
133     -- check whether record has been updated by another user. If not, lock it.
134     BEGIN
135         SELECT OBJECT_VERSION_NUMBER,
136                ROWID
137         INTO   l_object_version_number,
138                l_rowid
139         FROM   FUN_RICH_MESSAGES_B
140         WHERE  MESSAGE_NAME = p_rich_messages_rec.message_name
141         AND    APPLICATION_ID     = p_rich_messages_rec.application_id
142         FOR UPDATE OF MESSAGE_NAME NOWAIT;
143 
144 
145         IF NOT ((p_object_version_number is null and l_object_version_number is null)
146                 OR (p_object_version_number = l_object_version_number))
147         THEN
148 
149             FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_RECORD_CHANGED');
150             FND_MESSAGE.SET_TOKEN('TABLE', 'FUN_RICH_MESSAGES');
151             FND_MSG_PUB.ADD;
152             RAISE FND_API.G_EXC_ERROR;
153         END IF;
154 
155         p_object_version_number := nvl(l_object_version_number, 1) + 1;
156 
157     EXCEPTION WHEN NO_DATA_FOUND THEN
158         FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_NO_RECORD');
159         FND_MESSAGE.SET_TOKEN('RECORD', 'FUN_RICH_MESSAGES');
160         FND_MESSAGE.SET_TOKEN('VALUE', 'MESSAGE_NAME');
161         FND_MSG_PUB.ADD;
162         RAISE FND_API.G_EXC_ERROR;
163     END;
164 
165 
166     -- call for validations.
167     FUN_RULE_VALIDATE_PKG.validate_rich_messages(
168       'U',
169       p_rich_messages_rec,
170       l_rowid,
171       x_return_status
172     );
173 
174 
175     IF x_return_status = fnd_api.g_ret_sts_error THEN
176       RAISE fnd_api.g_exc_error;
177     END IF;
178 
179     -- call to table-handler.
180     FUN_RICH_MESSAGES_PKG.Update_Row (
181         X_APPLICATION_ID                       =>p_rich_messages_rec.application_id,
182         X_MESSAGE_TEXT                         =>p_message_text,
183         X_MESSAGE_NAME                         =>p_rich_messages_rec.message_name,
184         X_CREATED_BY_MODULE                    =>p_rich_messages_rec.created_by_module
185     );
186 
187 END;
188 
189 /**
190  * PROCEDURE create_rich_messages
191  *
192  * DESCRIPTION
193  *     Creates Riche Text Messages.
194  *
195  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
196  *
197  *
198  * ARGUMENTS
199  *   IN:
200  *     p_init_msg_list                Initialize message stack if it is set to
201  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
202  *     p_rich_messages_rec            Rich text Messages record.
203  *   IN/OUT:
204  *   OUT:
205  *     x_return_status                Return status after the call. The status can
206  *                                    be FND_API.G_RET_STS_SUCCESS (success),
207  *                                    FND_API.G_RET_STS_ERROR (error),
208  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
209  *     x_msg_count                    Number of messages in message stack.
210  *     x_msg_data                     Message text if x_msg_count is 1.
211  *
212  * NOTES
213  *
214  * MODIFICATION HISTORY
215  *
216  *   10-Sep-2004    Amulya Mishra       Created.
217  *
218  */
219 
220 PROCEDURE create_rich_messages(
221     p_init_msg_list           		 IN      VARCHAR2 := FND_API.G_FALSE,
222     p_rich_messages_rec     		 IN      RICH_MESSAGES_REC_TYPE,
223     p_message_text                       IN      CLOB,
224     x_message_name                       OUT NOCOPY    VARCHAR2,
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_rich_messages_rec       RICH_MESSAGES_REC_TYPE:= p_rich_messages_rec;
231     l_message_text                       CLOB := p_message_text;
232 
233 BEGIN
234 
235     -- standard start of API savepoint
236     SAVEPOINT create_rich_messages;
237 
238     -- initialize message list if p_init_msg_list is set to TRUE.
239     IF FND_API.to_Boolean(p_init_msg_list) THEN
240         FND_MSG_PUB.initialize;
241     END IF;
242 
243     -- initialize API return status to success.
244     x_return_status := FND_API.G_RET_STS_SUCCESS;
245 
246 
247 
248     -- call to business logic.
249     do_create_rich_messages(
250                              l_rich_messages_rec,
251                              l_rich_messages_rec.message_name,
252                              l_message_text,
253                              x_return_status);
254 
255 
256     -- standard call to get message count and if count is 1, get message info.
257     FND_MSG_PUB.Count_And_Get(
258                 p_encoded => FND_API.G_FALSE,
259                 p_count => x_msg_count,
260                 p_data  => x_msg_data);
261 
262 
263 EXCEPTION
264     WHEN FND_API.G_EXC_ERROR THEN
265         ROLLBACK TO create_rich_messages;
266         x_return_status := FND_API.G_RET_STS_ERROR;
267         FND_MSG_PUB.Count_And_Get(
268                                 p_encoded => FND_API.G_FALSE,
269                                 p_count => x_msg_count,
270                                 p_data  => x_msg_data);
271 
272     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
273         ROLLBACK TO create_rich_messages;
274         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
275         FND_MSG_PUB.Count_And_Get(
276                                 p_encoded => FND_API.G_FALSE,
277                                 p_count => x_msg_count,
278                                 p_data  => x_msg_data);
279 
280     WHEN OTHERS THEN
281         ROLLBACK TO create_rich_messages;
282         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
283         FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
284         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
285         FND_MSG_PUB.ADD;
286         FND_MSG_PUB.Count_And_Get(
287                                 p_encoded => FND_API.G_FALSE,
288                                 p_count => x_msg_count,
289                                 p_data  => x_msg_data);
290 END create_rich_messages;
291 
292 /**
293  * PROCEDURE update_rich_messages
294  *
295  * DESCRIPTION
296  *     Updates Rich Text Messages
297  *
298  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
299  *
300  * ARGUMENTS
301  *   IN:
302  *     p_init_msg_list                Initialize message stack if it is set to
303  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
304  *     p_rich_messages_rec            Rich Text Message record.
305  *   IN/OUT:
306  *     p_object_version_number        Used for locking the being updated record.
307  *   OUT:
308  *     x_return_status                Return status after the call. The status can
309  *                                    be FND_API.G_RET_STS_SUCCESS (success),
310  *                                    FND_API.G_RET_STS_ERROR (error),
311  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
312  *     x_msg_count                    Number of messages in message stack.
313  *     x_msg_data                     Message text if x_msg_count is 1.
314  *
315  * NOTES
316  *
317  * MODIFICATION HISTORY
318  *
319  *   10-Sep-2004    Amulya Mishra     Created.
320  *
321  */
322 
323 PROCEDURE update_rich_messages (
324     p_init_msg_list           		 IN      VARCHAR2 := FND_API.G_FALSE,
325     p_rich_messages_rec    		 IN      RICH_MESSAGES_REC_TYPE,
326     p_message_text                       IN      CLOB,
327     p_object_version_number  		 IN OUT NOCOPY  NUMBER,
328     x_return_status       		 OUT NOCOPY     VARCHAR2,
329     x_msg_count           		 OUT NOCOPY     NUMBER,
330     x_msg_data         			 OUT NOCOPY     VARCHAR2
331 ) IS
332 
333     l_rich_messages_rec                  RICH_MESSAGES_REC_TYPE := p_rich_messages_rec;
334     l_old_rich_messages_rec              RICH_MESSAGES_REC_TYPE;
335     l_message_text                       CLOB := p_message_text;
336 
337 BEGIN
338     -- standard start of API savepoint
339     SAVEPOINT update_rich_messages;
340 
341     -- initialize message list if p_init_msg_list is set to TRUE.
342     IF FND_API.to_Boolean(p_init_msg_list) THEN
343         FND_MSG_PUB.initialize;
344     END IF;
345 
346     -- initialize API return status to success.
347     x_return_status := FND_API.G_RET_STS_SUCCESS;
348 
349     -- Get old records. Will be used by business event system.
350     get_rich_messages_rec (
351         p_message_name                      => l_rich_messages_rec.message_name,
352         p_application_id                    => l_rich_messages_rec.application_id,
353         x_message_text                      => l_message_text,
354         x_rich_messages_rec                 => l_old_rich_messages_rec,
355         x_return_status                     => x_return_status,
356         x_msg_count                         => x_msg_count,
357         x_msg_data                          => x_msg_data );
358 
359     IF x_return_status = FND_API.G_RET_STS_ERROR THEN
360         RAISE FND_API.G_EXC_ERROR;
361     ELSIF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
362         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
363     END IF;
364 
365     -- call to business logic.
366     do_update_rich_messages(
367                              l_rich_messages_rec,
368                              l_message_text,
369                              p_object_version_number,
370                              x_return_status);
371 
372    IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
373 
374        -- standard call to get message count and if count is 1, get message info.
375        FND_MSG_PUB.Count_And_Get(
376                 p_encoded => FND_API.G_FALSE,
377                 p_count => x_msg_count,
378                 p_data  => x_msg_data);
379    END IF;
380 
381 
382 EXCEPTION
383     WHEN FND_API.G_EXC_ERROR THEN
384         ROLLBACK TO update_rich_messages;
385         x_return_status := FND_API.G_RET_STS_ERROR;
386         FND_MSG_PUB.Count_And_Get(
387                                 p_encoded => FND_API.G_FALSE,
388                                 p_count => x_msg_count,
389                                 p_data  => x_msg_data);
390 
391     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
392         ROLLBACK TO update_rich_messages;
393         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
394         FND_MSG_PUB.Count_And_Get(
395                                 p_encoded => FND_API.G_FALSE,
396                                 p_count => x_msg_count,
397                                 p_data  => x_msg_data);
398 
399     WHEN OTHERS THEN
400         ROLLBACK TO update_rich_messages;
401         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
402         FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
403         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
404         FND_MSG_PUB.ADD;
405         FND_MSG_PUB.Count_And_Get(
406                                 p_encoded => FND_API.G_FALSE,
407                                 p_count => x_msg_count,
408                                 p_data  => x_msg_data);
409 END update_rich_messages;
410 
411 
412 /**
413  * PROCEDURE get_rich_messages_rec
414  *
415  * DESCRIPTION
416  *     Gets Rich Text Message record.
417  *
418  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
419  *     FUN_RICH_MESSAGES_PKG.Select_Row
420  *
421  * ARGUMENTS
422  *   IN:
423  *     p_init_msg_list                Initialize message stack if it is set to
424  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
425  *     p_message_name                 Rich Text Message name.
426  *     p_application_id               Application Id
427  *     p_language_code                Language code.
428  *   IN/OUT:
429  *   OUT:
430  *     x_rich_messages_rec            Returns Rich Text Message record.
431  *     x_return_status                Return status after the call. The status can
432  *                                    be FND_API.G_RET_STS_SUCCESS (success),
433  *                                    FND_API.G_RET_STS_ERROR (error),
434  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
435  *     x_msg_count                    Number of messages in message stack.
436  *     x_msg_data                     Message text if x_msg_count is 1.
437  *
438  * NOTES
439  *
440  * MODIFICATION HISTORY
441  *
442  *   10-Sep-2004    Amulya Mishra         Created.
443  *
444  */
445 
446 PROCEDURE get_rich_messages_rec (
447     p_init_msg_list                         IN     VARCHAR2 := FND_API.G_FALSE,
448     p_message_name                          IN     VARCHAR2,
449     p_application_id                        IN     NUMBER,
450     x_message_text                          OUT    NOCOPY CLOB,
451     x_rich_messages_rec        	            OUT    NOCOPY RICH_MESSAGES_REC_TYPE,
452     x_return_status                         OUT NOCOPY    VARCHAR2,
453     x_msg_count                             OUT NOCOPY    NUMBER,
454     x_msg_data                              OUT NOCOPY    VARCHAR2
455 ) IS
456 
457 BEGIN
458 
459     --Initialize message list if p_init_msg_list is set to TRUE.
460     IF FND_API.to_Boolean(p_init_msg_list) THEN
461         FND_MSG_PUB.initialize;
462     END IF;
463 
464     --Initialize API return status to success.
465     x_return_status := FND_API.G_RET_STS_SUCCESS;
466 
467     --Check whether primary key has been passed in.
468     IF p_message_name IS NULL OR
469        p_message_name = FND_API.G_MISS_CHAR THEN
470         FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_MISSING_COLUMN' );
471         FND_MESSAGE.SET_TOKEN( 'COLUMN', 'p_message_name' );
472         FND_MSG_PUB.ADD;
473         RAISE FND_API.G_EXC_ERROR;
474     END IF;
475 
476 
477     x_rich_messages_rec.message_name := p_message_name;
478     x_rich_messages_rec.application_id := p_application_id;
479 
480     FUN_RICH_MESSAGES_PKG.Select_Row (
481 	X_APPLICATION_ID                       =>x_rich_messages_rec.application_id,
482 	X_MESSAGE_NAME                         =>x_rich_messages_rec.message_name,
483 	X_MESSAGE_TEXT                         =>x_message_text,
484 	X_CREATED_BY_MODULE                    =>x_rich_messages_rec.created_by_module
485     );
486 
487 
488     --Standard call to get message count and if count is 1, get message info.
489     FND_MSG_PUB.Count_And_Get(
490         p_encoded => FND_API.G_FALSE,
491         p_count => x_msg_count,
492         p_data  => x_msg_data );
493 
494 EXCEPTION
495     WHEN FND_API.G_EXC_ERROR THEN
496         x_return_status := FND_API.G_RET_STS_ERROR;
497 
498         FND_MSG_PUB.Count_And_Get(
499             p_encoded => FND_API.G_FALSE,
500             p_count => x_msg_count,
501             p_data  => x_msg_data );
502 
503     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
504         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
505 
506         FND_MSG_PUB.Count_And_Get(
507             p_encoded => FND_API.G_FALSE,
508             p_count => x_msg_count,
509             p_data  => x_msg_data );
510 
511     WHEN OTHERS THEN
512         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
513 
514         FND_MESSAGE.SET_NAME( 'FUN', 'FUN_RULE_API_OTHERS_EXCEP' );
515         FND_MESSAGE.SET_TOKEN( 'ERROR' ,SQLERRM );
516         FND_MSG_PUB.ADD;
517 
518         FND_MSG_PUB.Count_And_Get(
519             p_encoded => FND_API.G_FALSE,
520             p_count => x_msg_count,
521             p_data  => x_msg_data );
522 
523 END get_rich_messages_rec;
524 
525 /**
526  * PROCEDURE delete_RICH_MESSAGES
527  *
528  * DESCRIPTION
529  *     Deletes Rich Text Message.
530  *
531  * EXTERNAL PROCEDURES/FUNCTIONS ACCESSED
532  *
533  *
534  * ARGUMENTS
535  *   IN:
536  *     p_init_msg_list                Initialize message stack if it is set to
537  *                                    FND_API.G_TRUE. Default is FND_API.G_FALSE.
538  *     p_message_name                 Message Name.
539  *     p_application_id               Application Id
540  *   IN/OUT:
541  *   OUT:
542  *     x_return_status                Return status after the call. The status can
543  *                                    be FND_API.G_RET_STS_SUCCESS (success),
544  *                                    FND_API.G_RET_STS_ERROR (error),
545  *                                    FND_API.G_RET_STS_UNEXP_ERROR (unexpected error).
546  *     x_msg_count                    Number of messages in message stack.
547  *     x_msg_data                     Message text if x_msg_count is 1.
548  *
549  * NOTES
550  *
551  * MODIFICATION HISTORY
552  *
553  *   10-Sep-2004    Amulya Mishra       Created.
554  *
555  */
556 
557 PROCEDURE delete_RICH_MESSAGES(
558     p_init_msg_list           IN        VARCHAR2 := FND_API.G_FALSE,
559     p_message_name            IN        VARCHAR2,
560     p_language_code           IN        VARCHAR2,
561     p_application_id	      IN        NUMBER,
562     x_return_status           OUT NOCOPY       VARCHAR2,
563     x_msg_count               OUT NOCOPY       NUMBER,
564     x_msg_data                OUT NOCOPY       VARCHAR2
565 ) IS
566 
567 
568 BEGIN
569 
570     -- initialize message list if p_init_msg_list is set to TRUE.
571     IF FND_API.to_Boolean(p_init_msg_list) THEN
572         FND_MSG_PUB.initialize;
573     END IF;
574 
575     -- initialize API return status to success.
576     x_return_status := FND_API.G_RET_STS_SUCCESS;
577 
578     -- call to table-handler.
579     FUN_RICH_MESSAGES_PKG.Delete_Row (
580         X_MESSAGE_NAME                     =>p_message_name,
581         X_APPLICATION_ID                   =>p_application_id
582     );
583 
584     -- standard call to get message count and if count is 1, get message info.
585     FND_MSG_PUB.Count_And_Get(
586                 p_encoded => FND_API.G_FALSE,
587                 p_count => x_msg_count,
588                 p_data  => x_msg_data);
589 
590 
591 
592 EXCEPTION
593     WHEN FND_API.G_EXC_ERROR THEN
594         ROLLBACK TO delete_rich_messages;
595         x_return_status := FND_API.G_RET_STS_ERROR;
596         FND_MSG_PUB.Count_And_Get(
597                                 p_encoded => FND_API.G_FALSE,
598                                 p_count => x_msg_count,
599                                 p_data  => x_msg_data);
600 
601     WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
602         ROLLBACK TO delete_rich_messages;
603         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
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 
609     WHEN OTHERS THEN
610         ROLLBACK TO delete_rich_messages;
611         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
612         FND_MESSAGE.SET_NAME('FUN', 'FUN_RULE_API_OTHERS_EXCEP');
613         FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
614         FND_MSG_PUB.ADD;
615         FND_MSG_PUB.Count_And_Get(
616                                 p_encoded => FND_API.G_FALSE,
617                                 p_count => x_msg_count,
618                                 p_data  => x_msg_data);
619 END delete_rich_messages;
620 
621 
622 END FUN_RICH_MESSAGES_PUB;