DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_AAD_IMPORT_PVT

Source


1 PACKAGE BODY xla_aad_import_pvt AS
2 /* $Header: xlaalimp.pkb 120.10.12020000.2 2013/01/30 11:55:12 sgullape ship $ */
3 
4 --=============================================================================
5 --           ****************  declaraions  ********************
6 --=============================================================================
7 -------------------------------------------------------------------------------
8 -- declaring global types
9 -------------------------------------------------------------------------------
10 -------------------------------------------------------------------------------
11 -- declaring global constants
12 -------------------------------------------------------------------------------
13 ------------------------------------------------------------------------------
14 -- declaring global variables
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_import_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 BEGIN
38   ----------------------------------------------------------------------------
39   -- Following is for FND log.
40   ----------------------------------------------------------------------------
41   IF (p_msg IS NULL AND p_level >= g_log_level) THEN
42     fnd_log.message(p_level, p_module);
43   ELSIF p_level >= g_log_level THEN
44     fnd_log.string(p_level, p_module, p_msg);
45   END IF;
46 EXCEPTION
47 WHEN OTHERS THEN
48   xla_exceptions_pkg.raise_message
49     (p_location   => 'xla_aad_import_pvt.trace');
50 END trace;
51 
52 
53 --=============================================================================
54 --          *********** private procedures and functions **********
55 --=============================================================================
56 
57 --=============================================================================
58 --
59 -- Name: pre_import
60 -- Description: This API perform the pre-import step.
61 --
62 --=============================================================================
63 FUNCTION pre_import
64 (p_application_id        IN INTEGER
65 ,p_amb_context_code      IN VARCHAR2
66 ,p_staging_context_code  IN VARCHAR2)
67 RETURN VARCHAR2
68 IS
69   CURSOR c_lock IS
70     SELECT *
71       FROM xla_appli_amb_contexts
72      WHERE application_id      = p_application_id
73        AND amb_context_code    = p_amb_context_code
74     FOR UPDATE OF application_id NOWAIT;
75 
76   recinfo         c_lock%ROWTYPE;
77   l_lock_error    BOOLEAN;
78   l_log_module    VARCHAR2(240);
79 BEGIN
80   IF g_log_enabled THEN
81     l_log_module := C_DEFAULT_MODULE||'.pre_import';
82   END IF;
83 
84   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85     trace(p_msg    => 'BEGIN of procedure pre_import',
86           p_module => l_log_module,
87           p_level  => C_LEVEL_PROCEDURE);
88   END IF;
89 
90   -- Lock the staging area of the AMB context
91   l_lock_error := TRUE;
92   OPEN c_lock;
93   CLOSE c_lock;
94   l_lock_error := FALSE;
95 
96   -- Clean up staging accounting methods
97   DELETE FROM xla_stage_acctg_methods
98    WHERE staging_amb_context_code = p_staging_context_code;
99 
100 -- Bug : 16208537
101 -- API Call to Insert messages into AAD Loader Log Table.
102 xla_aad_loader_util_pvt.insert_aadloaderlog(
103          p_amb_context_code =>  p_staging_context_code,
104          p_application_id   =>  p_application_id,
105          p_request_code     => 'IMPORT' ,
106          p_log_type_code    => 'PRE-IMPORT',
107          p_encoded_message  => '# delete xla_stage_acctg_methods = '||SQL%ROWCOUNT,
108          p_component_code   =>  'pre_import');
109 
110   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
111     trace(p_msg    => '# record deleted from xla_stage_acctg_methods = '||SQL%ROWCOUNT,
112           p_module => l_log_module,
113           p_level  => C_LEVEL_STATEMENT);
114   END IF;
115 
116   -- Clean up staging history
117   DELETE FROM xla_staging_components_h
118    WHERE staging_amb_context_code = p_staging_context_code;
119 
120    -- Bug : 16208537
121 -- API Call to Insert messages into AAD Loader Log Table.
122 xla_aad_loader_util_pvt.insert_aadloaderlog(
123          p_amb_context_code =>  p_staging_context_code,
124          p_application_id   =>  p_application_id,
125          p_request_code     => 'IMPORT' ,
126          p_log_type_code    => 'PRE-IMPORT',
127          p_encoded_message  => '# delete xla_staging_components_h = '||SQL%ROWCOUNT,
128          p_component_code   =>  'pre_import');
129 
130   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
131     trace(p_msg    => '# record deleted from xla_staging_components_h = '||SQL%ROWCOUNT,
132           p_module => l_log_module,
133           p_level  => C_LEVEL_STATEMENT);
134   END IF;
135 
136   -- Clean up ADR
137   DELETE FROM xla_conditions
138    WHERE amb_context_code       = p_staging_context_code
139      AND segment_rule_detail_id IS NOT NULL;
140 
141    -- Bug : 16208537
142 -- API Call to Insert messages into AAD Loader Log Table.
143 xla_aad_loader_util_pvt.insert_aadloaderlog(
144          p_amb_context_code =>  p_staging_context_code,
145          p_application_id   =>  p_application_id,
146          p_request_code     => 'IMPORT' ,
147          p_log_type_code    => 'PRE-IMPORT',
148          p_encoded_message  => '# delete xla_conditions = '||SQL%ROWCOUNT,
149          p_component_code   =>  'pre_import');
150 
151   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
152     trace(p_msg    => '# record deleted from xla_conditions = '||SQL%ROWCOUNT,
153           p_module => l_log_module,
154           p_level  => C_LEVEL_STATEMENT);
155   END IF;
156 
157   DELETE FROM xla_seg_rule_details
158    WHERE amb_context_code = p_staging_context_code;
159 
160      -- Bug : 16208537
161 -- API Call to Insert messages into AAD Loader Log Table.
162 xla_aad_loader_util_pvt.insert_aadloaderlog(
163          p_amb_context_code =>  p_staging_context_code,
164          p_application_id   =>  p_application_id,
165          p_request_code     => 'IMPORT' ,
166          p_log_type_code    => 'PRE-IMPORT',
167          p_encoded_message  => '# delete xla_seg_rule_details = '||SQL%ROWCOUNT,
168          p_component_code   =>  'pre_import');
169 
170   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
171     trace(p_msg    => '# record deleted from xla_seg_rule_details = '||SQL%ROWCOUNT,
172           p_module => l_log_module,
173           p_level  => C_LEVEL_STATEMENT);
174   END IF;
175 
176   DELETE FROM xla_seg_rules_tl
177    WHERE amb_context_code = p_staging_context_code;
178 
179       -- Bug : 16208537
180 -- API Call to Insert messages into AAD Loader Log Table.
181 xla_aad_loader_util_pvt.insert_aadloaderlog(
182          p_amb_context_code =>  p_staging_context_code,
183          p_application_id   =>  p_application_id,
184          p_request_code     => 'IMPORT' ,
185          p_log_type_code    => 'PRE-IMPORT',
186          p_encoded_message  => '# delete xla_seg_rules_tl = '||SQL%ROWCOUNT,
187          p_component_code   =>  'pre_import');
188 
189   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
190     trace(p_msg    => '# record deleted from xla_seg_rules_tl = '||SQL%ROWCOUNT,
191           p_module => l_log_module,
192           p_level  => C_LEVEL_STATEMENT);
193   END IF;
194 
195   DELETE FROM xla_seg_rules_b
196    WHERE amb_context_code = p_staging_context_code;
197 
198       -- Bug : 16208537
199 -- API Call to Insert messages into AAD Loader Log Table.
200 xla_aad_loader_util_pvt.insert_aadloaderlog(
201          p_amb_context_code =>  p_staging_context_code,
202          p_application_id   =>  p_application_id,
203          p_request_code     => 'IMPORT' ,
204          p_log_type_code    => 'PRE-IMPORT',
205          p_encoded_message  => '# delete xla_seg_rules_b = '||SQL%ROWCOUNT,
206          p_component_code   =>  'pre_import');
207 
208   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
209     trace(p_msg    => '# record deleted from xla_seg_rules_b = '||SQL%ROWCOUNT,
210           p_module => l_log_module,
211           p_level  => C_LEVEL_STATEMENT);
212   END IF;
213 
214   -- Clean up mapping set tables
215   DELETE FROM xla_mapping_set_values
216    WHERE amb_context_code = p_staging_context_code;
217 
218       -- Bug : 16208537
219 -- API Call to Insert messages into AAD Loader Log Table.
220 xla_aad_loader_util_pvt.insert_aadloaderlog(
221          p_amb_context_code =>  p_staging_context_code,
222          p_application_id   =>  p_application_id,
223          p_request_code     => 'IMPORT' ,
224          p_log_type_code    => 'PRE-IMPORT',
225          p_encoded_message  => '# delete xla_mapping_set_values = '||SQL%ROWCOUNT,
226          p_component_code   =>  'pre_import');
227 
228   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
229     trace(p_msg    => '# record deleted from xla_mapping_set_values = '||SQL%ROWCOUNT,
230           p_module => l_log_module,
231           p_level  => C_LEVEL_STATEMENT);
232   END IF;
233 
234   DELETE FROM xla_mapping_sets_tl
235    WHERE amb_context_code = p_staging_context_code;
236 
237       -- Bug : 16208537
238 -- API Call to Insert messages into AAD Loader Log Table.
239 xla_aad_loader_util_pvt.insert_aadloaderlog(
240          p_amb_context_code =>  p_staging_context_code,
241          p_application_id   =>  p_application_id,
242          p_request_code     => 'IMPORT' ,
243          p_log_type_code    => 'PRE-IMPORT',
244          p_encoded_message  => '# delete xla_mapping_sets_tl = '||SQL%ROWCOUNT,
245          p_component_code   =>  'pre_import');
246 
247   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
248     trace(p_msg    => '# record deleted from xla_mapping_sets_tl = '||SQL%ROWCOUNT,
249           p_module => l_log_module,
250           p_level  => C_LEVEL_STATEMENT);
251   END IF;
252 
253   DELETE FROM xla_mapping_sets_b
254    WHERE amb_context_code = p_staging_context_code;
255 
256       -- Bug : 16208537
257 -- API Call to Insert messages into AAD Loader Log Table.
258 xla_aad_loader_util_pvt.insert_aadloaderlog(
259          p_amb_context_code =>  p_staging_context_code,
260          p_application_id   =>  p_application_id,
261          p_request_code     => 'IMPORT' ,
262          p_log_type_code    => 'PRE-IMPORT',
263          p_encoded_message  => '# delete xla_mapping_sets_b = '||SQL%ROWCOUNT,
264          p_component_code   =>  'pre_import');
265 
266   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
267     trace(p_msg    => '# record deleted from xla_mapping_sets_b = '||SQL%ROWCOUNT,
268           p_module => l_log_module,
269           p_level  => C_LEVEL_STATEMENT);
270   END IF;
271 
272   -- Clean up analytical criterion tables
273   DELETE FROM xla_analytical_sources
274    WHERE amb_context_code = p_staging_context_code;
275 
276       -- Bug : 16208537
277 -- API Call to Insert messages into AAD Loader Log Table.
278 xla_aad_loader_util_pvt.insert_aadloaderlog(
279          p_amb_context_code =>  p_staging_context_code,
280          p_application_id   =>  p_application_id,
281          p_request_code     => 'IMPORT' ,
282          p_log_type_code    => 'PRE-IMPORT',
283          p_encoded_message  => '# delete xla_analytical_sources = '||SQL%ROWCOUNT,
284          p_component_code   =>  'pre_import');
285 
286   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
287     trace(p_msg    => '# record deleted from xla_analytical_sources = '||SQL%ROWCOUNT,
288           p_module => l_log_module,
289           p_level  => C_LEVEL_STATEMENT);
290   END IF;
291 
292   DELETE FROM xla_analytical_dtls_tl
293    WHERE amb_context_code = p_staging_context_code;
294 
295       -- Bug : 16208537
296 -- API Call to Insert messages into AAD Loader Log Table.
297 xla_aad_loader_util_pvt.insert_aadloaderlog(
298          p_amb_context_code =>  p_staging_context_code,
299          p_application_id   =>  p_application_id,
300          p_request_code     => 'IMPORT' ,
301          p_log_type_code    => 'PRE-IMPORT',
302          p_encoded_message  => '# delete xla_analytical_dtls_tl = '||SQL%ROWCOUNT,
303          p_component_code   =>  'pre_import');
304 
305   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
306     trace(p_msg    => '# record deleted from xla_analytical_dtls_tl = '||SQL%ROWCOUNT,
307           p_module => l_log_module,
308           p_level  => C_LEVEL_STATEMENT);
309   END IF;
310 
311   DELETE FROM xla_analytical_dtls_b
312    WHERE amb_context_code = p_staging_context_code;
313 
317          p_amb_context_code =>  p_staging_context_code,
314       -- Bug : 16208537
315 -- API Call to Insert messages into AAD Loader Log Table.
316 xla_aad_loader_util_pvt.insert_aadloaderlog(
318          p_application_id   =>  p_application_id,
319          p_request_code     => 'IMPORT' ,
320          p_log_type_code    => 'PRE-IMPORT',
321          p_encoded_message  => '# delete xla_analytical_dtls_b = '||SQL%ROWCOUNT,
322          p_component_code   =>  'pre_import');
323 
324   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
325     trace(p_msg    => '# record deleted from xla_analytical_dtls_b = '||SQL%ROWCOUNT,
326           p_module => l_log_module,
327           p_level  => C_LEVEL_STATEMENT);
328   END IF;
329 
330   DELETE FROM xla_analytical_hdrs_tl
331    WHERE amb_context_code = p_staging_context_code;
332 
333          -- Bug : 16208537
334 -- API Call to Insert messages into AAD Loader Log Table.
335 xla_aad_loader_util_pvt.insert_aadloaderlog(
336          p_amb_context_code =>  p_staging_context_code,
337          p_application_id   =>  p_application_id,
338          p_request_code     => 'IMPORT' ,
339          p_log_type_code    => 'PRE-IMPORT',
340          p_encoded_message  => '# delete xla_analytical_hdrs_tl = '||SQL%ROWCOUNT,
341          p_component_code   =>  'pre_import');
342 
343   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
344     trace(p_msg    => '# record deleted from xla_analytical_hdrs_tl = '||SQL%ROWCOUNT,
345           p_module => l_log_module,
346           p_level  => C_LEVEL_STATEMENT);
347   END IF;
348 
349   DELETE FROM xla_analytical_hdrs_b
350    WHERE amb_context_code = p_staging_context_code;
351 
352       -- Bug : 16208537
353 -- API Call to Insert messages into AAD Loader Log Table.
354 xla_aad_loader_util_pvt.insert_aadloaderlog(
355          p_amb_context_code =>  p_staging_context_code,
356          p_application_id   =>  p_application_id,
357          p_request_code     => 'IMPORT' ,
358          p_log_type_code    => 'PRE-IMPORT',
359          p_encoded_message  => '# delete xla_analytical_hdrs_b = '||SQL%ROWCOUNT,
360          p_component_code   =>  'pre_import');
361 
362   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
363     trace(p_msg    => '# record deleted from xla_analytical_hdrs_b = '||SQL%ROWCOUNT,
364           p_module => l_log_module,
365           p_level  => C_LEVEL_STATEMENT);
366   END IF;
367 
368   xla_aad_loader_util_pvt.purge
369     (p_application_id   => p_application_id
370     ,p_amb_context_code => p_staging_context_code);
371 
372   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
373     trace(p_msg    => 'END of function pre_import - Return value = SUCCESS',
374           p_module => l_log_module,
375           p_level  => C_LEVEL_PROCEDURE);
376   END IF;
377 
378   RETURN 'SUCCESS';
379 EXCEPTION
380 WHEN OTHERS THEN
381   IF (c_lock%ISOPEN) THEN
382     CLOSE c_lock;
383   END IF;
384 
385   IF (l_lock_error) THEN
386     IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
387       trace(p_msg    => 'END of function pre_import - Return value = ERROR',
388             p_module => l_log_module,
389             p_level  => C_LEVEL_PROCEDURE);
390     END IF;
391 
392     xla_aad_loader_util_pvt.stack_error
393         (p_appli_s_name  => 'XLA'
394         ,p_msg_name      => 'XLA_AAD_IMP_LOCK_FAILED');
395 
396     RETURN 'ERROR';
397   ELSE
398     xla_aad_loader_util_pvt.stack_error
399                (p_appli_s_name    => 'XLA'
400                ,p_msg_name        => 'XLA_COMMON_ERROR'
401                ,p_token_1         => 'LOCATION'
402                ,p_value_1         => 'xla_aad_import_pvt.pre_import'
403                ,p_token_2         => 'ERROR'
404                ,p_value_2         => sqlcode ||' - '||sqlerrm);  --Bug 16208537
405     RETURN 'ERROR';
406   END IF;
407 
408 END pre_import;
409 
410 --=============================================================================
411 --
412 -- Name: record_log
413 -- Description: This API inserts the log information to the log table
414 --
415 --=============================================================================
416 PROCEDURE record_log
417 (p_application_id        IN INTEGER
418 ,p_amb_context_code      IN VARCHAR2
419 ,p_staging_context_code  IN VARCHAR2)
420 IS
421   l_log_module    VARCHAR2(240);
422 BEGIN
423   IF g_log_enabled THEN
424     l_log_module := C_DEFAULT_MODULE||'.record_log';
425   END IF;
426 
427   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
428     trace(p_msg    => 'BEGIN of procedure record_log',
429           p_module => l_log_module,
430           p_level  => C_LEVEL_PROCEDURE);
431   END IF;
432 
433   INSERT INTO xla_aad_loader_logs
434   (aad_loader_log_id
435   ,amb_context_code
436   ,application_id
437   ,request_code
438   ,log_type_code
439   ,aad_application_id
440   ,product_rule_code
441   ,product_rule_type_code
442   ,version_to
443   ,object_version_number
444   ,creation_date
445   ,created_by
446   ,last_update_date
447   ,last_updated_by
448   ,last_update_login
449   ,program_update_date
450   ,program_application_id
451   ,program_id
452   ,request_id)
453   SELECT xla_aad_loader_logs_s.nextval
454         ,p_amb_context_code
455         ,p_application_id
456         ,'IMPORT'
457         ,'IMPORTED_AAD'
458         ,application_id
459         ,product_rule_code
460         ,product_rule_type_code
461         ,version_num
462         ,1
463         ,sysdate
464         ,xla_environment_pkg.g_usr_id
465         ,sysdate
466         ,xla_environment_pkg.g_usr_id
467         ,xla_environment_pkg.g_login_id
471         ,xla_environment_pkg.g_req_Id
468         ,sysdate
469         ,xla_environment_pkg.g_prog_appl_id
470         ,xla_environment_pkg.g_prog_id
472    FROM xla_product_rules_b
473   WHERE application_id         = p_application_id
474     AND amb_context_code       = p_staging_context_code;
475 
476   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
477     trace(p_msg    => '# rows inserted into xla_aad_loader_logs = '||SQL%ROWCOUNT,
478           p_module => l_log_module,
479           p_level  => C_LEVEL_STATEMENT);
480   END IF;
481 
482   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
483     trace(p_msg    => 'END of procedure record_log',
484           p_module => l_log_module,
485           p_level  => C_LEVEL_PROCEDURE);
486   END IF;
487 
488 EXCEPTION
489 WHEN OTHERS THEN
490   xla_aad_loader_util_pvt.stack_error
491                (p_appli_s_name    => 'XLA'
492                ,p_msg_name        => 'XLA_COMMON_ERROR'
493                ,p_token_1         => 'LOCATION'
494                ,p_value_1         => 'xla_aad_import_pvt.record_log'
495                ,p_token_2         => 'ERROR'
496                ,p_value_2         => sqlcode ||' - '||sqlerrm); --Bug 16208537
497   RAISE;
498 
499 END record_log;
500 
501 --=============================================================================
502 --
503 -- Name: post_import
504 -- Description: This API perform post-import steps
505 --
506 --=============================================================================
507 PROCEDURE post_import
508 (p_application_id        IN INTEGER
509 ,p_amb_context_code      IN VARCHAR2
510 ,p_staging_context_code  IN VARCHAR2)
511 IS
512   l_log_module    VARCHAR2(240);
513 BEGIN
514   IF g_log_enabled THEN
515     l_log_module := C_DEFAULT_MODULE||'.post_import';
516   END IF;
517 
518   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
519     trace(p_msg    => 'BEGIN of procedure post_import',
520           p_module => l_log_module,
521           p_level  => C_LEVEL_PROCEDURE);
522   END IF;
523 
524   UPDATE xla_appli_amb_contexts
525      SET updated_flag        = 'Y'
526         ,creation_date       = sysdate
527         ,created_by          = xla_environment_pkg.g_usr_id
528         ,last_update_date    = sysdate
529         ,last_updated_by     = xla_environment_pkg.g_usr_id
530         ,last_update_login   = xla_environment_pkg.g_login_id
531    WHERE amb_context_code    = p_amb_context_code
532      AND application_id      = p_application_id;
533 
534   record_log(p_application_id       => p_application_id
535             ,p_amb_context_code     => p_amb_context_code
536             ,p_staging_context_code => p_staging_context_code);
537 
538   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
539     trace(p_msg    => 'END of procedure post_import',
540           p_module => l_log_module,
541           p_level  => C_LEVEL_PROCEDURE);
542   END IF;
543 
544 EXCEPTION
545 WHEN OTHERS THEN
546   xla_aad_loader_util_pvt.stack_error
547                (p_appli_s_name    => 'XLA'
548                ,p_msg_name        => 'XLA_COMMON_ERROR'
549                ,p_token_1         => 'LOCATION'
550                ,p_value_1         => 'xla_aad_import_pvt.post_import'
551                ,p_token_2         => 'ERROR'
552                ,p_value_2         => sqlcode ||' - '||sqlerrm);  --Bug 16208537
553   RAISE;
554 
555 END post_import;
556 
557 
558 --=============================================================================
559 --
560 --
561 --
562 --
563 --
564 --          *********** public procedures and functions **********
565 --
566 --
567 --
568 --
569 --
570 --=============================================================================
571 
572 --=============================================================================
573 --
574 -- Name: import
575 -- Description: This API imports the AADs and the components from the data file
576 --              to the staging area of an AMB context
577 --
578 --=============================================================================
579 PROCEDURE import
580 (p_api_version           IN NUMBER
581 ,x_return_status         IN OUT NOCOPY VARCHAR2
582 ,p_application_id        IN INTEGER
583 ,p_source_pathname       IN VARCHAR2
584 ,p_amb_context_code      IN VARCHAR2
585 ,x_import_status         IN OUT NOCOPY VARCHAR2
586 )
587 IS
588   l_api_name             CONSTANT VARCHAR2(30) := 'import';
589   l_api_version          CONSTANT NUMBER       := 1.0;
590   l_staging_context_code VARCHAR2(30);
591   l_log_module           VARCHAR2(240);
592 BEGIN
593   IF g_log_enabled THEN
594     l_log_module := C_DEFAULT_MODULE||'.import';
595   END IF;
596 
597   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
598     trace(p_msg    => 'BEGIN of function import',
599           p_module => l_log_module,
600           p_level  => C_LEVEL_PROCEDURE);
601   END IF;
602 
603   -- Standard call to check for call compatibility.
604   IF (NOT xla_aad_loader_util_pvt.compatible_api_call
605                  (p_current_version_number => l_api_version
606                  ,p_caller_version_number  => p_api_version
607                  ,p_api_name               => l_api_name
608                  ,p_pkg_name               => C_DEFAULT_MODULE))
609   THEN
610     RAISE FND_API.G_EXC_UNEXPECTED_ERROR ;
611   END IF;
612 
613   --  Initialize global variables
614   x_return_status        := FND_API.G_RET_STS_SUCCESS;
615 
616   -- API Logic
617   l_staging_context_code := xla_aad_loader_util_pvt.get_staging_context_code
618                                (p_application_id   => p_application_id
622                                ,p_amb_context_code     => p_amb_context_code
619                                ,p_amb_context_code => p_amb_context_code);
620 
621   x_import_status := pre_import(p_application_id       => p_application_id
623                                ,p_staging_context_code => l_staging_context_code);
624 
625   IF (x_import_status = 'ERROR') THEN
626     RAISE FND_API.G_EXC_ERROR;
627   END IF;
628 
629   xla_aad_upload_pvt.upload
630                      (p_api_version      => 1.0
631                      ,x_return_status    => x_return_status
632                      ,p_application_id   => p_application_id
633                      ,p_source_pathname  => p_source_pathname
634                      ,p_amb_context_code => p_amb_context_code
635                      ,x_upload_status    => x_import_status);
636   IF (x_import_status = 'ERROR') THEN
637     RAISE FND_API.G_EXC_ERROR;
638   END IF;
639 
640   post_import(p_application_id       => p_application_id
641              ,p_amb_context_code     => p_amb_context_code
642              ,p_staging_context_code => l_staging_context_code);
643 
644   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
645     trace(p_msg    => 'END of function import - Return value = '||x_import_status,
646           p_module => l_log_module,
647           p_level  => C_LEVEL_PROCEDURE);
648   END IF;
649 EXCEPTION
650 WHEN FND_API.G_EXC_ERROR THEN
651   x_return_status := FND_API.G_RET_STS_ERROR ;
652   x_import_status := 'ERROR';
653 
654 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
655   ROLLBACK;
656   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
657   x_import_status := 'ERROR';
658 
659 WHEN OTHERS THEN
660   ROLLBACK;
661   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
662   x_import_status := 'ERROR';
663 
664   xla_aad_loader_util_pvt.stack_error
665                (p_appli_s_name    => 'XLA'
666                ,p_msg_name        => 'XLA_COMMON_ERROR'
667                ,p_token_1         => 'LOCATION'
668                ,p_value_1         => 'xla_aad_import_pvt.import'
669                ,p_token_2         => 'ERROR'
670                ,p_value_2         => sqlcode ||' - '||sqlerrm);  --Bug 16208537
671 
672 END import;
673 
674 --=============================================================================
675 --
676 -- Following code is executed when the package body is referenced for the first
677 -- time
678 --
679 --=============================================================================
680 BEGIN
681    g_log_level          := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
682    g_log_enabled        := fnd_log.test
683                           (log_level  => g_log_level
684                           ,module     => C_DEFAULT_MODULE);
685 
686    IF NOT g_log_enabled THEN
687       g_log_level := C_LEVEL_LOG_DISABLED;
688    END IF;
689 
690 END xla_aad_import_pvt;