DBA Data[Home] [Help]

PACKAGE BODY: APPS.VEA_TP_LAYERS_SV

Source


1 PACKAGE BODY VEA_TP_LAYERS_SV as
2 /* $Header: VEAVATLB.pls 115.5 2004/07/27 00:08:47 rvishnuv ship $      */
3 --{
4     /*======================  vea_tp_layers_sv  =========================*/
5     /*========================================================================
6        PURPOSE:  Table handler package for table VEA_TP_LAYERS
7 
8        NOTES:                To run the script:
9 
10                              sql> start VEAVATLB.pls
11 
12        HISTORY
13                              Created   N PARIKH       09/09/99 10:00 AM
14 
15     =========================================================================*/
16 
17     G_PACKAGE_NAME   CONSTANT VARCHAR2(30) := 'VEA_TP_LAYERS_SV';
18     --
19     --
20     /*========================================================================
21 
22        PROCEDURE NAME: insert_row
23 
24        PURPOSE: Inserts a record into VEA_TP_LAYERS table
25 
26     ========================================================================*/
27     PROCEDURE
28       insert_row
29         (
30           p_layer_provider_code   IN     vea_tp_layers.layer_provider_code%TYPE,
31           p_tp_layer_id           IN     vea_tp_layers.tp_layer_id%TYPE,
32           p_name                  IN     vea_tp_layers.name%TYPE,
33           p_description           IN     vea_tp_layers.description%TYPE,
34           p_active_flag           IN     vea_tp_layers.active_flag%TYPE
35         )
36     IS
37     --{
38         l_api_name            CONSTANT VARCHAR2(30) := 'insert_row';
39         l_location            VARCHAR2(32767);
40 	--
41 	--
42         l_user_id       NUMBER := vea_tpa_util_pvt.get_user_id;
43         l_login_id      NUMBER := vea_tpa_util_pvt.get_login_id;
44     --}
45     BEGIN
46     --{
47 	l_location := '0010';
48 	--
49         INSERT INTO vea_tp_layers
50           (
51             layer_provider_code, tp_layer_id,
52 	    name,
53             description,
54 	    active_flag,
55             created_by, creation_date,
56             last_updated_by, last_update_date,
57             last_update_login
58           )
59         VALUES
60           (
61             p_layer_provider_code, p_tp_layer_id,
62 	    p_name,
63             p_description,
64 	    'N',      --p_active_flag,
65             l_user_id, SYSDATE,
66             l_user_id, SYSDATE,
67             l_login_id
68           );
69     --}
70     EXCEPTION
71     --{
72 	WHEN OTHERS
73 	THEN
74 	--{
75 	    vea_tpa_util_pvt.add_exc_message_and_raise
76 	      (
77 		p_package_name => G_PACKAGE_NAME,
78 		p_api_name     => l_api_name,
79 		p_location     => l_location
80 	      );
81 	--}
82     --}
83     END insert_row;
84     --
85     --
86     /*========================================================================
87 
88        PROCEDURE NAME: update_row
89 
90        PURPOSE: Updates a record into VEA_TP_LAYERS table
91 
92     ========================================================================*/
93     PROCEDURE
94       update_row
95         (
96           p_layer_provider_code       IN     vea_tp_layers.layer_provider_code%TYPE,
97           p_tp_layer_id           IN     vea_tp_layers.tp_layer_id%TYPE,
98           p_name                  IN     vea_tp_layers.name%TYPE,
99           p_description           IN     vea_tp_layers.description%TYPE,
100           p_active_flag           IN     vea_tp_layers.active_flag%TYPE
101         )
102     IS
103     --{
104         l_api_name            CONSTANT VARCHAR2(30) := 'update_row';
105         l_location            VARCHAR2(32767);
106 	--
107 	--
108         l_user_id       NUMBER := vea_tpa_util_pvt.get_user_id;
109         l_login_id      NUMBER := vea_tpa_util_pvt.get_login_id;
110     --}
111     BEGIN
112     --{
113 	l_location := '0010';
114 	--
115             UPDATE vea_tp_layers
116             SET    name                         = p_name,
117                    description                  = p_description,
118 		   active_flag                  = 'N', --p_active_flag,
119                    last_updated_by              = l_user_id,
120                    last_update_date             = SYSDATE,
121                    last_update_login            = l_login_id
122             WHERE  layer_provider_code          = p_layer_provider_code
123 	    AND    tp_layer_id                  = p_tp_layer_id;
124     --}
125     EXCEPTION
126     --{
127 	WHEN OTHERS
128 	THEN
129 	--{
130 	    vea_tpa_util_pvt.add_exc_message_and_raise
131 	      (
132 		p_package_name => G_PACKAGE_NAME,
133 		p_api_name     => l_api_name,
134 		p_location     => l_location
135 	      );
136 	--}
137     --}
138     END update_row;
139     --
140     --
141     /*========================================================================
142 
143        PROCEDURE NAME: delete_row
144 
145        PURPOSE: Deletes the specified TP Layer
146 
147     ========================================================================*/
148     PROCEDURE
149       delete_row
150         (
151           p_layer_provider_code       IN     vea_tp_layers.layer_provider_code%TYPE,
152           p_tp_layer_id               IN     vea_tp_layers.tp_layer_id%TYPE
153         )
154     IS
155     --{
156         l_api_name            CONSTANT VARCHAR2(30) := 'delete_row';
157         l_location            VARCHAR2(32767);
158 	--
159 	--
160         l_user_id       NUMBER := vea_tpa_util_pvt.get_user_id;
161         l_login_id      NUMBER := vea_tpa_util_pvt.get_login_id;
162     --}
163     BEGIN
164     --{
165 	l_location := '0010';
166 	--
167 	/*
168 	vea_layer_licenses_sv.delete_rows
169 	  (
170 	    p_layer_provider_code => p_layer_provider_code,
171 	    p_tp_layer_id         => p_tp_layer_id
172 	  );
173 	--
174 	--
175 	l_location := '0020';
176 	*/
177 	--
178 	DELETE vea_tp_layers
179 	WHERE  layer_provider_code = p_layer_provider_code
180 	AND    tp_layer_id         = p_tp_layer_id;
181     --}
182     EXCEPTION
183     --{
184 	WHEN OTHERS
185 	THEN
186 	--{
187 	    vea_tpa_util_pvt.add_exc_message_and_raise
188 	      (
189 		p_package_name => G_PACKAGE_NAME,
190 		p_api_name     => l_api_name,
191 		p_location     => l_location
192 	      );
193 	--}
194     --}
195     END delete_row;
196     --
197     --
198     /*========================================================================
199 
200        PROCEDURE NAME: get_tp_layer_id
201 
202        PURPOSE: Returns TP Layer ID for the specifed TP Layer name
203 
204     ========================================================================*/
205     FUNCTION
206       get_tp_layer_id
207         (
208           p_tp_layer_name               IN     vea_tp_layers.name%TYPE
209         )
210     RETURN vea_tp_layers.tp_layer_id%TYPE
211     IS
212     --{
213 	CURSOR tp_layer_cur
214 		 (
215                    p_layer_provider_code   IN     vea_tp_layers.name%TYPE,
216                    p_tp_layer_name         IN     vea_tp_layers.name%TYPE
217 		 )
218 	IS
219 	  SELECT tp_layer_id
220 	  FROM   vea_tp_layers
221 	  WHERE  name                = p_tp_layer_name
222 	  AND    layer_provider_code = p_layer_provider_code;
223 	--
224 	--
225     --}
226     BEGIN
227     --{
228 	FOR tp_layer_rec IN tp_layer_cur
229 			      (
230 				p_layer_provider_code => vea_tpa_util_pvt.get_curr_layer_provider_code,
231 				p_tp_layer_name       => p_tp_layer_name
232 			      )
233 	LOOP
234 	--{
235 	    RETURN(tp_layer_rec.tp_layer_id);
236 	--}
237 	END LOOP;
238 	--
239 	--
240 	RETURN(NULL);
241     --}
242     EXCEPTION
243     --{
244 	WHEN OTHERS
245 	THEN
246 	--{
247 	    RAISE;
248 	--}
249     --}
250     END get_tp_layer_id;
251     --
252     --
253     /*========================================================================
254 
255        PROCEDURE NAME: getId
256 
257        PURPOSE: Returns TP Layer ID for the specifed TP Layer name
258 
259     ========================================================================*/
260     FUNCTION
261       getId
262         (
263           p_layer_provider_code         IN     vea_tp_layers.layer_provider_code%TYPE,
264           p_tp_layer_name               IN     vea_tp_layers.name%TYPE
265         )
266     RETURN vea_tp_layers.tp_layer_id%TYPE
267     IS
268     --{
269 	CURSOR tp_layer_cur
270 		 (
271                    p_layer_provider_code   IN     vea_tp_layers.layer_provider_code%TYPE,
272                    p_tp_layer_name         IN     vea_tp_layers.name%TYPE
273 		 )
274 	IS
275 	  SELECT tp_layer_id
276 	  FROM   vea_tp_layers
277 	  WHERE  name                = p_tp_layer_name
278 	  AND    layer_provider_code = p_layer_provider_code;
279 	--
280 	--
281     --}
282     BEGIN
283     --{
284 	FOR tp_layer_rec IN tp_layer_cur
285 			      (
286 				p_layer_provider_code => p_layer_provider_code,
287 				p_tp_layer_name       => p_tp_layer_name
288 			      )
289 	LOOP
290 	--{
291 	    RETURN(tp_layer_rec.tp_layer_id);
292 	--}
293 	END LOOP;
294 	--
295 	--
296 	RETURN(NULL);
297     --}
298     EXCEPTION
299     --{
300 	WHEN OTHERS
301 	THEN
302 	--{
303 	    RAISE;
304 	--}
305     --}
306     END getId;
307     --
308     --
309     /*========================================================================
310 
311        PROCEDURE NAME: delete_rows
312 
313        PURPOSE: Removes all data belonging to the specified TP layer
314 		and containing customizations for the specified application
315 
316     ========================================================================*/
317     PROCEDURE
318       delete_rows
319         (
320           p_layer_provider_code    IN     vea_tp_layers.layer_provider_code%TYPE,
321           p_tp_layer_id            IN     vea_tp_layers.tp_layer_id%TYPE,
322           p_application_short_name IN     vea_packages.application_short_name%TYPE
323         )
324     IS
325     --{
326         l_api_name            CONSTANT VARCHAR2(30) := 'delete_rows';
327         l_api_version         CONSTANT NUMBER       := 1.0;
328         l_api_type            CONSTANT VARCHAR2(3)  := vea_tpa_util_pvt.G_PRIVATE_API;
329 	--
330 	--
331         l_location            VARCHAR2(32767);
332 	--
333 	--
334         l_tp_layer_id           vea_tp_layers.tp_layer_id%TYPE;
335 	l_layer_header_count    NUMBER;
336 	l_package_count         NUMBER;
337 	--
338 	--
339     --}
340     BEGIN
341     --{
342 	l_location := '0010';
343 	--
344 	l_tp_layer_id := p_tp_layer_id;
345 	--
346 	--
347 	l_location := '0020';
348 	--
349 	IF l_tp_layer_id IS NOT NULL
350 	THEN
351 	--{
352 	    l_location := '0030';
353 	    --
354 	    vea_layer_headers_sv.delete_rows
355 	      (
356 		p_layer_provider_code    => p_layer_provider_code,
357 		p_tp_layer_id            => l_tp_layer_id,
358 		p_application_short_name => p_application_short_name,
359 		x_layer_header_count     => l_layer_header_count
360 	      );
361 	    --
362 	    --
363 	    l_location := '0040';
364 	    --
365 	    vea_packages_sv.delete_rows
366 	      (
367 		p_layer_provider_code    => p_layer_provider_code,
368 		p_tp_layer_id            => l_tp_layer_id,
369 		p_application_short_name => p_application_short_name,
370 		x_package_count          => l_package_count
371 	      );
372 	    --
373 	    --
374 	    l_location := '0050';
375 	    --
376 	    vea_layer_licenses_sv.delete_rows
377 	      (
378 	        p_layer_provider_code => p_layer_provider_code,
379 	        p_tp_layer_id         => l_tp_layer_id
380 	      );
381 	    --
382 	    --
383 	    l_location := '0060';
384 	    --
385 	    IF  l_layer_header_count = 0
386 	    AND l_package_count = 0
387 	    THEN
388 	    --{
389 	        l_location := '0070';
390 	        --
391 	        delete_row
392 	          (
393 		    p_layer_provider_code => p_layer_provider_code,
394 		    p_tp_layer_id         => l_tp_layer_id
395 	          );
396 	    --}
397 	    END IF;
398 	--}
399 	END IF;
400     --}
401     EXCEPTION
402     --{
403 	WHEN OTHERS
404 	THEN
405 	--{
406 	    vea_tpa_util_pvt.add_exc_message_and_raise
407 	      (
408 		p_package_name => G_PACKAGE_NAME,
409 		p_api_name     => l_api_name,
410 		p_location     => l_location
411 	      );
412 	--}
413     --}
414     END delete_rows;
415     --
416     --
417     /*========================================================================
418 
419        PROCEDURE NAME: delete_rows
420 
421        PURPOSE: Removes all data belonging to the specified TP layer
422 		and containing customizations for the specified application
423 
424     ========================================================================*/
425     PROCEDURE
426       delete_rows
427         (
428           p_layer_provider_code    IN     vea_tp_layers.layer_provider_code%TYPE,
429           p_tp_layer_id            IN     vea_tp_layers.tp_layer_id%TYPE,
430           p_tp_layer_name          IN     vea_tp_layers.name%TYPE,
431           p_application_short_name IN     vea_packages.application_short_name%TYPE
432         )
433     IS
434     --{
435         l_api_name            CONSTANT VARCHAR2(30) := 'delete_rows';
436         l_api_version         CONSTANT NUMBER       := 1.0;
437         l_api_type            CONSTANT VARCHAR2(3)  := vea_tpa_util_pvt.G_PUBLIC_API;
438 	--
439 	--
440         l_location            VARCHAR2(32767);
441 	l_savepoint_name      VARCHAR2(30);
442         l_user_id       NUMBER := vea_tpa_util_pvt.get_user_id;
443         l_login_id      NUMBER := vea_tpa_util_pvt.get_login_id;
444 	--
445 	--
446 	CURSOR tp_layer_id_cur
447                  (
448                    p_layer_provider_code   IN     vea_tp_layers.layer_provider_code%TYPE,
449                    p_tp_layer_id           IN     vea_tp_layers.tp_layer_id%TYPE
450                  )
451 	IS
452 	  SELECT tp_layer_id
453 	  FROM   vea_tp_layers
454 	  WHERE  layer_provider_code     = p_layer_provider_code
455 	  AND    tp_layer_id             = p_tp_layer_id;
456 	--
457 	--
458 	CURSOR tp_layer_name_cur
459                  (
460                    p_layer_provider_code   IN     vea_tp_layers.layer_provider_code%TYPE,
461                    p_tp_layer_name         IN     vea_tp_layers.name%TYPE
462                  )
463 	IS
464 	  SELECT tp_layer_id
465 	  FROM   vea_tp_layers
466 	  WHERE  layer_provider_code     = p_layer_provider_code
467 	  AND    name                    = NVL(p_tp_layer_name,name);
468 	--
469 	--
470         l_tp_layer_id           vea_tp_layers.tp_layer_id%TYPE;
471 	--
472 	--
473     --}
474     BEGIN
475     --{
476 	l_location := '0010';
477 	--
478 	l_tp_layer_id := NULL;
479 	--
480 	--
481 	l_location := '0020';
482 	--
483 	IF p_tp_layer_id IS NOT NULL
484 	THEN
485 	--{
486 	    l_location := '0030';
487 	    --
488 	    FOR tp_layer_id_rec IN tp_layer_id_cur
489 			       (
490 			         p_layer_provider_code  => p_layer_provider_code,
491 			         p_tp_layer_id          => p_tp_layer_id
492 			       )
493 	    LOOP
494 	    --{
495 	        l_location := '0040';
496 	        --
497 	        l_tp_layer_id := tp_layer_id_rec.tp_layer_id;
498 	        --
499 	        --
500 	        l_location := '0050';
501 	        --
502 		delete_rows
503 		  (
504 		    p_layer_provider_code    => p_layer_provider_code,
505 		    p_tp_layer_id            => l_tp_layer_id,
506 		    p_application_short_name => p_application_short_name
507 		  );
508 	    --}
509 	    END LOOP;
510 	--}
511 	END IF;
512 	--
513 	--
514 	l_location := '0060';
515 	--
516 	IF l_tp_layer_id IS NULL
517 	THEN
518 	--{
519 	    l_location := '0070';
520 	    --
521 	    FOR tp_layer_name_rec IN tp_layer_name_cur
522 			               (
523 			                 p_layer_provider_code  => p_layer_provider_code,
524 			                 p_tp_layer_name          => p_tp_layer_name
525 			               )
526 	    LOOP
527 	    --{
528 	        l_location := '0080';
529 	        --
530 	        l_tp_layer_id := tp_layer_name_rec.tp_layer_id;
531 	        --
532 	        --
533 	        l_location := '0090';
534 	        --
535 		delete_rows
536 		  (
537 		    p_layer_provider_code    => p_layer_provider_code,
538 		    p_tp_layer_id            => l_tp_layer_id,
539 		    p_application_short_name => p_application_short_name
540 		  );
541 	    --}
542 	    END LOOP;
543 	--}
544 	END IF;
545     --}
546     EXCEPTION
547     --{
548 	WHEN OTHERS
549 	THEN
550 	--{
551 	    vea_tpa_util_pvt.add_exc_message_and_raise
552 	      (
553 		p_package_name => G_PACKAGE_NAME,
554 		p_api_name     => l_api_name,
555 		p_location     => l_location
556 	      );
557 	--}
558     --}
559     END delete_rows;
560     --
561     --
562     /*========================================================================
563 
564        PROCEDURE NAME: deleteUnlicensedLayers
565 
566        PURPOSE: Deletes all TP layers which are not licensed to the current
567 		customer and which does not have any packages.
568 
569     ========================================================================*/
570     PROCEDURE
571       deleteUnlicensedLayers
572         (
573           p_layer_provider_code       IN     vea_tp_layers.layer_provider_code%TYPE
574         )
575     IS
576     --{
577         l_api_name            CONSTANT VARCHAR2(30) := 'deleteUnlicensedLayers';
578         l_location            VARCHAR2(32767);
579 	--
580 	--
581         l_user_id       NUMBER := vea_tpa_util_pvt.get_user_id;
582         l_login_id      NUMBER := vea_tpa_util_pvt.get_login_id;
583     --}
584     BEGIN
585     --{
586 	l_location := '0010';
587 	--
588 	DELETE vea_tp_layers
589 	WHERE  layer_provider_code = p_layer_provider_code
590 	AND    tp_layer_id NOT IN (
591 			            SELECT tp_layer_id
592 			            FROM   vea_packages
593 	                            WHERE  layer_provider_code = p_layer_provider_code
594 				  )
595 	AND    tp_layer_id NOT IN (
596 			            SELECT tp_layer_id
597 			            FROM   vea_layer_licenses
598 	                            WHERE  layer_provider_code = p_layer_provider_code
599 				  );
600     --}
601     EXCEPTION
602     --{
603 	WHEN OTHERS
604 	THEN
605 	--{
606 	    vea_tpa_util_pvt.add_exc_message_and_raise
607 	      (
608 		p_package_name => G_PACKAGE_NAME,
609 		p_api_name     => l_api_name,
610 		p_location     => l_location
611 	      );
612 	--}
613     --}
614     END deleteUnlicensedLayers;
615     --
616     --
617     /*========================================================================
618 
619        PROCEDURE NAME: process
620 
621        PURPOSE: Table hadndler API for VEA_TP_LAYERS table.
622 
623 		It inserts/updates a record in VEA_TP_LAYERS table.
624 
625     ========================================================================*/
626     PROCEDURE
627       process
628         (
629           p_api_version               IN     NUMBER,
630           p_init_msg_list             IN     VARCHAR2 := FND_API.G_FALSE,
631           p_commit                    IN     VARCHAR2 := FND_API.G_FALSE,
632           p_validation_level          IN     NUMBER   := FND_API.G_VALID_LEVEL_FULL,
633           x_return_status             OUT NOCOPY     VARCHAR2,
634           x_msg_count                 OUT NOCOPY     NUMBER,
635           x_msg_data                  OUT NOCOPY     VARCHAR2,
636           x_id                        OUT NOCOPY     vea_tp_layers.tp_layer_id%TYPE,
637           p_layer_provider_code       IN     vea_tp_layers.layer_provider_code%TYPE,
638           p_name                      IN     vea_tp_layers.name%TYPE,
639           p_description               IN     vea_tp_layers.description%TYPE,
640           p_active_flag               IN     vea_tp_layers.active_flag%TYPE,
641           p_id                        IN     vea_tp_layers.tp_layer_id%TYPE   := NULL
642         )
643     IS
644     --{
645         l_api_name            CONSTANT VARCHAR2(30) := 'process';
646         l_api_version         CONSTANT NUMBER       := 1.0;
647         l_api_type            CONSTANT VARCHAR2(3)  := vea_tpa_util_pvt.G_PUBLIC_API;
648         --
649         --
650         l_location            VARCHAR2(32767);
651         l_savepoint_name      VARCHAR2(30);
652         l_tp_layer_id     vea_tp_layers.tp_layer_id%TYPE;
653         --
654         --
655         CURSOR tp_layer_cur
656                  (
657                    p_layer_provider_code   IN  vea_tp_layers.layer_provider_code%TYPE,
658                    p_name                  IN  vea_tp_layers.name%TYPE
659                  )
660         IS
661           SELECT tp_layer_id
662           FROM   vea_tp_layers
663           WHERE  layer_provider_code     = p_layer_provider_code
664           AND    name                    = p_name;
665         --
666         --
667         /*
668         CURSOR tp_layer_cur
669                  (
670                    p_layer_provider_code   IN  vea_tp_layers.layer_provider_code%TYPE,
671                    p_tp_layer_id           IN  vea_tp_layers.tp_layer_id%TYPE
672                  )
673         IS
674           SELECT tp_layer_id
675           FROM   vea_tp_layers
676           WHERE  layer_provider_code     = p_layer_provider_code
677           AND    tp_layer_id             = p_tp_layer_id;
678         */
679         --
680         --
681     --}
682     BEGIN
683     --{
684 	l_location := '0010';
685 	--
686 	IF NOT( vea_tpa_util_pvt.is_vea_installed() )
687 	THEN
688 	   RETURN;
689 	END IF;
690 	--
691 	--
692         -- Standard API Header
693         --
694 	l_location := '0020';
695 	--
696         vea_tpa_util_pvt.api_header
697           (
698             p_package_name                => G_PACKAGE_NAME,
699             p_api_name                    => l_api_name,
700             p_api_type                    => l_api_type,
701             p_api_current_version         => l_api_version,
702             p_api_caller_version          => p_api_version,
703             p_init_msg_list               => p_init_msg_list,
704             x_savepoint_name              => l_savepoint_name,
705             x_api_return_status           => x_return_status
706           );
707         --
708         --
709         --{ API Body
710         --
711         --
712 	l_location := '0030';
713 	--
714         l_tp_layer_id := NULL;
715         g_tp_layer_id := NULL;
716         --
717         --
718 	l_location := '0040';
719 	--
720         l_tp_layer_id :=       getId
721                                  (
722                                    p_layer_provider_code         => p_layer_provider_code,
723                                    p_tp_layer_name               => p_name
724                                  );
725         --
726         --
727 	l_location := '0050';
728         --
729         g_tp_layer_id := l_tp_layer_id;
730         --
731         --
732 	l_location := '0060';
733 	--
734         IF l_tp_layer_id IS NULL
735         THEN
736         --{
737 	    l_location := '0070';
738 	    --
739 	    IF p_layer_provider_code = vea_tpa_util_pvt.g_current_layer_provider_code
740 	    THEN
741                 SELECT NVL( p_id, vea_tp_layers_s.NEXTVAL )
742                 INTO   l_tp_layer_id
743                 FROM   DUAL;
744 	    ELSE
745                 SELECT vea_tp_layers_s.NEXTVAL
746                 INTO   l_tp_layer_id
747                 FROM   DUAL;
748 	    END IF;
749 	    --
750             --
751 	    l_location := '0080';
752 	    --
753             insert_row
754               (
755                 p_layer_provider_code        => p_layer_provider_code,
756                 p_tp_layer_id                => l_tp_layer_id,
757                 p_name                       => p_name,
758                 p_description                => p_description,
759                 p_active_flag                => p_active_flag
760               );
761             -- This is very important because, we base the insert/update of licenses
762             --, release details and versions on this.
763             g_tp_layer_id := l_tp_layer_id;
764         --}
765         ELSE
766         --{
767 	    l_location := '0090';
768 	    --
769             update_row
770               (
771                 p_layer_provider_code        => p_layer_provider_code,
772                 p_tp_layer_id                => l_tp_layer_id,
773                 p_name                       => p_name,
774                 p_description                => p_description,
775                 p_active_flag                => p_active_flag
776               );
777         --}
778         END IF;
779         --
780         --
781 	l_location := '0100';
782 	--
783         x_id := l_tp_layer_id;
784         --
785         --
786 	l_location := '0110';
787 	--
788         --
789 	IF p_id IS NOT NULL
790 	THEN
791 	    vea_tpa_util_pvt.put
792 	      (
793 	        p_key                => p_id,
794 	        p_value              => l_tp_layer_id,
795 	        x_cache_tbl          => vea_tpa_util_pvt.g_tpLyr_fileId_dbId_tbl,
796 	        x_cache_ext_tbl      => vea_tpa_util_pvt.g_tpLyr_fileId_dbId_ext_tbl
797 	      );
798 	END IF;
799         --
800         --} API Body
801         --
802         --
803         -- Standard  API Footer
804         --
805 	l_location := '0110';
806 	--
807         vea_tpa_util_pvt.api_footer
808           (
809             p_commit                      => p_commit,
810             x_msg_count                   => x_msg_count,
811             x_msg_data                    => x_msg_data
812           );
813     --}
814     EXCEPTION
815     --{
816         WHEN FND_API.G_EXC_ERROR
817         THEN
818         --{
819             --RAISE;
820             vea_tpa_util_pvt.handle_error
821               (
822                 p_error_type                  => vea_tpa_util_pvt.G_ERROR,
823                 p_savepoint_name              => l_savepoint_name,
824                 p_package_name                => G_PACKAGE_NAME,
825                 p_api_name                    => l_api_name,
826 	        p_location                    => l_location,
827                 x_msg_count                   => x_msg_count,
828                 x_msg_data                    => x_msg_data,
829                 x_api_return_status           => x_return_status
830               );
831         --}
832         WHEN FND_API.G_EXC_UNEXPECTED_ERROR
833         THEN
834         --{
835             --RAISE;
836             vea_tpa_util_pvt.handle_error
837               (
838                 p_error_type                  => vea_tpa_util_pvt.G_UNEXPECTED_ERROR,
839                 p_savepoint_name              => l_savepoint_name,
840                 p_package_name                => G_PACKAGE_NAME,
841                 p_api_name                    => l_api_name,
842 	        p_location                    => l_location,
843                 x_msg_count                   => x_msg_count,
844                 x_msg_data                    => x_msg_data,
845                 x_api_return_status           => x_return_status
846               );
847         --}
848         WHEN OTHERS
849         THEN
850         --{
851             --RAISE;
852             vea_tpa_util_pvt.handle_error
853               (
854                 p_error_type                  => vea_tpa_util_pvt.G_OTHER_ERROR,
855                 p_savepoint_name              => l_savepoint_name,
856                 p_package_name                => G_PACKAGE_NAME,
857                 p_api_name                    => l_api_name,
858 	        p_location                    => l_location,
859                 x_msg_count                   => x_msg_count,
860                 x_msg_data                    => x_msg_data,
861                 x_api_return_status           => x_return_status
862               );
863         --}
864     --}
865     END process;
866 --}
867 END VEA_TP_LAYERS_SV;