DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_LISTHEADER_PUB

Source


1 Package Body AMS_LISTHEADER_PUB AS
2 /* $Header: amsplshb.pls 115.18 2002/11/22 08:54:16 jieli ship $ */
3 
4 
5 g_pkg_name  CONSTANT VARCHAR2(30):='AMS_LISTHEADER_PUB';
6 
7 -- Start of Comments
8 --
9 -- NAME
10 --   Create_ListHeader
11 --
12 -- PURPOSE
13 --   This procedure creates a list header record that satisfy caller needs
14 --
15 -- NOTES
16 --
17 --
18 -- HISTORY
19 --   05/12/1999        tdonohoe            created
20 -- End of Comments
21 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
22 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
23 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
24 
25 PROCEDURE Create_ListHeader
26 ( p_api_version              IN     NUMBER,
27   p_init_msg_list            IN     VARCHAR2    := FND_API.G_FALSE,
28   p_commit                   IN     VARCHAR2    := FND_API.G_FALSE,
29   p_validation_level         IN     NUMBER      := FND_API.g_valid_level_full,
30   x_return_status            OUT NOCOPY    VARCHAR2,
31   x_msg_count                OUT NOCOPY    NUMBER,
32   x_msg_data                 OUT NOCOPY    VARCHAR2,
33   p_listheader_rec           IN     AMS_LISTHEADER_PVT.list_header_rec_type,
34   x_listheader_id            OUT NOCOPY    NUMBER
35 )  IS
36 
37   l_api_name            CONSTANT VARCHAR2(30)  := 'Create_ListHeader';
38   l_api_version         CONSTANT NUMBER        := 1.0;
39   l_return_status       VARCHAR2(1);
40   l_listheader_rec      AMS_LISTHEADER_PVT.list_header_rec_type := p_listheader_rec;
41 
42 BEGIN
43 
44    SAVEPOINT create_listheader_pub;
45    -- initialize the message list;
46    -- won't do it again when calling private API
47    IF FND_API.to_boolean(p_init_msg_list) THEN
48       FND_MSG_PUB.initialize;
49    END IF;
50 
51    --call private API procedure.
52    AMS_LISTHEADER_PVT.Create_ListHeader
53    ( p_api_version         => p_api_version,
54      p_init_msg_list       => FND_API.G_FALSE,
55      p_commit              => FND_API.G_FALSE,
56      p_validation_level    => FND_API.g_valid_level_full,
57      x_return_status       => l_return_status,
58      x_msg_count           => x_msg_count,
59      x_msg_data            => x_msg_data,
60      p_listheader_rec      => l_listheader_rec,
61      x_listheader_id       => x_listheader_id);
62 
63 
64    IF l_return_status = FND_API.g_ret_sts_error THEN
65       RAISE FND_API.g_exc_error;
66    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
67       RAISE FND_API.g_exc_unexpected_error;
68    END IF;
69 
70    IF FND_API.to_boolean(p_commit) THEN
71       COMMIT;
72    END IF;
73    x_return_status := FND_API.g_ret_sts_success;
74    FND_MSG_PUB.count_and_get(
75          p_encoded => FND_API.g_false,
76          p_count   => x_msg_count,
77          p_data    => x_msg_data
78    );
79 
80 EXCEPTION
81 
82    WHEN FND_API.g_exc_error THEN
83       ROLLBACK TO create_listheader_pub;
84       x_return_status := FND_API.g_ret_sts_error;
85       FND_MSG_PUB.count_and_get(
86             p_encoded => FND_API.g_false,
87             p_count   => x_msg_count,
88             p_data    => x_msg_data
89       );
90 
91    WHEN FND_API.g_exc_unexpected_error THEN
92       ROLLBACK TO create_listheader_pub;
93       x_return_status := FND_API.g_ret_sts_unexp_error ;
94       FND_MSG_PUB.count_and_get(
95             p_encoded => FND_API.g_false,
96             p_count   => x_msg_count,
97             p_data    => x_msg_data
98       );
99 
100 
101    WHEN OTHERS THEN
102       ROLLBACK TO create_listheader_pub;
103       x_return_status := FND_API.g_ret_sts_unexp_error ;
104 
105       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
106          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
107       END IF;
108 
109       FND_MSG_PUB.count_and_get(
110             p_encoded => FND_API.g_false,
111             p_count   => x_msg_count,
112             p_data    => x_msg_data
113       );
114 End Create_ListHeader;
115 
116 
117 
118 
119 -- Start of Comments
120 --
121 -- NAME
122 --   Update_listheader
123 --
124 -- PURPOSE
125 --   This procedure is to update a List Header record that satisfy caller needs
126 --
127 -- NOTES
128 --
129 --
130 -- HISTORY
131 --   05/12/1999        tdonohoe            created
132 -- End of Comments
133 
134 PROCEDURE Update_ListHeader
135 ( p_api_version            IN     NUMBER,
136   p_init_msg_list          IN     VARCHAR2    := FND_API.G_FALSE,
137   p_commit                 IN     VARCHAR2    := FND_API.G_FALSE,
138   p_validation_level       IN     NUMBER      := FND_API.G_VALID_LEVEL_FULL,
139   x_return_status          OUT NOCOPY    VARCHAR2,
140   x_msg_count              OUT NOCOPY    NUMBER,
141   x_msg_data               OUT NOCOPY    VARCHAR2,
142   p_listheader_rec         IN     AMS_LISTHEADER_PVT.list_header_rec_type
143  ) IS
144 
145   l_api_name             CONSTANT VARCHAR2(30)  := 'Update_ListHeader';
146   l_api_version          CONSTANT NUMBER        := 1.0;
147 
148   -- Status Local Variables
149   l_return_status        VARCHAR2(1);  -- Return value from procedures
150   l_listheader_rec       AMS_LISTHEADER_PVT.list_header_rec_type := p_listheader_rec;
151 
152 Begin
153 
154   SAVEPOINT update_listheader_pub;
155   -- initialize the message list;
156   -- won't do it again when calling private API
157   IF FND_API.to_boolean(p_init_msg_list) THEN
158      FND_MSG_PUB.initialize;
159   END IF;
160 
161   AMS_LISTHEADER_PVT.Update_ListHeader
162   ( p_api_version      =>  p_api_version ,
163     p_init_msg_list    =>  FND_API.G_FALSE,
164     p_commit           =>  FND_API.G_FALSE,
165     p_validation_level =>  FND_API.G_VALID_LEVEL_FULL,
166     x_return_status    =>  l_return_status,
167     x_msg_count        =>  x_msg_count,
168     x_msg_data         =>  x_msg_data,
169     p_listheader_rec   =>  l_listheader_rec );
170 
171 
172   IF l_return_status = FND_API.g_ret_sts_error THEN
173      RAISE FND_API.g_exc_error;
174   ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
175      RAISE FND_API.g_exc_unexpected_error;
176   END IF;
177 
178 
179   IF FND_API.to_boolean(p_commit) THEN
180      COMMIT;
181   END IF;
182 
183 
184    x_return_status := FND_API.g_ret_sts_success;
185    FND_MSG_PUB.count_and_get(
186          p_encoded => FND_API.g_false,
187          p_count   => x_msg_count,
188          p_data    => x_msg_data
189    );
190 
191 EXCEPTION
192 
193    WHEN FND_API.g_exc_error THEN
194       ROLLBACK TO  update_listheader_pub;
195       x_return_status := FND_API.g_ret_sts_error;
196       FND_MSG_PUB.count_and_get
197       (
198             p_encoded => FND_API.g_false,
199             p_count   => x_msg_count,
200             p_data    => x_msg_data
201       );
202 
203    WHEN FND_API.g_exc_unexpected_error THEN
204       ROLLBACK TO  update_listheader_pub;
205       x_return_status := FND_API.g_ret_sts_unexp_error ;
206       FND_MSG_PUB.count_and_get(
207             p_encoded => FND_API.g_false,
208             p_count   => x_msg_count,
209             p_data    => x_msg_data
210       );
211 
212 
213    WHEN OTHERS THEN
214       ROLLBACK TO  update_listheader_pub;
215       x_return_status := FND_API.g_ret_sts_unexp_error ;
216       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
217         THEN
218          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
219       END IF;
220 
221       FND_MSG_PUB.count_and_get(
222             p_encoded => FND_API.g_false,
223             p_count   => x_msg_count,
224             p_data    => x_msg_data
225       );
226 End Update_ListHeader;
227 
228 -- Start of Comments
229 --
230 -- NAME
231 --   Delete_listheader
232 --
233 -- PURPOSE
234 --   This procedure deletes a list header record that satisfy caller needs
235 --
236 -- NOTES
237 -- Deletes from The following tables Ams_List_Src_Type_Usages,
238 --                                   Ams_List_Rule_Usages,
239 --                                   Ams_List_Entries,
240 --                                   Ams_List_Select_Actions
241 --                                   Ams_List_Headers_All.
242 --
243 -- HISTORY
244 --   05/12/1999        tdonohoe            created
245 -- End of Comments
246 PROCEDURE Delete_ListHeader
247 ( p_api_version            IN     NUMBER,
248   p_init_msg_list          IN     VARCHAR2    := FND_API.G_FALSE,
249   p_commit                 IN     VARCHAR2    := FND_API.G_FALSE,
250   p_validation_level       IN     NUMBER      := FND_API.G_VALID_LEVEL_FULL,
251   x_return_status          OUT NOCOPY    VARCHAR2,
252   x_msg_count              OUT NOCOPY    NUMBER,
253   x_msg_data               OUT NOCOPY    VARCHAR2,
254   p_listheader_id          IN     number) IS
255 
256   l_api_name            CONSTANT VARCHAR2(30)  := 'Delete_ListHeader';
257   l_api_version         CONSTANT NUMBER        := 1.0;
258 
259   -- Status Local Variables
260   l_return_status                VARCHAR2(1);  -- Return value from procedures
261   l_listheader_id                NUMBER   := p_listheader_id;
262   l_return_val                   VARCHAR2(1);
263 
264 BEGIN
265 
266   SAVEPOINT delete_listheader_pub;
267 
268      -- initialize the message list;
269      -- won't do it again when calling private API
270      IF FND_API.to_boolean(p_init_msg_list) THEN
271           FND_MSG_PUB.initialize;
272      END IF;
273 
274       AMS_LISTHEADER_PVT.Delete_ListHeader
275       ( p_api_version       => p_api_version,
276         p_init_msg_list     => FND_API.G_FALSE,
277         p_commit            => FND_API.G_FALSE,
278         p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
279         x_return_status     => l_return_status,
280         x_msg_count         => x_msg_count,
281         x_msg_data          => x_msg_data ,
282         p_listheader_id     => l_listheader_id);
283 
284      IF l_return_status = FND_API.g_ret_sts_error THEN
285            RAISE FND_API.g_exc_error;
286      ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
287            RAISE FND_API.g_exc_unexpected_error;
288      END IF;
289 
290      IF FND_API.to_boolean(p_commit) THEN
291       COMMIT;
292      END IF;
293 
294      x_return_status := FND_API.g_ret_sts_success;
295      FND_MSG_PUB.count_and_get(
296          p_encoded => FND_API.g_false,
297          p_count   => x_msg_count,
298          p_data    => x_msg_data);
299 
300 
301 EXCEPTION
302 
303    WHEN FND_API.g_exc_error THEN
304       ROLLBACK TO delete_listheader_pub;
305       x_return_status := FND_API.g_ret_sts_error;
306       FND_MSG_PUB.count_and_get(
307             p_encoded => FND_API.g_false,
308             p_count   => x_msg_count,
309             p_data    => x_msg_data
310       );
311 
312    WHEN FND_API.g_exc_unexpected_error THEN
313       ROLLBACK TO delete_listheader_pub;
314       x_return_status := FND_API.g_ret_sts_unexp_error ;
315       FND_MSG_PUB.count_and_get(
316             p_encoded => FND_API.g_false,
317             p_count   => x_msg_count,
318             p_data    => x_msg_data
319       );
320 
321 
322    WHEN OTHERS THEN
323       ROLLBACK TO delete_listheader_pub;
324       x_return_status := FND_API.g_ret_sts_unexp_error ;
325 
326       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
327         THEN
328          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
329       END IF;
330 
331       FND_MSG_PUB.count_and_get(
332             p_encoded => FND_API.g_false,
333             p_count   => x_msg_count,
334             p_data    => x_msg_data
335       );
336 
337 END delete_listheader;
338 
339 -- Start of Comments
340 --
341 -- NAME
342 --   Lock_listheader
343 --
344 -- PURPOSE
345 --   This procedure is to lock a list header record that satisfy caller needs
346 --
347 -- NOTES
348 --
349 --
350 -- HISTORY
351 --   05/13/1999        tdonohoe            created
352 -- End of Comments
353 
354 
355 PROCEDURE Lock_ListHeader
356 ( p_api_version              IN     NUMBER,
357   p_init_msg_list            IN     VARCHAR2    := FND_API.G_FALSE,
358   p_validation_level         IN     NUMBER      := FND_API.G_VALID_LEVEL_FULL,
359   x_return_status            OUT NOCOPY    VARCHAR2,
360   x_msg_count                OUT NOCOPY    NUMBER,
361   x_msg_data                 OUT NOCOPY    VARCHAR2,
362   p_listheader_id            IN     NUMBER,
363   p_object_version           IN     NUMBER
364 ) IS
365 
366   l_api_name            CONSTANT VARCHAR2(30)  := 'Lock_ListHeader';
367   l_api_version         CONSTANT NUMBER        := 1.0;
368   l_full_name           CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
369 
370   l_return_status                VARCHAR2(1);
371   l_listheader_id                NUMBER := p_listheader_id;
372   l_object_version               NUMBER := p_object_version;
373 
374 
375 Begin
376 
377    SAVEPOINT lock_listheader_pub;
378 
379    -- initialize the message list;
380    -- won't do it again when calling private API
381    IF FND_API.to_boolean(p_init_msg_list) THEN
382       FND_MSG_PUB.initialize;
383    END IF;
384 
385     AMS_LISTHEADER_PVT.Lock_ListHeader
386     ( p_api_version       => p_api_version,
387       p_init_msg_list     => FND_API.G_FALSE,
388       p_validation_level  => FND_API.G_VALID_LEVEL_FULL,
389       x_return_status     => l_return_status,
390       x_msg_count         => x_msg_count ,
391       x_msg_data          => x_msg_data,
392       p_listheader_id     => l_listheader_id ,
393       p_object_version    => l_object_version);
394 
395    IF l_return_status = FND_API.g_ret_sts_error THEN
396       RAISE FND_API.g_exc_error;
397    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
398       RAISE FND_API.g_exc_unexpected_error;
399    END IF;
400 
401    x_return_status := FND_API.g_ret_sts_success;
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    );
407 
408 EXCEPTION
409 
410    WHEN FND_API.g_exc_error THEN
411       ROLLBACK TO lock_ListHeader_pub;
412       x_return_status := FND_API.g_ret_sts_error;
413       FND_MSG_PUB.count_and_get(
414             p_encoded => FND_API.g_false,
415             p_count   => x_msg_count,
416             p_data    => x_msg_data
417       );
418 
419    WHEN FND_API.g_exc_unexpected_error THEN
420       ROLLBACK TO lock_ListHeader_pub;
421       x_return_status := FND_API.g_ret_sts_unexp_error ;
422       FND_MSG_PUB.count_and_get(
423             p_encoded => FND_API.g_false,
424             p_count   => x_msg_count,
425             p_data    => x_msg_data
426       );
427 
428 
429    WHEN OTHERS THEN
430       ROLLBACK TO lock_ListHeader_pub;
431       x_return_status := FND_API.g_ret_sts_unexp_error ;
432 
433       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
434          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
435       END IF;
436 
437       FND_MSG_PUB.count_and_get(
438             p_encoded => FND_API.g_false,
442 End Lock_ListHeader;
439             p_count   => x_msg_count,
440             p_data    => x_msg_data
441       );
443 
444 -- Start of Comments
445 ---------------------------------------------------------------------
446 -- PROCEDURE
447 --    Validate_ListHeader
448 --
449 -- PURPOSE
450 --    Validate a List Header Record.
451 --
452 -- PARAMETERS
453 --    p_listheader_rec: the list header record to be validated
454 --
455 -- NOTES
456 --    1. p_listheader_rec_rec should be the complete list header record. There
457 --       should not be any FND_API.g_miss_char/num/date in it.
458 ----------------------------------------------------------------------
459 -- End Of Comments
460 
461 
462 PROCEDURE Validate_ListHeader
463 ( p_api_version            IN     NUMBER,
464   p_init_msg_list          IN     VARCHAR2    := FND_API.G_FALSE,
465   p_validation_level       IN     NUMBER      := FND_API.g_valid_level_full,
466   x_return_status          OUT NOCOPY    VARCHAR2,
467   x_msg_count              OUT NOCOPY    NUMBER,
468   x_msg_data               OUT NOCOPY    VARCHAR2,
469   p_listheader_rec         IN     ams_listheader_pvt.list_header_rec_type
470 )  IS
471 
472   l_api_name            CONSTANT VARCHAR2(30)  := 'Validate_ListHeader';
473   l_api_version         CONSTANT NUMBER        := 1.0;
474 
475      -- Status Local Variables
476   l_return_status      VARCHAR2(1);  -- Return value from procedures
477   l_listheader_rec     ams_listheader_pvt.list_header_rec_type := p_listheader_rec;
478   l_listheader_id      number;
479 BEGIN
480 
481   SAVEPOINT validate_listheader_pub;
482 
483    -- initialize the message list;
484    -- won't do it again when calling private API
485    IF FND_API.to_boolean(p_init_msg_list) THEN
486       FND_MSG_PUB.initialize;
487    END IF;
488 
489    AMS_LISTHEADER_PVT.Validate_ListHeader
490    ( p_api_version        => p_api_version,
491         p_init_msg_list      => FND_API.G_FALSE,
492         p_validation_level   => FND_API.g_valid_level_full,
493         x_return_status      => l_return_status,
494         x_msg_count          => x_msg_count,
495         x_msg_data           => x_msg_data,
496         p_listheader_rec     => l_listheader_rec);
497 
498    IF l_return_status = FND_API.g_ret_sts_error THEN
499       RAISE FND_API.g_exc_error;
500    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
501       RAISE FND_API.g_exc_unexpected_error;
502    END IF;
503 
504    x_return_status := FND_API.g_ret_sts_success;
505    FND_MSG_PUB.count_and_get(
506          p_encoded => FND_API.g_false,
507          p_count   => x_msg_count,
508          p_data    => x_msg_data
509    );
510 
511 EXCEPTION
512 
513    WHEN FND_API.g_exc_error THEN
514       ROLLBACK TO validate_listheader_pub;
515       x_return_status := FND_API.g_ret_sts_error;
516       FND_MSG_PUB.count_and_get(
517             p_encoded => FND_API.g_false,
518             p_count   => x_msg_count,
519             p_data    => x_msg_data
520       );
521 
522    WHEN FND_API.g_exc_unexpected_error THEN
523       ROLLBACK TO validate_listheader_pub;
524       x_return_status := FND_API.g_ret_sts_unexp_error ;
525       FND_MSG_PUB.count_and_get(
526             p_encoded => FND_API.g_false,
527             p_count   => x_msg_count,
528             p_data    => x_msg_data
529       );
530 
531 
532    WHEN OTHERS THEN
533       ROLLBACK TO validate_listheader_pub;
534       x_return_status := FND_API.g_ret_sts_unexp_error ;
535 
536       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
537         THEN
538          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
539       END IF;
540 
541       FND_MSG_PUB.count_and_get(
542             p_encoded => FND_API.g_false,
543             p_count   => x_msg_count,
544             p_data    => x_msg_data
545       );
546 
547 END validate_listheader;
548 
549 PROCEDURE Copy_List
550 ( p_api_version              IN     NUMBER,
551   p_init_msg_list            IN     VARCHAR2  := FND_API.G_FALSE,
552   p_commit                   IN     VARCHAR2  := FND_API.G_FALSE,
553   p_validation_level         IN     NUMBER    := FND_API.g_valid_level_full,
554   x_return_status            OUT NOCOPY    VARCHAR2,
555   x_msg_count                OUT NOCOPY    NUMBER,
556   x_msg_data                 OUT NOCOPY    VARCHAR2,
557   p_source_listheader_id     IN     NUMBER,
558   p_listheader_rec           IN     AMS_LISTHEADER_PVT.list_header_rec_type,
559   p_copy_select_actions      IN     VARCHAR2  := 'Y',
560   p_copy_list_queries        IN     VARCHAR2  := 'Y',
561   p_copy_list_entries        IN     VARCHAR2  := 'Y',
562 
563   x_listheader_id            OUT NOCOPY    NUMBER
564 )IS
565 
566   l_api_name            CONSTANT VARCHAR2(30)  := 'Copy_List';
567   l_api_version         CONSTANT NUMBER        := 1.0;
568   l_return_status       VARCHAR2(1);
569   l_listheader_rec      AMS_LISTHEADER_PVT.list_header_rec_type := p_listheader_rec;
570 
571 BEGIN
572 
573    SAVEPOINT copy_list_pub;
574    -- initialize the message list;
575    -- won't do it again when calling private API
576    IF FND_API.to_boolean(p_init_msg_list) THEN
577       FND_MSG_PUB.initialize;
578    END IF;
579 
580    --call private API procedure.
581    AMS_LISTHEADER_PVT.Copy_List
582    ( p_api_version         => p_api_version,
583      p_init_msg_list       => FND_API.G_FALSE,
584      p_commit              => FND_API.G_FALSE,
585      p_validation_level    => FND_API.g_valid_level_full,
586      x_return_status       => l_return_status,
587      x_msg_count           => x_msg_count,
588      x_msg_data            => x_msg_data,
589      p_source_listheader_id =>p_source_listheader_id,
590      p_listheader_rec      => l_listheader_rec,
591      p_copy_select_actions =>p_copy_select_actions,
592      p_copy_list_queries  =>p_copy_list_queries,
593      p_copy_list_entries =>p_copy_list_entries,
594      x_listheader_id       => x_listheader_id);
595 
596 
597    IF l_return_status = FND_API.g_ret_sts_error THEN
598       RAISE FND_API.g_exc_error;
599    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
600       RAISE FND_API.g_exc_unexpected_error;
601    END IF;
602 
603    IF FND_API.to_boolean(p_commit) THEN
604       COMMIT;
605    END IF;
606    x_return_status := FND_API.g_ret_sts_success;
607    FND_MSG_PUB.count_and_get(
608          p_encoded => FND_API.g_false,
609          p_count   => x_msg_count,
610          p_data    => x_msg_data
611    );
612 
613 EXCEPTION
614 
615    WHEN FND_API.g_exc_error THEN
616       ROLLBACK TO copy_list_pub;
617       x_return_status := FND_API.g_ret_sts_error;
618       FND_MSG_PUB.count_and_get(
619             p_encoded => FND_API.g_false,
620             p_count   => x_msg_count,
621             p_data    => x_msg_data
622       );
623 
624    WHEN FND_API.g_exc_unexpected_error THEN
625       ROLLBACK TO copy_list_pub;
626       x_return_status := FND_API.g_ret_sts_unexp_error ;
627       FND_MSG_PUB.count_and_get(
628             p_encoded => FND_API.g_false,
629             p_count   => x_msg_count,
630             p_data    => x_msg_data
631       );
632 
633 
634    WHEN OTHERS THEN
635       ROLLBACK TO copy_list_pub;
636       x_return_status := FND_API.g_ret_sts_unexp_error ;
637 
638       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
639          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
640       END IF;
641 
642       FND_MSG_PUB.count_and_get(
643             p_encoded => FND_API.g_false,
644             p_count   => x_msg_count,
645             p_data    => x_msg_data
646       );
647 End copy_list;
648 
649 END ;--package body