[Home] [Help]
PACKAGE BODY: APPS.AMS_ACT_MESSAGES_PVT
Source
1 PACKAGE BODY AMS_Act_Messages_PVT AS
2 /* $Header: amsvacmb.pls 115.10 2002/11/15 21:01:42 abhola ship $ */
3
4 g_pkg_name CONSTANT VARCHAR2(30) := 'AMS_Act_Messages_PVT';
5
6 -- forward declaration of validate messages
7 AMS_DEBUG_HIGH_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
8 AMS_DEBUG_LOW_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
9 AMS_DEBUG_MEDIUM_ON boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
10
11 PROCEDURE validate_act_messages
12 (
13 p_act_msg_id IN NUMBER,
14 p_message_id IN NUMBER,
15 p_msg_used_by IN VARCHAR2,
16 p_msg_used_by_id IN NUMBER,
17 p_object_version IN NUMBER,
18
19 x_return_status OUT NOCOPY VARCHAR2
20 );
21
22
23 /****************************************************************************/
24 -- Procedure
25 -- create_act_messages
26
27 -- History
28 -- 10/28/1999 nrengasw created
29 ------------------------------------------------------------------------------
30 PROCEDURE create_act_messages
31 (
32 p_api_version IN NUMBER,
33 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
34 p_commit IN VARCHAR2 := FND_API.g_false,
35 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
36
37 x_return_status OUT NOCOPY VARCHAR2,
38 x_msg_count OUT NOCOPY NUMBER,
39 x_msg_data OUT NOCOPY VARCHAR2,
40
41 p_message_id IN NUMBER,
42 p_message_used_by IN VARCHAR2,
43 p_msg_used_by_id IN NUMBER,
44 x_act_msg_id OUT NOCOPY NUMBER
45 )
46 IS
47
48 l_api_version CONSTANT NUMBER := 1.0;
49 l_api_name CONSTANT VARCHAR2(30) := 'create_act_messages';
50 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
51
52 l_return_status VARCHAR2(1);
53 l_actm_count NUMBER;
54
55 CURSOR c_actm_seq IS
56 SELECT ams_act_messages_s.NEXTVAL
57 FROM DUAL;
58
59 BEGIN
60
61 --------------------- initialize -----------------------
62 SAVEPOINT create_act_messages;
63
64 IF (AMS_DEBUG_HIGH_ON) THEN
65
66
67
68 AMS_Utility_PVT.debug_message(l_full_name||': start');
69
70 END IF;
71
72 IF FND_API.to_boolean(p_init_msg_list) THEN
73 FND_MSG_PUB.initialize;
74 END IF;
75
76 IF NOT FND_API.compatible_api_call(
77 l_api_version,
78 p_api_version,
79 l_api_name,
80 g_pkg_name
81 ) THEN
82 RAISE FND_API.g_exc_unexpected_error;
83 END IF;
84
85 x_return_status := FND_API.g_ret_sts_success;
86
87 ----------------------- validate -----------------------
88 IF (AMS_DEBUG_HIGH_ON) THEN
89
90 AMS_Utility_PVT.debug_message(l_full_name ||': Check campaign rules');
91 END IF;
92 /*if ams_campaignrules_pvt.check_camp_attribute = FND_API.g_true
93 then */
94
95 -- get sequence
96 open c_actm_seq;
97 fetch c_actm_seq into x_act_msg_id;
98 close c_actm_seq;
99
100 IF (AMS_DEBUG_HIGH_ON) THEN
101
102
103
104 AMS_Utility_PVT.debug_message(l_full_name ||': Check validation');
105
106 END IF;
107 -- validate act messages
108 validate_act_messages
109 (
110 x_act_msg_id,
111 p_message_id ,
112 p_message_used_by,
113 p_msg_used_by_id,
114 1,
115 x_return_status
116 );
117 IF x_return_status = FND_API.g_ret_sts_unexp_error THEN
118 RAISE FND_API.g_exc_unexpected_error;
119 ELSIF x_return_status = FND_API.g_ret_sts_error THEN
120 RAISE FND_API.g_exc_error;
121 END IF;
122
123 insert into ams_act_messages
124 (act_message_id,
125 last_update_date,
126 last_updated_by,
127 creation_date,
128 created_by,
129 last_update_login,
130 object_version_number,
131 message_id,
132 message_used_by,
133 message_used_by_id
134 )
135 values
136 (x_act_msg_id,
137 SYSDATE,
138 FND_GLOBAL.user_id,
139 SYSDATE,
140 FND_GLOBAL.user_id,
141 FND_GLOBAL.conc_login_id,
142 1, -- object_version_number
143 p_message_id,
144 p_message_used_by ,
145 p_msg_used_by_id
146 );
147 /*
148 else
149 -- message that cannot be associated with this type of campaign.
150 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
151 FND_MESSAGE.Set_Name ('AMS', 'AMS_ACTM_INVALID_USED_BY');
152 FND_MSG_PUB.Add;
153 END IF;
154 end if; */
155 /* --commented by musman 03/29/01
156 -- added by julou on 03/08/2000
157 -- indicate offer has been defined for the campaign
158 AMS_ObjectAttribute_PVT.modify_object_attribute(
159 p_api_version => l_api_version,
160 p_init_msg_list => FND_API.g_false,
161 p_commit => FND_API.g_false,
162 p_validation_level => FND_API.g_valid_level_full,
163
164 x_return_status => l_return_status,
165 x_msg_count => x_msg_count,
166 x_msg_data => x_msg_data,
167
168 p_object_type => p_message_used_by,
169 p_object_id => p_msg_used_by_id,
170 p_attr => 'MESG',
171 p_attr_defined_flag => 'Y'
172 );
173
174 IF l_return_status = FND_API.g_ret_sts_error THEN
175 RAISE FND_API.g_exc_error;
176 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
177 RAISE FND_API.g_exc_unexpected_error;
178 END IF;
179 -- end of part added
180
181 */
182
183 IF FND_API.to_boolean(p_commit) THEN
184 COMMIT;
185 END IF;
186
187 FND_MSG_PUB.count_and_get(
188 p_encoded => FND_API.g_false,
189 p_count => x_msg_count,
190 p_data => x_msg_data
191 );
192
193 IF (AMS_DEBUG_HIGH_ON) THEN
194
195
196
197 AMS_Utility_PVT.debug_message(l_full_name ||': end');
198
199 END IF;
200
201 EXCEPTION
202
203 WHEN FND_API.g_exc_error THEN
204 ROLLBACK TO create_act_messages;
205 x_return_status := FND_API.g_ret_sts_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 WHEN FND_API.g_exc_unexpected_error THEN
213 ROLLBACK TO create_act_messages;
214 x_return_status := FND_API.g_ret_sts_unexp_error ;
215 FND_MSG_PUB.count_and_get(
216 p_encoded => FND_API.g_false,
217 p_count => x_msg_count,
218 p_data => x_msg_data
219 );
220
221
222 WHEN OTHERS THEN
223 ROLLBACK TO create_act_messages;
224 x_return_status := FND_API.g_ret_sts_unexp_error ;
225
226 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
227 THEN
228 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
229 END IF;
230
231 FND_MSG_PUB.count_and_get(
232 p_encoded => FND_API.g_false,
233 p_count => x_msg_count,
234 p_data => x_msg_data
235 );
236
237 END create_act_messages;
238
239
240 /****************************************************************************/
241 -- Procedure
242 -- update_act_messages
243
244 -- History
245 -- 10/28/1999 nrengasw created
246 ------------------------------------------------------------------------------
247 PROCEDURE update_act_messages
248 (
249 p_api_version IN NUMBER,
250 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
251 p_commit IN VARCHAR2 := FND_API.g_false,
252 p_validation_level IN NUMBER := FND_API.g_valid_level_full,
253
254 x_return_status OUT NOCOPY VARCHAR2,
255 x_msg_count OUT NOCOPY NUMBER,
256 x_msg_data OUT NOCOPY VARCHAR2,
257
258 p_act_msg_id IN NUMBER,
259 p_message_id IN NUMBER,
260 p_msg_used_by IN VARCHAR2,
261 p_msg_used_by_id IN NUMBER,
262 p_object_version IN NUMBER
263 )
264 IS
265
266 l_api_version CONSTANT NUMBER := 1.0;
267 l_api_name CONSTANT VARCHAR2(30) := 'update_act_messages';
268 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
269
270 l_return_status VARCHAR2(1);
271
272 BEGIN
273
274 --------------------- initialize -----------------------
275 SAVEPOINT update_act_messages;
276
277 IF (AMS_DEBUG_HIGH_ON) THEN
278
279
280
281 AMS_Utility_PVT.debug_message(l_full_name||': start');
282
283 END IF;
284
285 IF FND_API.to_boolean(p_init_msg_list) THEN
286 FND_MSG_PUB.initialize;
287 END IF;
288
289 IF NOT FND_API.compatible_api_call(
290 l_api_version,
291 p_api_version,
292 l_api_name,
293 g_pkg_name
294 ) THEN
295 RAISE FND_API.g_exc_unexpected_error;
296 END IF;
297
298 x_return_status := FND_API.g_ret_sts_success;
299
300 ----------------------- validate -----------------------
301 IF (AMS_DEBUG_HIGH_ON) THEN
302
303 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
304 END IF;
305
306 -- validate act messages
307 validate_act_messages
308 (
309 p_act_msg_id ,
310 p_message_id ,
311 p_msg_used_by ,
312 p_msg_used_by_id ,
313 p_object_version,
314
315 x_return_status
316 );
317
318 IF l_return_status = FND_API.g_ret_sts_error THEN
319 RAISE FND_API.g_exc_error;
320 ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
321 RAISE FND_API.g_exc_unexpected_error;
322 END IF;
323
324 UPDATE ams_act_messages SET
325 last_update_date = SYSDATE,
326 last_updated_by = FND_GLOBAL.user_id,
327 last_update_login = FND_GLOBAL.conc_login_id,
328 object_version_number = p_object_version + 1,
329 message_id = p_message_id,
330 message_used_by = p_msg_used_by,
331 message_used_by_id = p_msg_used_by_id
332 WHERE act_message_id = p_act_msg_id
333 AND object_version_number = p_object_version;
334
335 IF FND_API.to_boolean(p_commit) THEN
336 COMMIT;
337 END IF;
338
339 FND_MSG_PUB.count_and_get(
340 p_encoded => FND_API.g_false,
341 p_count => x_msg_count,
342 p_data => x_msg_data
343 );
344
345 IF (AMS_DEBUG_HIGH_ON) THEN
346
347
348
349 AMS_Utility_PVT.debug_message(l_full_name ||': end');
350
351 END IF;
352
353 EXCEPTION
354
355 WHEN FND_API.g_exc_error THEN
356 ROLLBACK TO update_act_messages;
357 x_return_status := FND_API.g_ret_sts_error;
358 FND_MSG_PUB.count_and_get(
359 p_encoded => FND_API.g_false,
360 p_count => x_msg_count,
361 p_data => x_msg_data
362 );
363
364 WHEN FND_API.g_exc_unexpected_error THEN
365 ROLLBACK TO update_act_messages;
366 x_return_status := FND_API.g_ret_sts_unexp_error ;
367 FND_MSG_PUB.count_and_get(
368 p_encoded => FND_API.g_false,
369 p_count => x_msg_count,
370 p_data => x_msg_data
371 );
372
373
374 WHEN OTHERS THEN
375 ROLLBACK TO update_act_messages;
376 x_return_status := FND_API.g_ret_sts_unexp_error ;
377
378 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
379 THEN
380 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
381 END IF;
382
383 FND_MSG_PUB.count_and_get(
384 p_encoded => FND_API.g_false,
385 p_count => x_msg_count,
386 p_data => x_msg_data
387 );
388
389 END update_act_messages;
390
391 /****************************************************************************/
392 -- Procedure
393 -- delete_act_messages
394
395 -- History
396 -- 10/28/1999 nrengasw created
397 ----------------------------------------------------------------------------------------------
398 PROCEDURE delete_act_messages
399 (
400 p_api_version IN NUMBER,
401 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
402 p_commit IN VARCHAR2 := FND_API.g_false,
403
404 x_return_status OUT NOCOPY VARCHAR2,
405 x_msg_count OUT NOCOPY NUMBER,
406 x_msg_data OUT NOCOPY VARCHAR2,
407
408 p_act_msg_id IN NUMBER,
409 p_object_version IN NUMBER
410 )
411 IS
412
413 l_api_version CONSTANT NUMBER := 1.0;
414 l_api_name CONSTANT VARCHAR2(30) := 'delete_act_messages';
415 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
416
417 l_return_status VARCHAR2(1);
418 l_used_by_id NUMBER;
419 l_used_by VARCHAR2(30);
420 l_dummy NUMBER;
421
422 CURSOR c_used_by IS
423 SELECT message_used_by_id, message_used_by
424 FROM ams_act_messages
425 WHERE act_message_id = p_act_msg_id;
426
427 CURSOR c_msg IS
428 SELECT 1
429 FROM ams_act_messages
430 WHERE message_used_by_id = l_used_by_id
431 AND message_used_by = l_used_by;
432
433 BEGIN
434
435 --------------------- initialize -----------------------
436 SAVEPOINT delete_act_messages;
437
438 IF (AMS_DEBUG_HIGH_ON) THEN
439
440
441
442 AMS_Utility_PVT.debug_message(l_full_name||': start');
443
444 END IF;
445
446 IF FND_API.to_boolean(p_init_msg_list) THEN
447 FND_MSG_PUB.initialize;
448 END IF;
449
450 IF NOT FND_API.compatible_api_call(
451 l_api_version,
452 p_api_version,
453 l_api_name,
454 g_pkg_name
455 ) THEN
456 RAISE FND_API.g_exc_unexpected_error;
457 END IF;
458
459 x_return_status := FND_API.g_ret_sts_success;
460
461 OPEN c_used_by;
462 FETCH c_used_by INTO l_used_by_id, l_used_by;
463 CLOSE c_used_by;
464
465 ----------------------- validate -----------------------
466 IF (AMS_DEBUG_HIGH_ON) THEN
467
468 AMS_Utility_PVT.debug_message(l_full_name ||': validate');
469 END IF;
470
471 -- validate act messages
472 -- check for available object attributes
473
474 DELETE FROM ams_act_messages
475 WHERE ACT_MESSAGE_ID = p_act_msg_id
476 AND OBJECT_VERSION_NUMBER = p_object_version;
477 /* commented by musman on 03/29/01
478 -- added by julou on 03/07/2000
479 -- indicate if there is any other offers for this campaign
480 OPEN c_msg;
481 FETCH c_msg INTO l_dummy;
482 CLOSE c_msg;
483
484 IF l_dummy IS NULL THEN
488 p_commit => FND_API.g_false,
485 AMS_ObjectAttribute_PVT.modify_object_attribute(
486 p_api_version => l_api_version,
487 p_init_msg_list => FND_API.g_false,
489 p_validation_level => FND_API.g_valid_level_full,
490
491 x_return_status => x_return_status,
492 x_msg_count => x_msg_count,
493 x_msg_data => x_msg_data,
494
495 p_object_type => l_used_by,
496 p_object_id => l_used_by_id,
497 p_attr => 'MESG',
498 p_attr_defined_flag => 'N'
499 );
500
501 IF x_return_status = FND_API.g_ret_sts_error THEN
502 RAISE FND_API.g_exc_error;
503 ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
504 RAISE FND_API.g_exc_unexpected_error;
505 END IF;
506 END IF;
507 -- end of part added
508 */
509
510 IF FND_API.to_boolean(p_commit) THEN
511 COMMIT;
512 END IF;
513
514 FND_MSG_PUB.count_and_get(
515 p_encoded => FND_API.g_false,
516 p_count => x_msg_count,
517 p_data => x_msg_data
518 );
519
520 IF (AMS_DEBUG_HIGH_ON) THEN
521
522
523
524 AMS_Utility_PVT.debug_message(l_full_name ||': end');
525
526 END IF;
527
528 EXCEPTION
529
530 WHEN FND_API.g_exc_error THEN
531 ROLLBACK TO delete_act_messages;
532 x_return_status := FND_API.g_ret_sts_error;
533 FND_MSG_PUB.count_and_get(
534 p_encoded => FND_API.g_false,
535 p_count => x_msg_count,
536 p_data => x_msg_data
537 );
538
539 WHEN FND_API.g_exc_unexpected_error THEN
540 ROLLBACK TO delete_act_messages;
541 x_return_status := FND_API.g_ret_sts_unexp_error ;
542 FND_MSG_PUB.count_and_get(
543 p_encoded => FND_API.g_false,
544 p_count => x_msg_count,
545 p_data => x_msg_data
546 );
547
548
549 WHEN OTHERS THEN
550 ROLLBACK TO delete_act_messages;
551 x_return_status := FND_API.g_ret_sts_unexp_error ;
552
553 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
554 THEN
555 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
556 END IF;
557
558 FND_MSG_PUB.count_and_get(
559 p_encoded => FND_API.g_false,
560 p_count => x_msg_count,
561 p_data => x_msg_data
562 );
563
564 END delete_act_messages;
565
566
567 /****************************************************************************/
568 -- Procedure
569 -- lock_act_messages
570
571 -- History
572 -- 10/28/1999 nrengasw created
573 ----------------------------------------------------------------------------------------------
574
575 PROCEDURE lock_act_messages
576 (
577 p_api_version IN NUMBER,
578 p_init_msg_list IN VARCHAR2 := FND_API.g_false,
579
580 x_return_status OUT NOCOPY VARCHAR2,
581 x_msg_count OUT NOCOPY NUMBER,
582 x_msg_data OUT NOCOPY VARCHAR2,
583
584 p_act_msg_id IN NUMBER,
585 p_object_version IN NUMBER
586 )
587 IS
588 l_api_version CONSTANT NUMBER := 1.0;
589 l_api_name CONSTANT VARCHAR2(30) := 'lock_act_messages';
590 l_full_name CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
591
592 l_return_status VARCHAR2(1);
593 l_act_msg_id NUMBER;
594
595 CURSOR c_actm_lck IS
596 SELECT act_message_id
597 FROM ams_act_messages
598 WHERE act_message_id = p_act_msg_id
599 AND object_version_number = p_object_version
600 FOR UPDATE NOWAIT;
601
602 BEGIN
603
604 -------------------- initialize ------------------------
605 IF (AMS_DEBUG_HIGH_ON) THEN
606
607 AMS_Utility_PVT.debug_message(l_full_name||': start');
608 END IF;
609
610 IF FND_API.to_boolean(p_init_msg_list) THEN
611 FND_MSG_PUB.initialize;
612 END IF;
613
614 IF NOT FND_API.compatible_api_call(
615 l_api_version,
616 p_api_version,
617 l_api_name,
618 g_pkg_name
619 ) THEN
620 RAISE FND_API.g_exc_unexpected_error;
621 END IF;
622
623 x_return_status := FND_API.G_RET_STS_SUCCESS;
624
625 ------------------------ lock -------------------------
626 IF (AMS_DEBUG_HIGH_ON) THEN
627
628 AMS_Utility_PVT.debug_message(l_full_name||': lock');
629 END IF;
630
631 OPEN c_actm_lck;
632 FETCH c_actm_lck INTO l_act_msg_id;
633 IF (c_actm_lck%NOTFOUND) THEN
634 CLOSE c_actm_lck;
638 END IF;
635 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
636 FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
637 FND_MSG_PUB.add;
639 RAISE FND_API.g_exc_error;
640 END IF;
641 CLOSE c_actm_lck;
642
643 -------------------- finish --------------------------
644 FND_MSG_PUB.count_and_get(
645 p_encoded => FND_API.g_false,
646 p_count => x_msg_count,
647 p_data => x_msg_data
648 );
649
650 IF (AMS_DEBUG_HIGH_ON) THEN
651
652
653
654 AMS_Utility_PVT.debug_message(l_full_name ||': end');
655
656 END IF;
657
658 EXCEPTION
659
660 WHEN AMS_Utility_PVT.resource_locked THEN
661 x_return_status := FND_API.g_ret_sts_error;
662 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
663 FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
664 FND_MSG_PUB.add;
665 END IF;
666
667 FND_MSG_PUB.count_and_get(
668 p_encoded => FND_API.g_false,
669 p_count => x_msg_count,
670 p_data => x_msg_data
671 );
672
673 WHEN FND_API.g_exc_error THEN
674 x_return_status := FND_API.g_ret_sts_error;
675 FND_MSG_PUB.count_and_get(
676 p_encoded => FND_API.g_false,
677 p_count => x_msg_count,
678 p_data => x_msg_data
679 );
680
681 WHEN FND_API.g_exc_unexpected_error THEN
682 x_return_status := FND_API.g_ret_sts_unexp_error ;
683 FND_MSG_PUB.count_and_get(
684 p_encoded => FND_API.g_false,
685 p_count => x_msg_count,
686 p_data => x_msg_data
687 );
688
689 WHEN OTHERS THEN
690 x_return_status := FND_API.g_ret_sts_unexp_error ;
691 IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
692 THEN
693 FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
694 END IF;
695
696 FND_MSG_PUB.count_and_get(
697 p_encoded => FND_API.g_false,
698 p_count => x_msg_count,
699 p_data => x_msg_data
700 );
701
702 END lock_act_messages;
703
704 /****************************************************************************/
705 -- Procedure
706 -- validate_act_messages
707
708 -- History
709 -- 01/04/2000 nrengasw created
710 ----------------------------------------------------------------------------------------------
711 PROCEDURE validate_act_messages
712 (
713 p_act_msg_id IN NUMBER,
714 p_message_id IN NUMBER,
715 p_msg_used_by IN VARCHAR2,
716 p_msg_used_by_id IN NUMBER,
717 p_object_version IN NUMBER,
718
719 x_return_status OUT NOCOPY VARCHAR2
720 )
721 IS
722
723 l_table_name VARCHAR2(30);
724 l_pk_name VARCHAR2(30);
725 l_pk_value VARCHAR2(30);
726 l_pk_data_type VARCHAR2(30);
727 l_additional_where_clause VARCHAR2(4000); -- Used by Check_FK_Exists.
728 l_return_status VARCHAR2(1);
729 l_dummy_char VARCHAR2(1);
730 l_obj_type VARCHAR2(100);
731
732 cursor c_chk_message is
733 select 'x'
734 from AMS_MESSAGES_B
735 where message_id = p_message_id;
736
737 cursor c_get_objtype_name is
738 select meaning
739 from ams_lookups
740 where lookup_type = 'AMS_SYS_ARC_QUALIFIER'
741 and lookup_code = p_msg_used_by;
742
743 cursor c_chk_actmsg is
744 select 'x'
745 from ams_act_messages
746 where message_used_by = p_msg_used_by
747 and message_used_by_id = p_msg_used_by_id
748 and message_id = p_message_id;
749
750 BEGIN
751
752 x_return_status := FND_API.g_ret_sts_success;
753
754 IF (AMS_DEBUG_HIGH_ON) THEN
755
756
757
758 AMS_Utility_PVT.debug_message('checking the message');
759
760 END IF;
761 open c_chk_message;
762 fetch c_chk_message into l_dummy_char;
763 if c_chk_message%notfound
764 then
765 close c_chk_message;
766 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
767 FND_MESSAGE.Set_Name ('AMS', 'AMS_MESSAGE_NOT_FOUND');
768 FND_MSG_PUB.Add;
769 END IF;
770 x_return_status := FND_API.G_RET_STS_ERROR;
771 return;
772 end if;
773 close c_chk_message;
774
775 open c_get_objtype_name;
776 fetch c_get_objtype_name into l_obj_type;
777 close c_get_objtype_name;
778
779 /*** Commneted by ABHOLA
780 IF (AMS_DEBUG_HIGH_ON) THEN
781
782 AMS_Utility_PVT.debug_message('validating foreign keys');
783 END IF;
784 -- Get table_name and pk_name for the ARC qualifier.
785 AMS_Utility_PVT.Get_Qual_Table_Name_And_PK (
786 p_sys_qual => p_msg_used_by,
787 x_return_status => x_return_status,
788 x_table_name => l_table_name,
789 x_pk_name => l_pk_name
790 );
791
792 l_pk_value := p_msg_used_by_id;
793 l_pk_data_type := AMS_Utility_PVT.G_NUMBER;
797 p_table_name => l_table_name
794 l_additional_where_clause := NULL;
795
796 IF AMS_Utility_PVT.Check_FK_Exists (
798 ,p_pk_name => l_pk_name
799 ,p_pk_value => l_pk_value
800 ,p_pk_data_type => l_pk_data_type
801 ,p_additional_where_clause => l_additional_where_clause
802 ) = FND_API.G_FALSE
803 THEN
804 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
805 FND_MESSAGE.Set_Name ('AMS', 'AMS_ACTM_INVALID_USED_BY');
806 FND_MESSAGE.Set_token('OBJTYPE', l_obj_type, FALSE);
807 FND_MSG_PUB.Add;
808 END IF;
809 x_return_status := FND_API.G_RET_STS_ERROR;
810 return;
811 END IF;
812 ********************/
813 /********* commented by musman on 03/29/2001
814 IF (AMS_DEBUG_HIGH_ON) THEN
815
819 if p_msg_used_by = 'CAMP'
816 AMS_Utility_PVT.debug_message('Checking message availability, if it is a campaign');
817 END IF;
818
820 then
821 if ams_campaignrules_pvt.check_camp_attribute(
822 p_msg_used_by_id, 'MESG' ) = FND_API.G_FALSE
823 then
824 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
825 FND_MESSAGE.Set_Name ('AMS', 'AMS_MESSAGE_NOT_AVAILABLE');
826 FND_MSG_PUB.Add;
827 END IF;
828 x_return_status := FND_API.G_RET_STS_ERROR;
829 return;
830 end if;
831 end if;
832
833 */
834
835 IF (AMS_DEBUG_HIGH_ON) THEN
836
837
838
839 AMS_Utility_PVT.debug_message('Checking message uniqueness');
840
841 END IF;
842 open c_chk_actmsg;
843 fetch c_chk_actmsg into l_dummy_char;
844 if c_chk_actmsg%found
845 then
846 close c_chk_actmsg;
847 IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR) THEN
851 x_return_status := FND_API.G_RET_STS_ERROR;
848 FND_MESSAGE.Set_Name ('AMS', 'AMS_MESSAGE_NOT_UNIQUE');
849 FND_MSG_PUB.Add;
850 END IF;
852 return;
853 end if;
854 close c_chk_actmsg;
855
856
857 IF (AMS_DEBUG_HIGH_ON) THEN
858
859
860
861
862
863 AMS_Utility_PVT.debug_message('End of validation');
864
865
866 END IF;
867
868 END validate_act_messages;
869
870 END AMS_ACT_MESSAGES_PVT;