DBA Data[Home] [Help]

PACKAGE BODY: APPS.AMS_GEO_AREAS_PVT

Source


1 PACKAGE BODY AMS_Geo_Areas_PVT AS
2 /* $Header: amsvgeob.pls 115.16 2002/11/22 23:37:12 dbiswas ship $ */
3 
4 g_pkg_name      CONSTANT VARCHAR2(30) := 'AMS_Geo_Areas_PVT';
5 
6 /*****************************************************************************/
7 -- Procedure: create_geo_area
8 --
9 -- History
10 --   12/3/1999      julou      created
11 -------------------------------------------------------------------------------
12 AMS_DEBUG_HIGH_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_HIGH);
13 AMS_DEBUG_LOW_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW);
14 AMS_DEBUG_MEDIUM_ON CONSTANT boolean := FND_MSG_PUB.CHECK_MSG_LEVEL(FND_MSG_PUB.G_MSG_LVL_DEBUG_MEDIUM);
15 
16 PROCEDURE create_geo_area
17 (
18   p_api_version           IN      NUMBER,
19   p_init_msg_list         IN      VARCHAR2 := FND_API.g_false,
20   p_commit                IN      VARCHAR2 := FND_API.g_false,
21   p_validation_level      IN      NUMBER,
22 
23   x_return_status         OUT NOCOPY     VARCHAR2,
24   x_msg_count             OUT NOCOPY     NUMBER,
25   x_msg_data              OUT NOCOPY     VARCHAR2,
26 
27   p_geo_area_rec          IN      geo_area_rec_type,
28   x_geo_area_id           OUT NOCOPY     NUMBER
29 )
30 IS
31 
32   l_api_version     CONSTANT NUMBER := 1.0;
33   l_api_name        CONSTANT VARCHAR2(30) := 'create_geo_area';
34   l_full_name       CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
35   l_return_status   VARCHAR2(1);
36   l_geo_area_rec    geo_area_rec_type := p_geo_area_rec;
37   l_geo_area_count  NUMBER;
38 
39   CURSOR c_geo_area_seq IS
40     SELECT AMS_ACT_GEO_AREAS_S.NEXTVAL
41     FROM DUAL;
42 
43   CURSOR c_geo_area_count(geo_area_id IN NUMBER) IS
44     SELECT COUNT(*)
45     FROM AMS_ACT_GEO_AREAS
46     WHERE activity_geo_area_id = geo_area_id;
47 
48 BEGIN
49 -- initialize
50   SAVEPOINT create_geo_area;
51 
52   IF FND_API.to_boolean(p_init_msg_list) THEN
53     FND_MSG_PUB.initialize;
54   END IF;
55 
56   IF (AMS_DEBUG_HIGH_ON) THEN
57 
58 
59 
60   AMS_Utility_PVT.debug_message(l_full_name || ': start');
61 
62   END IF;
63 
64   IF NOT FND_API.compatible_api_call
65   (
66     l_api_version,
67     p_api_version,
68     l_api_name,
69     g_pkg_name
70   )
71   THEN
72     RAISE FND_API.g_exc_unexpected_error;
73   END IF;
74 
75   x_return_status := FND_API.g_ret_sts_success;
76 
77 -- validate
78   IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
79     IF (AMS_DEBUG_HIGH_ON) THEN
80 
81     AMS_Utility_PVT.debug_message(l_full_name || ': validate');
82     END IF;
83 
84     validate_geo_area
85     (
86       p_api_version      => l_api_version,
87       p_init_msg_list    => p_init_msg_list,
88       p_validation_level => p_validation_level,
89       x_return_status    => l_return_status,
90       x_msg_count        => x_msg_count,
91       x_msg_data         => x_msg_data,
92       p_geo_area_rec     => l_geo_area_rec
93     );
94 
95     IF l_return_status = FND_API.g_ret_sts_error THEN
96       RAISE FND_API.g_exc_error;
97     ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
98       RAISE FND_API.g_exc_unexpected_error;
99     END IF;
100   END IF;
101 
102 -- insert
103   IF (AMS_DEBUG_HIGH_ON) THEN
104 
105   AMS_Utility_PVT.debug_message(l_full_name || ': insert');
106   END IF;
107 
108   IF l_geo_area_rec.activity_geo_area_id IS NULL THEN
109     LOOP
110       OPEN c_geo_area_seq;
111       FETCH c_geo_area_seq INTO l_geo_area_rec.activity_geo_area_id;
112       CLOSE c_geo_area_seq;
113 
114       OPEN c_geo_area_count(l_geo_area_rec.activity_geo_area_id);
115       FETCH c_geo_area_count INTO l_geo_area_count;
116       CLOSE c_geo_area_count;
117 
118       EXIT WHEN l_geo_area_count = 0;
119     END LOOP;
120   END IF;
121 
122   INSERT INTO AMS_ACT_GEO_AREAS
123   (
124     activity_geo_area_id,
125     last_update_date,
126     last_updated_by,
127     creation_date,
128     created_by,
129     last_update_login,
130     object_version_number,
131     act_geo_area_used_by_id,
132     arc_act_geo_area_used_by,
133     geo_area_type_code,
134     geo_hierarchy_id,
135     attribute_category,
136     attribute1,
137     attribute2,
138     attribute3,
139     attribute4,
140     attribute5,
141     attribute6,
142     attribute7,
143     attribute8,
144     attribute9,
145     attribute10,
146     attribute11,
147     attribute12,
148     attribute13,
149     attribute14,
150     attribute15
151   )
152   VALUES
153   (
154     l_geo_area_rec.activity_geo_area_id,
155     SYSDATE,
156     FND_GLOBAL.user_id,
157     SYSDATE,
158     FND_GLOBAL.user_id,
159     FND_GLOBAL.conc_login_id,
160     1,
161     l_geo_area_rec.act_geo_area_used_by_id,
162     l_geo_area_rec.arc_act_geo_area_used_by,
163     l_geo_area_rec.geo_area_type_code,
164     l_geo_area_rec.geo_hierarchy_id,
165     l_geo_area_rec.attribute_category,
166     l_geo_area_rec.attribute1,
167     l_geo_area_rec.attribute2,
168     l_geo_area_rec.attribute3,
169     l_geo_area_rec.attribute4,
170     l_geo_area_rec.attribute5,
171     l_geo_area_rec.attribute6,
172     l_geo_area_rec.attribute7,
173     l_geo_area_rec.attribute8,
174     l_geo_area_rec.attribute9,
175     l_geo_area_rec.attribute10,
176     l_geo_area_rec.attribute11,
177     l_geo_area_rec.attribute12,
178     l_geo_area_rec.attribute13,
179     l_geo_area_rec.attribute14,
180     l_geo_area_rec.attribute15
181   );
182 
183 -- added by julou on 03/07/2000
184    -- indicate offer has been defined for the campaign
185    -- commented out by soagrawa on 24-May-2001
186 /*   AMS_ObjectAttribute_PVT.modify_object_attribute(
187       p_api_version        => l_api_version,
188       p_init_msg_list      => FND_API.g_false,
189       p_commit             => FND_API.g_false,
190       p_validation_level   => FND_API.g_valid_level_full,
191 
192       x_return_status      => l_return_status,
193       x_msg_count          => x_msg_count,
194       x_msg_data           => x_msg_data,
195 
196       p_object_type        => l_geo_area_rec.arc_act_geo_area_used_by,
197       p_object_id          => l_geo_area_rec.act_geo_area_used_by_id,
198       p_attr               => 'GEOS',
199       p_attr_defined_flag  => 'Y'
200    );
201 
202    IF l_return_status = FND_API.g_ret_sts_error THEN
203       RAISE FND_API.g_exc_error;
204    ELSIF l_return_status = FND_API.g_ret_sts_unexp_error THEN
205       RAISE FND_API.g_exc_unexpected_error;
206    END IF;
207 -- end of added part
208 */
209 -- finish
210   x_geo_area_id := l_geo_area_rec.activity_geo_area_id;
211 
212   IF FND_API.to_boolean(p_commit) THEN
213     COMMIT;
214   END IF;
215 
216   FND_MSG_PUB.count_and_get
217   (
218     p_encoded => FND_API.g_false,
219     p_count   => x_msg_count,
220     p_data    => x_msg_data
221   );
222 
223   IF (AMS_DEBUG_HIGH_ON) THEN
224 
225 
226 
227   AMS_Utility_PVT.debug_message(l_full_name||': end');
228 
229   END IF;
230 
231   EXCEPTION
232 
233     WHEN FND_API.g_exc_error THEN
234       ROLLBACK TO create_geo_area;
235       x_return_status := FND_API.g_ret_sts_error;
236       FND_MSG_PUB.count_and_get
237       (
238         p_encoded => FND_API.g_false,
239         p_count   => x_msg_count,
240         p_data    => x_msg_data
241       );
242 
243     WHEN FND_API.g_exc_unexpected_error THEN
244       ROLLBACK TO create_geo_area;
245       x_return_status := FND_API.g_ret_sts_unexp_error;
246       FND_MSG_PUB.count_and_get
247       (
248         p_encoded => FND_API.g_false,
249         p_count   => x_msg_count,
250         p_data    => x_msg_data
251       );
252 
253     WHEN OTHERS THEN
254       ROLLBACK TO create_geo_area;
255       x_return_status :=FND_API.g_ret_sts_unexp_error;
256       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
257         FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
258       END IF;
259       FND_MSG_PUB.count_and_get
260       (
261         p_encoded => FND_API.g_false,
262         p_count   => x_msg_count,
263         p_data    => x_msg_data
264       );
265 
266 END create_geo_area;
267 
268 
269 /*****************************************************************************/
270 -- Procedure: update_geo_area
271 --
272 -- History
273 --   12/3/1999      julou      created
274 -------------------------------------------------------------------------------
275 PROCEDURE update_geo_area
276 (
277   p_api_version           IN      NUMBER,
278   p_init_msg_list         IN      VARCHAR2 := FND_API.g_false,
279   p_commit                IN      VARCHAR2 := FND_API.g_false,
280   p_validation_level      IN      NUMBER := FND_API.g_valid_level_full,
281   x_return_status         OUT NOCOPY     VARCHAR2,
282   x_msg_count             OUT NOCOPY     NUMBER,
283   x_msg_data              OUT NOCOPY     VARCHAR2,
284 
285   p_geo_area_rec          IN      geo_area_rec_type
286 )
287 IS
288 
289   l_api_version   CONSTANT NUMBER := 1.0;
290   l_api_name      CONSTANT VARCHAR2(30) := 'update_geo_area';
291   l_full_name     CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
292   l_return_status VARCHAR2(1);
293   l_geo_area_rec  geo_area_rec_type := p_geo_area_rec;
294 
295 BEGIN
296 
297 -- initialize
298   SAVEPOINT update_geo_area;
299 
300   IF FND_API.to_boolean(p_init_msg_list) THEN
301     FND_MSG_PUB.initialize;
302   END IF;
303 
304   IF (AMS_DEBUG_HIGH_ON) THEN
305 
306 
307 
308   AMS_Utility_PVT.debug_message(l_full_name || ': start');
309 
310   END IF;
311 
312   IF NOT FND_API.compatible_api_call
313   (
314     l_api_version,
315     p_api_version,
316     l_api_name,
317     g_pkg_name
318   )
319   THEN
320     RAISE FND_API.g_exc_unexpected_error;
321   END IF;
322 
323   x_return_status := FND_API.g_ret_sts_success;
324 
325 -- complete record
326   complete_geo_area_rec
327   (
328     p_geo_area_rec,
329     l_geo_area_rec
330   );
331 -- validate
332   IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
333     IF (AMS_DEBUG_HIGH_ON) THEN
334 
335     AMS_Utility_PVT.debug_message(l_full_name || ': validate'||l_geo_area_rec.object_version_number);
336     END IF;
337 
338     check_items
339     (
340       p_validation_mode  => JTF_PLSQL_API.g_update,
341       x_return_status    => l_return_status,
342       p_geo_area_rec     => l_geo_area_rec
343     );
344 
345     IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
346       RAISE FND_API.g_exc_unexpected_error;
347     ELSIF l_return_status = FND_API.g_ret_sts_error THEN
348       RAISE FND_API.g_exc_error;
349     END IF;
350   END IF;
351 
352 -- update
353   IF (AMS_DEBUG_HIGH_ON) THEN
354 
355   AMS_Utility_PVT.debug_message(l_full_name||': update');
356   END IF;
357 
358   UPDATE AMS_ACT_GEO_AREAS SET
359     last_update_date = SYSDATE,
360     last_updated_by = FND_GLOBAL.user_id,
361     last_update_login = FND_GLOBAL.conc_login_id,
362     object_version_number = l_geo_area_rec.object_version_number + 1,
363     act_geo_area_used_by_id = l_geo_area_rec.act_geo_area_used_by_id,
364     arc_act_geo_area_used_by = l_geo_area_rec.arc_act_geo_area_used_by,
365     geo_area_type_code = l_geo_area_rec.geo_area_type_code,
366     geo_hierarchy_id  = l_geo_area_rec.geo_hierarchy_id,
367     attribute_category = l_geo_area_rec.attribute_category,
368     attribute1 = l_geo_area_rec.attribute1,
369     attribute2 = l_geo_area_rec.attribute2,
370     attribute3 = l_geo_area_rec.attribute3,
371     attribute4 = l_geo_area_rec.attribute4,
372     attribute5 = l_geo_area_rec.attribute5,
373     attribute6 = l_geo_area_rec.attribute6,
374     attribute7 = l_geo_area_rec.attribute7,
375     attribute8 = l_geo_area_rec.attribute8,
376     attribute9 = l_geo_area_rec.attribute9,
377     attribute10 = l_geo_area_rec.attribute10,
378     attribute11 = l_geo_area_rec.attribute11,
379     attribute12 = l_geo_area_rec.attribute12,
380     attribute13 = l_geo_area_rec.attribute13,
381     attribute14 = l_geo_area_rec.attribute14,
382     attribute15 = l_geo_area_rec.attribute15
383   WHERE activity_geo_area_id = l_geo_area_rec.activity_geo_area_id
384   AND object_version_number = l_geo_area_rec.object_version_number;
385 
386   IF (SQL%NOTFOUND) THEN
387     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
388       FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
389       FND_MSG_PUB.add;
390     END IF;
391     RAISE FND_API.g_exc_error;
392   END IF;
393 
394 -- finish
395   IF FND_API.to_boolean(p_commit) THEN
396     COMMIT;
397   END IF;
398 
399   FND_MSG_PUB.count_and_get
400   (
401     P_ENCODED => FND_API.g_false,
402     p_count   => x_msg_count,
403     p_data    => x_msg_data
404   );
405 
406   IF (AMS_DEBUG_HIGH_ON) THEN
407 
408 
409 
410   AMS_Utility_PVT.debug_message(l_full_name || ': end');
411 
412   END IF;
413 
414   EXCEPTION
415 
416     WHEN FND_API.g_exc_error THEN
417       ROLLBACK TO update_geo_area;
418       x_return_status := FND_API.g_ret_sts_error;
419       FND_MSG_PUB.count_and_get
420       (
421         p_encoded => FND_API.g_false,
422         p_count   => x_msg_count,
423         p_data    => x_msg_data
424       );
425 
426     WHEN FND_API.g_exc_unexpected_error THEN
427       ROLLBACK TO update_geo_area;
428       x_return_status := FND_API.g_ret_sts_unexp_error;
429       FND_MSG_PUB.count_and_get
430       (
431         p_encoded => FND_API.g_false,
432         p_count   => x_msg_count,
433         p_data    => x_msg_data
434       );
435 
436     WHEN OTHERS THEN
437       ROLLBACK TO update_geo_area;
438       x_return_status :=FND_API.g_ret_sts_unexp_error;
439       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
440         FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
441       END IF;
442       FND_MSG_PUB.count_and_get
443       (
444         p_encoded => FND_API.g_false,
445         p_count   => x_msg_count,
446         p_data    => x_msg_data
447       );
448 
449 END update_geo_area;
450 
451 
452 /*****************************************************************************/
453 -- Procedure: delete_geo_area
454 --
455 -- History
456 --   12/3/1999      julou      created
457 -------------------------------------------------------------------------------
458 PROCEDURE delete_geo_area
459 (
460   p_api_version           IN      NUMBER,
461   p_init_msg_list         IN      VARCHAR2 := FND_API.g_false,
462   p_commit                IN      VARCHAR2 := FND_API.g_false,
463 
464   x_return_status         OUT NOCOPY     VARCHAR2,
465   x_msg_count             OUT NOCOPY     NUMBER,
466   x_msg_data              OUT NOCOPY     VARCHAR2,
467 
468   p_geo_area_id           IN      NUMBER,
469   p_object_version        IN      NUMBER
473   l_api_version   CONSTANT NUMBER := 1.0;
470 )
471 IS
472 
474   l_api_name      CONSTANT VARCHAR2(30) := 'delete_geo_area';
475   l_full_name     CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
476   l_used_by_id             NUMBER;
477   l_used_by                VARCHAR2(30);
478   l_dummy                  NUMBER;
479 
480    CURSOR c_used_by IS
481    SELECT act_geo_area_used_by_id, arc_act_geo_area_used_by
482      FROM ams_act_geo_areas
483     WHERE activity_geo_area_id = p_geo_area_id;
484 
485    CURSOR c_geo IS
486    SELECT 1
487      FROM ams_act_geo_areas
488    WHERE act_geo_area_used_by_id = l_used_by_id
489      AND arc_act_geo_area_used_by = l_used_by;
490 
491 BEGIN
492 -- initialize
493   SAVEPOINT delete_geo_area;
494 
495   IF (AMS_DEBUG_HIGH_ON) THEN
496 
497 
498 
499   AMS_Utility_PVT.debug_message(l_full_name || ': start');
500 
501   END IF;
502 
503   IF FND_API.to_boolean(p_init_msg_list) THEN
504     FND_MSG_PUB.initialize;
505   END IF;
506 
507   IF NOT FND_API.compatible_api_call
508   (
509     l_api_version,
510     p_api_version,
511     l_api_name,
512     g_pkg_name
513   )
514   THEN
515     RAISE FND_API.g_exc_unexpected_error;
516   END IF;
517 
518   x_return_status := FND_API.g_ret_sts_success;
519 
520    OPEN c_used_by;
521    FETCH c_used_by INTO l_used_by_id, l_used_by;
522    CLOSE c_used_by;
523 
524 -- delete
525   IF (AMS_DEBUG_HIGH_ON) THEN
526 
527   AMS_Utility_PVT.debug_message(l_full_name || ': delete');
528   END IF;
529 
530   DELETE FROM AMS_ACT_GEO_AREAS
531   WHERE activity_geo_area_id = p_geo_area_id
532   AND object_version_number = p_object_version;
533 
534   IF (SQL%NOTFOUND) THEN
535     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
536       FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
537       FND_MSG_PUB.add;
538     END IF;
539     RAISE FND_API.g_exc_error;
540   END IF;
541 
542 -- added by julou on 03/07/2000
543    -- indicate if there is any other geo areas for this campaign
544    OPEN c_geo;
545    FETCH c_geo INTO l_dummy;
546    CLOSE c_geo;
547 
548 --commented OUT NOCOPY by soagrawa 24-May-2001
549 /*
550    IF l_dummy IS NULL THEN
551       AMS_ObjectAttribute_PVT.modify_object_attribute(
552          p_api_version        => l_api_version,
553          p_init_msg_list      => FND_API.g_false,
554          p_commit             => FND_API.g_false,
555          p_validation_level   => FND_API.g_valid_level_full,
556 
557          x_return_status      => x_return_status,
558          x_msg_count          => x_msg_count,
559          x_msg_data           => x_msg_data,
560 
561          p_object_type        => l_used_by,
562          p_object_id          => l_used_by_id,
563          p_attr               => 'GEOS',
564          p_attr_defined_flag  => 'N'
565       );
566 
567       IF x_return_status = FND_API.g_ret_sts_error THEN
568          RAISE FND_API.g_exc_error;
569       ELSIF x_return_status = FND_API.g_ret_sts_unexp_error THEN
570          RAISE FND_API.g_exc_unexpected_error;
571       END IF;
572    END IF;
573    */
574 -- end of added part
575 
576 -- finish
577   IF FND_API.to_boolean(p_commit) THEN
578     COMMIT;
579   END IF;
580 
581   FND_MSG_PUB.count_and_get
582   (
583     P_ENCODED => FND_API.g_false,
584     p_count   => x_msg_count,
585     p_data    => x_msg_data
586   );
587 
588   IF (AMS_DEBUG_HIGH_ON) THEN
589 
590 
591 
592   AMS_Utility_PVT.debug_message(l_full_name || ': end');
593 
594   END IF;
595 
596   EXCEPTION
597 
598     WHEN FND_API.g_exc_error THEN
599       ROLLBACK TO delete_geo_area;
600       x_return_status := FND_API.g_ret_sts_error;
601       FND_MSG_PUB.count_and_get
602       (
603         p_encoded => FND_API.g_false,
604         p_count   => x_msg_count,
605         p_data    => x_msg_data
606       );
607 
608     WHEN FND_API.g_exc_unexpected_error THEN
609       ROLLBACK TO delete_geo_area;
610       x_return_status := FND_API.g_ret_sts_unexp_error;
611       FND_MSG_PUB.count_and_get
612       (
613         p_encoded => FND_API.g_false,
614         p_count   => x_msg_count,
615         p_data    => x_msg_data
616       );
617 
618     WHEN OTHERS THEN
619       ROLLBACK TO delete_geo_area;
620       x_return_status :=FND_API.g_ret_sts_unexp_error;
621       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
622         FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
623       END IF;
624       FND_MSG_PUB.count_and_get
625       (
626         p_encoded => FND_API.g_false,
627         p_count   => x_msg_count,
628         p_data    => x_msg_data
629       );
630 
631 END delete_geo_area;
632 
633 
634 /*****************************************************************************/
635 -- Procedure: lock_geo_area
636 --
640 PROCEDURE lock_geo_area
637 -- History
638 --   12/3/1999      julou      created
639 -------------------------------------------------------------------------------
641 (
642   p_api_version           IN      NUMBER,
643   P_init_msg_list         IN      VARCHAR2 := FND_API.g_false,
644 
645   x_return_status         OUT NOCOPY     VARCHAR2,
646   x_msg_count             OUT NOCOPY     NUMBER,
647   x_msg_data              OUT NOCOPY     VARCHAR2,
648 
649   p_geo_area_id           IN      NUMBER,
650   p_object_version        IN      NUMBER
651 )
652 IS
653 
654   l_api_version   CONSTANT NUMBER := 1.0;
655   l_api_name      CONSTANT VARCHAR2(30) := 'lock_geo_area';
656   l_full_name     CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
657   l_geo_area_id   NUMBER;
658 
659   CURSOR c_geo_area IS
660     SELECT activity_geo_area_id
661     FROM AMS_ACT_GEO_AREAS
662     WHERE activity_geo_area_id = p_geo_area_id
663     AND object_version_number = p_object_version
664     FOR UPDATE OF activity_geo_area_id NOWAIT;
665 
666 BEGIN
667 -- initialize
668   IF (AMS_DEBUG_HIGH_ON) THEN
669 
670   AMS_Utility_PVT.debug_message(l_full_name || ': start');
671   END IF;
672 
673   IF FND_API.to_boolean(p_init_msg_list) THEN
674     FND_MSG_PUB.initialize;
675   END IF;
676 
677   IF NOT FND_API.compatible_api_call
678   (
679     l_api_version,
680     p_api_version,
681     l_api_name,
682     g_pkg_name
683   )
684   THEN
685     RAISE FND_API.g_exc_unexpected_error;
686   END IF;
687 
688   x_return_status := FND_API.g_ret_sts_success;
689 
690 -- lock
691   IF (AMS_DEBUG_HIGH_ON) THEN
692 
693   AMS_Utility_PVT.debug_message(l_full_name || ': lock');
694   END IF;
695 
696   OPEN c_geo_area;
697   FETCH c_geo_area INTO l_geo_area_id;
698   IF (c_geo_area%NOTFOUND) THEN
699     CLOSE c_geo_area;
700     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
701       FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
702       FND_MSG_PUB.add;
703     END IF;
704     RAISE FND_API.g_exc_error;
705   END IF;
706   CLOSE c_geo_area;
707 
708 -- finish
709   FND_MSG_PUB.count_and_get
710   (
711     p_encoded => FND_API.g_false,
712     p_count   => x_msg_count,
713     p_data    => x_msg_data
714   );
715 
716   IF (AMS_DEBUG_HIGH_ON) THEN
717 
718 
719 
720   AMS_Utility_PVT.debug_message(l_full_name || ': end');
721 
722   END IF;
723 
724   EXCEPTION
725 
726     WHEN AMS_Utility_PVT.resource_locked THEN
727       x_return_status := FND_API.g_ret_sts_error;
728       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
729         FND_MESSAGE.set_name('AMS', 'AMS_API_RESOURCE_LOCKED');
730         FND_MSG_PUB.add;
731       END IF;
732       FND_MSG_PUB.count_and_get
733       (
734         p_encoded => FND_API.g_false,
735         p_count   => x_msg_count,
736         p_data    => x_msg_data
737       );
738 
739     WHEN FND_API.g_exc_error THEN
740       x_return_status := FND_API.g_ret_sts_error;
741       FND_MSG_PUB.count_and_get
742       (
743         p_encoded => FND_API.g_false,
744         p_count   => x_msg_count,
745         p_data    => x_msg_data
746       );
747 
748     WHEN FND_API.g_exc_unexpected_error THEN
749       x_return_status := FND_API.g_ret_sts_unexp_error;
750       FND_MSG_PUB.count_and_get
751       (
752         p_encoded => FND_API.g_false,
753         p_count   => x_msg_count,
754         p_data    => x_msg_data
755       );
756 
757     WHEN OTHERS THEN
758       x_return_status :=FND_API.g_ret_sts_unexp_error;
759       IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
760         FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
761       END IF;
762       FND_MSG_PUB.count_and_get
763       (
764         p_encoded => FND_API.g_false,
765         p_count   => x_msg_count,
766         p_data    => x_msg_data
767       );
768 
769 END lock_geo_area;
770 
771 
772 /*****************************************************************************/
773 -- PROCEDURE
774 --    validate_geo_area
775 --
776 -- HISTORY
777 --    12/19/1999    julou    Created.
778 --------------------------------------------------------------------
779 PROCEDURE validate_geo_area
780 (
781    p_api_version       IN  NUMBER,
782    p_init_msg_list     IN  VARCHAR2 := FND_API.g_false,
783    p_validation_level  IN  NUMBER   := FND_API.g_valid_level_full,
784 
785    x_return_status     OUT NOCOPY VARCHAR2,
786    x_msg_count         OUT NOCOPY NUMBER,
787    x_msg_data          OUT NOCOPY VARCHAR2,
788 
789    p_geo_area_rec      IN  geo_area_rec_type
790 )
791 IS
792 
793    l_api_version CONSTANT NUMBER       := 1.0;
794    l_api_name    CONSTANT VARCHAR2(30) := 'validate_geo_area';
795    l_full_name   CONSTANT VARCHAR2(60) := g_pkg_name ||'.'|| l_api_name;
796 
797    l_return_status VARCHAR2(1);
801    ----------------------- initialize --------------------
798 
799 BEGIN
800 
802    IF (AMS_DEBUG_HIGH_ON) THEN
803 
804    AMS_Utility_PVT.debug_message(l_full_name||': start');
805    END IF;
806 
807 --   IF FND_API.to_boolean(p_init_msg_list) THEN
808 --      FND_MSG_PUB.initialize;
809 --   END IF;
810 
811    IF NOT FND_API.compatible_api_call(
812          l_api_version,
813          p_api_version,
814          l_api_name,
815          g_pkg_name
816    ) THEN
817       RAISE FND_API.g_exc_unexpected_error;
818    END IF;
819 
820    x_return_status := FND_API.g_ret_sts_success;
821 
822    ---------------------- validate ------------------------
823    IF p_validation_level >= JTF_PLSQL_API.g_valid_level_item THEN
824       IF (AMS_DEBUG_HIGH_ON) THEN
825 
826       AMS_Utility_PVT.debug_message(l_full_name||': check items');
827       END IF;
828       check_items
829       (
830          p_validation_mode => JTF_PLSQL_API.g_create,
831          x_return_status   => l_return_status,
832          p_geo_area_rec    => p_geo_area_rec
833       );
834 
835       IF l_return_status = FND_API.g_ret_sts_unexp_error THEN
836          RAISE FND_API.g_exc_unexpected_error;
837       ELSIF l_return_status = FND_API.g_ret_sts_error THEN
838          RAISE FND_API.g_exc_error;
839       END IF;
840    END IF;
841 
842    -------------------- finish --------------------------
843    FND_MSG_PUB.count_and_get(
844          p_encoded => FND_API.g_false,
845          p_count   => x_msg_count,
846          p_data    => x_msg_data
847    );
848 
849    IF (AMS_DEBUG_HIGH_ON) THEN
850 
851 
852 
853    AMS_Utility_PVT.debug_message(l_full_name ||': end');
854 
855    END IF;
856 
857    EXCEPTION
858       WHEN FND_API.g_exc_error THEN
859          x_return_status := FND_API.g_ret_sts_error;
860          FND_MSG_PUB.count_and_get
861          (
862             p_encoded => FND_API.g_false,
863             p_count   => x_msg_count,
864             p_data    => x_msg_data
865          );
866 
867       WHEN FND_API.g_exc_unexpected_error THEN
868          x_return_status := FND_API.g_ret_sts_unexp_error ;
869          FND_MSG_PUB.count_and_get
870          (
871             p_encoded => FND_API.g_false,
872             p_count   => x_msg_count,
873             p_data    => x_msg_data
874          );
875 
876       WHEN OTHERS THEN
877          x_return_status := FND_API.g_ret_sts_unexp_error;
878          IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_unexp_error) THEN
879             FND_MSG_PUB.add_exc_msg(g_pkg_name, l_api_name);
880          END IF;
881 
882       FND_MSG_PUB.count_and_get
883       (
884          p_encoded => FND_API.g_false,
885          p_count   => x_msg_count,
886          p_data    => x_msg_data
887       );
888 
889 END validate_geo_area;
890 
891 /*****************************************************************************/
892 -- Procedure: check_items
893 --
894 -- History
895 --   12/19/1999      julou      created
896 -------------------------------------------------------------------------------
897 PROCEDURE check_items
898 (
899     p_validation_mode       IN      VARCHAR2,
900     x_return_status         OUT NOCOPY     VARCHAR2,
901     p_geo_area_rec          IN      geo_area_rec_type
902 )
903 IS
904 
905   l_api_version   CONSTANT NUMBER := 1.0;
906   l_api_name      CONSTANT VARCHAR2(30) := 'check_items';
907   l_full_name     CONSTANT VARCHAR2(60) := g_pkg_name || '.' || l_api_name;
908 
909 BEGIN
910 -- initialize
911   IF (AMS_DEBUG_HIGH_ON) THEN
912 
913   AMS_Utility_PVT.debug_message(l_full_name || ': start');
914   END IF;
915 
916   x_return_status := FND_API.g_ret_sts_success;
917 
918 -- check required items
919   IF (AMS_DEBUG_HIGH_ON) THEN
920 
921   AMS_Utility_PVT.debug_message(l_full_name || ': check required items');
922   END IF;
923   check_geo_area_req_items
924   (
925     p_validation_mode => p_validation_mode,
926     p_geo_area_rec    => p_geo_area_rec,
927     x_return_status   => x_return_status
928   );
929 
930   IF x_return_status <> FND_API.g_ret_sts_success THEN
931     RETURN;
932   END IF;
933 
934 -- check unique key items
935   IF (AMS_DEBUG_HIGH_ON) THEN
936 
937   AMS_Utility_PVT.debug_message(l_full_name || ': check uk items');
938   END IF;
939   check_geo_area_uk_items
940   (
941     p_validation_mode => p_validation_mode,
942     p_geo_area_rec    => p_geo_area_rec,
943     x_return_status   => x_return_status
944   );
945 
946   IF x_return_status <> FND_API.g_ret_sts_success THEN
947     RETURN;
948   END IF;
949 
950 -- check foreign key items
951   IF (AMS_DEBUG_HIGH_ON) THEN
952 
953   AMS_Utility_PVT.debug_message(l_full_name || ': check fk items');
954   END IF;
955   check_geo_area_fk_items
956   (
957     p_geo_area_rec  => p_geo_area_rec,
958     x_return_status => x_return_status
962     RETURN;
959   );
960 
961   IF x_return_status <> FND_API.g_ret_sts_success THEN
963   END IF;
964 
965 END check_items;
966 
967 
968 /*****************************************************************************/
969 -- Procedure: check_geo_area_req_items
970 --
971 -- History
972 --   12/3/1999      julou      created
973 -------------------------------------------------------------------------------
974 PROCEDURE check_geo_area_req_items
975 (
976   p_validation_mode   IN      VARCHAR2,
977   p_geo_area_rec      IN      geo_area_rec_type,
978   x_return_status     OUT NOCOPY     VARCHAR2
979 )
980 IS
981 
982 BEGIN
983 
984   x_return_status := FND_API.g_ret_sts_success;
985 
986 -- check activity_geo_area_id
987   IF p_geo_area_rec.activity_geo_area_id IS NULL
988   AND p_validation_mode = JTF_PLSQL_API.g_update THEN
989     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
990       FND_MESSAGE.set_name('AMS', 'AMS_GEO_NO_ACT_AREA_ID');
991       FND_MSG_PUB.add;
992     END IF;
993 
994     x_return_status := FND_API.g_ret_sts_error;
995     RETURN;
996   END IF;
997 
998 -- check object_version_number
999   IF p_geo_area_rec.object_version_number IS NULL
1000     AND p_validation_mode = JTF_PLSQL_API.g_update
1001   THEN
1002     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1003       FND_MESSAGE.set_name('AMS', 'AMS_API_NO_OBJ_VER_NUM');
1004       FND_MSG_PUB.add;
1005     END IF;
1006 
1007     x_return_status := FND_API.g_ret_sts_error;
1008     RETURN;
1009   END IF;
1010 
1011 -- check act_geo_area_used_by_id
1012   IF p_geo_area_rec.act_geo_area_used_by_id IS NULL THEN
1013     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1014       FND_MESSAGE.set_name('AMS', 'AMS_GEO_NO_AREA_USED_BY_ID');
1015       FND_MSG_PUB.add;
1016     END IF;
1017 
1018     x_return_status := FND_API.g_ret_sts_error;
1019     RETURN;
1020   END IF;
1021 
1022 -- check arc_act_geo_area_used_by
1023   IF p_geo_area_rec.arc_act_geo_area_used_by IS NULL THEN
1024     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1025       FND_MESSAGE.set_name('AMS', 'AMS_GEO_NO_AREA_USED_BY');
1026       FND_MSG_PUB.add;
1027     END IF;
1028 
1029     x_return_status := FND_API.g_ret_sts_error;
1030     RETURN;
1031   END IF;
1032 
1033 -- commented out by soagrawa on 29-Jun-2001
1034 --  IF p_geo_area_rec.arc_act_geo_area_used_by NOT IN ('CAMP','ECAM','RCAM') THEN
1035 --    IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1036 --      FND_MESSAGE.set_name('AMS', 'AMS_GEO_BAD_AREA_USED_BY');
1037 --      FND_MSG_PUB.add;
1038 --    END IF;
1039 
1040 --    x_return_status := FND_API.g_ret_sts_error;
1041 --    RETURN;
1042 --  END IF;
1043 
1044 -- check geo_area_type_code
1045   IF p_geo_area_rec.geo_area_type_code IS NULL THEN
1046     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1047       FND_MESSAGE.set_name('AMS', 'AMS_GEO_NO_AREA_TYPE_CODE');
1048       FND_MSG_PUB.add;
1049     END IF;
1050 
1051     x_return_status := FND_API.g_ret_sts_error;
1052     RETURN;
1053   END IF;
1054 
1055 -- check geo_hierarchy_id
1056   IF p_geo_area_rec.geo_hierarchy_id IS NULL THEN
1057     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1058       FND_MESSAGE.set_name('AMS', 'AMS_GEO_NO_HIERARCHY_ID');
1059       FND_MSG_PUB.add;
1060     END IF;
1061 
1062     x_return_status := FND_API.g_ret_sts_error;
1063     RETURN;
1064   END IF;
1065 
1066 END check_geo_area_req_items;
1067 
1068 
1069 /*****************************************************************************/
1070 -- Procedure: check_geo_area_uk_items
1071 --
1072 -- History
1073 --   12/3/1999      julou      created
1074 -------------------------------------------------------------------------------
1075 PROCEDURE check_geo_area_uk_items
1076 (
1077   p_validation_mode   IN      VARCHAR2 := JTF_PLSQL_API.g_create,
1078   p_geo_area_rec      IN      geo_area_rec_type,
1079   x_return_status     OUT NOCOPY     VARCHAR2
1080 )
1081 IS
1082 
1083   l_uk_flag    VARCHAR2(1);
1084 
1085 BEGIN
1086 
1087   x_return_status := FND_API.g_ret_sts_success;
1088 
1089 -- check PK, if activity_geo_area_id is passed in, must check if it is duplicate
1090   IF p_validation_mode = JTF_PLSQL_API.g_create
1091     AND p_geo_area_rec.activity_geo_area_id IS NOT NULL
1092   THEN
1093     l_uk_flag := AMS_Utility_PVT.check_uniqueness
1094                  (
1095          'AMS_ACT_GEO_AREAS',
1096          'activity_geo_area_id = ' || p_geo_area_rec.activity_geo_area_id
1097                  );
1098   END IF;
1099 
1100   IF l_uk_flag = FND_API.g_false THEN
1101     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error)   THEN
1102       FND_MESSAGE.set_name('AMS', 'AMS_ACT_GEO_AREAS_DUP_ID');
1103       FND_MSG_PUB.add;
1104     END IF;
1105 
1106     x_return_status := FND_API.g_ret_sts_error;
1107     RETURN;
1108   END IF;
1109 
1110 -- check used_by, used_by_id
1111   IF p_geo_area_rec.activity_geo_area_id IS NOT NULL THEN      -- UPDATE RECORD
1112 
1116                    'activity_geo_area_id <> ' || p_geo_area_rec.activity_geo_area_id
1113     l_uk_flag := AMS_Utility_PVT.check_uniqueness
1114                  (
1115                    'AMS_ACT_GEO_AREAS',
1117                    || ' AND geo_hierarchy_id = ' || p_geo_area_rec.geo_hierarchy_id
1118                    || ' AND act_geo_area_used_by_id = ' || p_geo_area_rec.act_geo_area_used_by_id
1119                    || ' AND arc_act_geo_area_used_by = ''' || p_geo_area_rec.arc_act_geo_area_used_by || ''''
1120                  );
1121   ELSE                                                       -- NEW RECORD
1122     l_uk_flag := AMS_Utility_PVT.check_uniqueness
1123                  (
1124                    'AMS_ACT_GEO_AREAS',
1125                    'act_geo_area_used_by_id = ' || p_geo_area_rec.act_geo_area_used_by_id
1126                    || ' AND geo_hierarchy_id = ' || p_geo_area_rec.geo_hierarchy_id
1127                    || ' AND arc_act_geo_area_used_by = ''' || p_geo_area_rec.arc_act_geo_area_used_by || ''''
1128                  );
1129   END IF;
1130 
1131   IF l_uk_flag = FND_API.g_false THEN
1132     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1133       FND_MESSAGE.set_name('AMS', 'AMS_GEO_DUP_USED_BY_AND_ID');
1134       FND_MSG_PUB.add;
1135     END IF;
1136 
1137     x_return_status := FND_API.g_ret_sts_error;
1138     RETURN;
1139   END IF;
1140 
1141 END check_geo_area_uk_items;
1142 
1143 
1144 /*****************************************************************************/
1145 -- Procedure: check_geo_area_fk_items
1146 --
1147 -- History
1148 --   12/3/1999      julou      created
1149 -------------------------------------------------------------------------------
1150 PROCEDURE check_geo_area_fk_items
1151 (
1152   p_geo_area_rec        IN      geo_area_rec_type,
1153   x_return_status       OUT NOCOPY     VARCHAR2
1154 )
1155 IS
1156 
1157   l_fk_flag                     VARCHAR2(1);
1158   l_table_name                  VARCHAR2(30);
1159   l_pk_name                     VARCHAR2(30);
1160   l_pk_value                    VARCHAR2(30);
1161   l_additional_where_clause     VARCHAR2(4000);  -- Used by Check_FK_Exists.
1162   l_pk_data_type                VARCHAR2(30);
1163 BEGIN
1164 
1165   x_return_status := FND_API.g_ret_sts_success;
1166 
1167 
1168 
1169 -- check act_geo_area_used_by_id
1170 
1171 --modified by soagrawa on 29-Jun-2001
1172 /*****
1173    l_fk_flag := AMS_Utility_PVT.check_fk_exists
1174                (
1175                  'AMS_CAMPAIGNS_VL',
1176                  'campaign_id',
1177                  p_geo_area_rec.act_geo_area_used_by_id
1178                );
1179 ***************/
1180 
1181 /*********************** CODE COMMENTED BY ABHOLA **********************************
1182 --  22 - APR - 02
1183 --
1184 
1185      AMS_Utility_PVT.Get_Qual_Table_Name_And_PK (
1186          p_sys_qual                     => p_geo_area_rec.arc_act_geo_area_used_by,
1187          x_return_status                => x_return_status,
1188          x_table_name                   => l_table_name,
1189          x_pk_name                      => l_pk_name
1190       );
1191 
1192       l_pk_value                 := p_geo_area_rec.act_geo_area_used_by_id;
1193       l_pk_data_type             := AMS_Utility_PVT.G_NUMBER;
1194       l_additional_where_clause  := NULL;
1195 
1196       l_fk_flag := AMS_Utility_PVT.Check_FK_Exists (
1197              p_table_name                   => l_table_name
1198             ,p_pk_name                      => l_pk_name
1199             ,p_pk_value                     => l_pk_value
1200             ,p_pk_data_type                 => l_pk_data_type
1201             ,p_additional_where_clause      => l_additional_where_clause
1202          );
1203 
1204   -- end soagrawa
1205 
1206   IF l_fk_flag = FND_API.g_false THEN
1207     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1208       FND_MESSAGE.set_name('AMS', 'AMS_GEO_BAD_AREA_USED_BY_ID');
1209       FND_MSG_PUB.add;
1210     END IF;
1211 
1212     x_return_status := FND_API.g_ret_sts_error;
1213     RETURN;
1214   END IF;
1215 
1216 
1217 ************************************************************************************/
1218 
1219 -- check geo_area_type_code
1220   l_fk_flag := AMS_Utility_PVT.check_fk_exists
1221                (
1222                  'JTF_LOC_TYPES_VL',
1223                  'location_type_code',
1224                  p_geo_area_rec.geo_area_type_code,
1225                  2                             --varchar2 types
1226                );
1227 
1228   IF l_fk_flag = FND_API.g_false THEN
1229     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1230       FND_MESSAGE.set_name('AMS', 'AMS_GEO_BAD_AREA_TYPE_CODE');
1231       FND_MSG_PUB.add;
1232     END IF;
1233 
1234     x_return_status := FND_API.g_ret_sts_error;
1235     RETURN;
1236   END IF;
1237 
1238 -- check geo_hierarchy_id
1239   l_fk_flag := AMS_Utility_PVT.check_fk_exists
1240                (
1241                  'JTF_LOC_HIERARCHIES_B',
1242                  'location_hierarchy_id',
1243                  p_geo_area_rec.geo_hierarchy_id
1244                );
1245 
1246   IF l_fk_flag = FND_API.g_false THEN
1250     END IF;
1247     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1248       FND_MESSAGE.set_name('AMS', 'AMS_GEO_BAD_AREA_HIERARCHY_ID');
1249       FND_MSG_PUB.add;
1251 
1252     x_return_status := FND_API.g_ret_sts_error;
1253     RETURN;
1254   END IF;
1255 
1256 END check_geo_area_fk_items;
1257 
1258 
1259 /*****************************************************************************/
1260 -- Procedure: complete_geo_area_rec
1261 --
1262 -- History
1263 --   12/3/1999      julou      created
1264 -------------------------------------------------------------------------------
1265 PROCEDURE complete_geo_area_rec
1266 (
1267   p_geo_area_rec    IN      geo_area_rec_type,
1268   x_complete_rec    OUT NOCOPY     geo_area_rec_type
1269 )
1270 IS
1271 
1272   CURSOR c_geo_area IS
1273     SELECT * FROM AMS_ACT_GEO_AREAS
1274     WHERE activity_geo_area_id = p_geo_area_rec.activity_geo_area_id;
1275 
1276   l_geo_area_rec     c_geo_area%ROWTYPE;
1277 
1278 BEGIN
1279 
1280   x_complete_rec := p_geo_area_rec;
1281 
1282   OPEN c_geo_area;
1283   FETCH c_geo_area INTO l_geo_area_rec;
1284   IF (c_geo_area%NOTFOUND) THEN
1285     CLOSE c_geo_area;
1286     IF FND_MSG_PUB.check_msg_level(FND_MSG_PUB.g_msg_lvl_error) THEN
1287       FND_MESSAGE.set_name('AMS', 'AMS_API_RECORD_NOT_FOUND');
1288       FND_MSG_PUB.add;
1289     END IF;
1290     RAISE FND_API.g_exc_error;
1291   END IF;
1292   CLOSE c_geo_area;
1293 
1294 
1295   IF p_geo_area_rec.act_geo_area_used_by_id = FND_API.g_miss_num THEN
1296     x_complete_rec.act_geo_area_used_by_id := l_geo_area_rec.act_geo_area_used_by_id;
1297   END IF;
1298 
1299   IF p_geo_area_rec.arc_act_geo_area_used_by = FND_API.g_miss_char THEN
1300     x_complete_rec.arc_act_geo_area_used_by := l_geo_area_rec.arc_act_geo_area_used_by;
1301   END IF;
1302 
1303   IF p_geo_area_rec.geo_area_type_code = FND_API.g_miss_char THEN
1304     x_complete_rec.geo_area_type_code := l_geo_area_rec.geo_area_type_code;
1305   END IF;
1306 
1307   IF p_geo_area_rec.geo_hierarchy_id = FND_API.g_miss_num THEN
1308     x_complete_rec.geo_hierarchy_id := l_geo_area_rec.geo_hierarchy_id;
1309   END IF;
1310 
1311 
1312   IF p_geo_area_rec.attribute_category = FND_API.g_miss_char THEN
1313     x_complete_rec.attribute_category := l_geo_area_rec.attribute_category;
1314   END IF;
1315 
1316   IF p_geo_area_rec.attribute1 = FND_API.g_miss_char THEN
1317     x_complete_rec.attribute1 := l_geo_area_rec.attribute1;
1318   END IF;
1319 
1320   IF p_geo_area_rec.attribute2 = FND_API.g_miss_char THEN
1321     x_complete_rec.attribute2 := l_geo_area_rec.attribute2;
1322   END IF;
1323 
1324   IF p_geo_area_rec.attribute3 = FND_API.g_miss_char THEN
1325     x_complete_rec.attribute3 := l_geo_area_rec.attribute3;
1326   END IF;
1327 
1328   IF p_geo_area_rec.attribute4 = FND_API.g_miss_char THEN
1329     x_complete_rec.attribute4 := l_geo_area_rec.attribute4;
1330   END IF;
1331 
1332   IF p_geo_area_rec.attribute5 = FND_API.g_miss_char THEN
1333     x_complete_rec.attribute5 := l_geo_area_rec.attribute5;
1334   END IF;
1335 
1336   IF p_geo_area_rec.attribute6 = FND_API.g_miss_char THEN
1337     x_complete_rec.attribute6 := l_geo_area_rec.attribute6;
1338   END IF;
1339 
1340   IF p_geo_area_rec.attribute7 = FND_API.g_miss_char THEN
1341     x_complete_rec.attribute7 := l_geo_area_rec.attribute7;
1342   END IF;
1343 
1344   IF p_geo_area_rec.attribute8 = FND_API.g_miss_char THEN
1345     x_complete_rec.attribute8 := l_geo_area_rec.attribute8;
1346   END IF;
1347 
1348   IF p_geo_area_rec.attribute9 = FND_API.g_miss_char THEN
1349     x_complete_rec.attribute9 := l_geo_area_rec.attribute9;
1350   END IF;
1351 
1352   IF p_geo_area_rec.attribute10 = FND_API.g_miss_char THEN
1353     x_complete_rec.attribute10 := l_geo_area_rec.attribute10;
1354   END IF;
1355 
1356   IF p_geo_area_rec.attribute11 = FND_API.g_miss_char THEN
1357     x_complete_rec.attribute11 := l_geo_area_rec.attribute11;
1358   END IF;
1359 
1360   IF p_geo_area_rec.attribute12 = FND_API.g_miss_char THEN
1361     x_complete_rec.attribute12 := l_geo_area_rec.attribute12;
1362   END IF;
1363 
1364   IF p_geo_area_rec.attribute13 = FND_API.g_miss_char THEN
1365     x_complete_rec.attribute13 := l_geo_area_rec.attribute13;
1366   END IF;
1367 
1368   IF p_geo_area_rec.attribute14 = FND_API.g_miss_char THEN
1369     x_complete_rec.attribute14 := l_geo_area_rec.attribute14;
1370   END IF;
1371 
1372   IF p_geo_area_rec.attribute15 = FND_API.g_miss_char THEN
1373     x_complete_rec.attribute15 := l_geo_area_rec.attribute15;
1374   END IF;
1375 
1376 END complete_geo_area_rec;
1377 
1378 
1379 /****************************************************************************/
1380 -- Procedure
1381 --   init_rec
1382 --
1383 -- HISTORY
1384 --    12/19/1999    julou    Created.
1385 ------------------------------------------------------------------------------
1386 PROCEDURE init_rec
1387 (
1388   x_geo_area_rec  OUT NOCOPY  geo_area_rec_type
1389 )
1390 IS
1391 
1392 BEGIN
1393 
1394   x_geo_area_rec.activity_geo_area_id := FND_API.g_miss_num;
1395   x_geo_area_rec.last_update_date := FND_API.g_miss_date;
1396   x_geo_area_rec.last_updated_by := FND_API.g_miss_num;
1397   x_geo_area_rec.creation_date := FND_API.g_miss_date;
1398   x_geo_area_rec.created_by := FND_API.g_miss_num;
1399   x_geo_area_rec.last_update_login := FND_API.g_miss_num;
1400   x_geo_area_rec.object_version_number := FND_API.g_miss_num;
1401   x_geo_area_rec.act_geo_area_used_by_id := FND_API.g_miss_num;
1402   x_geo_area_rec.arc_act_geo_area_used_by := FND_API.g_miss_char;
1403   x_geo_area_rec.attribute_category := FND_API.g_miss_char;
1407   x_geo_area_rec.attribute4 := FND_API.g_miss_char;
1404   x_geo_area_rec.attribute1 := FND_API.g_miss_char;
1405   x_geo_area_rec.attribute2 := FND_API.g_miss_char;
1406   x_geo_area_rec.attribute3 := FND_API.g_miss_char;
1408   x_geo_area_rec.attribute5 := FND_API.g_miss_char;
1409   x_geo_area_rec.attribute6 := FND_API.g_miss_char;
1410   x_geo_area_rec.attribute7 := FND_API.g_miss_char;
1411   x_geo_area_rec.attribute8 := FND_API.g_miss_char;
1412   x_geo_area_rec.attribute9 := FND_API.g_miss_char;
1413   x_geo_area_rec.attribute10 := FND_API.g_miss_char;
1414   x_geo_area_rec.attribute11 := FND_API.g_miss_char;
1415   x_geo_area_rec.attribute12 := FND_API.g_miss_char;
1416   x_geo_area_rec.attribute13 := FND_API.g_miss_char;
1417   x_geo_area_rec.attribute14 := FND_API.g_miss_char;
1418   x_geo_area_rec.attribute15 := FND_API.g_miss_char;
1419   x_geo_area_rec.geo_area_type_code := FND_API.g_miss_char;
1420   x_geo_area_rec.geo_hierarchy_id := FND_API.g_miss_num;
1421 
1422 END init_rec;
1423 
1424 END AMS_Geo_Areas_PVT;