DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_AAD_INSTALL_PVT

Source


1 PACKAGE BODY xla_aad_install_pvt AS
2 /* $Header: xlainaad.pkb 120.7.12020000.2 2013/01/23 06:45:29 vgopiset ship $ */
3 
4 --=============================================================================
5 --           ****************  declaraions  ********************
6 --=============================================================================
7 -------------------------------------------------------------------------------
8 -- declaring global types
9 -------------------------------------------------------------------------------
10 -------------------------------------------------------------------------------
11 -- declaring global constants
12 -------------------------------------------------------------------------------
13 C_FILE_NAME                   CONSTANT VARCHAR2(30):='xlaalupl.pkb';
14 C_CHAR                        CONSTANT VARCHAR2(1) :='
15 ';
16 
17 --=============================================================================
18 --               *********** Local Trace Routine **********
19 --=============================================================================
20 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
21 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
22 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
23 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
24 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
25 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
26 
27 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
28 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_aad_install_pvt';
29 
30 g_log_level           NUMBER;
31 g_log_enabled         BOOLEAN;
32 
33 PROCEDURE trace
34   (p_msg                        IN VARCHAR2
35   ,p_module                     IN VARCHAR2
36   ,p_level                      IN NUMBER) IS
37 l_time varchar2(300);
38 BEGIN
39   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
40     fnd_log.message(p_level, p_module);
41   ELSIF p_level >= g_log_level THEN
42     fnd_log.string(p_level, p_module, p_msg);
43   END IF;
44 EXCEPTION
45   WHEN xla_exceptions_pkg.application_exception THEN
46     RAISE;
47 
48   WHEN OTHERS THEN
49     xla_exceptions_pkg.raise_message
50       (p_location   => 'xla_aad_install_pvt.trace');
51 END trace;
52 
53 
54 --=============================================================================
55 --          *********** private procedures and functions **********
56 --=============================================================================
57 --=============================================================================
58 --
59 -- Name       :  XLA_ZD_PREPARE
60 -- Description:  PREPARE API call for Non-FND Loaders
61 --
62 --=============================================================================
63 PROCEDURE XLA_ZD_PREPARE
64 IS
65  l_log_module           VARCHAR2(240);
66 BEGIN
67 
68  IF g_log_enabled THEN
69     l_log_module := C_DEFAULT_MODULE||'.XLA_ZD_PREPARE';
70   END IF;
71 
72   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73     trace(p_msg    => 'BEGIN of procedure  XLA_ZD_PREPARE',
74           p_module => l_log_module,
75           p_level  => C_LEVEL_PROCEDURE);
76   END IF;
77 
78 	AD_ZD_SEED.PREPARE('XLA_DESCRIPTIONS_B');
79 	AD_ZD_SEED.PREPARE('XLA_DESCRIPTIONS_TL');
80 	AD_ZD_SEED.PREPARE('XLA_DESC_PRIORITIES');
81 	AD_ZD_SEED.PREPARE('XLA_DESCRIPT_DETAILS_B');
82 	AD_ZD_SEED.PREPARE('XLA_DESCRIPT_DETAILS_TL');
83 	AD_ZD_SEED.PREPARE('XLA_CONDITIONS');
84 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SETS_B');
85 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SETS_TL');
86 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SET_VALUES');
87 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_HDRS_B');
88 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_HDRS_TL');
89 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_DTLS_B');
90 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_DTLS_TL');
91 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_SOURCES');
92 	AD_ZD_SEED.PREPARE('XLA_SEG_RULES_B');
93 	AD_ZD_SEED.PREPARE('XLA_SEG_RULES_TL');
94 	AD_ZD_SEED.PREPARE('XLA_SEG_RULE_DETAILS');
95 	AD_ZD_SEED.PREPARE('XLA_ACCT_LINE_TYPES_B');
96 	AD_ZD_SEED.PREPARE('XLA_ACCT_LINE_TYPES_TL');
97 	AD_ZD_SEED.PREPARE('XLA_JLT_ACCT_ATTRS');
98 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFINITIONS_B');
99 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFINITIONS_TL');
100 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_JLT_ASSGNS');
101 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_ADR_ASSGNS');
102 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_AC_ASSGNS');
103 	AD_ZD_SEED.PREPARE('XLA_MPA_HEADER_AC_ASSGNS');
104 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_ASSGNS');
105 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_AC_ASSGNS');
106 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_ADR_ASSGNS');
107 	AD_ZD_SEED.PREPARE('XLA_PRODUCT_RULES_B');
108 	AD_ZD_SEED.PREPARE('XLA_PRODUCT_RULES_TL');
109 	AD_ZD_SEED.PREPARE('XLA_PROD_ACCT_HEADERS');
110 	AD_ZD_SEED.PREPARE('XLA_AAD_HDR_ACCT_ATTRS');
111 	AD_ZD_SEED.PREPARE('XLA_AAD_LINE_DEFN_ASSGNS');
112 	AD_ZD_SEED.PREPARE('XLA_AAD_HEADER_AC_ASSGNS');
113 	AD_ZD_SEED.PREPARE('XLA_STAGE_ACCTG_METHODS');
114 	AD_ZD_SEED.PREPARE('XLA_ACCTG_METHOD_RULES');
115 	AD_ZD_SEED.PREPARE('XLA_STAGING_COMPONENTS_H');
116         AD_ZD_SEED.PREPARE('XLA_ACCTG_METHODS_TL');
117         AD_ZD_SEED.PREPARE('XLA_ACCTG_METHODS_B');
118 
119 
120   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
121     trace(p_msg    => 'END of procedure XLA_ZD_PREPARE',
122           p_module => l_log_module,
123           p_level  => C_LEVEL_PROCEDURE);
124   END IF;
125 END XLA_ZD_PREPARE;
126 
127 --=============================================================================
128 --
129 --
130 --
131 --
132 --
133 --          *********** public procedures and functions **********
134 --
135 --
136 --
137 --
138 --
139 --=============================================================================
140 
141 
142 --=============================================================================
143 --
144 -- Name:
145 -- Description:
146 --
147 --=============================================================================
148 PROCEDURE pre_import
149 (p_application_id        IN INTEGER
150 ,p_amb_context_code      IN VARCHAR2
151 ,x_return_status         IN OUT NOCOPY VARCHAR2
152 )IS
153   l_staging_context_code VARCHAR2(30);
154   l_log_module           VARCHAR2(240);
155 BEGIN
156   IF g_log_enabled THEN
157     l_log_module := C_DEFAULT_MODULE||'.pre_import';
158   END IF;
159 
160   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161     trace(p_msg    => 'BEGIN of procedure pre_import',
162           p_module => l_log_module,
163           p_level  => C_LEVEL_PROCEDURE);
164   END IF;
165 
166   xla_aad_loader_util_pvt.reset_errors
167              (p_application_id     => p_application_id
168              ,p_amb_context_code   => p_amb_context_code
169              ,p_request_code       => 'IMPORT');
170 
171   SELECT p_amb_context_code||'_INSTALL_'||application_short_name
172     INTO l_staging_context_code
173     FROM fnd_application
174    WHERE application_id = p_application_id;
175 
176   XLA_ZD_PREPARE ; --added for bug 14812442
177 
178   x_return_status := xla_aad_import_pvt.pre_import
179              (p_application_id   => p_application_id
180              ,p_amb_context_code => p_amb_context_code
181              ,p_staging_context_code => l_staging_context_code);
182 
183   IF (x_return_status = 'SUCCESS') THEN
184     DELETE FROM xla_aad_loader_defns_t
185      WHERE staging_amb_context_code = l_staging_context_code;
186   ELSE
187     ROLLBACK;
188     xla_aad_loader_util_pvt.insert_errors
189              (p_application_id     => p_application_id
190              ,p_amb_context_code   => p_amb_context_code
191              ,p_request_code       => 'IMPORT');
192   END IF;
193 
194   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
195     trace(p_msg    => 'END of procedure pre_import: x_return_status = '||x_return_status,
196           p_module => l_log_module,
197           p_level  => C_LEVEL_PROCEDURE);
198   END IF;
199 EXCEPTION
200 WHEN OTHERS THEN
201   ROLLBACK;
202   x_return_status := 'ERROR';
203   xla_aad_loader_util_pvt.insert_errors
204              (p_application_id     => p_application_id
205              ,p_amb_context_code   => p_amb_context_code
206              ,p_request_code       => 'IMPORT');
207 END pre_import;
208 
209 --=============================================================================
210 --
211 -- Name:
212 -- Description:
213 -- Modified: 5692314 ssawhney remove code logic for OVERWRITE feature.
214 --=============================================================================
215 PROCEDURE post_import
216 (p_application_id        IN INTEGER
217 ,p_amb_context_code      IN VARCHAR2
218 ,p_import_mode           IN VARCHAR2
219 ,p_force_overwrite       IN VARCHAR2
220 ,x_return_status         IN OUT NOCOPY VARCHAR2
221 )IS
222   l_staging_context_code    VARCHAR2(30);
223   l_return_status           VARCHAR2(30);
224   l_compilation_status_code VARCHAR2(1);
225   l_validation_status_code  VARCHAR2(1);
226   l_hash_id                 INTEGER;
227   l_log_module              VARCHAR2(240);
228   l_exception               VARCHAR2(240);
229   l_excp_code               VARCHAR2(100);
230 
231 BEGIN
232   IF g_log_enabled THEN
233     l_log_module := C_DEFAULT_MODULE||'.post_import';
234   END IF;
235 
236   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
237     trace(p_msg    => 'BEGIN of procedure post_import',
238           p_module => l_log_module,
239           p_level  => C_LEVEL_PROCEDURE);
240   END IF;
241 
242 
243   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
244     trace(p_msg    => 'Calling procedure reset_errors from '||C_DEFAULT_MODULE||'.post_import',
245           p_module => l_log_module,
246           p_level  => C_LEVEL_PROCEDURE);
247   END IF;
248 
249   xla_aad_loader_util_pvt.reset_errors
250              (p_application_id     => p_application_id
251              ,p_amb_context_code   => p_amb_context_code
252              ,p_request_code       => 'IMPORT');
253 
254   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
255     trace(p_msg    => 'Returned from reset_errors to '||C_DEFAULT_MODULE||'.post_import',
256           p_module => l_log_module,
257           p_level  => C_LEVEL_PROCEDURE);
258   END IF;
259 
260   SELECT p_amb_context_code||'_INSTALL_'||application_short_name
261     INTO l_staging_context_code
262     FROM fnd_application
263    WHERE application_id = p_application_id;
264 
265   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
266     trace(p_msg    => 'Calling procedure post_upload from '||C_DEFAULT_MODULE||'.post_import',
267           p_module => l_log_module,
268           p_level  => C_LEVEL_PROCEDURE);
269   END IF;
270 
271   x_return_status := xla_aad_upload_pvt.post_upload
272              (p_application_id       => p_application_id
273              ,p_amb_context_code     => p_amb_context_code
274              ,p_staging_context_code => l_staging_context_code);
275 
276   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
277     trace(p_msg    => 'Returned from post_upload to '||C_DEFAULT_MODULE||'.post_import',
278           p_module => l_log_module,
279           p_level  => C_LEVEL_PROCEDURE);
280   END IF;
281 
282 
283   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
284     trace(p_msg    => 'Calling procedure post_import from '||C_DEFAULT_MODULE||'.post_import',
285           p_module => l_log_module,
286           p_level  => C_LEVEL_PROCEDURE);
287   END IF;
288 
289   IF (x_return_status = 'SUCCESS') THEN
290     xla_aad_import_pvt.post_import
291              (p_application_id       => p_application_id
292              ,p_amb_context_code     => p_amb_context_code
293              ,p_staging_context_code => l_staging_context_code);
294 
295   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
296     trace(p_msg    => 'Returned from post_import to '||C_DEFAULT_MODULE||'.post_import',
297           p_module => l_log_module,
298           p_level  => C_LEVEL_PROCEDURE);
299   END IF;
300 
301 
302   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
303     trace(p_msg    => 'Before calling xla_aad_merge from'||C_DEFAULT_MODULE||'.post_import',
304           p_module => l_log_module,
305           p_level  => C_LEVEL_PROCEDURE);
306   END IF;
307 
308      IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
309       trace(p_msg    => 'p_import_mode for merge is : '||p_import_mode,
310             p_module => l_log_module,
311             p_level  => C_LEVEL_PROCEDURE);
312      END IF;
313 
314 
315     IF (p_import_mode = 'ANALYSIS') THEN
316       xla_aad_merge_analysis_pvt.analysis
317              (p_api_version          => 1.0
318              ,x_return_status        => l_return_status
319              ,p_application_id       => p_application_id
320              ,p_amb_context_code     => p_amb_context_code
321              ,p_staging_context_code => l_staging_context_code
322              ,p_batch_name           => NULL
323              ,x_analysis_status      => x_return_status);
324 
325     ELSE -- commented for bug 5692314 (p_import_mode = 'MERGE') THEN
326       xla_aad_merge_pvt.merge
327              (p_api_version          => 1.0
328              ,x_return_status        => l_return_status
329              ,p_application_id       => p_application_id
330              ,p_amb_context_code     => p_amb_context_code
331              ,p_staging_context_code => l_staging_context_code
332              ,p_analyzed_flag        => 'N'
333              ,p_compile_flag         => 'N'
334              ,x_merge_status         => x_return_status);
335 
336     /* -- commented for bug 5692314
337       ELSE
338       xla_aad_overwrite_pvt.overwrite
339              (p_api_version          => 1.0
340              ,x_return_status        => l_return_status
341              ,p_application_id       => p_application_id
342              ,p_amb_context_code     => p_amb_context_code
343              ,p_staging_context_code => l_staging_context_code
344              ,p_force_flag           => p_force_overwrite
345              ,p_compile_flag         => 'N'
346              ,x_overwrite_status     => x_return_status);
347     */
348     END IF;
349 
350   END IF;
351 
352 
353   IF (x_return_status = 'SUCCESS') THEN
354     DELETE FROM xla_aad_loader_defns_t
355      WHERE staging_amb_context_code = l_staging_context_code;
356 
357     IF (p_import_mode IN ('MERGE', 'OVERWRITE')) THEN
358       /*UPDATE xla_product_rules_b
359          SET compile_status_code = 'R'
360        WHERE application_id = p_application_id
361          AND amb_context_code = p_amb_context_code;*/
362 
363 
364        	 UPDATE xla_product_rules_b prd
365          SET compile_status_code = 'R'
366          WHERE application_id = p_application_id
367          AND  amb_context_code = p_amb_context_code
368          AND EXISTS (select 1
369                      from  xla_aads_gt a,
370                            XLA_PAD_INQ_LINES_FVL b
371                      where (a.product_rule_code is null         or  a.product_rule_code         = b.product_rule_code)
372                      and   (a.event_class_code is null          or  a.event_class_code          = b.event_class_code)
373 		     and   (a.event_type_code is null           or  a.event_type_code           = b.event_type_code)
374 		     and   (a.line_definition_code is null      or  a.line_definition_code      = b.line_definition_code)
375 		     and   (a.accounting_line_code is null      or  a.accounting_line_code      = b.accounting_line_code)
376 		     and   (a.accounting_class_code is null     or  a.accounting_class_code     = b.accounting_class_code)
377 		     and   (a.segment_rule_code is null         or  a.segment_rule_code 	= b.segment_rule_code)
378 		     and   (a.description_code is null          or  a.description_code 	       = b.description_code)
379 		     and   (a.analytical_criterion_code is null or  a.analytical_criterion_code = b.analytical_criterion_code)
380 		     and    prd.product_rule_code = b.product_rule_code
381 	            )
382          AND EXISTS
383 	      ( SELECT 1
384 		FROM  xla_acctg_method_rules amr,
385 		      gl_ledgers gl
386 		WHERE prd.product_rule_code      = amr.product_rule_code
387 		AND   prd.product_rule_type_code = amr.product_rule_type_code
388 		AND   prd.application_id         = amr.application_id
389 		AND   prd.amb_context_code       = amr.amb_context_code
390 	        AND   amr.accounting_method_code = gl.sla_accounting_method_code
391 		AND   amr.application_id         = p_application_id
392 		AND   amr.end_date_active IS NULL OR amr.end_date_active >= sysdate
393 	       );
394 
395              /********************************************************************************/
396 	     /*  For AADs that are not attached to SLAM, we are stamping them to N -         */
397 	     /*  NOT VALIDATED.This is because, if in FUTURE, customer intends to attach     */
398 	     /*  a different AAD onto SLAM and LEDGER, that AAD would get used in its        */
399 	     /*  current setup(where its validation status is Y), although higher versions   */
400 	     /*  with setup changes would have been shipped in ldts by product teams         */
401 	     /*           In that case, we would not have validated this AAD as it was not   */
402 	     /*  attached to SLAM/LEDGER at that time.So higher versions of ldt still pulled */
403 	     /*  in the latest code but has not validated the AAD with latest setup.         */
404 	     /*      So, now if customer uses that AAD, he would be using it with old setup  */
405 	     /*  and latest code change/setup change is not pulled into accounting and       */
406 	     /*  accounting would be incorrect.Hence we are setting it to N, so that         */
407 	     /*  re-validating AAD would pull up latest setup in to the AAD and accounting   */
408 	     /*  would be as expected.                                                       */
409              /********************************************************************************/
410 
411 
412 	     UPDATE xla_product_rules_b prd
413              SET compile_status_code = 'N'
414              WHERE application_id = p_application_id
415              AND  amb_context_code = p_amb_context_code
416              AND EXISTS
417 	      ( select 1
418                 from  xla_aads_gt a,
419                       XLA_PAD_INQ_LINES_FVL b
420                 where (a.product_rule_code is null         or  a.product_rule_code      = b.product_rule_code)
421                 and   (a.event_class_code is null          or  a.event_class_code       = b.event_class_code)
422 		and   (a.event_type_code is null           or  a.event_type_code        = b.event_type_code)
423 		and   (a.line_definition_code is null      or  a.line_definition_code   = b.line_definition_code)
424 		and   (a.accounting_line_code is null      or  a.accounting_line_code   = b.accounting_line_code)
425 		and   (a.accounting_class_code is null     or  a.accounting_class_code  = b.accounting_class_code)
426 		and   (a.segment_rule_code is null         or  a.segment_rule_code 	= b.segment_rule_code)
427 		and   (a.description_code is null          or  a.description_code 	= b.description_code)
428 		and   (a.analytical_criterion_code is null or  a.analytical_criterion_code = b.analytical_criterion_code)
429 		and    prd.product_rule_code = b.product_rule_code
430 	       )
431              AND NOT EXISTS
432 	      ( SELECT 1
433 		FROM  xla_acctg_method_rules amr,
434 		      gl_ledgers gl
435 		WHERE prd.product_rule_code      = amr.product_rule_code
436 		AND   prd.product_rule_type_code = amr.product_rule_type_code
437 		AND   prd.application_id         = amr.application_id
438 		AND   prd.amb_context_code       = amr.amb_context_code
439 	        AND   amr.accounting_method_code = gl.sla_accounting_method_code
440 		AND   amr.application_id         = p_application_id
441 		AND   amr.end_date_active IS NULL OR amr.end_date_active >= sysdate
442 	       );
443 
444           IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
445               trace(p_msg    => 'Number of Rows updated to R in product_rules_b is :'||SQL%ROWCOUNT,
446                     p_module => l_log_module,
447                     p_level  => C_LEVEL_PROCEDURE);
448           END IF;
449 
450 	  IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
451               trace(p_msg    => 'Calling Validate and Compile AAD procedure',
452                     p_module => l_log_module,
453                     p_level  => C_LEVEL_PROCEDURE);
454           END IF;
455 
456 
457       FOR l IN (SELECT * FROM xla_product_rules_b
458                  WHERE application_id = p_application_id
459                    AND amb_context_code = p_amb_context_code
460 		   AND compile_status_code = 'R') LOOP  -- Added extra condition on compile status code
461         xla_amb_aad_pkg.validate_and_compile_aad
462                (p_application_id            => p_application_id
463                ,p_amb_context_code          => p_amb_context_code
464                ,p_product_rule_type_code    => l.product_rule_type_code
465                ,p_product_rule_code         => l.product_rule_code
466                ,x_validation_status_code    => l_validation_status_code
467                ,x_compilation_status_code   => l_compilation_status_code
468                ,x_hash_id                   => l_hash_id);
469       END LOOP;
470 
471 
472     END IF;
473 
474 
475   ELSE
476     xla_aad_loader_util_pvt.insert_errors
477              (p_application_id     => p_application_id
478              ,p_amb_context_code   => p_amb_context_code
479              ,p_request_code       => 'IMPORT');
480   END IF;
481 
482 
483   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
484     trace(p_msg    => 'END of procedure post_import: x_return_status = '||x_return_status,
485           p_module => l_log_module,
486           p_level  => C_LEVEL_PROCEDURE);
487   END IF;
488 EXCEPTION
489 WHEN OTHERS THEN
490   ROLLBACK;
491   x_return_status := 'ERROR';
492 
493   l_exception := substr(sqlerrm,1,240);
494   l_excp_code := sqlcode;
495 
496   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
497     trace(p_msg    => 'In exception of xla_aad_install_pvt.post_import',
498           p_module => l_log_module,
499           p_level  => C_LEVEL_PROCEDURE);
500   END IF;
501 
502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
503     trace(p_msg    => 'Error in xla_aad_install_pvt.post_import is : '||l_excp_code||' - '||l_exception,
504           p_module => l_log_module,
505           p_level  => C_LEVEL_PROCEDURE);
506   END IF;
507 
508   xla_aad_loader_util_pvt.insert_errors
509              (p_application_id     => p_application_id
510              ,p_amb_context_code   => p_amb_context_code
511              ,p_request_code       => 'IMPORT');
512 END post_import;
513 
514 --=============================================================================
515 --
516 -- Name:
517 -- Description:
518 --
519 --=============================================================================
520 PROCEDURE pre_export
521 (p_application_id        IN INTEGER
522 ,p_amb_context_code      IN VARCHAR2
523 ,p_versioning_mode       IN VARCHAR2
524 ,p_user_version          IN VARCHAR2
525 ,p_version_comment       IN VARCHAR2
526 ,x_return_status         IN OUT NOCOPY VARCHAR2
527 )IS
528   l_log_module           VARCHAR2(240);
529 BEGIN
530   IF g_log_enabled THEN
531     l_log_module := C_DEFAULT_MODULE||'.pre_export';
532   END IF;
533 
534   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
535     trace(p_msg    => 'BEGIN of procedure pre_export',
536           p_module => l_log_module,
537           p_level  => C_LEVEL_PROCEDURE);
538   END IF;
539 
540   xla_aad_loader_util_pvt.reset_errors
541              (p_application_id     => p_application_id
542              ,p_amb_context_code   => p_amb_context_code
543              ,p_request_code       => 'EXPORT');
544 
545   x_return_status := xla_aad_export_pvt.pre_export
546                      (p_application_id   => p_application_id
547                      ,p_amb_context_code => p_amb_context_code
548                      ,p_versioning_mode  => CASE p_versioning_mode
549                                                  WHEN 'N' THEN 'STANDARD'
550                                                  WHEN 'Y' THEN 'LEAPFROG'
551                                                  ELSE p_versioning_mode
552                                                  END
553                      ,p_user_version     => CASE WHEN p_user_version = 'NULL'
554                                                  THEN NULL
555                                                  ELSE p_user_version END
556                      ,p_version_comment  => CASE WHEN p_version_comment = 'NULL'
557                                                  THEN NULL
558                                                  ELSE p_version_comment END
559                      ,p_owner_type       => 'C');
560 
561   IF (x_return_status <> 'SUCCESS') THEN
562     ROLLBACK;
563     xla_aad_loader_util_pvt.insert_errors
564              (p_application_id     => p_application_id
565              ,p_amb_context_code   => p_amb_context_code
566              ,p_request_code       => 'EXPORT');
567   END IF;
568 
569   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
570     trace(p_msg    => 'END of procedure pre_export: x_return_status = '||x_return_status,
571           p_module => l_log_module,
572           p_level  => C_LEVEL_PROCEDURE);
573   END IF;
574 EXCEPTION
575 WHEN OTHERS THEN
576   ROLLBACK;
577   x_return_status := 'ERROR';
578   xla_aad_loader_util_pvt.insert_errors
579              (p_application_id     => p_application_id
580              ,p_amb_context_code   => p_amb_context_code
581              ,p_request_code       => 'EXPORT');
582 END pre_export;
583 
584 --=============================================================================
585 --
586 -- Following code is executed when the package body is referenced for the first
587 -- time
588 --
589 --=============================================================================
590 BEGIN
591   g_log_level          := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
592   g_log_enabled        := fnd_log.test
593                          (log_level  => g_log_level
594                          ,module     => C_DEFAULT_MODULE);
595 
596   IF NOT g_log_enabled THEN
597     g_log_level := C_LEVEL_LOG_DISABLED;
598   END IF;
599 
600 END xla_aad_install_pvt;