DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_ACTPARTNER_PVT

Source


1 PACKAGE BODY AMS_ActPartner_PVT AS
2 /* $Header: amsvapnb.pls 120.0 2005/05/31 16:39:43 appldev noship $ */
3 
4 g_pkg_name	CONSTANT VARCHAR2(30):='AMS_ActPartner_PVT';
5 
6 ----------- Forward Declarations ---------------------
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 check_act_partner_uk_items (
12    p_act_partner_rec IN act_partner_rec_type,
13    x_return_status OUT NOCOPY VARCHAR2
14 );
15 
16 PROCEDURE check_act_partner_req_items(
17    p_act_partner_rec    IN  act_partner_rec_type,
18    x_return_status      OUT NOCOPY VARCHAR2
19 );
20 
21 PROCEDURE check_primary (
22    p_primary_flag  IN  VARCHAR2,
23    p_act_partner_used_by_id  IN  NUMBER,
24    p_arc_act_partner_used_by IN VARCHAR2,
25    x_return_status  OUT NOCOPY VARCHAR2
26 );
27 
28 
29 ---------------------------------------------------------------------
30 -- PROCEDURE
31 --    create_act_partner
32 --
33 -- HISTORY
34 --    04/24/2000  khung@us    created
35 --   07-Nov-2000  choang      added call to modify object attr for
36 --                            tick to appear on the cue card item.
37 ---------------------------------------------------------------------
38 
39 PROCEDURE create_act_partner
40 (
41   p_api_version         IN  NUMBER,
42   p_init_msg_list       IN  VARCHAR2 := FND_API.g_false,
43   p_commit              IN  VARCHAR2 := FND_API.g_false,
44   p_validation_level    IN  NUMBER   := FND_API.g_valid_level_full,
45   x_return_status       OUT NOCOPY VARCHAR2,
46   x_msg_count           OUT NOCOPY NUMBER,
47   x_msg_data            OUT NOCOPY VARCHAR2,
48   p_act_partner_rec     IN  act_partner_rec_type,
49   x_act_partner_id      OUT NOCOPY NUMBER
50 )
51 IS
52    l_partner_attr_code  CONSTANT VARCHAR2(30) := 'PTNR';
53    l_api_version        CONSTANT NUMBER       := 1.0;
54    l_api_name           CONSTANT VARCHAR2(30) := 'create_act_partner';
55    l_full_name          CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
56 
57    l_return_status      VARCHAR2(1);
58    l_act_partner_count  NUMBER;
59    l_act_partner_rec    act_partner_rec_type := p_act_partner_rec;
60 
61    CURSOR c_act_partner_seq IS
62    SELECT ams_act_partners_s.NEXTVAL
63      FROM DUAL;
64 
65    CURSOR c_act_partner_count(act_partner_id IN NUMBER) IS
66    SELECT COUNT(*)
67      FROM ams_act_partners
68     WHERE activity_partner_id = act_partner_id;
69 
70 BEGIN
71 
72    --------------------- initialize -----------------------
73    SAVEPOINT create_act_partner;
74 
75 
76    IF FND_API.to_boolean(p_init_msg_list) THEN
77       FND_MSG_PUB.initialize;
78    END IF;
79 
80    IF NOT FND_API.compatible_api_call
81    (
82          l_api_version,
83          p_api_version,
84          l_api_name,
85          g_pkg_name
86    ) THEN
87       RAISE FND_API.g_exc_unexpected_error;
88    END IF;
89 
90    x_return_status := FND_API.g_ret_sts_success;
91 
92    ----------------------- validate -----------------------
93    IF (AMS_DEBUG_HIGH_ON) THEN
94 
95    AMS_Utility_PVT.debug_message(l_full_name ||': validate');
96    END IF;
97 
98    validate_act_partner
99    (
100       p_api_version        => l_api_version,
101       p_init_msg_list      => p_init_msg_list,
102       p_validation_level   => p_validation_level,
103       x_return_status      => l_return_status,
104       x_msg_count          => x_msg_count,
105       x_msg_data           => x_msg_data,
106       p_act_partner_rec    => l_act_partner_rec
107    );
108 
109    IF l_return_status = FND_API.g_ret_sts_error THEN
110       RAISE FND_API.g_exc_error;
111    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
112       RAISE FND_API.g_exc_unexpected_error;
113    END IF;
114 
115    -------------------------- insert --------------------------
116    IF (AMS_DEBUG_HIGH_ON) THEN
117 
118    AMS_Utility_PVT.debug_message(l_full_name ||': insert');
119    END IF;
120 
121    IF l_act_partner_rec.activity_partner_id IS NULL THEN
122        LOOP
123           OPEN c_act_partner_seq;
124           FETCH c_act_partner_seq INTO l_act_partner_rec.activity_partner_id;
125           CLOSE c_act_partner_seq;
126 
127           OPEN c_act_partner_count(l_act_partner_rec.activity_partner_id);
128           FETCH c_act_partner_count INTO l_act_partner_count;
129           CLOSE c_act_partner_count;
130 
131           EXIT WHEN l_act_partner_count = 0;
132        END LOOP;
133    END IF;
134 
135    check_act_partner_req_items(
136    p_act_partner_rec    => l_act_partner_rec,
137    x_return_status      => l_return_status
138 );
139 
140  check_primary(l_act_partner_rec.primary_flag ,l_act_partner_rec.act_partner_used_by_id,l_act_partner_rec.arc_act_partner_used_by,l_return_status);
141    ---------------------- insert --------------------------
142    INSERT INTO ams_act_partners(
143 
144         activity_partner_id,
145         last_update_date,
146         last_updated_by,
147         creation_date,
148         created_by,
149         last_update_login,
150         object_version_number,
151         act_partner_used_by_id,
152         arc_act_partner_used_by,
153         primary_flag,
154         partner_id,
155         partner_type,
156         description,
157         attribute_category,
158         preferred_vad_id,
159         partner_address_id,
160 	primary_contact_id,
161         attribute1,
162         attribute2,
163         attribute3,
164         attribute4,
165         attribute5,
166         attribute6,
167         attribute7,
168         attribute8,
169         attribute9,
170         attribute10,
171         attribute11,
172         attribute12,
173         attribute13,
174         attribute14,
175         attribute15
176       ) VALUES (
177         l_act_partner_rec.activity_partner_id,
178         SYSDATE,
179         FND_GLOBAL.user_id,
180         SYSDATE,
181         FND_GLOBAL.user_id,
182         FND_GLOBAL.conc_login_id,
183         1,
184         l_act_partner_rec.act_partner_used_by_id,
185         l_act_partner_rec.arc_act_partner_used_by,
186         l_act_partner_rec.primary_flag,
187         l_act_partner_rec.partner_id,
188         l_act_partner_rec.partner_type,
189         l_act_partner_rec.description,
190         l_act_partner_rec.attribute_category,
191         l_act_partner_rec.preferred_vad_id,
192         l_act_partner_rec.partner_address_id,
193 	l_act_partner_rec.primary_contact_id,
194         l_act_partner_rec.attribute1,
195         l_act_partner_rec.attribute2,
196         l_act_partner_rec.attribute3,
197         l_act_partner_rec.attribute4,
198         l_act_partner_rec.attribute5,
199         l_act_partner_rec.attribute6,
200         l_act_partner_rec.attribute7,
201         l_act_partner_rec.attribute8,
202         l_act_partner_rec.attribute9,
203         l_act_partner_rec.attribute10,
204         l_act_partner_rec.attribute11,
205         l_act_partner_rec.attribute12,
206         l_act_partner_rec.attribute13,
207         l_act_partner_rec.attribute14,
208         l_act_partner_rec.attribute15
209    );
210 
211    IF (AMS_DEBUG_HIGH_ON) THEN
212 
213 
214 
215    AMS_Utility_PVT.debug_message(l_full_name ||': call modify_object_attribute');
216 
217    END IF;
218 
219     IF l_return_status = FND_API.g_ret_sts_error THEN
220         RAISE FND_API.g_exc_error;
221     ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
222         RAISE FND_API.g_exc_unexpected_error;
223     END IF;
224 
225    ------------------------- finish -------------------------------
226    x_act_partner_id := l_act_partner_rec.activity_partner_id;
227 
228    IF FND_API.to_boolean(p_commit) THEN
229       COMMIT;
230    END IF;
231 
232    FND_MSG_PUB.count_and_get(
233          p_encoded => FND_API.g_false,
234          p_count   => x_msg_count,
235          p_data    => x_msg_data
236    );
237 
238    IF (AMS_DEBUG_HIGH_ON) THEN
239 
240 
241 
242    AMS_Utility_PVT.debug_message(l_full_name ||': end');
243 
244    END IF;
245 
246 EXCEPTION
247 
248    WHEN FND_API.g_exc_error THEN
249       ROLLBACK TO create_act_partner;
250       x_return_status := FND_API.g_ret_sts_error;
251       FND_MSG_PUB.count_and_get(
252             p_encoded => FND_API.g_false,
253             p_count   => x_msg_count,
254             p_data    => x_msg_data
255       );
256 
257    WHEN FND_API.g_exc_unexpected_error THEN
258       ROLLBACK TO create_act_partner;
259       x_return_status := FND_API.g_ret_sts_unexp_error ;
260       FND_MSG_PUB.count_and_get(
261             p_encoded => FND_API.g_false,
262             p_count   => x_msg_count,
263             p_data    => x_msg_data
264       );
265 
266 
267    WHEN OTHERS THEN
268       ROLLBACK TO create_act_partner;
269       x_return_status := FND_API.g_ret_sts_unexp_error ;
270 
271       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
272 	THEN
273          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
274       END IF;
275 
276       FND_MSG_PUB.count_and_get(
277             p_encoded => FND_API.g_false,
278             p_count   => x_msg_count,
279             p_data    => x_msg_data
280       );
281 
282 END create_act_partner;
283 
284 ---------------------------------------------------------------------
285 -- PROCEDURE
286 --    update_act_partner
287 --
288 -- HISTORY
289 --    04/24/2000    khung@us    created
290 ----------------------------------------------------------------------
291 
292 PROCEDURE update_act_partner
293 (
294   p_api_version         IN  NUMBER,
295   p_init_msg_list       IN  VARCHAR2 := FND_API.g_false,
296   p_commit              IN  VARCHAR2 := FND_API.g_false,
297   p_validation_level    IN  NUMBER   := FND_API.g_valid_level_full,
298   --p_object_version_number IN NUMBER,
299 
300   x_return_status       OUT NOCOPY VARCHAR2,
301   x_msg_count           OUT NOCOPY NUMBER,
302   x_msg_data            OUT NOCOPY VARCHAR2,
303 
304   p_act_partner_rec     IN  act_partner_rec_type
305 )
306 IS
307 
308    l_api_version        CONSTANT NUMBER := 1.0;
309    l_api_name           CONSTANT VARCHAR2(30) := 'update_act_partner';
310    l_full_name          CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
311 
312    l_act_partner_rec    act_partner_rec_type;
313    l_return_status      VARCHAR2(1);
314 
315 BEGIN
316 
317    -------------------- initialize -------------------------
318 
319 
320    SAVEPOINT update_act_partner;
321 l_act_partner_rec := p_act_partner_rec;
322    IF FND_API.to_boolean(p_init_msg_list) THEN
323       FND_MSG_PUB.initialize;
324    END IF;
325 
326    IF NOT FND_API.compatible_api_call(
327          l_api_version,
328          p_api_version,
329          l_api_name,
330          g_pkg_name
331    ) THEN
332 
333       RAISE FND_API.g_exc_unexpected_error;
334    END IF;
335 
336    x_return_status := FND_API.G_RET_STS_SUCCESS;
337 
338    ----------------------- validate ----------------------
339 
340    -- replace g_miss_char/num/date with current column values
341    complete_act_partner_rec(p_act_partner_rec, l_act_partner_rec);
342 
343 
344    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
345 
346       IF (AMS_DEBUG_HIGH_ON) THEN
347 
348 
349 
350       AMS_Utility_PVT.debug_message('check_act_partner_items');
351 
352       END IF;
353 
354       check_act_partner_items(
355          p_act_partner_rec => p_act_partner_rec,
356          p_validation_mode => JTF_PLSQL_API.g_update,
357          x_return_status   => l_return_status
358       );
359 
360       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
361          RAISE FND_API.g_exc_unexpected_error;
362       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
363          RAISE FND_API.g_exc_error;
364       END IF;
365    END IF;
366 
367 
368    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
369 
370       IF (AMS_DEBUG_HIGH_ON) THEN
371 
372 
373 
374       AMS_Utility_PVT.debug_message('check_act_partner_record');
375 
376       END IF;
377 
378       check_act_partner_record(
379          p_act_partner_rec  => p_act_partner_rec,
380          p_complete_rec     => l_act_partner_rec,
381          x_return_status    => l_return_status
382       );
383 
384       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
385          RAISE FND_API.g_exc_unexpected_error;
386       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
387          RAISE FND_API.g_exc_error;
388       END IF;
389    END IF;
390 
391 
392    -------------------------- update --------------------
393 
394    UPDATE ams_act_partners SET
395       last_update_date = SYSDATE,
396       last_updated_by = FND_GLOBAL.user_id,
397       last_update_login = FND_GLOBAL.conc_login_id,
398       primary_flag =  l_act_partner_rec.primary_flag,
399       object_version_number = l_act_partner_rec.object_version_number + 1,
400       act_partner_used_by_id = l_act_partner_rec.act_partner_used_by_id,
401       arc_act_partner_used_by = l_act_partner_rec.arc_act_partner_used_by,
402       partner_id = l_act_partner_rec.partner_id,
403       partner_type = l_act_partner_rec.partner_type,
404       description = l_act_partner_rec.description,
405       attribute_category = l_act_partner_rec.attribute_category,
406       preferred_vad_id = l_act_partner_rec.preferred_vad_id,
407       partner_address_id =  l_act_partner_rec.partner_address_id,
408       primary_contact_id =  l_act_partner_rec.primary_contact_id,
409       attribute1 = l_act_partner_rec.attribute1,
410       attribute2 = l_act_partner_rec.attribute2,
411       attribute3 = l_act_partner_rec.attribute3,
412       attribute4 = l_act_partner_rec.attribute4,
413       attribute5 = l_act_partner_rec.attribute5,
414       attribute6 = l_act_partner_rec.attribute6,
415       attribute7 = l_act_partner_rec.attribute7,
416       attribute8 = l_act_partner_rec.attribute8,
417       attribute9 = l_act_partner_rec.attribute9,
418       attribute10 = l_act_partner_rec.attribute10,
419       attribute11 = l_act_partner_rec.attribute11,
420       attribute12 = l_act_partner_rec.attribute12,
421       attribute13 = l_act_partner_rec.attribute13,
422       attribute14 = l_act_partner_rec.attribute14,
423       attribute15 = l_act_partner_rec.attribute15
424     WHERE activity_partner_id = l_act_partner_rec.activity_partner_id
425     AND object_version_number = l_act_partner_rec.object_version_number;
426 
427    IF (SQL%NOTFOUND) THEN
428       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
429          FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
430          FND_MSG_PUB.add;
431       END IF;
432       RAISE FND_API.g_exc_error;
433    END IF;
434 
435    -------------------- finish --------------------------
436    IF FND_API.to_boolean(p_commit) THEN
437       COMMIT;
438    END IF;
439 
440    FND_MSG_PUB.count_and_get(
441          p_encoded => FND_API.g_false,
442          p_count   => x_msg_count,
443          p_data    => x_msg_data
444    );
445 
446    IF (AMS_DEBUG_HIGH_ON) THEN
447 
448 
449 
450    AMS_Utility_PVT.debug_message(l_full_name ||': end');
451 
452    END IF;
453 
454 
455 EXCEPTION
456 
457    WHEN FND_API.g_exc_error THEN
458    IF (AMS_DEBUG_HIGH_ON) THEN
459 
460    AMS_Utility_PVT.debug_message('into exception block');
461    END IF;
462 
463       ROLLBACK TO update_act_partner;
464       x_return_status := FND_API.g_ret_sts_error;
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       --RAISE FND_API.G_EXC_ERROR;
471 
472    WHEN FND_API.g_exc_unexpected_error THEN
473 
474       ROLLBACK TO update_act_partner;
475       x_return_status := FND_API.g_ret_sts_unexp_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       --RAISE FND_API.g_exc_unexpected_error;
482 
483    WHEN OTHERS THEN
484 
485       ROLLBACK TO update_act_partner;
486       x_return_status := FND_API.g_ret_sts_unexp_error ;
487 
488       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
489         THEN
490          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
491       END IF;
492 
493       FND_MSG_PUB.count_and_get(
494             p_encoded => FND_API.g_false,
495             p_count   => x_msg_count,
496             p_data    => x_msg_data
497       );
498        --RAISE FND_API.G_EXC_ERROR;
499 
500 END update_act_partner;
501 
502 --------------------------------------------------------------------
503 -- PROCEDURE
504 --    delete_act_partner
505 --
506 -- HISTORY
507 --    04/24/2000    khung@us    created
508 --   07-Nov-2000    choang      Added call to modify object attr
509 --                              if no more partners associated to
510 --                              the object, so the tick on the
511 --                              screen goes away.
512 --------------------------------------------------------------------
513 
514 PROCEDURE delete_act_partner
515 (
516   p_api_version     IN  NUMBER,
517   p_init_msg_list   IN  VARCHAR2 := FND_API.g_false,
518   p_commit          IN  VARCHAR2 := FND_API.g_false,
519 
520   x_return_status   OUT NOCOPY VARCHAR2,
521   x_msg_count       OUT NOCOPY NUMBER,
522   x_msg_data        OUT NOCOPY VARCHAR2,
523 
524   p_act_partner_id  IN  NUMBER,
525   p_object_version  IN  NUMBER
526 )
527 IS
528    l_partner_attr_code  CONSTANT VARCHAR2(30) := 'PTNR';
529    l_api_version     CONSTANT NUMBER       := 1.0;
530    l_api_name        CONSTANT VARCHAR2(30) := 'delete_act_partner';
531    l_full_name       CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
532 
533    l_object_type     VARCHAR2(30);
534    l_object_id       NUMBER;
535    l_dummy           NUMBER;
536    l_return_status   VARCHAR2(1);
537    l_primary_flag    VARCHAR2(5);
538 
539    --
540    -- capture the arc_used_by and used_by_id before
541    -- deleting for post delete validation that a
542    -- partner is still associated to the marketing
543    -- object.
544    --
545    -- c_partner_type: captures the arc_used_by and
546    --                 used_by_id
547    -- c_partner_attr: validates that a partner is
548    --                 still associated to the marketing
549    --                 object.
550    CURSOR c_partner_type (p_act_partner_id IN NUMBER) IS
551       SELECT arc_act_partner_used_by, act_partner_used_by_id
552       FROM   ams_act_partners
553       WHERE  activity_partner_id = p_act_partner_id;
554 
555    CURSOR c_partner_attr (p_object_type IN VARCHAR2, p_object_id IN NUMBER) IS
556       SELECT 1
557       FROM  ams_act_partners
558       WHERE arc_act_partner_used_by = p_object_type
559       AND   act_partner_used_by_id = p_object_id;
560 
561 BEGIN
562 
563    --------------------- initialize -----------------------
564    SAVEPOINT delete_act_partner;
565 
566    IF (AMS_DEBUG_HIGH_ON) THEN
567 
568 
569 
570    AMS_Utility_PVT.debug_message(l_full_name||': start');
571 
572    END IF;
573 
574    IF FND_API.to_boolean(p_init_msg_list) THEN
575       FND_MSG_PUB.initialize;
576    END IF;
577 
578    IF NOT FND_API.compatible_api_call(
579          l_api_version,
580          p_api_version,
581          l_api_name,
582          g_pkg_name
583    ) THEN
584       RAISE FND_API.g_exc_unexpected_error;
585    END IF;
586 
587    x_return_status := FND_API.G_RET_STS_SUCCESS;
588 
589    OPEN c_partner_type (p_act_partner_id);
590    FETCH c_partner_type INTO l_object_type, l_object_id;
591    CLOSE c_partner_type;
592 
593 
594    ------------------------ delete ------------------------
595    IF (AMS_DEBUG_HIGH_ON) THEN
596 
597    AMS_Utility_PVT.debug_message(p_act_partner_id ||': p_act_partner_id');
598    END IF;
599    IF (AMS_DEBUG_HIGH_ON) THEN
600 
601    AMS_Utility_PVT.debug_message(p_object_version ||': p_object_version');
602    END IF;
603 
604    DELETE FROM ams_act_partners
605    WHERE activity_partner_id = p_act_partner_id
606    AND object_version_number = p_object_version;
607 
608    IF (SQL%NOTFOUND) THEN
609       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
610 		THEN
611          FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
612          FND_MSG_PUB.add;
613       END IF;
614       RAISE FND_API.g_exc_error;
615    END IF;
616 
617 
618    -------------------- finish --------------------------
619    IF FND_API.to_boolean(p_commit) THEN
620       COMMIT;
621    END IF;
622 
623    FND_MSG_PUB.count_and_get(
624          p_encoded => FND_API.g_false,
625          p_count   => x_msg_count,
626          p_data    => x_msg_data
627    );
628 
629    IF (AMS_DEBUG_HIGH_ON) THEN
630 
631 
632 
633    AMS_Utility_PVT.debug_message(l_full_name ||': end');
634 
635    END IF;
636 
637 EXCEPTION
638 
639    WHEN FND_API.g_exc_error THEN
640       ROLLBACK TO delete_act_partner;
641       x_return_status := FND_API.g_ret_sts_error;
642       FND_MSG_PUB.count_and_get(
643             p_encoded => FND_API.g_false,
644             p_count   => x_msg_count,
645             p_data    => x_msg_data
646       );
647 
648    WHEN FND_API.g_exc_unexpected_error THEN
649       ROLLBACK TO delete_act_partner;
650       x_return_status := FND_API.g_ret_sts_unexp_error ;
651       FND_MSG_PUB.count_and_get(
652             p_encoded => FND_API.g_false,
653             p_count   => x_msg_count,
654             p_data    => x_msg_data
655       );
656 
657    WHEN OTHERS THEN
658       ROLLBACK TO delete_deliverable;
659       x_return_status := FND_API.g_ret_sts_unexp_error ;
660 
661       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
662       THEN
663          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
664       END IF;
665 
666       FND_MSG_PUB.count_and_get(
667             p_encoded => FND_API.g_false,
668             p_count   => x_msg_count,
669             p_data    => x_msg_data
670       );
671 
672 
673 END delete_act_partner;
674 
675 -------------------------------------------------------------------
676 -- PROCEDURE
677 --    lock_act_partner
678 --
679 -- HISTORY
680 --    04/24/2000    khung@us    created
681 --------------------------------------------------------------------
682 
683 PROCEDURE lock_act_partner
684 (
685    p_api_version    IN  NUMBER,
686    p_init_msg_list  IN  VARCHAR2 := FND_API.g_false,
687 
688    x_return_status  OUT NOCOPY VARCHAR2,
689    x_msg_count      OUT NOCOPY NUMBER,
690    x_msg_data       OUT NOCOPY VARCHAR2,
691 
692    p_act_partner_id IN  NUMBER,
693    p_object_version IN  NUMBER
694 )
695 IS
696 
697    l_api_version    CONSTANT NUMBER       := 1.0;
698    l_api_name       CONSTANT VARCHAR2(30) := 'lock_act_partner';
699    l_full_name      CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
700 
701    l_act_partner_id NUMBER;
702 
703    CURSOR c_act_partner IS
704    SELECT activity_partner_id
705      FROM ams_act_partners
706     WHERE activity_partner_id = p_act_partner_id
707       AND object_version_number = p_object_version
708    FOR UPDATE OF activity_partner_id NOWAIT;
709 
710 BEGIN
711 
712    -------------------- initialize ------------------------
713    IF (AMS_DEBUG_HIGH_ON) THEN
714 
715    AMS_Utility_PVT.debug_message(l_full_name||': start');
716    END IF;
717 
718    IF FND_API.to_boolean(p_init_msg_list) THEN
719       FND_MSG_PUB.initialize;
720    END IF;
721 
722    IF NOT FND_API.compatible_api_call(
723          l_api_version,
724          p_api_version,
725          l_api_name,
726          g_pkg_name
727    ) THEN
728       RAISE FND_API.g_exc_unexpected_error;
729    END IF;
730 
731    x_return_status := FND_API.G_RET_STS_SUCCESS;
732 
733    ------------------------ lock -------------------------
734    IF (AMS_DEBUG_HIGH_ON) THEN
735 
736    AMS_Utility_PVT.debug_message(l_full_name||': lock');
737    END IF;
738 
739    OPEN c_act_partner;
740    FETCH c_act_partner INTO l_act_partner_id;
741    IF (c_act_partner%NOTFOUND) THEN
742       CLOSE c_act_partner;
743       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
744          FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
745          FND_MSG_PUB.add;
746       END IF;
747       RAISE FND_API.g_exc_error;
748    END IF;
749    CLOSE c_act_partner;
750 
751    -------------------- finish --------------------------
752    FND_MSG_PUB.count_and_get(
753          p_encoded => FND_API.g_false,
754          p_count   => x_msg_count,
755          p_data    => x_msg_data
756    );
757 
758    IF (AMS_DEBUG_HIGH_ON) THEN
759 
760 
761 
762    AMS_Utility_PVT.debug_message(l_full_name ||': end');
763 
764    END IF;
765 
766 EXCEPTION
767 
768    WHEN AMS_Utility_PVT.resource_locked THEN
769       x_return_status := FND_API.g_ret_sts_error;
770 		IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
771 		   FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
772 		   FND_MSG_PUB.add;
773 		END IF;
774 
775       FND_MSG_PUB.count_and_get(
776             p_encoded => FND_API.g_false,
777             p_count   => x_msg_count,
778             p_data    => x_msg_data
779       );
780 
781 	WHEN FND_API.g_exc_error THEN
782       x_return_status := FND_API.g_ret_sts_error;
783       FND_MSG_PUB.count_and_get(
784             p_encoded => FND_API.g_false,
785             p_count   => x_msg_count,
786             p_data    => x_msg_data
787       );
788 
789    WHEN FND_API.g_exc_unexpected_error THEN
790       x_return_status := FND_API.g_ret_sts_unexp_error ;
791       FND_MSG_PUB.count_and_get(
792             p_encoded => FND_API.g_false,
793             p_count   => x_msg_count,
794             p_data    => x_msg_data
795       );
796 
797    WHEN OTHERS THEN
798       x_return_status := FND_API.g_ret_sts_unexp_error ;
799       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
800 		THEN
801          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
802       END IF;
803 
804       FND_MSG_PUB.count_and_get(
805             p_encoded => FND_API.g_false,
806             p_count   => x_msg_count,
807             p_data    => x_msg_data
808       );
809 
810 
811 END lock_act_partner;
812 
813 
814 ---------------------------------------------------------------------
815 -- PROCEDURE
816 --    validate_act_partner
817 --
818 -- HISTORY
819 --    04/24/2000    khung@us    created
820 ----------------------------------------------------------------------
821 
822 PROCEDURE validate_act_partner
823 (
824    p_api_version        IN  NUMBER,
825    p_init_msg_list      IN  VARCHAR2  := FND_API.g_false,
826    p_validation_level   IN  NUMBER    := FND_API.g_valid_level_full,
827 
828    x_return_status      OUT NOCOPY VARCHAR2,
829    x_msg_count          OUT NOCOPY NUMBER,
830    x_msg_data           OUT NOCOPY VARCHAR2,
831 
832    p_act_partner_rec    IN  act_partner_rec_type
833 )
834 IS
835 
836    l_api_version        CONSTANT NUMBER       := 1.0;
837    l_api_name           CONSTANT VARCHAR2(30) := 'validate_act_partner';
838    l_full_name          CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
839    l_return_status      VARCHAR2(1);
840 
841 BEGIN
842 
843   ----------------------- initialize --------------------
844    IF (AMS_DEBUG_HIGH_ON) THEN
845 
846    AMS_Utility_PVT.debug_message(l_full_name||': start');
847    END IF;
848 
849    IF FND_API.to_boolean(p_init_msg_list) THEN
850       FND_MSG_PUB.initialize;
851    END IF;
852 
853    IF NOT FND_API.compatible_api_call(
854          l_api_version,
855          p_api_version,
856          l_api_name,
857          g_pkg_name
858    ) THEN
859       RAISE FND_API.g_exc_unexpected_error;
860    END IF;
861 
862    x_return_status := FND_API.g_ret_sts_success;
863 
864    ---------------------- validate ------------------------
865    IF (AMS_DEBUG_HIGH_ON) THEN
866 
867    AMS_Utility_PVT.debug_message(l_full_name||': check items');
868    END IF;
869 
870    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
871       check_act_partner_items(
872          p_act_partner_rec => p_act_partner_rec,
873          p_validation_mode => JTF_PLSQL_API.g_create,
874          x_return_status   => l_return_status
875       );
876 
877       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
878          RAISE FND_API.g_exc_unexpected_error;
879       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
880          RAISE FND_API.g_exc_error;
881       END IF;
882    END IF;
883 
884    IF (AMS_DEBUG_HIGH_ON) THEN
885 
886 
887 
888    AMS_Utility_PVT.debug_message(l_full_name||': check record');
889 
890    END IF;
891 
892    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_record THEN
893       check_act_partner_record(
894          p_act_partner_rec  => p_act_partner_rec,
895          p_complete_rec     => NULL,
896          x_return_status    => l_return_status
897       );
898 
899       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
900          RAISE FND_API.g_exc_unexpected_error;
901       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
902          RAISE FND_API.g_exc_error;
903       END IF;
904    END IF;
905 
906    -------------------- finish --------------------------
907    FND_MSG_PUB.count_and_get(
908          p_encoded => FND_API.g_false,
909          p_count   => x_msg_count,
910          p_data    => x_msg_data
911    );
912 
913    IF (AMS_DEBUG_HIGH_ON) THEN
914 
915 
916 
917    AMS_Utility_PVT.debug_message(l_full_name ||': end');
918 
919    END IF;
920 
921 EXCEPTION
922 
923    WHEN FND_API.g_exc_error THEN
924       x_return_status := FND_API.g_ret_sts_error;
925       FND_MSG_PUB.count_and_get(
926             p_encoded => FND_API.g_false,
927             p_count   => x_msg_count,
928             p_data    => x_msg_data
929       );
930 
931    WHEN FND_API.g_exc_unexpected_error THEN
932       x_return_status := FND_API.g_ret_sts_unexp_error ;
933       FND_MSG_PUB.count_and_get(
934             p_encoded => FND_API.g_false,
935             p_count   => x_msg_count,
936             p_data    => x_msg_data
937       );
938 
939    WHEN OTHERS THEN
940       x_return_status := FND_API.g_ret_sts_unexp_error;
941       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error)
942 		THEN
943          FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
944       END IF;
945 
946       FND_MSG_PUB.count_and_get(
947             p_encoded => FND_API.g_false,
948             p_count   => x_msg_count,
949             p_data    => x_msg_data
950       );
951 
952 
953 END validate_act_partner;
954 
955 ---------------------------------------------------------------------
956 -- PROCEDURE
957 --    check_act_partner_req_items
958 --
959 -- HISTORY
960 --    04/24/2000    khung@us    created
961 ---------------------------------------------------------------------
962 PROCEDURE check_act_partner_req_items(
963    p_act_partner_rec    IN  act_partner_rec_type,
964    x_return_status      OUT NOCOPY VARCHAR2
965 )
966 IS
967 BEGIN
968 
969    x_return_status := FND_API.g_ret_sts_success;
970 
971    -------------------- put required items here ---------------------
972 
973    IF p_act_partner_rec.act_partner_used_by_id IS NULL THEN
974       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
975       THEN
976          FND_MESSAGE.set_name('AMS', 'AMS_ACT_PARTNER_NO_USEDBY_ID');
977          FND_MSG_PUB.add;
978       END IF;
979       RAISE FND_API.g_exc_unexpected_error;
980 
981       x_return_status := FND_API.g_ret_sts_error;
982     END IF;
983 
984    IF p_act_partner_rec.arc_act_partner_used_by IS NULL THEN
985       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
986       THEN
987          FND_MESSAGE.set_name('AMS', 'AMS_ACT_PARTNER_NO_USEDBY');
988          FND_MSG_PUB.add;
989       END IF;
990       RAISE FND_API.g_exc_unexpected_error;
991       x_return_status := FND_API.g_ret_sts_error;
992       RETURN;
993       END IF;
994 
995    IF p_act_partner_rec.partner_id IS NULL THEN
996       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)
997       THEN
998          FND_MESSAGE.set_name('AMS', 'AMS_ACT_PARTNER_NO_PARTNER_ID');
999          FND_MSG_PUB.add;
1000       END IF;
1001       RAISE FND_API.g_exc_unexpected_error;
1002       x_return_status := FND_API.g_ret_sts_error;
1003       RETURN;
1004      END IF;
1005 
1006 END check_act_partner_req_items;
1007 
1008 ---------------------------------------------------------------------
1009 -- PROCEDURE
1010 --    check_act_partner_items
1011 --
1012 -- HISTORY
1013 --    04/24/2000    khung@us    created
1014 ---------------------------------------------------------------------
1015 PROCEDURE check_act_partner_items
1016 (
1017    p_act_partner_rec    IN  act_partner_rec_type,
1018    p_validation_mode    IN  VARCHAR2 := JTF_PLSQL_API.g_create,
1019    x_return_status      OUT NOCOPY VARCHAR2
1020 )
1021 IS
1022    l_act_partner_rec    act_partner_rec_type;
1023 
1024 BEGIN
1025 l_act_partner_rec := p_act_partner_rec;
1026 
1027    check_act_partner_req_items
1028    (
1029       p_act_partner_rec => p_act_partner_rec,
1030       x_return_status   => x_return_status
1031    );
1032 
1033    IF x_return_status <> FND_API.g_ret_sts_success THEN
1034       RETURN;
1035    END IF;
1036 
1037    check_act_partner_uk_items (
1038       p_act_partner_rec => p_act_partner_rec,
1039       x_return_status   => x_return_status
1040    );
1041    IF x_return_status <> FND_API.g_ret_sts_success THEN
1042       RETURN;
1043    END IF;
1044 END check_act_partner_items;
1045 
1046 
1047 ---------------------------------------------------------------------
1048 -- PROCEDURE
1049 --    check_act_partner_record
1050 --
1051 -- HISTORY
1052 --    04/24/2000    khung@us    created
1053 ---------------------------------------------------------------------
1054 
1055 PROCEDURE check_act_partner_record
1056 (
1057    p_act_partner_rec    IN  act_partner_rec_type,
1058    p_complete_rec       IN  act_partner_rec_type := NULL,
1059    x_return_status      OUT NOCOPY VARCHAR2
1060 )
1061 IS
1062 
1063 BEGIN
1064 
1065    x_return_status := FND_API.g_ret_sts_success;
1066 
1067    -- do other record level checkings
1068 
1069 END check_act_partner_record;
1070 
1071 
1072 ---------------------------------------------------------------------
1073 -- PROCEDURE
1074 --    init_act_partner_rec
1075 --
1076 -- HISTORY
1077 --    04/24/2000    khung@us    created
1078 ---------------------------------------------------------------------
1079 
1080 PROCEDURE init_act_partner_rec
1081 (
1082    x_act_partner_rec    OUT NOCOPY	act_partner_rec_type
1083 )
1084 IS
1085 
1086 BEGIN
1087 
1088    x_act_partner_rec.activity_partner_id := FND_API.g_miss_num;
1089    x_act_partner_rec.last_update_date := FND_API.g_miss_date;
1090    x_act_partner_rec.last_updated_by := FND_API.g_miss_num;
1091    x_act_partner_rec.creation_date := FND_API.g_miss_date;
1092    x_act_partner_rec.created_by := FND_API.g_miss_num;
1093    x_act_partner_rec.last_update_login := FND_API.g_miss_num;
1094    x_act_partner_rec.object_version_number := FND_API.g_miss_num;
1095    x_act_partner_rec.act_partner_used_by_id := FND_API.g_miss_num;
1096    x_act_partner_rec.arc_act_partner_used_by := FND_API.g_miss_char;
1097    x_act_partner_rec.partner_id := FND_API.g_miss_num;
1098    x_act_partner_rec.primary_flag := FND_API.g_miss_char;
1099    x_act_partner_rec.partner_type := FND_API.g_miss_char;
1100    x_act_partner_rec.description := FND_API.g_miss_char;
1101     x_act_partner_rec.attribute_category := FND_API.g_miss_char;
1102    x_act_partner_rec.preferred_vad_id := FND_API.g_miss_num;
1103    x_act_partner_rec.partner_address_id := FND_API.g_miss_num;
1104    x_act_partner_rec.primary_contact_id := FND_API.g_miss_num;
1105    x_act_partner_rec.attribute1 := FND_API.g_miss_char;
1106    x_act_partner_rec.attribute2 := FND_API.g_miss_char;
1107    x_act_partner_rec.attribute3 := FND_API.g_miss_char;
1108    x_act_partner_rec.attribute4 := FND_API.g_miss_char;
1109    x_act_partner_rec.attribute5 := FND_API.g_miss_char;
1110    x_act_partner_rec.attribute6 := FND_API.g_miss_char;
1111    x_act_partner_rec.attribute7 := FND_API.g_miss_char;
1112    x_act_partner_rec.attribute8 := FND_API.g_miss_char;
1113    x_act_partner_rec.attribute9 := FND_API.g_miss_char;
1114    x_act_partner_rec.attribute10 := FND_API.g_miss_char;
1115    x_act_partner_rec.attribute11 := FND_API.g_miss_char;
1116    x_act_partner_rec.attribute12 := FND_API.g_miss_char;
1117    x_act_partner_rec.attribute13 := FND_API.g_miss_char;
1118    x_act_partner_rec.attribute14 := FND_API.g_miss_char;
1119    x_act_partner_rec.attribute15 := FND_API.g_miss_char;
1120 
1121 END init_act_partner_rec;
1122 
1123 ---------------------------------------------------------------------
1124 -- PROCEDURE
1125 --    complete_act_partner_rec
1126 --
1127 -- HISTORY
1128 --    04/24/2000    khung@us    created
1129 ---------------------------------------------------------------------
1130 PROCEDURE complete_act_partner_rec
1131 (
1132    p_act_partner_rec    IN  act_partner_rec_type,
1133    x_complete_rec       OUT NOCOPY act_partner_rec_type
1134 )
1135 IS
1136 
1137    CURSOR c_act_partner IS
1138    SELECT *
1139      FROM ams_act_partners
1140     WHERE activity_partner_id = p_act_partner_rec.activity_partner_id;
1141 
1142    l_act_partner_rec  c_act_partner%ROWTYPE;
1143 
1144 BEGIN
1145 
1146    x_complete_rec := p_act_partner_rec;
1147 
1148    OPEN c_act_partner;
1149    FETCH c_act_partner INTO l_act_partner_rec;
1150       IF c_act_partner%NOTFOUND THEN
1151       CLOSE c_act_partner;
1152       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1153          FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1154          FND_MSG_PUB.add;
1155       END IF;
1156       RAISE FND_API.g_exc_error;
1157    END IF;
1158    --CLOSE c_act_partner;
1159 IF (AMS_DEBUG_HIGH_ON) THEN
1160 
1161 AMS_Utility_PVT.debug_message('end cursor...');
1162 END IF;
1163 
1164    IF p_act_partner_rec.act_partner_used_by_id = FND_API.g_miss_num THEN
1165       x_complete_rec.act_partner_used_by_id := l_act_partner_rec.act_partner_used_by_id;
1166    END IF;
1167 
1168    IF p_act_partner_rec.arc_act_partner_used_by = FND_API.g_miss_char THEN
1169       x_complete_rec.arc_act_partner_used_by := l_act_partner_rec.arc_act_partner_used_by;
1170    END IF;
1171 
1172    IF p_act_partner_rec.primary_flag = FND_API.g_miss_char THEN
1173       x_complete_rec.primary_flag := l_act_partner_rec.primary_flag;
1174    END IF;
1175 
1176    IF p_act_partner_rec.partner_id = FND_API.g_miss_num THEN
1177       x_complete_rec.partner_id := l_act_partner_rec.partner_id;
1178    END IF;
1179 
1180    IF p_act_partner_rec.partner_type = FND_API.g_miss_char THEN
1181       x_complete_rec.partner_type := l_act_partner_rec.partner_type;
1182    END IF;
1183 
1184    IF p_act_partner_rec.description = FND_API.g_miss_char THEN
1185       x_complete_rec.description := l_act_partner_rec.description;
1186    END IF;
1187 
1188    IF p_act_partner_rec.attribute_category = FND_API.g_miss_char THEN
1189       x_complete_rec.attribute_category := l_act_partner_rec.attribute_category;
1190    END IF;
1191 
1192    IF p_act_partner_rec.preferred_vad_id = FND_API.g_miss_num THEN
1193       x_complete_rec.preferred_vad_id := l_act_partner_rec.preferred_vad_id;
1194    END IF;
1195 
1196    IF p_act_partner_rec.partner_address_id = FND_API.g_miss_num THEN
1197       x_complete_rec.partner_address_id := l_act_partner_rec.partner_address_id;
1198    END IF;
1199 
1200    IF p_act_partner_rec.primary_contact_id = FND_API.g_miss_num THEN
1201       x_complete_rec.primary_contact_id := l_act_partner_rec.primary_contact_id;
1202    END IF;
1203 
1204    IF p_act_partner_rec.attribute1 = FND_API.g_miss_char THEN
1205       x_complete_rec.attribute1 := l_act_partner_rec.attribute1;
1206    END IF;
1207 
1208    IF p_act_partner_rec.attribute2 = FND_API.g_miss_char THEN
1209       x_complete_rec.attribute2 := l_act_partner_rec.attribute2;
1210    END IF;
1211 
1212    IF p_act_partner_rec.attribute3 = FND_API.g_miss_char THEN
1213       x_complete_rec.attribute3 := l_act_partner_rec.attribute3;
1214    END IF;
1215 
1216    IF p_act_partner_rec.attribute4 = FND_API.g_miss_char THEN
1217       x_complete_rec.attribute4 := l_act_partner_rec.attribute4;
1218    END IF;
1219 
1220    IF p_act_partner_rec.attribute5 = FND_API.g_miss_char THEN
1221       x_complete_rec.attribute5 := l_act_partner_rec.attribute5;
1222    END IF;
1223 
1224    IF p_act_partner_rec.attribute6 = FND_API.g_miss_char THEN
1225       x_complete_rec.attribute6 := l_act_partner_rec.attribute6;
1226    END IF;
1227 
1228    IF p_act_partner_rec.attribute7 = FND_API.g_miss_char THEN
1229       x_complete_rec.attribute7 := l_act_partner_rec.attribute7;
1230    END IF;
1231 
1232    IF p_act_partner_rec.attribute8 = FND_API.g_miss_char THEN
1233       x_complete_rec.attribute8 := l_act_partner_rec.attribute8;
1234    END IF;
1235 
1236    IF p_act_partner_rec.attribute9 = FND_API.g_miss_char THEN
1237       x_complete_rec.attribute9 := l_act_partner_rec.attribute9;
1238    END IF;
1239 
1240    IF p_act_partner_rec.attribute10 = FND_API.g_miss_char THEN
1241       x_complete_rec.attribute10 := l_act_partner_rec.attribute10;
1242    END IF;
1243 
1244    IF p_act_partner_rec.attribute11 = FND_API.g_miss_char THEN
1245       x_complete_rec.attribute11 := l_act_partner_rec.attribute11;
1246    END IF;
1247 
1248    IF p_act_partner_rec.attribute12 = FND_API.g_miss_char THEN
1249       x_complete_rec.attribute12 := l_act_partner_rec.attribute12;
1250    END IF;
1251 
1252    IF p_act_partner_rec.attribute13 = FND_API.g_miss_char THEN
1253       x_complete_rec.attribute13 := l_act_partner_rec.attribute13;
1254    END IF;
1255 
1256    IF p_act_partner_rec.attribute14 = FND_API.g_miss_char THEN
1257       x_complete_rec.attribute14 := l_act_partner_rec.attribute14;
1258    END IF;
1259 
1260    IF p_act_partner_rec.attribute15 = FND_API.g_miss_char THEN
1261       x_complete_rec.attribute15 := l_act_partner_rec.attribute15;
1262    END IF;
1263     IF (AMS_DEBUG_HIGH_ON) THEN
1264 
1265     AMS_Utility_PVT.debug_message('end of complete_act_partner_rec...');
1266     END IF;
1267 
1268 END complete_act_partner_rec;
1269 
1270 PROCEDURE check_primary (
1271    p_primary_flag  IN  VARCHAR2,
1272    p_act_partner_used_by_id  IN  NUMBER,
1273    p_arc_act_partner_used_by IN VARCHAR2,
1274    x_return_status  OUT NOCOPY VARCHAR2
1275 )
1276 IS
1277 l_flagStatus  NUMBER :=0;
1278 l_flagStatusUpd  NUMBER :=0;
1279 l_act_partner_used_by_id NUMBER := 0;
1280 l_arc_act_partner_used_by VARCHAR2(10);
1281 l_flag   NUMBER :=0;
1282 l_primary VARCHAR2(10);
1283 l_activity_partner_id NUMBER :=0;
1284 
1285 CURSOR c_primary_flag(l_id IN NUMBER , l_used_by IN VARCHAR2) IS
1286    SELECT count(*)
1287     FROM ams_act_partners
1288     WHERE primary_flag = 'Y'
1289     AND    act_partner_used_by_id = l_id
1290     AND    arc_act_partner_used_by = l_used_by;
1291 BEGIN
1292    l_arc_act_partner_used_by := p_arc_act_partner_used_by;
1293    l_act_partner_used_by_id := p_act_partner_used_by_id;
1294    IF (AMS_DEBUG_HIGH_ON) THEN
1295 
1296    AMS_Utility_PVT.debug_message(':error message');
1297    END IF;
1298   OPEN c_primary_flag(l_act_partner_used_by_id,l_arc_act_partner_used_by);
1299      FETCH c_primary_flag INTO l_flag;
1300   CLOSE c_primary_flag;
1301   l_flagStatus := l_flagStatus + l_flag;
1302 
1303    IF (p_primary_flag = 'Y') THEN
1304    -- dbms_output.put_line(':p_primary_flag = T');
1305    IF (AMS_DEBUG_HIGH_ON) THEN
1306 
1307    AMS_Utility_PVT.debug_message(':p_primary_flag = T');
1308    END IF;
1309    l_flagStatus := l_flagStatus + 1;
1310    END IF;
1311 
1312     IF (l_flagStatus >=2) THEN
1313    -- dbms_output.put_line(':error message');
1314     IF (AMS_DEBUG_HIGH_ON) THEN
1315 
1316     AMS_Utility_PVT.debug_message(':error message');
1317     END IF;
1318    --AMS_Utility_PVT.error_message ('AMS_ACT_INVALID_PRIMARY', 'PRIMARY_FLAG', p_primary_flag);
1319    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1320       FND_MESSAGE.set_name('AMS', 'AMS_ACT_INVALID_PRIMARY');
1321       FND_MSG_PUB.add;
1322    END IF;
1323    x_return_status := FND_API.g_ret_sts_error;
1324 END IF;
1325 END check_primary;
1326 
1327 PROCEDURE check_act_partner_uk_items (
1328    p_act_partner_rec IN act_partner_rec_type,
1329    x_return_status OUT NOCOPY VARCHAR2
1330 )
1331 IS
1332    l_partner_name       VARCHAR2(360);
1333    CURSOR c_partner_name (p_partner_id IN NUMBER) IS
1334       SELECT partner_party_name
1335       FROM   pv_partners_v
1336       WHERE  partner_id = p_partner_id; -- instead of partner_party_id; anchaudh changed it to partner_id on 30 Apr-05.
1337 BEGIN
1338    x_return_status := FND_API.g_ret_sts_success;
1339 
1340    -- validate uniqueness of arc_used_by, arc_used_by_id, and partner_id
1341    IF AMS_Utility_PVT.check_uniqueness (
1342          'AMS_ACT_PARTNERS',
1343          'arc_act_partner_used_by = ' || p_act_partner_rec.arc_act_partner_used_by ||
1344          ' AND act_partner_used_by_id = ' || p_act_partner_rec.act_partner_used_by_id ||
1345          ' AND partner_id = ' || p_act_partner_rec.partner_id
1346       ) = FND_API.g_false THEN
1347       OPEN c_partner_name (p_act_partner_rec.partner_id);
1348       FETCH c_partner_name INTO l_partner_name;
1349       CLOSE c_partner_name;
1350       AMS_Utility_PVT.error_message ('AMS_ACTPART_DUP_ACTPARTNER', 'PARTNER_NAME', l_partner_name);
1351       x_return_status := FND_API.g_ret_sts_error;
1352    END IF;
1353 END check_act_partner_uk_items;
1354 
1355 END AMS_ActPartner_PVT;