[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;