DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_CAMPAIGN_PUB

Source


1 PACKAGE BODY AMS_Campaign_PUB AS
2 /* $Header: amspcpnb.pls 115.10 2002/11/16 00:42:00 dbiswas ship $ */
3 
4 
5 g_pkg_name  CONSTANT VARCHAR2(30):='AMS_Campaign_PUB';
6 
7 
8 ---------------------------------------------------------------------
9 -- PROCEDURE
10 --    create_campaign
11 --
12 -- HISTORY
13 --    10/01/99  holiu  Created.
14 ---------------------------------------------------------------------
15 PROCEDURE create_campaign(
16    p_api_version       IN  NUMBER,
17    p_init_msg_list     IN  VARCHAR2  := FND_API.g_false,
18    p_commit            IN  VARCHAR2  := FND_API.g_false,
19    p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full,
20 
21    x_return_status     OUT NOCOPY VARCHAR2,
22    x_msg_count         OUT NOCOPY NUMBER,
23    x_msg_data          OUT NOCOPY VARCHAR2,
24 
25    p_camp_rec          IN  AMS_Campaign_PVT.camp_rec_type,
26    x_camp_id           OUT NOCOPY NUMBER
27 )
28 IS
29 
30    l_api_name       CONSTANT VARCHAR2(30) := 'create_campaign';
31    l_return_status  VARCHAR2(1);
32    l_camp_rec       AMS_Campaign_PVT.camp_rec_type := p_camp_rec;
33 
34 BEGIN
35 
36    SAVEPOINT create_campaign_pub;
37 
38    -- initialize the message list;
39    -- won't do it again when calling private API
40    IF FND_API.to_boolean(p_init_msg_list) THEN
41       FND_MSG_PUB.initialize;
42    END IF;
43 
44    -- customer pre-processing
45    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
46    THEN
47       AMS_Campaign_CUHK.create_campaign_pre(
48          l_camp_rec,
49          l_return_status
50       );
51 
52       IF l_return_status = FND_API.g_ret_sts_error THEN
53          RAISE FND_API.g_exc_error;
54       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
55          RAISE FND_API.g_exc_unexpected_error;
56       END IF;
57    END IF;
58 
59    -- vertical industry pre-processing
60    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
61    THEN
62       AMS_Campaign_VUHK.create_campaign_pre(
63          l_camp_rec,
64          l_return_status
65       );
66 
67       IF l_return_status = FND_API.g_ret_sts_error THEN
68          RAISE FND_API.g_exc_error;
69       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
70          RAISE FND_API.g_exc_unexpected_error;
71       END IF;
72    END IF;
73 
74    -- call business API
75    AMS_Campaign_PVT.create_campaign(
76       p_api_version      => p_api_version,
77       p_init_msg_list    => FND_API.g_false, --has done before
78       p_commit           => FND_API.g_false, -- will do after
79       p_validation_level => p_validation_level,
80 
81       x_return_status    => l_return_status,
82       x_msg_count        => x_msg_count,
83       x_msg_data         => x_msg_data,
84 
85       p_camp_rec         => l_camp_rec,
86       x_camp_id          => x_camp_id
87    );
88 
89    IF l_return_status = FND_API.g_ret_sts_error THEN
90       RAISE FND_API.g_exc_error;
91    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
92       RAISE FND_API.g_exc_unexpected_error;
93    END IF;
94 
95    -- vertical industry post-processing
96    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
97    THEN
98       AMS_Campaign_VUHK.create_campaign_post(
99          l_camp_rec,
100          x_camp_id,
101          l_return_status
102       );
103 
104       IF l_return_status = FND_API.g_ret_sts_error THEN
105          RAISE FND_API.g_exc_error;
106       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
107          RAISE FND_API.g_exc_unexpected_error;
108       END IF;
109    END IF;
110 
111    -- customer post-processing
112    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
113    THEN
114       AMS_Campaign_CUHK.create_campaign_post(
115          l_camp_rec,
116          x_camp_id,
117          l_return_status
118       );
119 
120       IF l_return_status = FND_API.g_ret_sts_error THEN
121          RAISE FND_API.g_exc_error;
122       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
123          RAISE FND_API.g_exc_unexpected_error;
124       END IF;
125    END IF;
126 
127    IF FND_API.to_boolean(p_commit) THEN
128       COMMIT;
129    END IF;
130    x_return_status := FND_API.g_ret_sts_success;
131    FND_MSG_PUB.count_and_get(
132          p_encoded => FND_API.g_false,
133          p_count   => x_msg_count,
134          p_data    => x_msg_data
135    );
136 
137 EXCEPTION
138 
139    WHEN FND_API.g_exc_error THEN
140       ROLLBACK TO create_campaign_pub;
141       x_return_status := FND_API.g_ret_sts_error;
142       FND_MSG_PUB.count_and_get(
143             p_encoded => FND_API.g_false,
144             p_count   => x_msg_count,
145             p_data    => x_msg_data
146       );
147 
148    WHEN FND_API.g_exc_unexpected_error THEN
149       ROLLBACK TO create_campaign_pub;
150       x_return_status := FND_API.g_ret_sts_unexp_error ;
151       FND_MSG_PUB.count_and_get(
152             p_encoded => FND_API.g_false,
153             p_count   => x_msg_count,
154             p_data    => x_msg_data
155       );
156 
157 
158    WHEN OTHERS THEN
159       ROLLBACK TO create_campaign_pub;
160       x_return_status := FND_API.g_ret_sts_unexp_error ;
161 
162       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
163 		THEN
164          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
165       END IF;
166 
167       FND_MSG_PUB.count_and_get(
168             p_encoded => FND_API.g_false,
169             p_count   => x_msg_count,
170             p_data    => x_msg_data
171       );
172 
173 END create_campaign;
174 
175 
176 ---------------------------------------------------------------------
177 -- PROCEDURE
178 --    delete_campaign
179 --
180 -- HISTORY
181 --    10/01/99  holiu  Created.
182 ---------------------------------------------------------------------
183 PROCEDURE delete_campaign(
184    p_api_version       IN  NUMBER,
185    p_init_msg_list     IN  VARCHAR2 := FND_API.g_false,
186    p_commit            IN  VARCHAR2 := FND_API.g_false,
187 
188    x_return_status     OUT NOCOPY VARCHAR2,
189    x_msg_count         OUT NOCOPY NUMBER,
190    x_msg_data          OUT NOCOPY VARCHAR2,
191 
192    p_camp_id           IN  NUMBER,
193    p_object_version    IN  NUMBER
194 )
195 IS
196 
197    l_api_name       CONSTANT VARCHAR2(30) := 'delete_campaign';
198    l_return_status  VARCHAR2(1);
199    l_camp_id        NUMBER := p_camp_id;
200    l_object_version NUMBER := p_object_version;
201 
202 BEGIN
203 
204    SAVEPOINT delete_campaign_pub;
205 
206    -- initialize the message list;
207    -- won't do it again when calling private API
208    IF FND_API.to_boolean(p_init_msg_list) THEN
209       FND_MSG_PUB.initialize;
210    END IF;
211 
212    -- customer pre-processing
213    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
214    THEN
215       AMS_Campaign_CUHK.delete_campaign_pre(
216          l_camp_id,
217          l_object_version,
218          l_return_status
219       );
220 
221       IF l_return_status = FND_API.g_ret_sts_error THEN
222          RAISE FND_API.g_exc_error;
223       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
224          RAISE FND_API.g_exc_unexpected_error;
225       END IF;
226    END IF;
227 
228    -- vertical industry pre-processing
229    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
230    THEN
231       AMS_Campaign_VUHK.delete_campaign_pre(
232          l_camp_id,
233          l_object_version,
234          l_return_status
235       );
236 
237       IF l_return_status = FND_API.g_ret_sts_error THEN
238          RAISE FND_API.g_exc_error;
239       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
240          RAISE FND_API.g_exc_unexpected_error;
241       END IF;
242    END IF;
243 
244    -- call business API
245    AMS_Campaign_PVT.delete_campaign(
246       p_api_version      => p_api_version,
247       p_init_msg_list    => FND_API.g_false, --has done before
248       p_commit           => FND_API.g_false, -- will do after
249 
250       x_return_status    => l_return_status,
251       x_msg_count        => x_msg_count,
252       x_msg_data         => x_msg_data,
253 
254       p_camp_id          => l_camp_id,
255       p_object_version   => l_object_version
256    );
257 
258    IF l_return_status = FND_API.g_ret_sts_error THEN
259       RAISE FND_API.g_exc_error;
260    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
261       RAISE FND_API.g_exc_unexpected_error;
262    END IF;
263 
264    -- vertical industry post-processing
265    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
266    THEN
267       AMS_Campaign_VUHK.delete_campaign_post(
268          l_camp_id,
269          l_object_version,
270          l_return_status
271       );
272 
273       IF l_return_status = FND_API.g_ret_sts_error THEN
274          RAISE FND_API.g_exc_error;
275       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
276          RAISE FND_API.g_exc_unexpected_error;
277       END IF;
278    END IF;
279 
280    -- customer post-processing
281    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
282    THEN
283       AMS_Campaign_CUHK.delete_campaign_post(
284          l_camp_id,
285          l_object_version,
286          l_return_status
287       );
288 
289       IF l_return_status = FND_API.g_ret_sts_error THEN
290          RAISE FND_API.g_exc_error;
291       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
292          RAISE FND_API.g_exc_unexpected_error;
293       END IF;
294    END IF;
295 
296    IF FND_API.to_boolean(p_commit) THEN
297       COMMIT;
298    END IF;
299    x_return_status := FND_API.g_ret_sts_success;
300    FND_MSG_PUB.count_and_get(
301          p_encoded => FND_API.g_false,
302          p_count   => x_msg_count,
303          p_data    => x_msg_data
304    );
305 
306 
307 EXCEPTION
308 
309    WHEN FND_API.g_exc_error THEN
310       ROLLBACK TO delete_campaign_pub;
311       x_return_status := FND_API.g_ret_sts_error;
312       FND_MSG_PUB.count_and_get(
313             p_encoded => FND_API.g_false,
314             p_count   => x_msg_count,
315             p_data    => x_msg_data
316       );
317 
318    WHEN FND_API.g_exc_unexpected_error THEN
319       ROLLBACK TO delete_campaign_pub;
320       x_return_status := FND_API.g_ret_sts_unexp_error ;
321       FND_MSG_PUB.count_and_get(
322             p_encoded => FND_API.g_false,
323             p_count   => x_msg_count,
324             p_data    => x_msg_data
325       );
326 
327 
328    WHEN OTHERS THEN
329       ROLLBACK TO delete_campaign_pub;
330       x_return_status := FND_API.g_ret_sts_unexp_error ;
331 
332       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
333 		THEN
334          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
335       END IF;
336 
337       FND_MSG_PUB.count_and_get(
338             p_encoded => FND_API.g_false,
339             p_count   => x_msg_count,
340             p_data    => x_msg_data
341       );
342 
343 END delete_campaign;
344 
345 
346 ---------------------------------------------------------------------
347 -- PROCEDURE
348 --    lock_campaign
349 --
350 -- HISTORY
351 --    10/01/99  holiu  Created.
352 ---------------------------------------------------------------------
353 PROCEDURE lock_campaign(
354    p_api_version       IN  NUMBER,
355    p_init_msg_list     IN  VARCHAR2 := FND_API.g_false,
356 
357    x_return_status     OUT NOCOPY VARCHAR2,
358    x_msg_count         OUT NOCOPY NUMBER,
359    x_msg_data          OUT NOCOPY VARCHAR2,
360 
361    p_camp_id           IN  NUMBER,
362    p_object_version    IN  NUMBER
363 )
364 IS
365 
366    l_api_name       CONSTANT VARCHAR2(30) := 'lock_campaign';
367    l_return_status  VARCHAR2(1);
368    l_camp_id        NUMBER := p_camp_id;
369    l_object_version NUMBER := p_object_version;
370 
371 BEGIN
372 
373    SAVEPOINT lock_campaign_pub;
374 
375    -- initialize the message list;
376    -- won't do it again when calling private API
377    IF FND_API.to_boolean(p_init_msg_list) THEN
378       FND_MSG_PUB.initialize;
379    END IF;
380 
381    -- customer pre-processing
382    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
383    THEN
384       AMS_Campaign_CUHK.lock_campaign_pre(
385          l_camp_id,
386          l_object_version,
387          l_return_status
388       );
389 
390       IF l_return_status = FND_API.g_ret_sts_error THEN
391          RAISE FND_API.g_exc_error;
392       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
393          RAISE FND_API.g_exc_unexpected_error;
394       END IF;
395    END IF;
396 
397    -- vertical industry pre-processing
398    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
399    THEN
400       AMS_Campaign_VUHK.lock_campaign_pre(
401          l_camp_id,
402          l_object_version,
403          l_return_status
404       );
405 
406       IF l_return_status = FND_API.g_ret_sts_error THEN
407          RAISE FND_API.g_exc_error;
408       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
409          RAISE FND_API.g_exc_unexpected_error;
410       END IF;
411    END IF;
412 
413    -- call business API
414    AMS_Campaign_PVT.lock_campaign(
415       p_api_version      => p_api_version,
416       p_init_msg_list    => FND_API.g_false, --has done before
417 
418       x_return_status    => l_return_status,
419       x_msg_count        => x_msg_count,
420       x_msg_data         => x_msg_data,
421 
422       p_camp_id          => l_camp_id,
423       p_object_version   => l_object_version
424    );
425 
426    IF l_return_status = FND_API.g_ret_sts_error THEN
427       RAISE FND_API.g_exc_error;
428    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
429       RAISE FND_API.g_exc_unexpected_error;
430    END IF;
431 
432    -- vertical industry post-processing
433    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
434    THEN
435       AMS_Campaign_VUHK.lock_campaign_post(
436          l_camp_id,
437          l_object_version,
438          l_return_status
439       );
440 
441       IF l_return_status = FND_API.g_ret_sts_error THEN
442          RAISE FND_API.g_exc_error;
443       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
444          RAISE FND_API.g_exc_unexpected_error;
445       END IF;
446    END IF;
447 
448    -- customer post-processing
449    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
450    THEN
451       AMS_Campaign_CUHK.lock_campaign_post(
452          l_camp_id,
453          l_object_version,
454          l_return_status
455       );
456 
457       IF l_return_status = FND_API.g_ret_sts_error THEN
458          RAISE FND_API.g_exc_error;
459       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
460          RAISE FND_API.g_exc_unexpected_error;
461       END IF;
462    END IF;
463 
464    x_return_status := FND_API.g_ret_sts_success;
465    FND_MSG_PUB.count_and_get(
466          p_encoded => FND_API.g_false,
467          p_count   => x_msg_count,
468          p_data    => x_msg_data
469    );
470 
471 EXCEPTION
472 
473    WHEN FND_API.g_exc_error THEN
474       ROLLBACK TO lock_campaign_pub;
475       x_return_status := FND_API.g_ret_sts_error;
476       FND_MSG_PUB.count_and_get(
477             p_encoded => FND_API.g_false,
478             p_count   => x_msg_count,
479             p_data    => x_msg_data
480       );
481 
482    WHEN FND_API.g_exc_unexpected_error THEN
483       ROLLBACK TO lock_campaign_pub;
484       x_return_status := FND_API.g_ret_sts_unexp_error ;
485       FND_MSG_PUB.count_and_get(
486             p_encoded => FND_API.g_false,
487             p_count   => x_msg_count,
488             p_data    => x_msg_data
489       );
490 
491 
492    WHEN OTHERS THEN
493       ROLLBACK TO lock_campaign_pub;
494       x_return_status := FND_API.g_ret_sts_unexp_error ;
495 
496       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
497 		THEN
498          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
499       END IF;
500 
501       FND_MSG_PUB.count_and_get(
502             p_encoded => FND_API.g_false,
503             p_count   => x_msg_count,
504             p_data    => x_msg_data
505       );
506 
507 END lock_campaign;
508 
509 
510 ---------------------------------------------------------------------
511 -- PROCEDURE
512 --    update_campaign
513 --
514 -- HISTORY
515 --    10/01/99  holiu  updated.
516 ---------------------------------------------------------------------
517 PROCEDURE update_campaign(
518    p_api_version       IN  NUMBER,
519    p_init_msg_list     IN  VARCHAR2  := FND_API.g_false,
520    p_commit            IN  VARCHAR2  := FND_API.g_false,
521    p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full,
522 
523    x_return_status     OUT NOCOPY VARCHAR2,
524    x_msg_count         OUT NOCOPY NUMBER,
525    x_msg_data          OUT NOCOPY VARCHAR2,
526 
527    p_camp_rec          IN  AMS_Campaign_PVT.camp_rec_type
528 )
529 IS
530 
531    l_api_name       CONSTANT VARCHAR2(30) := 'update_campaign';
532    l_return_status  VARCHAR2(1);
533    l_camp_rec       AMS_Campaign_PVT.camp_rec_type := p_camp_rec;
534 
535 BEGIN
536 
537    SAVEPOINT update_campaign_pub;
538 
539    -- initialize the message list;
540    -- won't do it again when calling private API
541    IF FND_API.to_boolean(p_init_msg_list) THEN
542       FND_MSG_PUB.initialize;
543    END IF;
544 
545    -- customer pre-processing
546    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
547    THEN
548       AMS_Campaign_CUHK.update_campaign_pre(
549          l_camp_rec,
550          l_return_status
551       );
552 
553       IF l_return_status = FND_API.g_ret_sts_error THEN
554          RAISE FND_API.g_exc_error;
555       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
556          RAISE FND_API.g_exc_unexpected_error;
557       END IF;
558    END IF;
559 
560    -- vertical industry pre-processing
561    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
562    THEN
563       AMS_Campaign_VUHK.update_campaign_pre(
564          l_camp_rec,
565          l_return_status
566       );
567 
568       IF l_return_status = FND_API.g_ret_sts_error THEN
569          RAISE FND_API.g_exc_error;
570       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
571          RAISE FND_API.g_exc_unexpected_error;
572       END IF;
573    END IF;
574 
575    -- call business API
576    AMS_Campaign_PVT.update_campaign(
577       p_api_version      => p_api_version,
578       p_init_msg_list    => FND_API.g_false, --has done before
579       p_commit           => FND_API.g_false, -- will do after
580       p_validation_level => p_validation_level,
581 
582       x_return_status    => l_return_status,
583       x_msg_count        => x_msg_count,
584       x_msg_data         => x_msg_data,
585 
586       p_camp_rec         => l_camp_rec
587    );
588 
589    IF l_return_status = FND_API.g_ret_sts_error THEN
590       RAISE FND_API.g_exc_error;
591    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
592       RAISE FND_API.g_exc_unexpected_error;
593    END IF;
594 
595    -- vertical industry post-processing
596    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
597    THEN
598       AMS_Campaign_VUHK.update_campaign_post(
599          l_camp_rec,
600          l_return_status
601       );
602 
603       IF l_return_status = FND_API.g_ret_sts_error THEN
604          RAISE FND_API.g_exc_error;
605       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
606          RAISE FND_API.g_exc_unexpected_error;
607       END IF;
608    END IF;
609 
610    -- customer post-processing
611    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
612    THEN
613       AMS_Campaign_CUHK.update_campaign_post(
614          l_camp_rec,
615          l_return_status
616       );
617 
618       IF l_return_status = FND_API.g_ret_sts_error THEN
619          RAISE FND_API.g_exc_error;
620       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
621          RAISE FND_API.g_exc_unexpected_error;
622       END IF;
623    END IF;
624 
625    IF FND_API.to_boolean(p_commit) THEN
626       COMMIT;
627    END IF;
628    x_return_status := FND_API.g_ret_sts_success;
629    FND_MSG_PUB.count_and_get(
630          p_encoded => FND_API.g_false,
631          p_count   => x_msg_count,
632          p_data    => x_msg_data
633    );
634 
635 EXCEPTION
636 
637    WHEN FND_API.g_exc_error THEN
638       ROLLBACK TO update_campaign_pub;
639       x_return_status := FND_API.g_ret_sts_error;
640       FND_MSG_PUB.count_and_get(
641             p_encoded => FND_API.g_false,
642             p_count   => x_msg_count,
643             p_data    => x_msg_data
644       );
645 
646    WHEN FND_API.g_exc_unexpected_error THEN
647       ROLLBACK TO update_campaign_pub;
648       x_return_status := FND_API.g_ret_sts_unexp_error ;
649       FND_MSG_PUB.count_and_get(
650             p_encoded => FND_API.g_false,
651             p_count   => x_msg_count,
652             p_data    => x_msg_data
653       );
654 
655 
656    WHEN OTHERS THEN
657       ROLLBACK TO update_campaign_pub;
658       x_return_status := FND_API.g_ret_sts_unexp_error ;
659 
660       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
661 		THEN
662          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
663       END IF;
664 
665       FND_MSG_PUB.count_and_get(
666             p_encoded => FND_API.g_false,
667             p_count   => x_msg_count,
668             p_data    => x_msg_data
669       );
670 
671 END update_campaign;
672 
673 
674 ---------------------------------------------------------------------
675 -- PROCEDURE
676 --    validate_campaign
677 --
678 -- HISTORY
679 --    10/01/99  holiu  validated.
680 ---------------------------------------------------------------------
681 PROCEDURE validate_campaign(
682    p_api_version       IN  NUMBER,
683    p_init_msg_list     IN  VARCHAR2  := FND_API.g_false,
684    p_validation_level  IN  NUMBER    := FND_API.g_valid_level_full,
685 
686    x_return_status     OUT NOCOPY VARCHAR2,
687    x_msg_count         OUT NOCOPY NUMBER,
688    x_msg_data          OUT NOCOPY VARCHAR2,
689 
690    p_camp_rec          IN  AMS_Campaign_PVT.camp_rec_type
691 )
692 IS
693 
694    l_api_name       CONSTANT VARCHAR2(30) := 'validate_campaign';
695    l_return_status  VARCHAR2(1);
696    l_camp_rec       AMS_Campaign_PVT.camp_rec_type := p_camp_rec;
697 
698 BEGIN
699 
700    SAVEPOINT validate_campaign_pub;
701 
702    -- initialize the message list;
703    -- won't do it again when calling private API
704    IF FND_API.to_boolean(p_init_msg_list) THEN
705       FND_MSG_PUB.initialize;
706    END IF;
707 
708    -- customer pre-processing
709    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'C')
710    THEN
711       AMS_Campaign_CUHK.validate_campaign_pre(
712          l_camp_rec,
713          l_return_status
714       );
715 
716       IF l_return_status = FND_API.g_ret_sts_error THEN
717          RAISE FND_API.g_exc_error;
718       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
719          RAISE FND_API.g_exc_unexpected_error;
720       END IF;
721    END IF;
722 
723    -- vertical industry pre-processing
724    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'B', 'V')
725    THEN
726       AMS_Campaign_VUHK.validate_campaign_pre(
727          l_camp_rec,
728          l_return_status
729       );
730 
731       IF l_return_status = FND_API.g_ret_sts_error THEN
732          RAISE FND_API.g_exc_error;
733       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
734          RAISE FND_API.g_exc_unexpected_error;
735       END IF;
736    END IF;
737 
738    -- call business API
739    AMS_Campaign_PVT.validate_campaign(
740       p_api_version      => p_api_version,
741       p_init_msg_list    => FND_API.g_false, --has done before
742       p_validation_level => p_validation_level,
743 
744       x_return_status    => l_return_status,
745       x_msg_count        => x_msg_count,
746       x_msg_data         => x_msg_data,
747 
748       p_camp_rec         => l_camp_rec
749    );
750 
751    IF l_return_status = FND_API.g_ret_sts_error THEN
752       RAISE FND_API.g_exc_error;
753    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
754       RAISE FND_API.g_exc_unexpected_error;
755    END IF;
756 
757    -- vertical industry post-processing
758    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'V')
759    THEN
760       AMS_Campaign_VUHK.validate_campaign_post(
761          l_camp_rec,
762          l_return_status
763       );
764 
765       IF l_return_status = FND_API.g_ret_sts_error THEN
766          RAISE FND_API.g_exc_error;
767       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
768          RAISE FND_API.g_exc_unexpected_error;
769       END IF;
770    END IF;
771 
772    -- customer post-processing
773    IF JTF_USR_HKS.ok_to_execute(g_pkg_name, l_api_name, 'A', 'C')
774    THEN
775       AMS_Campaign_CUHK.validate_campaign_post(
776          l_camp_rec,
777          l_return_status
778       );
779 
780       IF l_return_status = FND_API.g_ret_sts_error THEN
781          RAISE FND_API.g_exc_error;
782       ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
783          RAISE FND_API.g_exc_unexpected_error;
784       END IF;
785    END IF;
786 
787    x_return_status := FND_API.g_ret_sts_success;
788    FND_MSG_PUB.count_and_get(
789          p_encoded => FND_API.g_false,
790          p_count   => x_msg_count,
791          p_data    => x_msg_data
792    );
793 
794 EXCEPTION
795 
796    WHEN FND_API.g_exc_error THEN
797       ROLLBACK TO validate_campaign_pub;
798       x_return_status := FND_API.g_ret_sts_error;
799       FND_MSG_PUB.count_and_get(
800             p_encoded => FND_API.g_false,
801             p_count   => x_msg_count,
802             p_data    => x_msg_data
803       );
804 
805    WHEN FND_API.g_exc_unexpected_error THEN
806       ROLLBACK TO validate_campaign_pub;
807       x_return_status := FND_API.g_ret_sts_unexp_error ;
808       FND_MSG_PUB.count_and_get(
809             p_encoded => FND_API.g_false,
810             p_count   => x_msg_count,
811             p_data    => x_msg_data
812       );
813 
814 
815    WHEN OTHERS THEN
816       ROLLBACK TO validate_campaign_pub;
817       x_return_status := FND_API.g_ret_sts_unexp_error ;
818 
819       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
820 		THEN
821          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
822       END IF;
823 
824       FND_MSG_PUB.count_and_get(
825             p_encoded => FND_API.g_false,
826             p_count   => x_msg_count,
827             p_data    => x_msg_data
828       );
829 
830 END validate_campaign;
831 
832 
833 END AMS_Campaign_PUB;