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