DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_AAD_UPLOAD_PVT

Source


1 PACKAGE BODY xla_aad_upload_pvt AS
2 /* $Header: xlaalupl.pkb 120.32.12020000.4 2013/01/30 11:51:16 sgullape 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_upload_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_upload_pvt.trace');
51 END trace;
52 
53 
54 --=============================================================================
55 --          *********** private procedures and functions **********
56 --=============================================================================
57 
58 --=============================================================================
59 --
60 -- Name: submit_request
61 -- Description: This API submits the Upload Application Accounting Definitions
62 --              request
63 --
64 --=============================================================================
65 FUNCTION submit_request
66 (p_application_id        IN INTEGER
67 ,p_source_pathname       IN VARCHAR2
68 ,p_staging_context_code  IN VARCHAR2)
69 RETURN INTEGER
70 IS
71   PRAGMA AUTONOMOUS_TRANSACTION;
72 
73   CURSOR c_app_short_name IS
74     SELECT application_short_name
75       FROM fnd_application
76      WHERE application_id = p_application_id;
77 
78   l_app_short_name    VARCHAR2(30);
79   l_req_id            INTEGER;
80   l_log_module        VARCHAR2(240);
81 BEGIN
82   IF g_log_enabled THEN
83     l_log_module := C_DEFAULT_MODULE||'.submit_request';
84   END IF;
85 
86   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87     trace(p_msg    => 'BEGIN of function submit_request',
88           p_module => l_log_module,
89           p_level  => C_LEVEL_PROCEDURE);
90   END IF;
91 
92   DELETE FROM xla_aad_loader_defns_t
93    WHERE staging_amb_context_code = p_staging_context_code;
94 
95   OPEN c_app_short_name;
96   FETCH c_app_short_name INTO l_app_short_name;
97   CLOSE c_app_short_name;
98 
99   l_req_id := fnd_request.submit_request
100                (application => 'XLA'
101                ,program     => 'XLAAADUL'
102                ,description => NULL
103                ,start_time  => NULL
104                ,sub_request => FALSE
105                ,argument1   => 'UPLOAD_PARTIAL'
106                ,argument2   => '@xla:/patch/115/import/xlaaadrule.lct'
107                ,argument3   => p_source_pathname
108                ,argument4   => 'XLA_AAD'
109                ,argument5   => 'STAGING_AMB_CONTEXT_CODE='||p_staging_context_code);
110 
111   COMMIT;
112 
113   IF (C_LEVEL_EVENT>= g_log_level) THEN
114     trace(p_msg    => 'Submitted XLAAADUL request = '||l_req_id
115          ,p_level  => C_LEVEL_EVENT
116          ,p_module => l_log_module);
117   END IF;
118 
119   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
120     trace(p_msg    => 'END of function submit_request',
121           p_module => l_log_module,
122           p_level  => C_LEVEL_PROCEDURE);
123   END IF;
124 
125   RETURN l_req_id;
126 EXCEPTION
127 WHEN OTHERS THEN
128   xla_aad_loader_util_pvt.stack_error
129                (p_appli_s_name    => 'XLA'
130                ,p_msg_name        => 'XLA_COMMON_ERROR'
131                ,p_token_1         => 'LOCATION'
132                ,p_value_1         => 'xla_aad_upload_pvt.submit_request'
133                ,p_token_2         => 'ERROR'
137 END submit_request;
134                ,p_value_2         =>  sqlcode ||' - '|| sqlerrm); --Bug 16208537
135   RAISE;
136 
138 
139 --=============================================================================
140 --
141 -- Name: upload_data
142 -- Description: This API submits a concurrent request to upload data from the
143 --              data file to the AAD Loader interface table
144 --
145 --=============================================================================
146 FUNCTION upload_data
147 (p_application_id        IN INTEGER
148 ,p_source_pathname       IN VARCHAR2
149 ,p_staging_context_code  IN VARCHAR2)
150 RETURN VARCHAR2
151 IS
152   l_retcode       VARCHAR2(30);
153   l_req_id        NUMBER;
154   l_log_module    VARCHAR2(240);
155 BEGIN
156   IF g_log_enabled THEN
157     l_log_module := C_DEFAULT_MODULE||'.upload_data';
158   END IF;
159 
160   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
161     trace(p_msg    => 'BEGIN of function upload_data',
162           p_module => l_log_module,
163           p_level  => C_LEVEL_PROCEDURE);
164   END IF;
165 
166   l_req_id := submit_request
167                      (p_application_id        => p_application_id
168                      ,p_source_pathname       => p_source_pathname
169                      ,p_staging_context_code  => p_staging_context_code);
170 
171   IF (l_req_id = 0) THEN
172     RAISE FND_API.G_EXC_ERROR;
173   END IF;
174 
175   l_retcode := xla_aad_loader_util_pvt.wait_for_request(p_req_id => l_req_id);
176   IF (l_retcode = 'ERROR') THEN
177     RAISE FND_API.G_EXC_ERROR;
178   END IF;
179 
180   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
181     trace(p_msg    => 'END of function upload_data : Return Code = '||l_retcode,
182           p_module => l_log_module,
183           p_level  => C_LEVEL_PROCEDURE);
184   END IF;
185 
186   RETURN 'SUCCESS';
187 EXCEPTION
188 WHEN FND_API.G_EXC_ERROR THEN
189   xla_aad_loader_util_pvt.stack_error
190                (p_appli_s_name    => 'XLA'
191                ,p_msg_name        => 'XLA_AAD_UPL_FNDLOAD_FAIL'
192                ,p_token_1         => 'CONC_REQUEST_ID'
193                ,p_value_1         => l_req_id
194                ,p_token_2         => 'DATA_FILE'
195                ,p_value_2         => p_source_pathname);
196 
197   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
198     trace(p_msg    => 'END of function upload_data  : Return Code = '||l_retcode,
199           p_module => l_log_module,
200           p_level  => C_LEVEL_PROCEDURE);
201   END IF;
202 
203   RETURN 'ERROR';
204 WHEN OTHERS THEN
205   xla_aad_loader_util_pvt.stack_error
206                (p_appli_s_name    => 'XLA'
207                ,p_msg_name        => 'XLA_COMMON_ERROR'
208                ,p_token_1         => 'LOCATION'
209                ,p_value_1         => 'xla_aad_upload_pvt.upload_data'
210                ,p_token_2         => 'ERROR'
211                ,p_value_2         =>   sqlcode ||' - '|| sqlerrm); --Bug 16208537
212   RAISE;
213 
214 END upload_data;
215 
216 --=============================================================================
217 --
218 -- Name: validation
219 -- Description: This API validate if the uploaded data from the ldt is valid
220 --
221 --=============================================================================
222 FUNCTION validation
223 (p_application_id        IN INTEGER
224 ,p_staging_context_code  IN VARCHAR2)
225 RETURN VARCHAR2
226 IS
227   CURSOR c_file_size IS
228     SELECT count(*)
229       FROM xla_aad_loader_defns_t  xal
230      WHERE xal.staging_amb_context_code = p_staging_context_code
231        AND xal.table_name = 'XLA_PRODUCT_RULES'
232        AND ROWNUM = 1;
233 
234   CURSOR c_invalid_app IS
235     SELECT fa.application_name  file_app_name
236          , fa2.application_name resp_app_name
237       FROM xla_aad_loader_defns_t  xal
238          , fnd_application_vl      fa
239          , fnd_application_vl      fa2
240      WHERE xal.staging_amb_context_code = p_staging_context_code
241        AND xal.table_name               = 'XLA_AAD'
242        AND xal.application_short_name   = fa.application_short_name
243        AND fa.application_id           <> p_application_id
244        AND fa2.application_id           = p_application_id;
245 
246 -- krsankar - Bug 6975482 - Introducing 2 new cursors for deleting duplicate data from XLA_ANALYTICAL_HDRS, XLA_ANALYTICAL_SOURCES
247 -- krsankar - Bug 7243326 - Modified to analytical_criterion_code instead of criterion_type_code
248 
249  CURSOR c_del_dup_name IS
250     SELECT table_name
251          , DECODE(table_name
252                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_code)
253          , analytical_criterion_code
254 	 , analytical_criterion_type_code   -- Added for bug 8268819
255          , count(*)
256       FROM xla_aad_loader_defns_t
257      WHERE staging_amb_context_code = p_staging_context_code
258        AND table_name IN ('XLA_ANALYTICAL_HDRS')
259     GROUP BY
260            table_name
261          , DECODE(table_name
262                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_code)
263          , analytical_criterion_code
264 	 , analytical_criterion_type_code   -- Added for bug 8268819
265   HAVING count(*) > 1;
266 
267 
268   CURSOR c_del_dup_name_anal_sources IS
269     SELECT table_name
270          , DECODE(table_name
271                  ,'XLA_ANALYTICAL_SOURCES' ,analytical_criterion_type_code||C_CHAR||
272                                             analytical_criterion_code||C_CHAR||
273 		  			    event_class_code)
277 	 , entity_code
274 	 , analytical_criterion_type_code
275 	 , analytical_criterion_code
276 	 , analytical_detail_code
278 	 , event_class_code
279 	 , source_code
280 	 , source_type_code
281          , count(*)
282       FROM xla_aad_loader_defns_t
283      WHERE staging_amb_context_code = p_staging_context_code
284        AND table_name IN ('XLA_ANALYTICAL_SOURCES')
285     GROUP BY
286            table_name
287          , DECODE(table_name
288                  ,'XLA_ANALYTICAL_SOURCES' ,analytical_criterion_type_code||C_CHAR||
289                                             analytical_criterion_code||C_CHAR||
290 		  			    event_class_code)
291 	  , analytical_criterion_type_code
292 	 , analytical_criterion_code
293 	 , analytical_detail_code
294 	 , entity_code
295 	 , event_class_code
296 	 , source_code
297 	 , source_type_code
298   HAVING count(*) > 1;
299 
300 -- krsankar - End of new cursor addition
301 
302   CURSOR c_dup_name IS
303     SELECT table_name
304          , DECODE(table_name
305                  ,'XLA_PRODUCT_RULES'    ,product_rule_type_code
306                  ,'XLA_LINE_DEFINITIONS' ,event_class_code||C_CHAR||
307                                           event_type_code||C_CHAR||
308                                           line_definition_owner_code
309                  ,'XLA_ACCT_LINE_TYPES'  ,event_class_code||C_CHAR||
310                                           accounting_line_type_code
311                  ,'XLA_DESCRIPTIONS'     ,description_type_code
312                  ,'XLA_SEG_RULES'        ,segment_rule_type_code
313                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_type_code
314                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_criterion_type_code||C_CHAR||
315                                           analytical_criterion_code
316                  ,'XLA_MAPPING_SETS'     ,NULL)
317          , name
318          , count(*)
319       FROM xla_aad_loader_defns_t
320      WHERE staging_amb_context_code = p_staging_context_code
321        AND name                     IS NOT NULL
322        AND table_name IN ('XLA_PRODUCT_RULES'
323                          ,'XLA_LINE_DEFINITIONS'
324                          ,'XLA_ACCT_LINE_TYPES'
325                          ,'XLA_DESCRIPTIONS'
326                          ,'XLA_SEG_RULES'
327                          ,'XLA_ANALYTICAL_HDRS'
328                          ,'XLA_ANALYTICAL_DTLS'
329                          ,'XLA_MAPPING_SETS')
330      GROUP BY
331            table_name
332          , DECODE(table_name
333                  ,'XLA_PRODUCT_RULES'    ,product_rule_type_code
334                  ,'XLA_LINE_DEFINITIONS' ,event_class_code||C_CHAR||
335                                           event_type_code||C_CHAR||
336                                           line_definition_owner_code
337                  ,'XLA_ACCT_LINE_TYPES'  ,event_class_code||C_CHAR||
338                                           accounting_line_type_code
339                  ,'XLA_DESCRIPTIONS'     ,description_type_code
340                  ,'XLA_SEG_RULES'        ,segment_rule_type_code
341                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_type_code
342                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_criterion_type_code||C_CHAR||
343                                           analytical_criterion_code
344                  ,'XLA_MAPPING_SETS'     ,NULL)
345          , name
346     HAVING count(*) > 1;
347 
348   CURSOR c_dup_code IS
349     SELECT table_name
350          , DECODE(table_name
351                  ,'XLA_PRODUCT_RULES'    ,product_rule_type_code
352                  ,'XLA_LINE_DEFINITIONS' ,event_class_code||C_CHAR||
353                                           event_type_code||C_CHAR||
354                                           line_definition_owner_code
355                  ,'XLA_ACCT_LINE_TYPES'  ,event_class_code||C_CHAR||
356                                           accounting_line_type_code
357                  ,'XLA_DESCRIPTIONS'     ,description_type_code
358                  ,'XLA_SEG_RULES'        ,segment_rule_type_code
359                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_type_code
360                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_criterion_type_code||C_CHAR||
361                                           analytical_criterion_code
362                  ,'XLA_MAPPING_SETS'     ,NULL)
363          , DECODE(table_name
364                  ,'XLA_PRODUCT_RULES'    ,product_rule_code
365                  ,'XLA_LINE_DEFINITIONS' ,line_definition_code
366                  ,'XLA_ACCT_LINE_TYPES'  ,accounting_line_code
367                  ,'XLA_DESCRIPTIONS'     ,description_code
368                  ,'XLA_SEG_RULES'        ,segment_rule_code
369                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_code
370                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_detail_code
371                  ,'XLA_MAPPING_SETS'     ,mapping_set_code) code
372          , count(*)
373       FROM xla_aad_loader_defns_t
374      WHERE staging_amb_context_code = p_staging_context_code
375        AND table_name IN ('XLA_PRODUCT_RULES'
376                          ,'XLA_LINE_DEFINITIONS'
377                          ,'XLA_ACCT_LINE_TYPES'
378                          ,'XLA_DESCRIPTIONS'
379                          ,'XLA_SEG_RULES'
380                          ,'XLA_ANALYTICAL_HDRS'
381                          ,'XLA_ANALYTICAL_DTLS'
382                          ,'XLA_MAPPING_SETS')
383      GROUP BY
384            table_name
385          , DECODE(table_name
386                  ,'XLA_PRODUCT_RULES'    ,product_rule_type_code
387                  ,'XLA_LINE_DEFINITIONS' ,event_class_code||C_CHAR||
388                                           event_type_code||C_CHAR||
389                                           line_definition_owner_code
393                  ,'XLA_SEG_RULES'        ,segment_rule_type_code
390                  ,'XLA_ACCT_LINE_TYPES'  ,event_class_code||C_CHAR||
391                                           accounting_line_type_code
392                  ,'XLA_DESCRIPTIONS'     ,description_type_code
394                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_type_code
395                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_criterion_type_code||C_CHAR||
396                                           analytical_criterion_code
397                  ,'XLA_MAPPING_SETS'     ,NULL)
398          , DECODE(table_name
399                  ,'XLA_PRODUCT_RULES'    ,product_rule_code
400                  ,'XLA_LINE_DEFINITIONS' ,line_definition_code
401                  ,'XLA_ACCT_LINE_TYPES'  ,accounting_line_code
402                  ,'XLA_DESCRIPTIONS'     ,description_code
403                  ,'XLA_SEG_RULES'        ,segment_rule_code
404                  ,'XLA_ANALYTICAL_HDRS'  ,analytical_criterion_code
405                  ,'XLA_ANALYTICAL_DTLS'  ,analytical_detail_code
406                  ,'XLA_MAPPING_SETS'     ,mapping_set_code)
407     HAVING count(*) > 1;
408 
409   CURSOR c_invalid_coa IS
410     SELECT xal.value_ccid_id_flex_struct_code id_flex_struct_code
411       FROM xla_aad_loader_defns_t xal
412            LEFT OUTER JOIN fnd_id_flex_structures fif
413            ON  fif.application_id         = 101
414            AND fif.id_flex_code           = 'GL#'
415            AND fif.id_flex_structure_code = xal.value_ccid_id_flex_struct_code
416      WHERE xal.staging_amb_context_code       = p_staging_context_code
417        AND xal.value_ccid_id_flex_struct_code IS NOT NULL
418        AND fif.id_flex_structure_code         IS NULL
419      UNION
420     SELECT xal.trans_coa_id_flex_struct_code
421       FROM xla_aad_loader_defns_t xal
422            LEFT OUTER JOIN fnd_id_flex_structures fif
423            ON  fif.application_id         = 101
424            AND fif.id_flex_code           = 'GL#'
425            AND fif.id_flex_structure_code = xal.trans_coa_id_flex_struct_code
426      WHERE xal.staging_amb_context_code      = p_staging_context_code
427        AND xal.trans_coa_id_flex_struct_code IS NOT NULL
428        AND fif.id_flex_structure_code        IS NULL
429      UNION
430     SELECT xal.acct_coa_id_flex_struct_code
431       FROM xla_aad_loader_defns_t xal
432            LEFT OUTER JOIN fnd_id_flex_structures fif
433            ON  fif.application_id         = 101
434            AND fif.id_flex_code           = 'GL#'
435            AND fif.id_flex_structure_code = xal.acct_coa_id_flex_struct_code
436      WHERE xal.staging_amb_context_code     = p_staging_context_code
437        AND xal.acct_coa_id_flex_struct_code IS NOT NULL
438        AND fif.id_flex_structure_code       IS NULL;
439 
440   CURSOR c_invalid_value_set IS
441     SELECT xal.flex_value_set_name
442       FROM xla_aad_loader_defns_t xal
443            LEFT OUTER JOIN fnd_flex_value_sets val
444            ON  val.flex_value_set_name = xal.flex_value_set_name
445      WHERE xal.staging_amb_context_code = p_staging_context_code
446        AND xal.flex_value_set_name      IS NOT NULL
447        AND val.flex_value_set_id        IS NULL;
448 
449   CURSOR c_invalid_app_short_name IS
450     SELECT xal.source_app_short_name app_short_name
451       FROM xla_aad_loader_defns_t xal
452            LEFT OUTER JOIN fnd_application fap
453            ON  fap.application_short_name = xal.source_app_short_name
454      WHERE xal.staging_amb_context_code   = p_staging_context_code
455        AND xal.source_app_short_name      IS NOT NULL
456        AND fap.application_id             IS NULL
457      UNION
458     SELECT xal.value_source_app_short_name
459       FROM xla_aad_loader_defns_t xal
460            LEFT OUTER JOIN fnd_application fap
461            ON  fap.application_short_name = xal.value_source_app_short_name
462      WHERE xal.staging_amb_context_code    = p_staging_context_code
463        AND xal.value_source_app_short_name IS NOT NULL
464        AND fap.application_id              IS NULL
465      UNION
466     SELECT xal.view_app_short_name
467       FROM xla_aad_loader_defns_t xal
468            LEFT OUTER JOIN fnd_application fap
469            ON  fap.application_short_name = xal.view_app_short_name
470      WHERE xal.staging_amb_context_code   = p_staging_context_code
471        AND xal.view_app_short_name        IS NOT NULL
472        AND fap.application_id             IS NULL
473      UNION
474     SELECT xal.application_short_name
475       FROM xla_aad_loader_defns_t xal
476            LEFT OUTER JOIN fnd_application fap
477            ON  fap.application_short_name = xal.application_short_name
478      WHERE xal.staging_amb_context_code   = p_staging_context_code
479        AND xal.application_short_name     IS NOT NULL
480        AND fap.application_id             IS NULL
481      UNION
482     SELECT xal.input_source_app_short_name
483       FROM xla_aad_loader_defns_t xal
484            LEFT OUTER JOIN fnd_application fap
485            ON  fap.application_short_name  = xal.input_source_app_short_name
486      WHERE xal.staging_amb_context_code    = p_staging_context_code
487        AND xal.input_source_app_short_name IS NOT NULL
488        AND fap.application_id              IS NULL
489      UNION
490     SELECT xal.value_segment_rule_appl_sn
491       FROM xla_aad_loader_defns_t xal
492            LEFT OUTER JOIN fnd_application fap
493            ON  fap.application_short_name = xal.value_segment_rule_appl_sn
494      WHERE xal.staging_amb_context_code   = p_staging_context_code
495        AND xal.value_segment_rule_appl_sn IS NOT NULL
496        AND fap.application_id             IS NULL;
497 
498   l_size              INTEGER;
499   l_retcode           VARCHAR2(30);
500   l_log_module        VARCHAR2(240);
504   IF g_log_enabled THEN
501   l_exception	      VARCHAR2(250);
502   l_excp_code         VARCHAR2(100);
503 BEGIN
505     l_log_module := C_DEFAULT_MODULE||'.validation';
506   END IF;
507 
508   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
509     trace(p_msg    => 'BEGIN of function validation',
510           p_module => l_log_module,
511           p_level  => C_LEVEL_PROCEDURE);
512   END IF;
513 
514   l_retcode := 'SUCCESS';
515 
516   OPEN c_file_size;
517   FETCH c_file_size INTO l_size;
518   CLOSE c_file_size;
519 
520   IF (C_LEVEL_ERROR >= g_log_level) THEN
521     trace(p_msg    => 'LOOP: c_file_size',
522           p_module => l_log_module,
523           p_level  => C_LEVEL_ERROR);
524   END IF;
525 
526   IF (l_size <= 0) THEN
527     l_retcode := 'WARNING';
528     xla_aad_loader_util_pvt.stack_error
529                (p_appli_s_name    => 'XLA'
530                ,p_msg_name        => 'XLA_AAD_UPL_EMPTY_LDT');
531   END IF;
532 
533   IF (C_LEVEL_EVENT >= g_log_level) THEN
534     trace(p_msg    => 'BEGIN LOOP: c_invalid_app',
535           p_module => l_log_module,
536           p_level  => C_LEVEL_EVENT);
537   END IF;
538 
539   FOR l IN c_invalid_app LOOP
540     IF (C_LEVEL_ERROR >= g_log_level) THEN
541       trace(p_msg    => 'LOOP: c_invalid_app',
542             p_module => l_log_module,
543             p_level  => C_LEVEL_ERROR);
544     END IF;
545 
546     l_retcode := 'WARNING';
547     xla_aad_loader_util_pvt.stack_error
548                (p_appli_s_name    => 'XLA'
549                ,p_msg_name        => 'XLA_AAD_UPL_INV_APP'
550                ,p_token_1         => 'FILE_APP_NAME'
551                ,p_value_1         => l.file_app_name
552                ,p_token_2         => 'RESP_APP_NAME'
553                ,p_value_2         => l.resp_app_name);
554   END LOOP;
555 
556   IF (C_LEVEL_EVENT >= g_log_level) THEN
557     trace(p_msg    => 'END LOOP: c_invalid_app',
558           p_module => l_log_module,
559           p_level  => C_LEVEL_EVENT);
560   END IF;
561 
562 
563 
564 
565 -- krsankar - Opening 2 new cursors added as part of P1 Bug 6975482.
566 /* Adding all the Unique index columns in the DELETE to make sure that
567    duplicate data is getting deleted only for the unique columns across
568    these 2 analytical tables. - Modified this as part of bug 8268819*/
569 
570 IF (C_LEVEL_EVENT >= g_log_level) THEN
571     trace(p_msg    => 'BEGIN LOOP: c_del_dup_name',
572           p_module => l_log_module,
573           p_level  => C_LEVEL_EVENT);
574 END IF;
575 
576 FOR i IN c_del_dup_name LOOP
577 
578  DELETE FROM xla_aad_loader_defns_t
579  WHERE staging_amb_context_code     = p_staging_context_code
580  AND upper(table_name)              = ('XLA_ANALYTICAL_HDRS')
581  AND analytical_criterion_code      = i.analytical_criterion_code
582  AND analytical_criterion_type_code = i.analytical_criterion_type_code   --Added for bug 8268819
583  AND rowid NOT IN (select max(rowid) from xla_aad_loader_defns_t
584                    where staging_amb_context_code = p_staging_context_code
585                    and upper(table_name) = ('XLA_ANALYTICAL_HDRS')
586 		   and analytical_criterion_code=i.analytical_criterion_code
587 	           and analytical_criterion_type_code = i.analytical_criterion_type_code   --Added for bug 8268819
588                    group by analytical_criterion_code,analytical_criterion_type_code);
589 
590     -- Bug : 16208537
591     -- API Call to Insert messages into AAD Loader Log Table.
592     xla_aad_loader_util_pvt.insert_aadloaderlog(
593              p_amb_context_code =>  p_staging_context_code,
594              p_application_id   =>  p_application_id,
595              p_request_code     => 'IMPORT' ,
596              p_log_type_code    => 'UPLOAD',
597              p_encoded_message  =>  '# delete using  c_del_dup_name from (xla_aad_loader_defns_t) =  '||SQL%ROWCOUNT,
598              p_component_code   =>  'validation');
599 
600  IF (C_LEVEL_EVENT >= g_log_level) THEN
601     trace(p_msg    => 'LOOP: c_del_dup_name : Rows Deleted - '||SQL%ROWCOUNT,
602           p_module => l_log_module,
603           p_level  => C_LEVEL_EVENT);
604  END IF;
605 
606 
607  END LOOP;
608 
609  IF (C_LEVEL_EVENT >= g_log_level) THEN
610     trace(p_msg    => 'END LOOP: c_del_dup_name',
611           p_module => l_log_module,
612           p_level  => C_LEVEL_EVENT);
613  END IF;
614 
615 
616 
617  IF (C_LEVEL_EVENT >= g_log_level) THEN
618     trace(p_msg    => 'BEGIN LOOP: c_del_dup_name_anal_sources',
619           p_module => l_log_module,
620           p_level  => C_LEVEL_EVENT);
621  END IF;
622 
623  FOR i IN c_del_dup_name_anal_sources LOOP
624 
625 
626  DELETE FROM xla_aad_loader_defns_t
627  WHERE staging_amb_context_code     = p_staging_context_code
628  AND upper(table_name)              = ('XLA_ANALYTICAL_SOURCES')
629  AND analytical_criterion_type_code = i.analytical_criterion_type_code
630  AND analytical_criterion_code      = i.analytical_criterion_code
631  AND analytical_detail_code         = i.analytical_detail_code
632  AND entity_code                    = i.entity_code
633  AND event_class_code               = i.event_class_code
634  AND source_code                    = i.source_code
635  AND source_type_code               = i.source_type_code
636  AND rowid NOT IN (select max(rowid) from xla_aad_loader_defns_t
637                    WHERE staging_amb_context_code     = p_staging_context_code
638                    AND upper(table_name)              = ('XLA_ANALYTICAL_SOURCES')
642                    AND entity_code                    = i.entity_code
639                    AND analytical_criterion_type_code = i.analytical_criterion_type_code
640                    AND analytical_criterion_code      = i.analytical_criterion_code
641                    AND analytical_detail_code         = i.analytical_detail_code
643                    AND event_class_code               = i.event_class_code
644                    AND source_code                    = i.source_code
645                    AND source_type_code               = i.source_type_code
646                    group by analytical_criterion_type_code,analytical_criterion_code,analytical_detail_code,
647 		            entity_code,event_class_code,source_code,source_type_code);
648 
649     -- Bug : 16208537
650     -- API Call to Insert messages into AAD Loader Log Table.
651     xla_aad_loader_util_pvt.insert_aadloaderlog(
652              p_amb_context_code =>  p_staging_context_code,
653              p_application_id   =>  p_application_id,
654              p_request_code     => 'IMPORT' ,
655              p_log_type_code    => 'UPLOAD',
656              p_encoded_message  =>  '# delete using c_del_dup_name_anal_sources from (xla_aad_loader_defns_t) =  '||SQL%ROWCOUNT,
657              p_component_code   =>  'validation');
658 
659 
660  IF (C_LEVEL_EVENT >= g_log_level) THEN
661     trace(p_msg    => 'LOOP: c_del_dup_name_anal_sources : Rows Deleted - '||SQL%ROWCOUNT,
662           p_module => l_log_module,
663           p_level  => C_LEVEL_EVENT);
664  END IF;
665 
666  END LOOP;
667 
668  IF (C_LEVEL_EVENT >= g_log_level) THEN
669     trace(p_msg    => 'END LOOP: c_del_dup_name_anal_sources',
670           p_module => l_log_module,
671           p_level  => C_LEVEL_EVENT);
672  END IF;
673 
674 -- krsankar - End of opening 2 new cursors added as part of P1 Bug 6975482.
675 
676 
677   IF (C_LEVEL_EVENT >= g_log_level) THEN
678     trace(p_msg    => 'BEGIN LOOP: c_dup_name',
679           p_module => l_log_module,
680           p_level  => C_LEVEL_EVENT);
681   END IF;
682 
683 
684   FOR l IN c_dup_name LOOP
685 
686     IF (C_LEVEL_ERROR >= g_log_level) THEN
687       trace(p_msg    => 'LOOP: c_dup_name',
688             p_module => l_log_module,
689             p_level  => C_LEVEL_ERROR);
690     END IF;
691 
692     l_retcode := 'WARNING';
693     xla_aad_loader_util_pvt.stack_error
694                (p_appli_s_name    => 'XLA'
695                ,p_msg_name        => 'XLA_AAD_UPL_DUP_NAME'
696                ,p_token_1         => 'COMPONENT_NAME'
697                ,p_value_1         => l.name
698                ,p_token_2         => 'COMPONENT_TYPE'
699                ,p_value_2         => l.table_name);
700 
701   END LOOP;
702 
703   IF (C_LEVEL_EVENT >= g_log_level) THEN
704     trace(p_msg    => 'END LOOP: c_dup_name',
705           p_module => l_log_module,
706           p_level  => C_LEVEL_EVENT);
707   END IF;
708 
709   IF (C_LEVEL_EVENT >= g_log_level) THEN
710     trace(p_msg    => 'BEGIN LOOP: c_dup_code',
711           p_module => l_log_module,
712           p_level  => C_LEVEL_EVENT);
713   END IF;
714 
715   FOR l IN c_dup_code LOOP
716 
717     IF (C_LEVEL_ERROR >= g_log_level) THEN
718       trace(p_msg    => 'LOOP: c_dup_code',
719             p_module => l_log_module,
720             p_level  => C_LEVEL_ERROR);
721     END IF;
722 
723     l_retcode := 'WARNING';
724     xla_aad_loader_util_pvt.stack_error
725                (p_appli_s_name    => 'XLA'
726                ,p_msg_name        => 'XLA_AAD_UPL_DUP_CODE'
727                ,p_token_1         => 'CODE'
728                ,p_value_1         => l.code
729                ,p_token_2         => 'COMPONENT_TYPE'
730                ,p_value_2         => l.table_name);
731 
732   END LOOP;
733 
734   IF (C_LEVEL_EVENT >= g_log_level) THEN
735     trace(p_msg    => 'END LOOP: c_dup_code',
736           p_module => l_log_module,
737           p_level  => C_LEVEL_EVENT);
738   END IF;
739 
740   IF (C_LEVEL_EVENT >= g_log_level) THEN
741     trace(p_msg    => 'BEGIN LOOP: c_invalid_coa',
742           p_module => l_log_module,
743           p_level  => C_LEVEL_EVENT);
744   END IF;
745 
746   FOR l IN c_invalid_coa LOOP
747 
748     IF (C_LEVEL_ERROR >= g_log_level) THEN
749       trace(p_msg    => 'LOOP: c_invalid_coa',
750             p_module => l_log_module,
751             p_level  => C_LEVEL_ERROR);
752     END IF;
753 
754     l_retcode := 'WARNING';
755     xla_aad_loader_util_pvt.stack_error
756                (p_appli_s_name    => 'XLA'
757                ,p_msg_name        => 'XLA_AAD_UPL_INVALID_COA'
758                ,p_token_1         => 'STRUCT_CODE'
759                ,p_value_1         => l.id_flex_struct_code);
760 
761   END LOOP;
762 
763   IF (C_LEVEL_EVENT >= g_log_level) THEN
764     trace(p_msg    => 'END LOOP: c_invalid_coa',
765           p_module => l_log_module,
766           p_level  => C_LEVEL_EVENT);
767   END IF;
768 
769   IF (C_LEVEL_EVENT >= g_log_level) THEN
770     trace(p_msg    => 'BEGIN LOOP: c_invalid_value_set',
771           p_module => l_log_module,
772           p_level  => C_LEVEL_EVENT);
773   END IF;
774 
775   FOR l IN c_invalid_value_set LOOP
776 
777     IF (C_LEVEL_ERROR >= g_log_level) THEN
778       trace(p_msg    => 'LOOP: c_invalid_value_set',
779             p_module => l_log_module,
780             p_level  => C_LEVEL_ERROR);
781     END IF;
782 
783     l_retcode := 'WARNING';
784     --Bug 9374275
788                ,p_msg_name        => 'XLA_AAD_UPL_INVALID_VALUE_SET'
785     --Changed the token value from 'VALUE_SET_NAME' to 'VALUE_SET'
786     xla_aad_loader_util_pvt.stack_error
787                (p_appli_s_name    => 'XLA'
789                ,p_token_1         => 'VALUE_SET'
790                ,p_value_1         => l.flex_value_set_name);
791 
792   END LOOP;
793 
794   IF (C_LEVEL_EVENT >= g_log_level) THEN
795     trace(p_msg    => 'END LOOP: c_invalid_value_set',
796           p_module => l_log_module,
797           p_level  => C_LEVEL_EVENT);
798   END IF;
799 
800   IF (C_LEVEL_EVENT >= g_log_level) THEN
801     trace(p_msg    => 'BEGIN LOOP: c_invalid_app_short_name',
802           p_module => l_log_module,
803           p_level  => C_LEVEL_EVENT);
804   END IF;
805 
806   FOR l IN c_invalid_app_short_name LOOP
807 
808     IF (C_LEVEL_ERROR >= g_log_level) THEN
809       trace(p_msg    => 'LOOP: c_invalid_app_short_name',
810             p_module => l_log_module,
811             p_level  => C_LEVEL_ERROR);
812     END IF;
813 
814     l_retcode := 'WARNING';
815     --Bug 9374275
816     --Changed the token value from 'VALUE_SET_NAME' to 'APP_SHORT_NAME'
817     xla_aad_loader_util_pvt.stack_error
818                (p_appli_s_name    => 'XLA'
819                ,p_msg_name        => 'XLA_AAD_UPL_INVALID_APP_SN'
820                ,p_token_1         => 'APP_SHORT_NAME'
821                ,p_value_1         => l.app_short_name);
822 
823   END LOOP;
824 
825   IF (C_LEVEL_EVENT >= g_log_level) THEN
826     trace(p_msg    => 'END LOOP: c_invalid_app_short_name',
827           p_module => l_log_module,
828           p_level  => C_LEVEL_EVENT);
829   END IF;
830 
831   IF (C_LEVEL_EVENT >= g_log_level) THEN
832     trace(p_msg    => 'END of function validation',
833           p_module => l_log_module,
834           p_level  => C_LEVEL_EVENT);
835   END IF;
836 
837   RETURN l_retcode;
838 EXCEPTION
839 
840 WHEN OTHERS THEN
841   l_retcode := 'ERROR';
842 
843   l_exception := sqlerrm; --Bug 16208537
844   l_excp_code := sqlcode;
845 
846   IF (C_LEVEL_EVENT >= g_log_level) THEN
847     trace(p_msg    => 'Error in xla_aad_upload_pvt.validation is : '||l_excp_code||'-'||l_exception,
848           p_module => l_log_module,
849           p_level  => C_LEVEL_EVENT);
850   END IF;
851 
852   xla_aad_loader_util_pvt.stack_error
853                (p_appli_s_name    => 'XLA'
854                ,p_msg_name        => 'XLA_COMMON_ERROR'
855                ,p_token_1         => 'LOCATION'
856                ,p_value_1         => 'xla_aad_upload_pvt.validation'
857                ,p_token_2         => 'ERROR'
858                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
859   RAISE;
860 END;
861 
862 
863 --=============================================================================
864 --
865 -- Name: populate_descriptions
866 -- Description: This API populates the description data from the AAD Loader
867 --              interface table to the different AMB tables
868 --
869 --=============================================================================
870 PROCEDURE populate_descriptions
871 (p_application_id        IN INTEGER
872 ,p_staging_context_code  IN VARCHAR2)
873 IS
874   l_log_module    VARCHAR2(240);
875   l_exception     VARCHAR2(250);
876   l_excp_code     VARCHAR2(100);
877   l_num_rows	  INTEGER;
878 BEGIN
879   IF g_log_enabled THEN
880     l_log_module := C_DEFAULT_MODULE||'.populate_descriptions';
881   END IF;
882 
883   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
884     trace(p_msg    => 'BEGIN of procedure populate_descriptions',
885           p_module => l_log_module,
886           p_level  => C_LEVEL_PROCEDURE);
887   END IF;
888 
889   INSERT INTO xla_descriptions_b
890   (application_id
891   ,amb_context_code
892   ,description_type_code
893   ,description_code
894   ,transaction_coa_id
895   ,enabled_flag
896   ,creation_date
897   ,created_by
898   ,last_update_date
899   ,last_updated_by
900   ,last_update_login)
901   SELECT
902    p_application_id
903   ,p_staging_context_code
904   ,description_type_code
905   ,description_code
906   ,flex.id_flex_num
907   ,i.enabled_flag
908   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
909   ,fnd_load_util.owner_id(owner)
910   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
911   ,fnd_load_util.owner_id(owner)
912   ,0
913   FROM  xla_aad_loader_defns_t i
914        ,fnd_id_flex_structures   flex
915   WHERE flex.application_id(+)         = 101
916     AND flex.id_flex_code(+)           = 'GL#'
917     AND flex.id_flex_structure_code(+) = trans_coa_id_flex_struct_code
918     AND table_name                     = 'XLA_DESCRIPTIONS'
919     AND staging_amb_context_code       = p_staging_context_code;
920 l_num_rows :=  SQL%ROWCOUNT;
921   IF (C_LEVEL_EVENT >= g_log_level) THEN
922     trace(p_msg    => '# insert (XLA_DESCRIPTIONS_B) = '||l_num_rows,
923           p_module => l_log_module,
924           p_level  => C_LEVEL_EVENT);
925   END IF;
926 
927     -- Bug : 16208537
928     -- API Call to Insert messages into AAD Loader Log Table.
929     xla_aad_loader_util_pvt.insert_aadloaderlog(
930              p_amb_context_code =>  p_staging_context_code,
931              p_application_id   =>  p_application_id,
932              p_request_code     => 'IMPORT' ,
933              p_log_type_code    => 'UPLOAD',
937   INSERT INTO xla_descriptions_tl
934              p_encoded_message  =>  '# insert (XLA_DESCRIPTIONS_B) = '||l_num_rows,
935              p_component_code   =>  'populate_descriptions');
936 
938   (application_id
939   ,amb_context_code
940   ,description_type_code
941   ,description_code
942   ,language
943   ,name
944   ,description
945   ,source_lang
946   ,creation_date
947   ,created_by
948   ,last_update_date
949   ,last_updated_by
950   ,last_update_login)
951   SELECT
952    p_application_id
953   ,p_staging_context_code
954   ,description_type_code
955   ,description_code
956   ,fl.language_code
957   ,name
958   ,description
959   ,USERENV('LANG')
960   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
961   ,fnd_load_util.owner_id(owner)
962   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
963   ,fnd_load_util.owner_id(owner)
964   ,0
965   FROM  xla_aad_loader_defns_t    xal
966        ,fnd_languages               fl
967   WHERE xal.table_name                  = 'XLA_DESCRIPTIONS'
968     AND xal.staging_amb_context_code    = p_staging_context_code
969     AND fl.installed_flag               IN ('I', 'B');
970 
971 l_num_rows :=  SQL%ROWCOUNT;
972 
973   IF (C_LEVEL_EVENT >= g_log_level) THEN
974     trace(p_msg    => '# insert (XLA_DESCRIPTIONS_TL) = '||l_num_rows,
975           p_module => l_log_module,
976           p_level  => C_LEVEL_EVENT);
977   END IF;
978 
979     -- Bug : 16208537
980     -- API Call to Insert messages into AAD Loader Log Table.
981       xla_aad_loader_util_pvt.insert_aadloaderlog(
982              p_amb_context_code =>  p_staging_context_code,
983              p_application_id   =>  p_application_id,
984              p_request_code     => 'IMPORT' ,
985              p_log_type_code    => 'UPLOAD',
986              p_encoded_message  =>  '# insert (XLA_DESCRIPTIONS_TL) = '|| l_num_rows,
987              p_component_code   =>  'populate_descriptions');
988 
989   INSERT INTO xla_desc_priorities
990   (application_id
991   ,amb_context_code
992   ,description_type_code
993   ,description_code
994   ,description_prio_id
995   ,user_sequence
996   ,creation_date
997   ,created_by
998   ,last_update_date
999   ,last_updated_by
1000   ,last_update_login)
1001   SELECT
1002    p_application_id
1003   ,p_staging_context_code
1004   ,description_type_code
1005   ,description_code
1006   ,xla_desc_priorities_s.nextval
1007   ,priority_num
1008   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1009   ,fnd_load_util.owner_id(owner)
1010   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1011   ,fnd_load_util.owner_id(owner)
1012   ,0
1013   FROM  xla_aad_loader_defns_t
1014   WHERE table_name                  = 'XLA_DESC_PRIORITIES'
1015     AND staging_amb_context_code    = p_staging_context_code;
1016 
1017 l_num_rows :=  SQL%ROWCOUNT;
1018 
1019   IF (C_LEVEL_EVENT >= g_log_level) THEN
1020     trace(p_msg    => '# insert (XLA_DESC_PRIORITIES) = '||l_num_rows,
1021           p_module => l_log_module,
1022           p_level  => C_LEVEL_EVENT);
1023   END IF;
1024 
1025     -- Bug : 16208537
1026     -- API Call to Insert messages into AAD Loader Log Table.
1027         xla_aad_loader_util_pvt.insert_aadloaderlog(
1028              p_amb_context_code =>  p_staging_context_code,
1029              p_application_id   =>  p_application_id,
1030              p_request_code     => 'IMPORT' ,
1031              p_log_type_code    => 'UPLOAD',
1032              p_encoded_message  =>  '# insert (XLA_DESC_PRIORITIES) = '||l_num_rows,
1033              p_component_code   =>  'populate_descriptions');
1034 
1035   INSERT INTO xla_descript_details_b
1036   (amb_context_code
1037   ,description_detail_id
1038   ,description_prio_id
1039   ,user_sequence
1040   ,value_type_code
1041   ,source_application_id
1042   ,source_type_code
1043   ,source_code
1044   ,flexfield_segment_code
1045   ,display_description_flag
1046   ,creation_date
1047   ,created_by
1048   ,last_update_date
1049   ,last_updated_by
1050   ,last_update_login)
1051   SELECT
1052    p_staging_context_code
1053   ,xla_descript_details_s.nextval
1054   ,p.description_prio_id
1055   ,xal.user_sequence
1056   ,value_type_code
1057   ,fap.application_id
1058   ,source_type_code
1059   ,source_code
1060   ,flexfield_segment_code
1061   ,display_description_flag
1062   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1063   ,fnd_load_util.owner_id(owner)
1064   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1065   ,fnd_load_util.owner_id(owner)
1066   ,0
1067   FROM  xla_aad_loader_defns_t      xal
1068        ,xla_desc_priorities         p
1069        ,fnd_application             fap
1070   WHERE fap.application_short_name(+) = xal.source_app_short_name
1071     AND p.user_sequence               = xal.priority_num
1072     AND p.description_type_code       = xal.description_type_code
1073     AND p.description_code            = xal.description_code
1074     AND p.amb_context_code            = p_staging_context_code
1075     AND p.application_id              = p_application_id
1076     AND table_name                    = 'XLA_DESCRIPT_DETAILS'
1077     AND staging_amb_context_code      = p_staging_context_code;
1078 
1079 l_num_rows :=  SQL%ROWCOUNT;
1080 
1081   IF (C_LEVEL_EVENT >= g_log_level) THEN
1082     trace(p_msg    => '# insert (XLA_DESCRIPT_DETAILS_B) = '||l_num_rows,
1083           p_module => l_log_module,
1084           p_level  => C_LEVEL_EVENT);
1085   END IF;
1086 
1090              p_amb_context_code =>  p_staging_context_code,
1087     -- Bug : 16208537
1088     -- API Call to Insert messages into AAD Loader Log Table.
1089         xla_aad_loader_util_pvt.insert_aadloaderlog(
1091              p_application_id   =>  p_application_id,
1092              p_request_code     => 'IMPORT' ,
1093              p_log_type_code    => 'UPLOAD',
1094              p_encoded_message  =>  '# insert (XLA_DESCRIPT_DETAILS_B) = '||l_num_rows,
1095              p_component_code   =>  'populate_descriptions');
1096 
1097   INSERT INTO xla_descript_details_tl
1098   (amb_context_code
1099   ,description_detail_id
1100   ,language
1101   ,literal
1102   ,source_lang
1103   ,creation_date
1104   ,created_by
1105   ,last_update_date
1106   ,last_updated_by
1107   ,last_update_login)
1108   SELECT
1109    p_staging_context_code
1110   ,xdd.description_detail_id
1111   ,fl.language_code
1112   ,literal
1113   ,USERENV('LANG')
1114   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1115   ,fnd_load_util.owner_id(owner)
1116   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1117   ,fnd_load_util.owner_id(owner)
1118   ,0
1119   FROM  xla_aad_loader_defns_t    xal
1120        ,xla_descript_details_b      xdd
1121        ,xla_desc_priorities         xdp
1122        ,fnd_languages               fl
1123   WHERE xdd.description_prio_id         = xdp.description_prio_id
1124     AND xdd.user_sequence               = xal.user_sequence
1125     AND xdp.user_sequence               = xal.priority_num
1126     AND xdp.description_type_code       = xal.description_type_code
1127     AND xdp.description_code            = xal.description_code
1128     AND xdp.amb_context_code            = p_staging_context_code
1129     AND xdp.application_id              = p_application_id
1130     AND xal.table_name                  = 'XLA_DESCRIPT_DETAILS'
1131     AND xal.staging_amb_context_code    = p_staging_context_code
1132     AND fl.installed_flag               IN ('I', 'B');
1133 
1134 l_num_rows :=  SQL%ROWCOUNT;
1135 
1136   IF (C_LEVEL_EVENT >= g_log_level) THEN
1137     trace(p_msg    => '# insert (XLA_DESCRIPT_DETAILS_TL) = '||l_num_rows,
1138           p_module => l_log_module,
1139           p_level  => C_LEVEL_EVENT);
1140   END IF;
1141 
1142     -- Bug : 16208537
1143     -- API Call to Insert messages into AAD Loader Log Table.
1144         xla_aad_loader_util_pvt.insert_aadloaderlog(
1145              p_amb_context_code =>  p_staging_context_code,
1146              p_application_id   =>  p_application_id,
1147              p_request_code     => 'IMPORT' ,
1148              p_log_type_code    => 'UPLOAD',
1149              p_encoded_message  =>  '# insert (XLA_DESCRIPT_DETAILS_TL) = '||l_num_rows,
1150              p_component_code   =>  'populate_descriptions');
1151 
1152   INSERT INTO xla_conditions
1153   (amb_context_code
1154   ,condition_id
1155   ,user_sequence
1156   ,application_id
1157   ,description_prio_id
1158   ,bracket_left_code
1159   ,bracket_right_code
1160   ,value_type_code
1161   ,source_application_id
1162   ,source_type_code
1163   ,source_code
1164   ,flexfield_segment_code
1165   ,value_flexfield_segment_code
1166   ,value_source_application_id
1167   ,value_source_type_code
1168   ,value_source_code
1169   ,value_constant
1170   ,line_operator_code
1171   ,logical_operator_code
1172   ,creation_date
1173   ,created_by
1174   ,last_update_date
1175   ,last_updated_by
1176   ,last_update_login)
1177   SELECT
1178    p_staging_context_code
1179   ,xla_conditions_s.nextval
1180   ,xal.condition_num
1181   ,p_application_id
1182   ,description_prio_id
1183   ,bracket_left_code
1184   ,bracket_right_code
1185   ,value_type_code
1186   ,fap.application_id
1187   ,source_type_code
1188   ,source_code
1189   ,flexfield_segment_code
1190   ,value_flexfield_segment_code
1191   ,fap2.application_id
1192   ,value_source_type_code
1193   ,value_source_code
1194   ,value_constant
1195   ,line_operator_code
1196   ,logical_operator_code
1197   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1198   ,fnd_load_util.owner_id(owner)
1199   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1200   ,fnd_load_util.owner_id(owner)
1201   ,0
1202   FROM  xla_aad_loader_defns_t        xal
1203        ,xla_desc_priorities           p
1204        ,fnd_application               fap
1205        ,fnd_application               fap2
1206   WHERE fap.application_short_name(+) = xal.source_app_short_name
1207     AND fap2.application_short_name(+)= xal.value_source_app_short_name
1208     AND p.user_sequence               = xal.priority_num
1209     AND p.description_type_code       = xal.description_type_code
1210     AND p.description_code            = xal.description_code
1211     AND p.amb_context_code            = p_staging_context_code
1212     AND p.application_id              = p_application_id
1213     AND table_name                    = 'XLA_DESC_CONDITIONS'
1214     AND staging_amb_context_code      = p_staging_context_code;
1215 
1216 l_num_rows :=  SQL%ROWCOUNT;
1217 
1218   IF (C_LEVEL_EVENT >= g_log_level) THEN
1219     trace(p_msg    => '# insert (XLA_DESC_CONDITIONS) = '||l_num_rows,
1220           p_module => l_log_module,
1221           p_level  => C_LEVEL_EVENT);
1222   END IF;
1223 
1224     -- Bug : 16208537
1225     -- API Call to Insert messages into AAD Loader Log Table.
1226      xla_aad_loader_util_pvt.insert_aadloaderlog(
1227              p_amb_context_code =>  p_staging_context_code,
1228              p_application_id   =>  p_application_id,
1229              p_request_code     => 'IMPORT' ,
1233 
1230              p_log_type_code    => 'UPLOAD',
1231              p_encoded_message  =>  '# insert (XLA_DESC_CONDITIONS) = '||l_num_rows,
1232              p_component_code   =>  'populate_descriptions');
1234   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1235     trace(p_msg    => 'END of procedure populate_descriptions',
1236           p_module => l_log_module,
1237           p_level  => C_LEVEL_PROCEDURE);
1238   END IF;
1239 
1240 EXCEPTION
1241 WHEN OTHERS THEN
1242 
1243   l_exception := sqlerrm; --Bug 16208537
1244   l_excp_code := sqlcode;
1245 
1246   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1247     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_descriptions',
1248           p_module => l_log_module,
1249           p_level  => C_LEVEL_PROCEDURE);
1250   END IF;
1251 
1252   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1253     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_descriptions is : '||l_excp_code||'-'||l_exception,
1254           p_module => l_log_module,
1255           p_level  => C_LEVEL_PROCEDURE);
1256   END IF;
1257 
1258 
1259   xla_aad_loader_util_pvt.stack_error
1260                (p_appli_s_name    => 'XLA'
1261                ,p_msg_name        => 'XLA_COMMON_ERROR'
1262                ,p_token_1         => 'LOCATION'
1263                ,p_value_1         => 'xla_aad_upload_pvt.populate_descriptions'
1264                ,p_token_2         => 'ERROR'
1265                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
1266   RAISE;
1267 
1268 END populate_descriptions;
1269 
1270 --=============================================================================
1271 --
1272 -- Name: populate_mapping_sets
1273 -- Description: This API populates the mapping set data from the AAD Loader
1274 --              interface table to the different AMB tables
1275 --
1276 --=============================================================================
1277 FUNCTION populate_mapping_sets
1278 (p_application_id        IN INTEGER
1279 ,p_staging_context_code  IN VARCHAR2)
1280 RETURN VARCHAR2
1281 IS
1282   CURSOR c_ccid IS
1283     SELECT  DISTINCT
1284             xal.mapping_set_code
1285            ,fif.id_flex_num
1286            ,fif.id_flex_structure_code
1287            ,xal.value_ccid_segment1
1288            ,xal.value_ccid_segment2
1289            ,xal.value_ccid_segment3
1290            ,xal.value_ccid_segment4
1291            ,xal.value_ccid_segment5
1292            ,xal.value_ccid_segment6
1293            ,xal.value_ccid_segment7
1294            ,xal.value_ccid_segment8
1295            ,xal.value_ccid_segment9
1296            ,xal.value_ccid_segment10
1297            ,xal.value_ccid_segment11
1298            ,xal.value_ccid_segment12
1299            ,xal.value_ccid_segment13
1300            ,xal.value_ccid_segment14
1301            ,xal.value_ccid_segment15
1302            ,xal.value_ccid_segment16
1303            ,xal.value_ccid_segment17
1304            ,xal.value_ccid_segment18
1305            ,xal.value_ccid_segment19
1306            ,xal.value_ccid_segment20
1307            ,xal.value_ccid_segment21
1308            ,xal.value_ccid_segment22
1309            ,xal.value_ccid_segment23
1310            ,xal.value_ccid_segment24
1311            ,xal.value_ccid_segment25
1312            ,xal.value_ccid_segment26
1313            ,xal.value_ccid_segment27
1314            ,xal.value_ccid_segment28
1315            ,xal.value_ccid_segment29
1316            ,xal.value_ccid_segment30
1317       FROM xla_aad_loader_defns_t xal
1318           ,fnd_id_flex_structures fif
1319      WHERE xal.table_name               = 'XLA_MAPPING_SET_VALUES'
1320        AND xal.staging_amb_context_code = p_staging_context_code
1321        AND fif.application_id           = 101
1322        AND fif.id_flex_code             = 'GL#'
1323        AND fif.id_flex_structure_code   = xal.value_ccid_id_flex_struct_code;
1324 
1325   CURSOR c_mapping_set(p_mapping_set_code VARCHAR2) IS
1326     SELECT name
1327       FROM xla_mapping_sets_tl
1328      WHERE mapping_set_code  = p_mapping_set_code
1329        AND language          = USERENV('LANG');
1330 
1331   l_seg                     FND_FLEX_EXT.SegmentArray;
1332   l_code_combination_id     INTEGER;
1333   l_mapping_set_name        VARCHAR2(80);
1334   l_error_found             BOOLEAN;
1335   l_num_rows                INTEGER;
1336   l_log_module              VARCHAR2(240);
1337   l_exception               VARCHAR2(250);
1338   l_excp_code               VARCHAR2(100);
1339 BEGIN
1340   IF g_log_enabled THEN
1341     l_log_module := C_DEFAULT_MODULE||'.populate_mapping_sets';
1342   END IF;
1343 
1344   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1345     trace(p_msg    => 'BEGIN of procedure populate_mapping_sets',
1346           p_module => l_log_module,
1347           p_level  => C_LEVEL_PROCEDURE);
1348   END IF;
1349 
1350   INSERT INTO xla_mapping_sets_b
1351   (amb_context_code
1352   ,mapping_set_code
1353   ,accounting_coa_id
1354   ,value_set_id
1355   ,flex_value_set_id -- Added for ER 9395160
1356   ,flexfield_assign_mode_code
1357   ,flexfield_segment_code
1358   ,enabled_flag
1359   ,view_application_id
1360   ,lookup_type
1361   ,version_num
1362   ,updated_flag
1363   ,creation_date
1364   ,created_by
1365   ,last_update_date
1366   ,last_updated_by
1367   ,last_update_login)
1368   SELECT
1369    p_staging_context_code
1370   ,mapping_set_code
1371   ,flex.id_flex_num
1372   ,val.flex_value_set_id
1373   ,oval.flex_value_set_id -- Added for ER 9395160
1374   ,flexfield_assign_mode_code
1375   ,flexfield_segment_code
1379   ,NVL(version_num,1)
1376   ,xal.enabled_flag
1377   ,fap.application_id
1378   ,lookup_type
1380   ,'N'
1381   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1382   ,fnd_load_util.owner_id(owner)
1383   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1384   ,fnd_load_util.owner_id(owner)
1385   ,0
1386   FROM  xla_aad_loader_defns_t   xal
1387        ,fnd_application          fap
1388        ,fnd_id_flex_structures   flex
1389        ,fnd_flex_value_sets      val
1390        ,fnd_flex_value_sets      oval -- Added for ER 9395160
1391   WHERE fap.application_short_name(+)  = xal.view_app_short_name
1392     AND val.flex_value_set_name(+)     = xal.flex_value_set_name
1393     and oval.flex_value_set_name(+)    = xal.output_flex_value_set_name -- Added for ER 9395160
1394     AND flex.id_flex_code              = 'GL#'
1395     AND flex.application_id            = 101
1396     AND flex.id_flex_structure_code    = xal.acct_coa_id_flex_struct_code
1397     AND table_name                     = 'XLA_MAPPING_SETS'
1398     AND staging_amb_context_code       = p_staging_context_code;
1399 
1400   l_num_rows := SQL%ROWCOUNT;
1401 
1402   IF (C_LEVEL_EVENT >= g_log_level) THEN
1403     trace(p_msg    => '# insert (XLA_MAPPING_SETS_B) = '||l_num_rows,
1404           p_module => l_log_module,
1405           p_level  => C_LEVEL_EVENT);
1406   END IF;
1407 
1408     -- Bug : 16208537
1409     -- API Call to Insert messages into AAD Loader Log Table.
1410     xla_aad_loader_util_pvt.insert_aadloaderlog(
1411              p_amb_context_code =>  p_staging_context_code,
1412              p_application_id   =>  p_application_id,
1413              p_request_code     => 'IMPORT' ,
1414              p_log_type_code    => 'UPLOAD',
1415              p_encoded_message  =>  '# insert (XLA_MAPPING_SETS_B) = '||l_num_rows,
1416              p_component_code   =>  'populate_mapping_sets');
1417 
1418   IF (l_num_rows > 0) THEN
1419 
1420     INSERT INTO xla_mapping_sets_tl
1421     (amb_context_code
1422     ,mapping_set_code
1423     ,language
1424     ,name
1425     ,description
1426     ,source_lang
1427     ,creation_date
1428     ,created_by
1429     ,last_update_date
1430     ,last_updated_by
1431     ,last_update_login)
1432     SELECT
1433      p_staging_context_code
1434     ,mapping_set_code
1435     ,fl.language_code
1436     ,name
1437     ,description
1438     ,USERENV('LANG')
1439     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1440     ,fnd_load_util.owner_id(owner)
1441     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1442     ,fnd_load_util.owner_id(owner)
1443     ,0
1444     FROM  xla_aad_loader_defns_t      xal
1445          ,fnd_languages               fl
1446     WHERE xal.table_name                  = 'XLA_MAPPING_SETS'
1447       AND xal.staging_amb_context_code    = p_staging_context_code
1448       AND fl.installed_flag               IN ('I', 'B');
1449 
1450 l_num_rows :=  SQL%ROWCOUNT;
1451 
1452     IF (C_LEVEL_EVENT >= g_log_level) THEN
1453       trace(p_msg    => '# insert (XLA_MAPPING_SETS_TL) = '||l_num_rows,
1454             p_module => l_log_module,
1455             p_level  => C_LEVEL_EVENT);
1456     END IF;
1457 
1458     -- Bug : 16208537
1459     -- API Call to Insert messages into AAD Loader Log Table.
1460     xla_aad_loader_util_pvt.insert_aadloaderlog(
1461              p_amb_context_code =>  p_staging_context_code,
1462              p_application_id   =>  p_application_id,
1463              p_request_code     => 'IMPORT' ,
1464              p_log_type_code    => 'UPLOAD',
1465              p_encoded_message  =>  '# insert (XLA_MAPPING_SETS_TL) = '||l_num_rows,
1466              p_component_code   =>  'populate_mapping_sets');
1467 
1468     IF (C_LEVEL_EVENT >= g_log_level) THEN
1469       trace(p_msg    => 'BEGIN LOOP - Retrieve CCID for XLA_MAPPING_SET_VALUES.view_code_combination_id',
1470             p_module => l_log_module,
1471             p_level  => C_LEVEL_EVENT);
1472     END IF;
1473 
1474     FOR l_ccid IN c_ccid LOOP
1475       IF (C_LEVEL_ERROR >= g_log_level) THEN
1476         trace(p_msg    => 'LOOP Retrieve CCID: '||l_ccid.mapping_set_code,
1477               p_module => l_log_module,
1478               p_level  => C_LEVEL_ERROR);
1479       END IF;
1480 
1481       l_seg(1) := l_ccid.value_ccid_segment1;
1482       l_seg(2) := l_ccid.value_ccid_segment2;
1483       l_seg(3) := l_ccid.value_ccid_segment3;
1484       l_seg(4) := l_ccid.value_ccid_segment4;
1485       l_seg(5) := l_ccid.value_ccid_segment5;
1486       l_seg(6) := l_ccid.value_ccid_segment6;
1487       l_seg(7) := l_ccid.value_ccid_segment7;
1488       l_seg(8) := l_ccid.value_ccid_segment8;
1489       l_seg(9) := l_ccid.value_ccid_segment9;
1490       l_seg(10) := l_ccid.value_ccid_segment10;
1491       l_seg(11) := l_ccid.value_ccid_segment11;
1492       l_seg(12) := l_ccid.value_ccid_segment12;
1493       l_seg(13) := l_ccid.value_ccid_segment13;
1494       l_seg(14) := l_ccid.value_ccid_segment14;
1495       l_seg(15) := l_ccid.value_ccid_segment15;
1496       l_seg(16) := l_ccid.value_ccid_segment16;
1497       l_seg(17) := l_ccid.value_ccid_segment17;
1498       l_seg(18) := l_ccid.value_ccid_segment18;
1499       l_seg(19) := l_ccid.value_ccid_segment19;
1500       l_seg(20) := l_ccid.value_ccid_segment20;
1501       l_seg(21) := l_ccid.value_ccid_segment21;
1502       l_seg(22) := l_ccid.value_ccid_segment22;
1503       l_seg(23) := l_ccid.value_ccid_segment23;
1504       l_seg(24) := l_ccid.value_ccid_segment24;
1505       l_seg(25) := l_ccid.value_ccid_segment25;
1506       l_seg(26) := l_ccid.value_ccid_segment26;
1507       l_seg(27) := l_ccid.value_ccid_segment27;
1508       l_seg(28) := l_ccid.value_ccid_segment28;
1512       IF (FND_FLEX_EXT.get_combination_id(
1509       l_seg(29) := l_ccid.value_ccid_segment29;
1510       l_seg(30) := l_ccid.value_ccid_segment30;
1511 
1513                   application_short_name    => 'SQLGL',
1514                   key_flex_code             => 'GL#',
1515                   structure_number          => l_ccid.id_flex_num,
1516                   validation_date           => null,
1517                   n_segments                => 30,
1518                   segments                  => l_seg,
1519                   combination_id            => l_code_combination_id) = FALSE)
1520       THEN
1521 
1522         OPEN c_mapping_set(l_ccid.mapping_set_code);
1523         FETCH c_mapping_set INTO l_mapping_set_name;
1524         CLOSE c_mapping_set;
1525 
1526         xla_aad_loader_util_pvt.stack_error
1527                  (p_appli_s_name    => 'XLA'
1528                  ,p_msg_name        => 'XLA_AAD_IMP_INV_CCID_MS_VALUE'
1529                  ,p_token_1         => 'MAPPING_SET'
1530                  ,p_value_1         => l_mapping_set_name);
1531         l_error_found := TRUE;
1532       ELSE
1533         UPDATE xla_aad_loader_defns_t
1534            SET value_code_combination_id        = l_code_combination_id
1535          WHERE staging_amb_context_code         = p_staging_context_code
1536            AND mapping_set_code                 = l_ccid.mapping_set_code
1537            AND value_ccid_id_flex_struct_code   = l_ccid.id_flex_structure_code
1538            AND nvl(value_ccid_segment1,C_CHAR)  = nvl(l_ccid.value_ccid_segment1,C_CHAR)
1539            AND nvl(value_ccid_segment2,C_CHAR)  = nvl(l_ccid.value_ccid_segment2,C_CHAR)
1540            AND nvl(value_ccid_segment3,C_CHAR)  = nvl(l_ccid.value_ccid_segment3,C_CHAR)
1541            AND nvl(value_ccid_segment4,C_CHAR)  = nvl(l_ccid.value_ccid_segment4,C_CHAR)
1542            AND nvl(value_ccid_segment5,C_CHAR)  = nvl(l_ccid.value_ccid_segment5,C_CHAR)
1543            AND nvl(value_ccid_segment6,C_CHAR)  = nvl(l_ccid.value_ccid_segment6,C_CHAR)
1544            AND nvl(value_ccid_segment7,C_CHAR)  = nvl(l_ccid.value_ccid_segment7,C_CHAR)
1545            AND nvl(value_ccid_segment8,C_CHAR)  = nvl(l_ccid.value_ccid_segment8,C_CHAR)
1546            AND nvl(value_ccid_segment9,C_CHAR)  = nvl(l_ccid.value_ccid_segment9,C_CHAR)
1547            AND nvl(value_ccid_segment10,C_CHAR) = nvl(l_ccid.value_ccid_segment10,C_CHAR)
1548            AND nvl(value_ccid_segment11,C_CHAR) = nvl(l_ccid.value_ccid_segment11,C_CHAR)
1549            AND nvl(value_ccid_segment12,C_CHAR) = nvl(l_ccid.value_ccid_segment12,C_CHAR)
1550            AND nvl(value_ccid_segment13,C_CHAR) = nvl(l_ccid.value_ccid_segment13,C_CHAR)
1551            AND nvl(value_ccid_segment14,C_CHAR) = nvl(l_ccid.value_ccid_segment14,C_CHAR)
1552            AND nvl(value_ccid_segment15,C_CHAR) = nvl(l_ccid.value_ccid_segment15,C_CHAR)
1553            AND nvl(value_ccid_segment16,C_CHAR) = nvl(l_ccid.value_ccid_segment16,C_CHAR)
1554            AND nvl(value_ccid_segment17,C_CHAR) = nvl(l_ccid.value_ccid_segment17,C_CHAR)
1555            AND nvl(value_ccid_segment18,C_CHAR) = nvl(l_ccid.value_ccid_segment18,C_CHAR)
1556            AND nvl(value_ccid_segment19,C_CHAR) = nvl(l_ccid.value_ccid_segment19,C_CHAR)
1557            AND nvl(value_ccid_segment20,C_CHAR) = nvl(l_ccid.value_ccid_segment20,C_CHAR)
1558            AND nvl(value_ccid_segment21,C_CHAR) = nvl(l_ccid.value_ccid_segment21,C_CHAR)
1559            AND nvl(value_ccid_segment22,C_CHAR) = nvl(l_ccid.value_ccid_segment22,C_CHAR)
1560            AND nvl(value_ccid_segment23,C_CHAR) = nvl(l_ccid.value_ccid_segment23,C_CHAR)
1561            AND nvl(value_ccid_segment24,C_CHAR) = nvl(l_ccid.value_ccid_segment24,C_CHAR)
1562            AND nvl(value_ccid_segment25,C_CHAR) = nvl(l_ccid.value_ccid_segment25,C_CHAR)
1563            AND nvl(value_ccid_segment26,C_CHAR) = nvl(l_ccid.value_ccid_segment26,C_CHAR)
1564            AND nvl(value_ccid_segment27,C_CHAR) = nvl(l_ccid.value_ccid_segment27,C_CHAR)
1565            AND nvl(value_ccid_segment28,C_CHAR) = nvl(l_ccid.value_ccid_segment28,C_CHAR)
1566            AND nvl(value_ccid_segment29,C_CHAR) = nvl(l_ccid.value_ccid_segment29,C_CHAR)
1567            AND nvl(value_ccid_segment30,C_CHAR) = nvl(l_ccid.value_ccid_segment30,C_CHAR);
1568       END IF;
1569     END LOOP;
1570 
1571     IF (C_LEVEL_EVENT >= g_log_level) THEN
1572       trace(p_msg    => 'END LOOP - Retrieve CCID for XLA_MAPPING_SET_VALUES.view_code_combination_id',
1573             p_module => l_log_module,
1574             p_level  => C_LEVEL_EVENT);
1575     END IF;
1576 
1577     INSERT INTO xla_mapping_set_values
1578     (mapping_set_value_id
1579     ,amb_context_code
1580     ,mapping_set_code
1581     ,value_constant
1582     ,value_code_combination_id
1583     ,effective_date_from
1584     ,effective_date_to
1585     ,enabled_flag
1586     ,input_value_type_code
1587     ,input_value_constant
1588     ,creation_date
1589     ,created_by
1590     ,last_update_date
1591     ,last_updated_by
1592     ,last_update_login)
1593     SELECT
1594      xla_mapping_set_values_s.nextval
1595     ,p_staging_context_code
1596     ,mapping_set_code
1597     ,value_constant
1598     ,value_code_combination_id
1599     ,effective_date_from
1600     ,effective_date_to
1601     ,enabled_flag
1602     ,input_value_type_code
1603     ,input_value_constant
1604     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1605     ,fnd_load_util.owner_id(owner)
1606     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1607     ,fnd_load_util.owner_id(owner)
1608     ,0
1609     FROM  xla_aad_loader_defns_t      xal
1610     WHERE table_name                  = 'XLA_MAPPING_SET_VALUES'
1611       AND staging_amb_context_code    = p_staging_context_code;
1612 
1613 l_num_rows :=  SQL%ROWCOUNT;
1614 
1615     IF (C_LEVEL_EVENT >= g_log_level) THEN
1616       trace(p_msg    => '# insert (XLA_MAPPING_SET_VALUES) = '||l_num_rows,
1617             p_module => l_log_module,
1621     -- Bug : 16208537
1618             p_level  => C_LEVEL_EVENT);
1619     END IF;
1620 
1622     -- API Call to Insert messages into AAD Loader Log Table.
1623     xla_aad_loader_util_pvt.insert_aadloaderlog(
1624              p_amb_context_code =>  p_staging_context_code,
1625              p_application_id   =>  p_application_id,
1626              p_request_code     => 'IMPORT' ,
1627              p_log_type_code    => 'UPLOAD',
1628              p_encoded_message  =>  '# insert (XLA_MAPPING_SET_VALUES) = '||l_num_rows,
1629              p_component_code   =>  'populate_mapping_sets');
1630   END IF;
1631 
1632   IF (l_error_found) THEN
1633     RAISE FND_API.G_EXC_ERROR;
1634   END IF;
1635 
1636   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1637     trace(p_msg    => 'END of procedure populate_mapping_sets',
1638           p_module => l_log_module,
1639           p_level  => C_LEVEL_PROCEDURE);
1640   END IF;
1641 
1642   RETURN 'SUCCESS';
1643 EXCEPTION
1644 WHEN FND_API.G_EXC_ERROR THEN
1645   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1646     trace(p_msg    => 'END of procedure populate_adrs: ERROR',
1647           p_module => l_log_module,
1648           p_level  => C_LEVEL_PROCEDURE);
1649   END IF;
1650 
1651   RETURN 'WARNING';
1652 
1653 WHEN OTHERS THEN
1654 
1655   l_exception := sqlerrm; --Bug 16208537
1656   l_excp_code := sqlcode;
1657 
1658   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1659     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_mapping_sets',
1660           p_module => l_log_module,
1661           p_level  => C_LEVEL_PROCEDURE);
1662   END IF;
1663 
1664   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1665     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_mapping_sets is : '||l_excp_code||'-'||l_exception,
1666           p_module => l_log_module,
1667           p_level  => C_LEVEL_PROCEDURE);
1668   END IF;
1669 
1670   xla_aad_loader_util_pvt.stack_error
1671                (p_appli_s_name    => 'XLA'
1672                ,p_msg_name        => 'XLA_COMMON_ERROR'
1673                ,p_token_1         => 'LOCATION'
1674                ,p_value_1         => 'xla_aad_upload_pvt.populate_mapping_sets'
1675                ,p_token_2         => 'ERROR'
1676                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
1677   RAISE;
1678 
1679 END populate_mapping_sets;
1680 
1681 --=============================================================================
1682 --
1683 -- Name: populate_analytical_criteria
1684 -- Description: This API populates the analytical criteria data from the AAD Loader
1685 --              interface table to the different AMB tables
1686 --
1687 --=============================================================================
1688 PROCEDURE populate_analytical_criteria
1689 (p_application_id        IN INTEGER
1690 ,p_staging_context_code  IN VARCHAR2)
1691 IS
1692   l_num_rows      INTEGER;
1693   l_log_module    VARCHAR2(240);
1694   l_exception     VARCHAR2(240);
1695   l_excp_code     VARCHAR2(100);
1696 
1697 BEGIN
1698   IF g_log_enabled THEN
1699     l_log_module := C_DEFAULT_MODULE||'.populate_analytical_criteria';
1700   END IF;
1701 
1702   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1703     trace(p_msg    => 'BEGIN of procedure populate_analytical_criteria',
1704           p_module => l_log_module,
1705           p_level  => C_LEVEL_PROCEDURE);
1706   END IF;
1707 
1708   INSERT INTO xla_analytical_hdrs_b
1709   (amb_context_code
1710   ,analytical_criterion_type_code
1711   ,analytical_criterion_code
1712   ,application_id
1713   ,balancing_flag
1714   ,display_order
1715   ,enabled_flag
1716   ,year_end_carry_forward_code
1717   ,display_in_inquiries_flag
1718   ,criterion_value_code
1719   ,version_num
1720   ,updated_flag
1721   ,creation_date
1722   ,created_by
1723   ,last_update_date
1724   ,last_updated_by
1725   ,last_update_login)
1726   SELECT
1727    p_staging_context_code
1728   ,analytical_criterion_type_code
1729   ,analytical_criterion_code
1730   ,fap.application_id
1731   ,balancing_flag
1732   ,display_order
1733   ,enabled_flag
1734   ,year_end_carry_forward_code
1735   ,display_in_inquiries_flag
1736   ,criterion_value_code
1737   ,NVL(version_num,1)
1738   ,'N'
1739   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1740   ,fnd_load_util.owner_id(owner)
1741   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1742   ,fnd_load_util.owner_id(owner)
1743   ,0
1744   FROM  xla_aad_loader_defns_t   xal
1745        ,fnd_application          fap
1746   WHERE fap.application_short_name(+)  = xal.application_short_name
1747     AND table_name                     = 'XLA_ANALYTICAL_HDRS'
1748     AND staging_amb_context_code       = p_staging_context_code;
1749 
1750   l_num_rows := SQL%ROWCOUNT;
1751 
1752   IF (C_LEVEL_EVENT >= g_log_level) THEN
1753     trace(p_msg    => '# insert (XLA_ANALYTICAL_HDRS_B) = '||l_num_rows,
1754           p_module => l_log_module,
1755           p_level  => C_LEVEL_EVENT);
1756   END IF;
1757 
1758     -- Bug : 16208537
1759     -- API Call to Insert messages into AAD Loader Log Table.
1760    xla_aad_loader_util_pvt.insert_aadloaderlog(
1761              p_amb_context_code =>  p_staging_context_code,
1762              p_application_id   =>  p_application_id,
1763              p_request_code     => 'IMPORT' ,
1764              p_log_type_code    => 'UPLOAD',
1765              p_encoded_message  => '# insert (XLA_ANALYTICAL_HDRS_B) = '||l_num_rows,
1766              p_component_code   =>  'populate_analytical_criteria');
1770     (amb_context_code
1767 
1768   IF (l_num_rows > 0) THEN
1769     INSERT INTO xla_analytical_hdrs_tl
1771     ,analytical_criterion_type_code
1772     ,analytical_criterion_code
1773     ,language
1774     ,name
1775     ,description
1776     ,source_lang
1777     ,creation_date
1778     ,created_by
1779     ,last_update_date
1780     ,last_updated_by
1781     ,last_update_login)
1782     SELECT
1783      p_staging_context_code
1784     ,analytical_criterion_type_code
1785     ,analytical_criterion_code
1786     ,fl.language_code
1787     ,name
1788     ,description
1789     ,USERENV('LANG')
1790     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1791     ,fnd_load_util.owner_id(owner)
1792     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1793     ,fnd_load_util.owner_id(owner)
1794     ,0
1795     FROM  xla_aad_loader_defns_t      xal
1796          ,fnd_languages               fl
1797     WHERE xal.table_name                  = 'XLA_ANALYTICAL_HDRS'
1798       AND xal.staging_amb_context_code    = p_staging_context_code
1799       AND fl.installed_flag               IN ('I', 'B');
1800 
1801 l_num_rows :=  SQL%ROWCOUNT;
1802 
1803     IF (C_LEVEL_EVENT >= g_log_level) THEN
1804       trace(p_msg    => '# insert (XLA_ANALYTICAL_HDRS_TL) = '||l_num_rows,
1805             p_module => l_log_module,
1806             p_level  => C_LEVEL_EVENT);
1807     END IF;
1808 
1809     -- Bug : 16208537
1810     -- API Call to Insert messages into AAD Loader Log Table.
1811      xla_aad_loader_util_pvt.insert_aadloaderlog(
1812              p_amb_context_code =>  p_staging_context_code,
1813              p_application_id   =>  p_application_id,
1814              p_request_code     => 'IMPORT' ,
1815              p_log_type_code    => 'UPLOAD',
1816              p_encoded_message  => '# insert (XLA_ANALYTICAL_HDRS_TL) = '||l_num_rows,
1817              p_component_code   =>  'populate_analytical_criteria');
1818 
1819 END IF; -- krsankar - Bug 7243326 - End of IF condition for l_num_rows for analytical_hdrs_tl table
1820 
1821 
1822     INSERT INTO xla_analytical_dtls_b
1823     (amb_context_code
1824     ,analytical_criterion_type_code
1825     ,analytical_criterion_code
1826     ,analytical_detail_code
1827     ,data_type_code
1828     ,grouping_order
1829     ,creation_date
1830     ,created_by
1831     ,last_update_date
1832     ,last_updated_by
1833     ,last_update_login)
1834     SELECT
1835      p_staging_context_code
1836     ,analytical_criterion_type_code
1837     ,analytical_criterion_code
1838     ,analytical_detail_code
1839     ,data_type_code
1840     ,grouping_order
1841     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1842     ,fnd_load_util.owner_id(owner)
1843     ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1844     ,fnd_load_util.owner_id(owner)
1845     ,0
1846     FROM  xla_aad_loader_defns_t         xal
1847     WHERE table_name                     = 'XLA_ANALYTICAL_DTLS'
1848       AND staging_amb_context_code       = p_staging_context_code;
1849 
1850     l_num_rows := SQL%ROWCOUNT;
1851 
1852     IF (C_LEVEL_EVENT >= g_log_level) THEN
1853       trace(p_msg    => '# insert (XLA_ANALYTICAL_DTLS_B) = '||l_num_rows,
1854             p_module => l_log_module,
1855             p_level  => C_LEVEL_EVENT);
1856     END IF;
1857 
1858     -- Bug : 16208537
1859     -- API Call to Insert messages into AAD Loader Log Table.
1860     xla_aad_loader_util_pvt.insert_aadloaderlog(
1861              p_amb_context_code =>  p_staging_context_code,
1862              p_application_id   =>  p_application_id,
1863              p_request_code     => 'IMPORT' ,
1864              p_log_type_code    => 'UPLOAD',
1865              p_encoded_message  => '# insert (XLA_ANALYTICAL_DTLS_B) = '||l_num_rows,
1866              p_component_code   =>  'populate_analytical_criteria');
1867 
1868     IF (l_num_rows > 0) THEN
1869       INSERT INTO xla_analytical_dtls_tl
1870       (amb_context_code
1871       ,analytical_criterion_type_code
1872       ,analytical_criterion_code
1873       ,analytical_detail_code
1874       ,language
1875       ,name
1876       ,description
1877       ,source_lang
1878       ,creation_date
1879       ,created_by
1880       ,last_update_date
1881       ,last_updated_by
1882       ,last_update_login)
1883       SELECT
1884        p_staging_context_code
1885       ,analytical_criterion_type_code
1886       ,analytical_criterion_code
1887       ,analytical_detail_code
1888       ,fl.language_code
1889       ,name
1890       ,description
1891       ,USERENV('LANG')
1892       ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1893       ,fnd_load_util.owner_id(owner)
1894       ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1895       ,fnd_load_util.owner_id(owner)
1896       ,0
1897       FROM  xla_aad_loader_defns_t      xal
1898            ,fnd_languages               fl
1899       WHERE xal.table_name                  = 'XLA_ANALYTICAL_DTLS'
1900         AND xal.staging_amb_context_code    = p_staging_context_code
1901         AND fl.installed_flag               IN ('I', 'B');
1902 
1903   l_num_rows :=  SQL%ROWCOUNT;
1904       IF (C_LEVEL_EVENT >= g_log_level) THEN
1905         trace(p_msg    => '# insert (XLA_ANALYTICAL_DTLS_TL) = '||l_num_rows,
1906               p_module => l_log_module,
1907               p_level  => C_LEVEL_EVENT);
1908       END IF;
1909 
1910     -- Bug : 16208537
1914              p_application_id   =>  p_application_id,
1911     -- API Call to Insert messages into AAD Loader Log Table.
1912     xla_aad_loader_util_pvt.insert_aadloaderlog(
1913              p_amb_context_code =>  p_staging_context_code,
1915              p_request_code     => 'IMPORT' ,
1916              p_log_type_code    => 'UPLOAD',
1917              p_encoded_message  => '# insert (XLA_ANALYTICAL_DTLS_TL) = '||l_num_rows,
1918              p_component_code   =>  'populate_analytical_criteria');
1919 
1920       INSERT INTO xla_analytical_sources
1921       (amb_context_code
1922       ,analytical_criterion_type_code
1923       ,analytical_criterion_code
1924       ,analytical_detail_code
1925       ,entity_code
1926       ,event_class_code
1927       ,application_id
1928       ,source_code
1929       ,source_type_code
1930       ,source_application_id
1931       ,creation_date
1932       ,created_by
1933       ,last_update_date
1934       ,last_updated_by
1935       ,last_update_login)
1936       SELECT
1937        p_staging_context_code
1938       ,analytical_criterion_type_code
1939       ,analytical_criterion_code
1940       ,analytical_detail_code
1941       ,entity_code
1942       ,event_class_code
1943       ,fap.application_id
1944       ,source_code
1945       ,source_type_code
1946       ,fap2.application_id
1947       ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1948       ,fnd_load_util.owner_id(owner)
1949       ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
1950       ,fnd_load_util.owner_id(owner)
1951       ,0
1952       FROM  xla_aad_loader_defns_t      xal
1953            ,fnd_application             fap
1954            ,fnd_application             fap2
1955       WHERE fap.application_short_name  = xal.application_short_name
1956         AND fap2.application_short_name = xal.source_app_short_name
1957         AND table_name                  = 'XLA_ANALYTICAL_SOURCES'
1958         AND staging_amb_context_code    = p_staging_context_code;
1959 
1960    l_num_rows :=  SQL%ROWCOUNT;
1961 
1962       IF (C_LEVEL_EVENT >= g_log_level) THEN
1963         trace(p_msg    => '# insert (XLA_ANALYTICAL_SOURCES) = '||l_num_rows,
1964               p_module => l_log_module,
1965               p_level  => C_LEVEL_EVENT);
1966       END IF;
1967 
1968     -- Bug : 16208537
1969     -- API Call to Insert messages into AAD Loader Log Table.
1970     xla_aad_loader_util_pvt.insert_aadloaderlog(
1971              p_amb_context_code =>  p_staging_context_code,
1972              p_application_id   =>  p_application_id,
1973              p_request_code     => 'IMPORT' ,
1974              p_log_type_code    => 'UPLOAD',
1975              p_encoded_message  => '# insert (XLA_ANALYTICAL_SOURCES) = '||l_num_rows,
1976              p_component_code   =>  'populate_analytical_criteria');
1977 
1978     END IF;  -- Detail exists
1979 --  END IF; -- Header exists -- Commented as part of Bug 7243326 as Header IF is closed immediately after analytical_hdrs_tl table
1980 
1981   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1982     trace(p_msg    => 'END of procedure populate_analytical_criteria',
1983           p_module => l_log_module,
1984           p_level  => C_LEVEL_PROCEDURE);
1985   END IF;
1986 
1987 EXCEPTION
1988 
1989 WHEN OTHERS THEN
1990 
1991   l_exception := sqlerrm; --Bug 16208537
1992   l_excp_code := sqlcode;
1993 
1994   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1995     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_analytical_criteria',
1996           p_module => l_log_module,
1997           p_level  => C_LEVEL_PROCEDURE);
1998   END IF;
1999 
2000   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2001     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_analytical_criteria is : '||l_excp_code||'-'||l_exception,
2002           p_module => l_log_module,
2003           p_level  => C_LEVEL_PROCEDURE);
2004   END IF;
2005 
2006   xla_aad_loader_util_pvt.stack_error
2007                (p_appli_s_name    => 'XLA'
2008                ,p_msg_name        => 'XLA_COMMON_ERROR'
2009                ,p_token_1         => 'LOCATION'
2010                ,p_value_1         => 'xla_aad_upload_pvt.populate_analytical_criteria'
2011                ,p_token_2         => 'ERROR'
2012                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
2013   RAISE;
2014 
2015 END populate_analytical_criteria;
2016 
2017 --=============================================================================
2018 --
2019 -- Name: populate_adrs
2020 -- Description: This API populates the account derivation rule data from the AAD Loader
2021 --              interface table to the different AMB tables
2022 --
2023 --=============================================================================
2024 FUNCTION populate_adrs
2025 (p_application_id        IN INTEGER
2026 ,p_staging_context_code  IN VARCHAR2)
2027 RETURN VARCHAR2
2028 IS
2029   CURSOR c_ccid IS
2030     SELECT  DISTINCT
2031             xal.segment_rule_type_code
2032            ,xal.segment_rule_code
2033            ,xal.user_sequence
2034            ,fif.id_flex_num
2035            ,fif.id_flex_structure_code
2036            ,xal.value_ccid_segment1
2037            ,xal.value_ccid_segment2
2038            ,xal.value_ccid_segment3
2039            ,xal.value_ccid_segment4
2040            ,xal.value_ccid_segment5
2041            ,xal.value_ccid_segment6
2042            ,xal.value_ccid_segment7
2043            ,xal.value_ccid_segment8
2044            ,xal.value_ccid_segment9
2045            ,xal.value_ccid_segment10
2046            ,xal.value_ccid_segment11
2047            ,xal.value_ccid_segment12
2048            ,xal.value_ccid_segment13
2052            ,xal.value_ccid_segment17
2049            ,xal.value_ccid_segment14
2050            ,xal.value_ccid_segment15
2051            ,xal.value_ccid_segment16
2053            ,xal.value_ccid_segment18
2054            ,xal.value_ccid_segment19
2055            ,xal.value_ccid_segment20
2056            ,xal.value_ccid_segment21
2057            ,xal.value_ccid_segment22
2058            ,xal.value_ccid_segment23
2059            ,xal.value_ccid_segment24
2060            ,xal.value_ccid_segment25
2061            ,xal.value_ccid_segment26
2062            ,xal.value_ccid_segment27
2063            ,xal.value_ccid_segment28
2064            ,xal.value_ccid_segment29
2065            ,xal.value_ccid_segment30
2066       FROM xla_aad_loader_defns_t xal
2067           ,fnd_id_flex_structures fif
2068      WHERE xal.table_name               = 'XLA_SEG_RULE_DETAILS'
2069        AND xal.staging_amb_context_code = p_staging_context_code
2070        AND fif.application_id           = 101
2071        AND fif.id_flex_code             = 'GL#'
2072        AND fif.id_flex_structure_code   = xal.value_ccid_id_flex_struct_code;
2073 
2074   CURSOR c_seg_rule(p_seg_rule_type_code   VARCHAR2
2075                    ,p_seg_rule_code        VARCHAR2) IS
2076     SELECT xsrt.name
2077           ,xlk.meaning seg_rule_owner
2078       FROM xla_seg_rules_tl       xsrt
2079           ,xla_lookups            xlk
2080      WHERE xsrt.segment_rule_type_code  = p_seg_rule_type_code
2081        AND xsrt.segment_rule_code       = p_seg_rule_code
2082        AND xsrt.amb_context_code        = p_staging_context_code
2083        AND xsrt.application_id          = p_application_id
2084        AND xsrt.language                = USERENV('LANG')
2085        AND xlk.lookup_type              = 'XLA_OWNER_TYPE'
2086        AND xlk.lookup_code              = p_seg_rule_type_code;
2087 
2088   i                         INTEGER;
2089   l_seg                     FND_FLEX_EXT.SegmentArray;
2090   l_code_combination_id     INTEGER;
2091   l_error_found             BOOLEAN;
2092   l_seg_rule_name           VARCHAR2(80);
2093   l_seg_rule_owner          VARCHAR2(80);
2094   l_log_module              VARCHAR2(240);
2095   l_exception               VARCHAR2(250);
2096   l_excp_code               VARCHAR2(100);
2097   l_num_rows                INTEGER;
2098 BEGIN
2099   IF g_log_enabled THEN
2100     l_log_module := C_DEFAULT_MODULE||'.populate_adrs';
2101   END IF;
2102 
2103   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2104     trace(p_msg    => 'BEGIN of procedure populate_adrs',
2105           p_module => l_log_module,
2106           p_level  => C_LEVEL_PROCEDURE);
2107   END IF;
2108 
2109   l_error_found := FALSE;
2110 
2111   INSERT INTO xla_seg_rules_b
2112   (application_id
2113   ,amb_context_code
2114   ,segment_rule_type_code
2115   ,segment_rule_code
2116   ,transaction_coa_id
2117   ,accounting_coa_id
2118   ,flexfield_assign_mode_code
2119   ,flexfield_segment_code
2120   ,flex_value_set_id
2121   ,enabled_flag
2122   ,version_num
2123   ,updated_flag
2124   ,creation_date
2125   ,created_by
2126   ,last_update_date
2127   ,last_updated_by
2128   ,last_update_login)
2129   SELECT
2130    p_application_id
2131   ,p_staging_context_code
2132   ,segment_rule_type_code
2133   ,segment_rule_code
2134   ,fift.id_flex_num
2135   ,fifa.id_flex_num
2136   ,flexfield_assign_mode_code
2137   ,flexfield_segment_code
2138   ,val.flex_value_set_id
2139   ,xal.enabled_flag
2140   ,NVL(xal.version_num,1)
2141   ,'N'
2142   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2143   ,fnd_load_util.owner_id(owner)
2144   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2145   ,fnd_load_util.owner_id(owner)
2146   ,0
2147   FROM  xla_aad_loader_defns_t   xal
2148        ,fnd_id_flex_structures   fift
2149        ,fnd_id_flex_structures   fifa
2150        ,fnd_flex_value_sets      val
2151   WHERE fift.application_id(+)         = 101
2152     AND fift.id_flex_code(+)           = 'GL#'
2153     AND fift.id_flex_structure_code(+) = trans_coa_id_flex_struct_code
2154     AND fifa.application_id(+)         = 101
2155     AND fifa.id_flex_code(+)           = 'GL#'
2156     AND fifa.id_flex_structure_code(+) = acct_coa_id_flex_struct_code
2157     AND val.flex_value_set_name(+)     = xal.flex_value_set_name
2158     AND table_name                     = 'XLA_SEG_RULES'
2159     AND staging_amb_context_code       = p_staging_context_code;
2160 
2161   l_num_rows := SQL%ROWCOUNT;
2162 
2163   IF (C_LEVEL_EVENT >= g_log_level) THEN
2164     trace(p_msg    => '# insert (XLA_SEG_RULES_B) = '||l_num_rows,
2165           p_module => l_log_module,
2166           p_level  => C_LEVEL_EVENT);
2167   END IF;
2168 
2169     -- Bug : 16208537
2170     -- API Call to Insert messages into AAD Loader Log Table.
2171     xla_aad_loader_util_pvt.insert_aadloaderlog(
2172              p_amb_context_code =>  p_staging_context_code,
2173              p_application_id   =>  p_application_id,
2174              p_request_code     => 'IMPORT' ,
2175              p_log_type_code    => 'UPLOAD',
2176              p_encoded_message  => '# insert (XLA_SEG_RULES_B) = '||l_num_rows,
2177              p_component_code   =>  'populate_adrs');
2178 
2179   INSERT INTO xla_seg_rules_tl
2180   (application_id
2181   ,amb_context_code
2182   ,segment_rule_type_code
2183   ,segment_rule_code
2184   ,language
2185   ,name
2186   ,description
2187   ,source_lang
2188   ,creation_date
2189   ,created_by
2190   ,last_update_date
2191   ,last_updated_by
2192   ,last_update_login)
2193   SELECT
2194    p_application_id
2198   ,fl.language_code
2195   ,p_staging_context_code
2196   ,segment_rule_type_code
2197   ,segment_rule_code
2199   ,name
2200   ,description
2201   ,USERENV('LANG')
2202   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2203   ,fnd_load_util.owner_id(owner)
2204   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2205   ,fnd_load_util.owner_id(owner)
2206   ,0
2207   FROM  xla_aad_loader_defns_t      xal
2208        ,fnd_languages               fl
2209   WHERE xal.table_name                  = 'XLA_SEG_RULES'
2210     AND xal.staging_amb_context_code    = p_staging_context_code
2211     AND fl.installed_flag               IN ('I', 'B');
2212 
2213   l_num_rows :=  SQL%ROWCOUNT;
2214 
2215   IF (C_LEVEL_EVENT >= g_log_level) THEN
2216     trace(p_msg    => '# insert (XLA_SEG_RULES_TL) = '||l_num_rows,
2217           p_module => l_log_module,
2218           p_level  => C_LEVEL_EVENT);
2219   END IF;
2220 
2221     -- Bug : 16208537
2222     -- API Call to Insert messages into AAD Loader Log Table.
2223     xla_aad_loader_util_pvt.insert_aadloaderlog(
2224              p_amb_context_code =>  p_staging_context_code,
2225              p_application_id   =>  p_application_id,
2226              p_request_code     => 'IMPORT' ,
2227              p_log_type_code    => 'UPLOAD',
2228              p_encoded_message  => '# insert (XLA_SEG_RULES_TL) = '||l_num_rows,
2229              p_component_code   =>  'populate_adrs');
2230 
2231   INSERT INTO xla_seg_rule_details
2232   (segment_rule_detail_id
2233   ,application_id
2234   ,amb_context_code
2235   ,segment_rule_type_code
2236   ,segment_rule_code
2237   ,user_sequence
2238   ,value_type_code
2239   ,value_source_application_id
2240   ,value_source_type_code
2241   ,value_source_code
2242   ,value_constant
2243   ,value_mapping_set_code
2244   ,value_flexfield_segment_code
2245   ,value_adr_version_num
2246   ,value_segment_rule_appl_id
2247   ,value_segment_rule_type_code
2248   ,value_segment_rule_code
2249   ,input_source_application_id
2250   ,input_source_type_code
2251   ,input_source_code
2252   ,creation_date
2253   ,created_by
2254   ,last_update_date
2255   ,last_updated_by
2256   ,last_update_login)
2257   SELECT
2258    xla_seg_rule_details_s.nextval
2259   ,p_application_id
2260   ,p_staging_context_code
2261   ,segment_rule_type_code
2262   ,segment_rule_code
2263   ,user_sequence
2264   ,value_type_code
2265   ,fap.application_id
2266   ,value_source_type_code
2267   ,value_source_code
2268   ,value_constant
2269   ,value_mapping_set_code
2270   ,value_flexfield_segment_code
2271   ,NVL(value_adr_version_num,0)
2272   ,NVL(fap3.application_id,
2273        CASE WHEN value_segment_rule_type_code IS NOT NULL
2274             THEN p_application_id
2275             ELSE NULL END)
2276   ,value_segment_rule_type_code
2277   ,value_segment_rule_code
2278   ,fap2.application_id
2279   ,input_source_type_code
2280   ,input_source_code
2281   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2282   ,fnd_load_util.owner_id(owner)
2283   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2284   ,fnd_load_util.owner_id(owner)
2285   ,0
2286   FROM  xla_aad_loader_defns_t xal
2287         LEFT OUTER JOIN fnd_application fap
2288         ON  fap.application_short_name  = xal.value_source_app_short_name
2289         LEFT OUTER JOIN fnd_application fap2
2290         ON  fap2.application_short_name = xal.input_source_app_short_name
2291         LEFT OUTER JOIN fnd_application fap3
2292         ON  fap3.application_short_name = xal.value_segment_rule_appl_sn
2293   WHERE table_name                     = 'XLA_SEG_RULE_DETAILS'
2294     AND staging_amb_context_code       = p_staging_context_code;
2295 
2296     l_num_rows :=  SQL%ROWCOUNT;
2297   IF (C_LEVEL_EVENT >= g_log_level) THEN
2298     trace(p_msg    => '# insert (XLA_SEG_RULE_DETAILS) = '||l_num_rows,
2299           p_module => l_log_module,
2300           p_level  => C_LEVEL_EVENT);
2301   END IF;
2302     -- Bug : 16208537
2303     -- API Call to Insert messages into AAD Loader Log Table.
2304     xla_aad_loader_util_pvt.insert_aadloaderlog(
2305              p_amb_context_code =>  p_staging_context_code,
2306              p_application_id   =>  p_application_id,
2307              p_request_code     => 'IMPORT' ,
2308              p_log_type_code    => 'UPLOAD',
2309              p_encoded_message  => '# insert (XLA_SEG_RULE_DETAILS) = '||l_num_rows,
2310              p_component_code   =>  'populate_adrs');
2311 
2312   IF (C_LEVEL_EVENT >= g_log_level) THEN
2313     trace(p_msg    => 'BEGIN LOOP - Retrieve CCID for XLA_SEG_RULE_DETAILS.view_code_combination_id',
2314           p_module => l_log_module,
2315           p_level  => C_LEVEL_EVENT);
2316   END IF;
2317 
2318   FOR l_ccid IN c_ccid LOOP
2319     IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2320       trace(p_msg    => 'LOOP Retrieve CCID: '||
2321                         l_ccid.segment_rule_type_code||','||
2322                         l_ccid.segment_rule_code||','||
2323                         l_ccid.user_sequence||','||
2324                         l_ccid.id_flex_num,
2325             p_module => l_log_module,
2326             p_level  => C_LEVEL_PROCEDURE);
2327     END IF;
2328 
2329     l_seg(1) := l_ccid.value_ccid_segment1;
2330     l_seg(2) := l_ccid.value_ccid_segment2;
2331     l_seg(3) := l_ccid.value_ccid_segment3;
2332     l_seg(4) := l_ccid.value_ccid_segment4;
2333     l_seg(5) := l_ccid.value_ccid_segment5;
2334     l_seg(6) := l_ccid.value_ccid_segment6;
2335     l_seg(7) := l_ccid.value_ccid_segment7;
2336     l_seg(8) := l_ccid.value_ccid_segment8;
2340     l_seg(12) := l_ccid.value_ccid_segment12;
2337     l_seg(9) := l_ccid.value_ccid_segment9;
2338     l_seg(10) := l_ccid.value_ccid_segment10;
2339     l_seg(11) := l_ccid.value_ccid_segment11;
2341     l_seg(13) := l_ccid.value_ccid_segment13;
2342     l_seg(14) := l_ccid.value_ccid_segment14;
2343     l_seg(15) := l_ccid.value_ccid_segment15;
2344     l_seg(16) := l_ccid.value_ccid_segment16;
2345     l_seg(17) := l_ccid.value_ccid_segment17;
2346     l_seg(18) := l_ccid.value_ccid_segment18;
2347     l_seg(19) := l_ccid.value_ccid_segment19;
2348     l_seg(20) := l_ccid.value_ccid_segment20;
2349     l_seg(21) := l_ccid.value_ccid_segment21;
2350     l_seg(22) := l_ccid.value_ccid_segment22;
2351     l_seg(23) := l_ccid.value_ccid_segment23;
2352     l_seg(24) := l_ccid.value_ccid_segment24;
2353     l_seg(25) := l_ccid.value_ccid_segment25;
2354     l_seg(26) := l_ccid.value_ccid_segment26;
2355     l_seg(27) := l_ccid.value_ccid_segment27;
2356     l_seg(28) := l_ccid.value_ccid_segment28;
2357     l_seg(29) := l_ccid.value_ccid_segment29;
2358     l_seg(30) := l_ccid.value_ccid_segment30;
2359 
2360     IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2361       FOR i IN 1..30 LOOP
2362         trace(p_msg    => 'l_seg('||i||') = '||l_seg(i),
2363               p_module => l_log_module,
2364               p_level  => C_LEVEL_STATEMENT);
2365       END LOOP;
2366     END IF;
2367 
2368     IF (FND_FLEX_EXT.get_combination_id(
2369                 application_short_name    => 'SQLGL',
2370                 key_flex_code             => 'GL#',
2371                 structure_number          => l_ccid.id_flex_num,
2372                 validation_date           => null,
2373                 n_segments                => 30,
2374                 segments                  => l_seg,
2375                 combination_id            => l_code_combination_id) = FALSE) THEN
2376 
2377       OPEN c_seg_rule(l_ccid.segment_rule_type_code
2378                      ,l_ccid.segment_rule_code);
2379       FETCH c_seg_rule INTO l_seg_rule_name, l_seg_rule_owner;
2380       CLOSE c_seg_rule;
2381 
2382       xla_aad_loader_util_pvt.stack_error
2383                (p_appli_s_name    => 'XLA'
2384                ,p_msg_name        => 'XLA_AAD_IMP_INV_CCID_ADR_DET'
2385                ,p_token_1         => 'SEG_RULE'
2386                ,p_value_1         => l_seg_rule_name
2387                ,p_token_2         => 'OWNER'
2388                ,p_value_2         => l_seg_rule_owner
2389                ,p_token_3         => 'USER_SEQUENCE'
2390                ,p_value_3         => l_ccid.user_sequence);
2391       l_error_found := TRUE;
2392     ELSE
2393       UPDATE xla_seg_rule_details
2394          SET value_code_combination_id = l_code_combination_id
2395        WHERE amb_context_code          = p_staging_context_code
2396          AND application_id            = p_application_id
2397          AND segment_rule_type_code    = l_ccid.segment_rule_type_code
2398          AND segment_rule_code         = l_ccid.segment_rule_code
2399          AND user_sequence             = l_ccid.user_sequence;
2400     END IF;
2401   END LOOP;
2402 
2403   IF (C_LEVEL_EVENT >= g_log_level) THEN
2404     trace(p_msg    => 'END LOOP - Retrieve CCID for XLA_SEG_RULE_DETAILS.view_code_combination_id',
2405           p_module => l_log_module,
2406           p_level  => C_LEVEL_EVENT);
2407   END IF;
2408 
2409   INSERT INTO xla_conditions
2410   (amb_context_code
2411   ,condition_id
2412   ,user_sequence
2413   ,application_id
2414   ,segment_rule_detail_id
2415   ,bracket_left_code
2416   ,bracket_right_code
2417   ,value_type_code
2418   ,source_application_id
2419   ,source_type_code
2420   ,source_code
2421   ,flexfield_segment_code
2422   ,value_flexfield_segment_code
2423   ,value_source_application_id
2424   ,value_source_type_code
2425   ,value_source_code
2426   ,value_constant
2427   ,line_operator_code
2428   ,logical_operator_code
2429   ,creation_date
2430   ,created_by
2431   ,last_update_date
2432   ,last_updated_by
2433   ,last_update_login)
2434   SELECT
2435    p_staging_context_code
2436   ,xla_conditions_s.nextval
2437   ,xal.condition_num
2438   ,p_application_id
2439   ,segment_rule_detail_id
2440   ,xal.bracket_left_code
2441   ,xal.bracket_right_code
2442   ,xal.value_type_code
2443   ,fap.application_id
2444   ,xal.source_type_code
2445   ,xal.source_code
2446   ,xal.flexfield_segment_code
2447   ,xal.value_flexfield_segment_code
2448   ,fap2.application_id
2449   ,xal.value_source_type_code
2450   ,xal.value_source_code
2451   ,xal.value_constant
2452   ,xal.line_operator_code
2453   ,xal.logical_operator_code
2454   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2455   ,fnd_load_util.owner_id(owner)
2456   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2457   ,fnd_load_util.owner_id(owner)
2458   ,0
2459   FROM  xla_aad_loader_defns_t      xal
2460        ,xla_seg_rule_details        d
2461        ,fnd_application             fap
2462        ,fnd_application             fap2
2463   WHERE fap.application_short_name(+) = xal.source_app_short_name
2464     AND fap2.application_short_name(+)= xal.value_source_app_short_name
2465     AND d.user_sequence               = xal.user_sequence
2466     AND d.segment_rule_type_code      = xal.segment_rule_type_code
2467     AND d.segment_rule_code           = xal.segment_rule_code
2468     AND d.amb_context_code            = p_staging_context_code
2469     AND d.application_id              = p_application_id
2470     AND table_name                    = 'XLA_ADR_CONDITIONS'
2471     AND staging_amb_context_code      = p_staging_context_code;
2472 
2476           p_module => l_log_module,
2473       l_num_rows :=  SQL%ROWCOUNT;
2474   IF (C_LEVEL_EVENT >= g_log_level) THEN
2475     trace(p_msg    => '# insert (XLA_ADR_CONDITIONS) = '||l_num_rows,
2477           p_level  => C_LEVEL_EVENT);
2478   END IF;
2479     -- Bug : 16208537
2480     -- API Call to Insert messages into AAD Loader Log Table.
2481     xla_aad_loader_util_pvt.insert_aadloaderlog(
2482              p_amb_context_code =>  p_staging_context_code,
2483              p_application_id   =>  p_application_id,
2484              p_request_code     => 'IMPORT' ,
2485              p_log_type_code    => 'UPLOAD',
2486              p_encoded_message  => '# insert (XLA_ADR_CONDITIONS) = '||l_num_rows,
2487              p_component_code   =>  'populate_adrs');
2488 
2489   IF (l_error_found) THEN
2490     RAISE FND_API.G_EXC_ERROR;
2491   END IF;
2492 
2493   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2494     trace(p_msg    => 'END of procedure populate_adrs',
2495           p_module => l_log_module,
2496           p_level  => C_LEVEL_PROCEDURE);
2497   END IF;
2498 
2499   RETURN 'SUCCESS';
2500 EXCEPTION
2501 WHEN FND_API.G_EXC_ERROR THEN
2502   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2503     trace(p_msg    => 'END of procedure populate_adrs: ERROR',
2504           p_module => l_log_module,
2505           p_level  => C_LEVEL_PROCEDURE);
2506   END IF;
2507 
2508   RETURN 'WARNING';
2509 
2510 WHEN OTHERS THEN
2511 
2512   l_exception := sqlerrm;  --Bug 16208537
2513   l_excp_code := sqlcode;
2514 
2515   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2516     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_adrs',
2517           p_module => l_log_module,
2518           p_level  => C_LEVEL_PROCEDURE);
2519   END IF;
2520 
2521   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2522     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_adrs is : '||l_excp_code||'-'||l_exception,
2523           p_module => l_log_module,
2524           p_level  => C_LEVEL_PROCEDURE);
2525   END IF;
2526 
2527 
2528   xla_aad_loader_util_pvt.stack_error
2529                (p_appli_s_name    => 'XLA'
2530                ,p_msg_name        => 'XLA_COMMON_ERROR'
2531                ,p_token_1         => 'LOCATION'
2532                ,p_value_1         => 'xla_aad_upload_pvt.populate_adrs'
2533                ,p_token_2         => 'ERROR'
2534                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
2535   RAISE;
2536 
2537 END populate_adrs;
2538 
2539 --=============================================================================
2540 --
2541 -- Name: populate_journal_line_types
2542 -- Description: This API populates the journal line type data from the AAD Loader
2543 --              interface table to the different AMB tables
2544 --
2545 --=============================================================================
2546 PROCEDURE populate_journal_line_types
2547 (p_application_id        IN INTEGER
2548 ,p_staging_context_code  IN VARCHAR2)
2549 IS
2550   l_log_module    VARCHAR2(240);
2551   l_exception     VARCHAR2(250);
2552   l_excp_code     VARCHAR2(100);
2553   l_num_rows      INTEGER;
2554 BEGIN
2555   IF g_log_enabled THEN
2556     l_log_module := C_DEFAULT_MODULE||'.populate_journal_line_types';
2557   END IF;
2558 
2559   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2560     trace(p_msg    => 'BEGIN of procedure populate_journal_line_types',
2561           p_module => l_log_module,
2562           p_level  => C_LEVEL_PROCEDURE);
2563   END IF;
2564 
2565   INSERT INTO xla_acct_line_types_b
2566   (application_id
2567   ,amb_context_code
2568   ,entity_code
2569   ,event_class_code
2570   ,accounting_line_type_code
2571   ,accounting_line_code
2572   ,transaction_coa_id
2573   ,accounting_entry_type_code
2574   ,natural_side_code
2575   ,gl_transfer_mode_code
2576   ,switch_side_flag
2577   ,gain_or_loss_flag
2578   ,merge_duplicate_code
2579   ,enabled_flag
2580   ,accounting_class_code
2581   ,business_method_code
2582   ,business_class_code
2583   ,rounding_class_code
2584   ,encumbrance_type_id
2585   ,mpa_option_code
2586   ,creation_date
2587   ,created_by
2588   ,last_update_date
2589   ,last_updated_by
2590   ,last_update_login)
2591   SELECT
2592    p_application_id
2593   ,p_staging_context_code
2594   ,xal.entity_code
2595   ,xal.event_class_code
2596   ,xal.accounting_line_type_code
2597   ,xal.accounting_line_code
2598   ,flex.id_flex_num
2599   ,xal.accounting_entry_type_code
2600   ,xal.natural_side_code
2601   ,xal.gl_transfer_mode_code
2602   ,xal.switch_side_flag
2603   ,xal.inherit_desc_flag
2604   ,xal.merge_duplicate_code
2605   ,xal.enabled_flag
2606   ,xal.accounting_class_code
2607   ,NVL(xal.business_method_code,'NONE')
2608   ,xal.business_class_code
2609   ,NVL(xal.rounding_class_code,xal.accounting_class_code)
2610   ,get.encumbrance_type_id
2611   ,NVL(xal.mpa_option_code,'NONE')
2612   ,nvl(to_date(xal.orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2613   ,fnd_load_util.owner_id(xal.owner)
2614   ,nvl(to_date(xal.orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2615   ,fnd_load_util.owner_id(xal.owner)
2616   ,0
2617   FROM  xla_aad_loader_defns_t   xal
2618        ,fnd_id_flex_structures   flex
2619        ,gl_encumbrance_types     get
2620   WHERE flex.application_id(+)         = 101
2621     AND flex.id_flex_code(+)           = 'GL#'
2622     AND flex.id_flex_structure_code(+) = trans_coa_id_flex_struct_code
2626 
2623     AND get.encumbrance_type_key(+)    = xal.encumbrance_type
2624     AND table_name                     = 'XLA_ACCT_LINE_TYPES'
2625     AND staging_amb_context_code       = p_staging_context_code;
2627   l_num_rows :=  SQL%ROWCOUNT;
2628 
2629   IF (C_LEVEL_EVENT >= g_log_level) THEN
2630     trace(p_msg    => '# insert (XLA_ACCT_LINE_TYPES_B) = '||l_num_rows,
2631           p_module => l_log_module,
2632           p_level  => C_LEVEL_EVENT);
2633   END IF;
2634 
2635     -- Bug : 16208537
2636     -- API Call to Insert messages into AAD Loader Log Table.
2637     xla_aad_loader_util_pvt.insert_aadloaderlog(
2638              p_amb_context_code =>  p_staging_context_code,
2639              p_application_id   =>  p_application_id,
2640              p_request_code     => 'IMPORT' ,
2641              p_log_type_code    => 'UPLOAD',
2642              p_encoded_message  => '# insert (XLA_ACCT_LINE_TYPES_B) = '||l_num_rows,
2643              p_component_code   =>  'populate_journal_line_types');
2644 
2645   INSERT INTO xla_acct_line_types_tl
2646   (application_id
2647   ,amb_context_code
2648   ,entity_code
2649   ,event_class_code
2650   ,accounting_line_type_code
2651   ,accounting_line_code
2652   ,language
2653   ,name
2654   ,description
2655   ,source_lang
2656   ,creation_date
2657   ,created_by
2658   ,last_update_date
2659   ,last_updated_by
2660   ,last_update_login)
2661   SELECT
2662    p_application_id
2663   ,p_staging_context_code
2664   ,entity_code
2665   ,event_class_code
2666   ,accounting_line_type_code
2667   ,accounting_line_code
2668   ,fl.language_code
2669   ,name
2670   ,description
2671   ,USERENV('LANG')
2672   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2673   ,fnd_load_util.owner_id(owner)
2674   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2675   ,fnd_load_util.owner_id(owner)
2676   ,0
2677   FROM  xla_aad_loader_defns_t      xal
2678        ,fnd_languages               fl
2679   WHERE xal.table_name                  = 'XLA_ACCT_LINE_TYPES'
2680     AND xal.staging_amb_context_code    = p_staging_context_code
2681     AND fl.installed_flag               IN ('I', 'B');
2682 
2683   l_num_rows :=  SQL%ROWCOUNT;
2684 
2685   IF (C_LEVEL_EVENT >= g_log_level) THEN
2686     trace(p_msg    => '# insert (XLA_ACCT_LINE_TYPES_TL) = '||l_num_rows,
2687           p_module => l_log_module,
2688           p_level  => C_LEVEL_EVENT);
2689   END IF;
2690 
2691     -- Bug : 16208537
2692     -- API Call to Insert messages into AAD Loader Log Table.
2693     xla_aad_loader_util_pvt.insert_aadloaderlog(
2694              p_amb_context_code =>  p_staging_context_code,
2695              p_application_id   =>  p_application_id,
2696              p_request_code     => 'IMPORT' ,
2697              p_log_type_code    => 'UPLOAD',
2698              p_encoded_message  => '# insert (XLA_ACCT_LINE_TYPES_B) = '||l_num_rows,
2699              p_component_code   =>  'populate_journal_line_types');
2700 
2701   INSERT INTO xla_jlt_acct_attrs
2702   (application_id
2703   ,amb_context_code
2704   ,event_class_code
2705   ,accounting_line_type_code
2706   ,accounting_line_code
2707   ,accounting_attribute_code
2708   ,source_application_id
2709   ,source_type_code
2710   ,source_code
2711   ,event_class_default_flag
2712   ,creation_date
2713   ,created_by
2714   ,last_update_date
2715   ,last_updated_by
2716   ,last_update_login)
2717   SELECT
2718    p_application_id
2719   ,p_staging_context_code
2720   ,event_class_code
2721   ,accounting_line_type_code
2722   ,accounting_line_code
2723   ,accounting_attribute_code
2724   ,fap.application_id
2725   ,source_type_code
2726   ,source_code
2727   ,event_class_default_flag
2728   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2729   ,fnd_load_util.owner_id(owner)
2730   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2731   ,fnd_load_util.owner_id(owner)
2732   ,0
2733   FROM  xla_aad_loader_defns_t      xal
2734        ,fnd_application             fap
2735   WHERE fap.application_short_name(+) = xal.source_app_short_name
2736     AND table_name                  = 'XLA_JLT_ACCT_ATTRS'
2737     AND staging_amb_context_code    = p_staging_context_code;
2738 
2739   l_num_rows :=  SQL%ROWCOUNT;
2740 
2741   IF (C_LEVEL_EVENT >= g_log_level) THEN
2742     trace(p_msg    => '# insert (XLA_JLT_ACCT_ATTRS) = '||l_num_rows,
2743           p_module => l_log_module,
2744           p_level  => C_LEVEL_EVENT);
2745   END IF;
2746 
2747     -- Bug : 16208537
2748     -- API Call to Insert messages into AAD Loader Log Table.
2749     xla_aad_loader_util_pvt.insert_aadloaderlog(
2750              p_amb_context_code =>  p_staging_context_code,
2751              p_application_id   =>  p_application_id,
2752              p_request_code     => 'IMPORT' ,
2753              p_log_type_code    => 'UPLOAD',
2754              p_encoded_message  => '# insert (XLA_ACCT_LINE_TYPES_TL) = '||l_num_rows,
2755              p_component_code   =>  'populate_journal_line_types');
2756 
2757   INSERT INTO xla_conditions
2758   (amb_context_code
2759   ,condition_id
2760   ,user_sequence
2761   ,application_id
2762   ,entity_code
2763   ,event_class_code
2764   ,accounting_line_type_code
2765   ,accounting_line_code
2766   ,bracket_left_code
2767   ,bracket_right_code
2768   ,value_type_code
2769   ,source_application_id
2770   ,source_type_code
2774   ,value_source_application_id
2771   ,source_code
2772   ,flexfield_segment_code
2773   ,value_flexfield_segment_code
2775   ,value_source_type_code
2776   ,value_source_code
2777   ,value_constant
2778   ,line_operator_code
2779   ,logical_operator_code
2780   ,creation_date
2781   ,created_by
2782   ,last_update_date
2783   ,last_updated_by
2784   ,last_update_login)
2785   SELECT
2786    p_staging_context_code
2787   ,xla_conditions_s.nextval
2788   ,xal.condition_num
2789   ,p_application_id
2790   ,entity_code
2791   ,event_class_code
2792   ,accounting_line_type_code
2793   ,accounting_line_code
2794   ,bracket_left_code
2795   ,bracket_right_code
2796   ,value_type_code
2797   ,fap.application_id
2798   ,source_type_code
2799   ,source_code
2800   ,flexfield_segment_code
2801   ,value_flexfield_segment_code
2802   ,fap2.application_id
2803   ,value_source_type_code
2804   ,value_source_code
2805   ,value_constant
2806   ,line_operator_code
2807   ,logical_operator_code
2808   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2809   ,fnd_load_util.owner_id(owner)
2810   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2811   ,fnd_load_util.owner_id(owner)
2812   ,0
2813   FROM  xla_aad_loader_defns_t      xal
2814        ,fnd_application             fap
2815        ,fnd_application             fap2
2816   WHERE fap.application_short_name(+) = xal.source_app_short_name
2817     AND fap2.application_short_name(+)= xal.value_source_app_short_name
2818     AND table_name                    = 'XLA_JLT_CONDITIONS'
2819     AND staging_amb_context_code      = p_staging_context_code;
2820 
2821   l_num_rows :=  SQL%ROWCOUNT;
2822 
2823   IF (C_LEVEL_EVENT >= g_log_level) THEN
2824     trace(p_msg    => '# insert (XLA_JLT_CONDITIONS) = '||l_num_rows,
2825           p_module => l_log_module,
2826           p_level  => C_LEVEL_EVENT);
2827   END IF;
2828 
2829     -- Bug : 16208537
2830     -- API Call to Insert messages into AAD Loader Log Table.
2831     xla_aad_loader_util_pvt.insert_aadloaderlog(
2832              p_amb_context_code =>  p_staging_context_code,
2833              p_application_id   =>  p_application_id,
2834              p_request_code     => 'IMPORT' ,
2835              p_log_type_code    => 'UPLOAD',
2836              p_encoded_message  => '# insert (XLA_JLT_ACCT_ATTRS) = '||l_num_rows,
2837              p_component_code   =>  'populate_journal_line_types');
2838 
2839   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2840     trace(p_msg    => 'END of procedure populate_journal_line_types',
2841           p_module => l_log_module,
2842           p_level  => C_LEVEL_PROCEDURE);
2843   END IF;
2844 
2845 EXCEPTION
2846 WHEN OTHERS THEN
2847 
2848   l_exception := sqlerrm;  --Bug 16208537
2849   l_excp_code := sqlcode;
2850 
2851   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2852     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_journal_line_types',
2853           p_module => l_log_module,
2854           p_level  => C_LEVEL_PROCEDURE);
2855   END IF;
2856 
2857   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2858     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_journal_line_types is : '||l_excp_code||'-'||l_exception,
2859           p_module => l_log_module,
2860           p_level  => C_LEVEL_PROCEDURE);
2861   END IF;
2862 
2863   xla_aad_loader_util_pvt.stack_error
2864                (p_appli_s_name    => 'XLA'
2865                ,p_msg_name        => 'XLA_COMMON_ERROR'
2866                ,p_token_1         => 'LOCATION'
2867                ,p_value_1         => 'xla_aad_upload_pvt.populate_journal_line_types'
2868                ,p_token_2         => 'ERROR'
2869                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
2870   RAISE;
2871 
2872 END populate_journal_line_types;
2873 
2874 --=============================================================================
2875 --
2876 -- Name: populate_jlds
2877 -- Description: This API populates the AADs data from the AAD Loader
2878 --              interface table to the different AMB tables
2879 --
2880 --=============================================================================
2881 PROCEDURE populate_jlds
2882 (p_application_id        IN INTEGER
2883 ,p_staging_context_code  IN VARCHAR2)
2884 IS
2885   l_log_module    VARCHAR2(240);
2886   l_exception     VARCHAR2(240);
2887   l_excp_code     VARCHAR2(100);
2888   l_num_rows      INTEGER;
2889 BEGIN
2890   IF g_log_enabled THEN
2891     l_log_module := C_DEFAULT_MODULE||'.populate_jlds';
2892   END IF;
2893 
2894   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2895     trace(p_msg    => 'BEGIN of procedure populate_jlds',
2896           p_module => l_log_module,
2897           p_level  => C_LEVEL_PROCEDURE);
2898   END IF;
2899 
2900   INSERT INTO xla_line_definitions_b
2901   (application_id
2902   ,amb_context_code
2903   ,event_class_code
2904   ,event_type_code
2905   ,line_definition_owner_code
2906   ,line_definition_code
2907   ,transaction_coa_id
2908   ,accounting_coa_id
2909   ,enabled_flag
2910   ,validation_status_code
2911   ,budgetary_control_flag
2912   ,object_version_number
2913   ,creation_date
2914   ,created_by
2915   ,last_update_date
2916   ,last_updated_by
2917   ,last_update_login)
2918   SELECT
2919    p_application_id
2920   ,p_staging_context_code
2924   ,line_definition_code
2921   ,event_class_code
2922   ,event_type_code
2923   ,line_definition_owner_code
2925   ,fift.id_flex_num
2926   ,fifa.id_flex_num
2927   ,xal.enabled_flag
2928   ,'N'
2929   ,budgetary_control_flag
2930   ,1
2931   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2932   ,fnd_load_util.owner_id(owner)
2933   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2934   ,fnd_load_util.owner_id(owner)
2935   ,0
2936   FROM  xla_aad_loader_defns_t   xal
2937        ,fnd_id_flex_structures   fift
2938        ,fnd_id_flex_structures   fifa
2939   WHERE fift.application_id(+)         = 101
2940     AND fift.id_flex_code(+)           = 'GL#'
2941     AND fift.id_flex_structure_code(+) = trans_coa_id_flex_struct_code
2942     AND fifa.application_id(+)         = 101
2943     AND fifa.id_flex_code(+)           = 'GL#'
2944     AND fifa.id_flex_structure_code(+) = acct_coa_id_flex_struct_code
2945     AND table_name                     = 'XLA_LINE_DEFINITIONS'
2946     AND staging_amb_context_code       = p_staging_context_code;
2947 
2948   l_num_rows :=  SQL%ROWCOUNT;
2949   IF (C_LEVEL_EVENT >= g_log_level) THEN
2950     trace(p_msg    => '# insert (XLA_LINE_DEFINITIONS_B) = '||l_num_rows,
2951           p_module => l_log_module,
2952           p_level  => C_LEVEL_EVENT);
2953   END IF;
2954 
2955     -- Bug : 16208537
2956     -- API Call to Insert messages into AAD Loader Log Table.
2957     xla_aad_loader_util_pvt.insert_aadloaderlog(
2958              p_amb_context_code =>  p_staging_context_code,
2959              p_application_id   =>  p_application_id,
2960              p_request_code     => 'IMPORT' ,
2961              p_log_type_code    => 'UPLOAD',
2962              p_encoded_message  => '# insert (XLA_LINE_DEFINITIONS_B) = '||l_num_rows,
2963              p_component_code   =>  'populate_jlds');
2964 
2965   INSERT INTO xla_line_definitions_tl
2966   (application_id
2967   ,amb_context_code
2968   ,event_class_code
2969   ,event_type_code
2970   ,line_definition_owner_code
2971   ,line_definition_code
2972   ,language
2973   ,name
2974   ,description
2975   ,source_lang
2976   ,object_version_number
2977   ,creation_date
2978   ,created_by
2979   ,last_update_date
2980   ,last_updated_by
2981   ,last_update_login)
2982   SELECT
2983    p_application_id
2984   ,p_staging_context_code
2985   ,event_class_code
2986   ,event_type_code
2987   ,line_definition_owner_code
2988   ,line_definition_code
2989   ,fl.language_code
2990   ,name
2991   ,description
2992   ,USERENV('LANG')
2993   ,1
2994   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2995   ,fnd_load_util.owner_id(owner)
2996   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
2997   ,fnd_load_util.owner_id(owner)
2998   ,0
2999   FROM  xla_aad_loader_defns_t      xal
3000        ,fnd_languages               fl
3001   WHERE xal.table_name                  = 'XLA_LINE_DEFINITIONS'
3002     AND xal.staging_amb_context_code    = p_staging_context_code
3003     AND fl.installed_flag               IN ('I', 'B');
3004 
3005    l_num_rows :=  SQL%ROWCOUNT;
3006 
3007   IF (C_LEVEL_EVENT >= g_log_level) THEN
3008     trace(p_msg    => '# insert (XLA_LINE_DEFINITIONS_TL) = '||l_num_rows,
3009           p_module => l_log_module,
3010           p_level  => C_LEVEL_EVENT);
3011   END IF;
3012 
3013     -- Bug : 16208537
3014     -- API Call to Insert messages into AAD Loader Log Table.
3015     xla_aad_loader_util_pvt.insert_aadloaderlog(
3016              p_amb_context_code =>  p_staging_context_code,
3017              p_application_id   =>  p_application_id,
3018              p_request_code     => 'IMPORT' ,
3019              p_log_type_code    => 'UPLOAD',
3020              p_encoded_message  => '# insert (XLA_LINE_DEFINITIONS_TL) = '||l_num_rows,
3021              p_component_code   =>  'populate_jlds');
3022 
3023   INSERT INTO xla_line_defn_jlt_assgns
3024   (application_id
3025   ,amb_context_code
3026   ,event_class_code
3027   ,event_type_code
3028   ,line_definition_owner_code
3029   ,line_definition_code
3030   ,accounting_line_type_code
3031   ,accounting_line_code
3032   ,description_type_code
3033   ,description_code
3034   ,active_flag
3035   ,inherit_desc_flag
3036   ,mpa_header_desc_type_code
3037   ,mpa_header_desc_code
3038   ,mpa_num_je_code
3039   ,mpa_gl_dates_code
3040   ,mpa_proration_code
3041   ,object_version_number
3042   ,creation_date
3043   ,created_by
3044   ,last_update_date
3045   ,last_updated_by
3046   ,last_update_login)
3047   SELECT
3048    p_application_id
3049   ,p_staging_context_code
3050   ,event_class_code
3051   ,event_type_code
3052   ,line_definition_owner_code
3053   ,line_definition_code
3054   ,accounting_line_type_code
3055   ,accounting_line_code
3056   ,description_type_code
3057   ,description_code
3058   ,active_flag
3059   ,NVL(inherit_desc_flag,'N')
3060   ,mpa_header_desc_type_code
3061   ,mpa_header_desc_code
3062   ,mpa_num_je_code
3063   ,mpa_gl_dates_code
3064   ,mpa_proration_code
3065   ,1
3066   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3067   ,fnd_load_util.owner_id(owner)
3068   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3069   ,fnd_load_util.owner_id(owner)
3070   ,0
3071   FROM  xla_aad_loader_defns_t
3072   WHERE table_name                  = 'XLA_LINE_DEFN_JLT_ASSGNS'
3073     AND staging_amb_context_code    = p_staging_context_code;
3074 
3075    l_num_rows :=  SQL%ROWCOUNT;
3076 
3077   IF (C_LEVEL_EVENT >= g_log_level) THEN
3081   END IF;
3078     trace(p_msg    => '# insert (XLA_LINE_DEFN_JLT_ASSGNS) = '||l_num_rows,
3079           p_module => l_log_module,
3080           p_level  => C_LEVEL_EVENT);
3082 
3083     -- Bug : 16208537
3084     -- API Call to Insert messages into AAD Loader Log Table.
3085     xla_aad_loader_util_pvt.insert_aadloaderlog(
3086              p_amb_context_code =>  p_staging_context_code,
3087              p_application_id   =>  p_application_id,
3088              p_request_code     => 'IMPORT' ,
3089              p_log_type_code    => 'UPLOAD',
3090              p_encoded_message  => '# insert (XLA_LINE_DEFN_JLT_ASSGNS) = '||l_num_rows,
3091              p_component_code   =>  'populate_jlds');
3092 
3093   INSERT INTO xla_line_defn_adr_assgns
3094   (application_id
3095   ,amb_context_code
3096   ,event_class_code
3097   ,event_type_code
3098   ,line_definition_owner_code
3099   ,line_definition_code
3100   ,accounting_line_type_code
3101   ,accounting_line_code
3102   ,flexfield_segment_code
3103   ,adr_version_num
3104   ,segment_rule_appl_id
3105   ,segment_rule_type_code
3106   ,segment_rule_code
3107   ,inherit_adr_flag
3108   ,side_code
3109   ,object_version_number
3110   ,creation_date
3111   ,created_by
3112   ,last_update_date
3113   ,last_updated_by
3114   ,last_update_login)
3115   SELECT
3116    p_application_id
3117   ,p_staging_context_code
3118   ,event_class_code
3119   ,event_type_code
3120   ,line_definition_owner_code
3121   ,line_definition_code
3122   ,accounting_line_type_code
3123   ,accounting_line_code
3124   ,flexfield_segment_code
3125   ,NVL(adr_version_num,0)
3126   ,NVL(fap.application_id,
3127        CASE WHEN segment_rule_type_code IS NOT NULL
3128             THEN p_application_id
3129             ELSE NULL END)
3130   ,segment_rule_type_code
3131   ,segment_rule_code
3132   ,NVL(inherit_adr_flag,'N')
3133   ,NVL(side_code,'NA')
3134   ,1
3135   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3136   ,fnd_load_util.owner_id(owner)
3137   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3138   ,fnd_load_util.owner_id(owner)
3139   ,0
3140   FROM  xla_aad_loader_defns_t      xal
3141        ,fnd_application             fap
3142   WHERE fap.application_short_name(+)   = xal.segment_rule_appl_sn
3143     AND xal.table_name                  = 'XLA_LINE_DEFN_ADR_ASSGNS'
3144     AND xal.staging_amb_context_code    = p_staging_context_code;
3145 
3146       l_num_rows :=  SQL%ROWCOUNT;
3147   IF (C_LEVEL_EVENT >= g_log_level) THEN
3148     trace(p_msg    => '# insert (XLA_LINE_DEFN_ADR_ASSGNS) = '||l_num_rows,
3149           p_module => l_log_module,
3150           p_level  => C_LEVEL_EVENT);
3151   END IF;
3152 
3153     -- Bug : 16208537
3154     -- API Call to Insert messages into AAD Loader Log Table.
3155     xla_aad_loader_util_pvt.insert_aadloaderlog(
3156              p_amb_context_code =>  p_staging_context_code,
3157              p_application_id   =>  p_application_id,
3158              p_request_code     => 'IMPORT' ,
3159              p_log_type_code    => 'UPLOAD',
3160              p_encoded_message  => '# insert (XLA_LINE_DEFN_ADR_ASSGNS) = '||l_num_rows,
3161              p_component_code   =>  'populate_jlds');
3162 
3163   INSERT INTO xla_line_defn_ac_assgns
3164   (application_id
3165   ,amb_context_code
3166   ,event_class_code
3167   ,event_type_code
3168   ,line_definition_owner_code
3169   ,line_definition_code
3170   ,accounting_line_type_code
3171   ,accounting_line_code
3172   ,analytical_criterion_code
3173   ,analytical_criterion_type_code
3174   ,object_version_number
3175   ,creation_date
3176   ,created_by
3177   ,last_update_date
3178   ,last_updated_by
3179   ,last_update_login)
3180   SELECT
3181    p_application_id
3182   ,p_staging_context_code
3183   ,event_class_code
3184   ,event_type_code
3185   ,line_definition_owner_code
3186   ,line_definition_code
3187   ,accounting_line_type_code
3188   ,accounting_line_code
3189   ,analytical_criterion_code
3190   ,analytical_criterion_type_code
3191   ,1
3192   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3193   ,fnd_load_util.owner_id(owner)
3194   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3195   ,fnd_load_util.owner_id(owner)
3196   ,0
3197   FROM  xla_aad_loader_defns_t
3198   WHERE table_name                  = 'XLA_LINE_DEFN_AC_ASSGNS'
3199     AND staging_amb_context_code    = p_staging_context_code;
3200 
3201   l_num_rows :=  SQL%ROWCOUNT;
3202 
3203   IF (C_LEVEL_EVENT >= g_log_level) THEN
3204     trace(p_msg    => '# insert (XLA_LINE_DEFN_AC_ASSGNS) = '||l_num_rows,
3205           p_module => l_log_module,
3206           p_level  => C_LEVEL_EVENT);
3207   END IF;
3208 
3209     -- Bug : 16208537
3210     -- API Call to Insert messages into AAD Loader Log Table.
3211     xla_aad_loader_util_pvt.insert_aadloaderlog(
3212              p_amb_context_code =>  p_staging_context_code,
3213              p_application_id   =>  p_application_id,
3214              p_request_code     => 'IMPORT' ,
3215              p_log_type_code    => 'UPLOAD',
3216              p_encoded_message  => '# insert (XLA_LINE_DEFN_AC_ASSGNS) = '||l_num_rows,
3217              p_component_code   =>  'populate_jlds');
3218 
3219   INSERT INTO xla_mpa_header_ac_assgns
3220   (application_id
3221   ,amb_context_code
3222   ,event_class_code
3223   ,event_type_code
3224   ,line_definition_owner_code
3225   ,line_definition_code
3226   ,accounting_line_type_code
3227   ,accounting_line_code
3228   ,analytical_criterion_code
3232   ,created_by
3229   ,analytical_criterion_type_code
3230   ,object_version_number
3231   ,creation_date
3233   ,last_update_date
3234   ,last_updated_by
3235   ,last_update_login)
3236   SELECT
3237    p_application_id
3238   ,p_staging_context_code
3239   ,event_class_code
3240   ,event_type_code
3241   ,line_definition_owner_code
3242   ,line_definition_code
3243   ,accounting_line_type_code
3244   ,accounting_line_code
3245   ,analytical_criterion_code
3246   ,analytical_criterion_type_code
3247   ,1
3248   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3249   ,fnd_load_util.owner_id(owner)
3250   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3251   ,fnd_load_util.owner_id(owner)
3252   ,0
3253   FROM  xla_aad_loader_defns_t
3254   WHERE table_name                  = 'XLA_MPA_HEADER_AC_ASSGNS'
3255     AND staging_amb_context_code    = p_staging_context_code;
3256 
3257   l_num_rows :=  SQL%ROWCOUNT;
3258   IF (C_LEVEL_EVENT >= g_log_level) THEN
3259     trace(p_msg    => '# insert (XLA_MPA_HEADER_AC_ASSGNS) = '|| l_num_rows,
3260           p_module => l_log_module,
3261           p_level  => C_LEVEL_EVENT);
3262   END IF;
3263 
3264     -- Bug : 16208537
3265     -- API Call to Insert messages into AAD Loader Log Table.
3266     xla_aad_loader_util_pvt.insert_aadloaderlog(
3267              p_amb_context_code =>  p_staging_context_code,
3268              p_application_id   =>  p_application_id,
3269              p_request_code     => 'IMPORT' ,
3270              p_log_type_code    => 'UPLOAD',
3271              p_encoded_message  => '# insert (XLA_MPA_HEADER_AC_ASSGNS) = '|| l_num_rows,
3272              p_component_code   =>  'populate_jlds');
3273 
3274   INSERT INTO xla_mpa_jlt_assgns
3275   (application_id
3276   ,amb_context_code
3277   ,event_class_code
3278   ,event_type_code
3279   ,line_definition_owner_code
3280   ,line_definition_code
3281   ,accounting_line_type_code
3282   ,accounting_line_code
3283   ,mpa_accounting_line_type_code
3284   ,mpa_accounting_line_code
3285   ,description_type_code
3286   ,description_code
3287   ,inherit_desc_flag
3288   ,object_version_number
3289   ,creation_date
3290   ,created_by
3291   ,last_update_date
3292   ,last_updated_by
3293   ,last_update_login)
3294   SELECT
3295    p_application_id
3296   ,p_staging_context_code
3297   ,event_class_code
3298   ,event_type_code
3299   ,line_definition_owner_code
3300   ,line_definition_code
3301   ,accounting_line_type_code
3302   ,accounting_line_code
3303   ,mpa_accounting_line_type_code
3304   ,mpa_accounting_line_code
3305   ,description_type_code
3306   ,description_code
3307   ,inherit_desc_flag
3308   ,1
3309   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3310   ,fnd_load_util.owner_id(owner)
3311   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3312   ,fnd_load_util.owner_id(owner)
3313   ,0
3314   FROM  xla_aad_loader_defns_t
3315   WHERE table_name                  = 'XLA_MPA_JLT_ASSGNS'
3316     AND staging_amb_context_code    = p_staging_context_code;
3317 
3318   l_num_rows :=  SQL%ROWCOUNT;
3319 
3320   IF (C_LEVEL_EVENT >= g_log_level) THEN
3321     trace(p_msg    => '# insert (XLA_MPA_JLT_ASSGNS) = '||l_num_rows,
3322           p_module => l_log_module,
3323           p_level  => C_LEVEL_EVENT);
3324   END IF;
3325     -- Bug : 16208537
3326     -- API Call to Insert messages into AAD Loader Log Table.
3327     xla_aad_loader_util_pvt.insert_aadloaderlog(
3328              p_amb_context_code =>  p_staging_context_code,
3329              p_application_id   =>  p_application_id,
3330              p_request_code     => 'IMPORT' ,
3331              p_log_type_code    => 'UPLOAD',
3332              p_encoded_message  => '# insert (XLA_MPA_JLT_ASSGNS) = '||l_num_rows,
3333              p_component_code   =>  'populate_jlds');
3334   INSERT INTO xla_mpa_jlt_ac_assgns
3335   (application_id
3336   ,amb_context_code
3337   ,event_class_code
3338   ,event_type_code
3339   ,line_definition_owner_code
3340   ,line_definition_code
3341   ,accounting_line_type_code
3342   ,accounting_line_code
3343   ,mpa_accounting_line_type_code
3344   ,mpa_accounting_line_code
3345   ,analytical_criterion_type_code
3346   ,analytical_criterion_code
3347   ,mpa_inherit_ac_flag
3348   ,object_version_number
3349   ,creation_date
3350   ,created_by
3351   ,last_update_date
3352   ,last_updated_by
3353   ,last_update_login)
3354   SELECT
3355    p_application_id
3356   ,p_staging_context_code
3357   ,event_class_code
3358   ,event_type_code
3359   ,line_definition_owner_code
3360   ,line_definition_code
3361   ,accounting_line_type_code
3362   ,accounting_line_code
3363   ,mpa_accounting_line_type_code
3364   ,mpa_accounting_line_code
3365   ,analytical_criterion_type_code
3366   ,analytical_criterion_code
3367   ,mpa_inherit_ac_flag
3368   ,1
3369   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3370   ,fnd_load_util.owner_id(owner)
3371   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3372   ,fnd_load_util.owner_id(owner)
3373   ,0
3374   FROM  xla_aad_loader_defns_t
3375   WHERE table_name                  = 'XLA_MPA_JLT_AC_ASSGNS'
3376     AND staging_amb_context_code    = p_staging_context_code;
3377   l_num_rows :=  SQL%ROWCOUNT;
3378   IF (C_LEVEL_EVENT >= g_log_level) THEN
3379     trace(p_msg    => '# insert (XLA_MPA_JLT_AC_ASSGNS) = '|| l_num_rows,
3380           p_module => l_log_module,
3384     -- API Call to Insert messages into AAD Loader Log Table.
3381           p_level  => C_LEVEL_EVENT);
3382   END IF;
3383     -- Bug : 16208537
3385     xla_aad_loader_util_pvt.insert_aadloaderlog(
3386              p_amb_context_code =>  p_staging_context_code,
3387              p_application_id   =>  p_application_id,
3388              p_request_code     => 'IMPORT' ,
3389              p_log_type_code    => 'UPLOAD',
3390              p_encoded_message  => '# insert (XLA_MPA_JLT_AC_ASSGNS) = '||l_num_rows,
3391              p_component_code   =>  'populate_jlds');
3392   INSERT INTO xla_mpa_jlt_adr_assgns
3393   (application_id
3394   ,amb_context_code
3395   ,event_class_code
3396   ,event_type_code
3397   ,line_definition_owner_code
3398   ,line_definition_code
3399   ,accounting_line_type_code
3400   ,accounting_line_code
3401   ,mpa_accounting_line_type_code
3402   ,mpa_accounting_line_code
3403   ,flexfield_segment_code
3404   ,segment_rule_type_code
3405   ,segment_rule_code
3406   ,segment_rule_appl_id
3407   ,inherit_adr_flag
3408   ,object_version_number
3409   ,creation_date
3410   ,created_by
3411   ,last_update_date
3412   ,last_updated_by
3413   ,last_update_login)
3414   SELECT
3415    p_application_id
3416   ,p_staging_context_code
3417   ,xal.event_class_code
3418   ,xal.event_type_code
3419   ,xal.line_definition_owner_code
3420   ,xal.line_definition_code
3421   ,xal.accounting_line_type_code
3422   ,xal.accounting_line_code
3423   ,xal.mpa_accounting_line_type_code
3424   ,xal.mpa_accounting_line_code
3425   ,xal.flexfield_segment_code
3426   ,xal.segment_rule_type_code
3427   ,xal.segment_rule_code
3428   ,fap.application_id
3429   ,xal.inherit_adr_flag
3430   ,1
3431   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3432   ,fnd_load_util.owner_id(owner)
3433   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3434   ,fnd_load_util.owner_id(owner)
3435   ,0
3436   FROM  xla_aad_loader_defns_t   xal
3437      ,  fnd_application          fap
3438   WHERE fap.application_short_name(+) = xal.segment_rule_appl_sn
3439     AND table_name                  = 'XLA_MPA_JLT_ADR_ASSGNS'
3440     AND staging_amb_context_code    = p_staging_context_code;
3441   l_num_rows :=  SQL%ROWCOUNT;
3442   IF (C_LEVEL_EVENT >= g_log_level) THEN
3443     trace(p_msg    => '# insert (XLA_MPA_JLT_ADR_ASSGNS) = '||l_num_rows,
3444           p_module => l_log_module,
3445           p_level  => C_LEVEL_EVENT);
3446   END IF;
3447     -- Bug : 16208537
3448     -- API Call to Insert messages into AAD Loader Log Table.
3449     xla_aad_loader_util_pvt.insert_aadloaderlog(
3450              p_amb_context_code =>  p_staging_context_code,
3451              p_application_id   =>  p_application_id,
3452              p_request_code     => 'IMPORT' ,
3453              p_log_type_code    => 'UPLOAD',
3454              p_encoded_message  => '# insert (XLA_MPA_JLT_ADR_ASSGNS) = '||l_num_rows,
3455              p_component_code   =>  'populate_jlds');
3456   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3457     trace(p_msg    => 'END of procedure populate_jlds',
3458           p_module => l_log_module,
3459           p_level  => C_LEVEL_PROCEDURE);
3460   END IF;
3461 
3462 EXCEPTION
3463 WHEN OTHERS THEN
3464 
3465   l_exception := sqlerrm;  --Bug 16208537
3466   l_excp_code := sqlcode;
3467 
3468   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3469     trace(p_msg    => 'In exception of xla_aad_upload_pvt.procedure populate_jlds',
3470           p_module => l_log_module,
3471           p_level  => C_LEVEL_PROCEDURE);
3472   END IF;
3473 
3474   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3475     trace(p_msg    => 'Error in xla_aad_upload_pvt.procedure populate_jlds is :'||l_excp_code||'-'||l_exception,
3476           p_module => l_log_module,
3477           p_level  => C_LEVEL_PROCEDURE);
3478   END IF;
3479 
3480   xla_aad_loader_util_pvt.stack_error
3481                (p_appli_s_name    => 'XLA'
3482                ,p_msg_name        => 'XLA_COMMON_ERROR'
3483                ,p_token_1         => 'LOCATION'
3484                ,p_value_1         => 'xla_aad_upload_pvt.populate_jlds'
3485                ,p_token_2         => 'ERROR'
3486                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
3487   RAISE;
3488 
3489 END populate_jlds;
3490 
3491 --=============================================================================
3492 --
3493 -- Name: populate_aads
3494 -- Description: This API populates the AADs data from the AAD Loader
3495 --              interface table to the different AMB tables
3496 --
3497 --=============================================================================
3498 PROCEDURE populate_aads
3499 (p_application_id        IN INTEGER
3500 ,p_amb_context_code      IN VARCHAR2
3501 ,p_staging_context_code  IN VARCHAR2)
3502 IS
3503   l_log_module    VARCHAR2(240);
3504   l_exception     VARCHAR2(250);
3505   l_excp_code     VARCHAR2(100);
3506   l_num_rows      INTEGER;
3507 BEGIN
3508   IF g_log_enabled THEN
3509     l_log_module := C_DEFAULT_MODULE||'.populate_aads';
3510   END IF;
3511 
3512   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3513     trace(p_msg    => 'BEGIN of procedure populate_aads',
3514           p_module => l_log_module,
3515           p_level  => C_LEVEL_PROCEDURE);
3516   END IF;
3517 
3518   INSERT INTO xla_product_rules_b
3519   (application_id
3520   ,amb_context_code
3521   ,product_rule_type_code
3522   ,product_rule_code
3526   ,product_rule_version
3523   ,transaction_coa_id
3524   ,accounting_coa_id
3525   ,enabled_flag
3527   ,compile_status_code
3528   ,locking_status_flag
3529   ,product_rule_hash_id
3530   ,version_num
3531   ,updated_flag
3532   ,creation_date
3533   ,created_by
3534   ,last_update_date
3535   ,last_updated_by
3536   ,last_update_login)
3537   SELECT
3538    p_application_id
3539   ,p_staging_context_code
3540   ,xal.product_rule_type_code
3541   ,xal.product_rule_code
3542   ,fift.id_flex_num
3543   ,fifa.id_flex_num
3544   ,xal.enabled_flag
3545   ,xal.product_rule_version
3546   ,'N'
3547   ,xal.locking_status_flag
3548   ,xpr.product_rule_hash_id
3549   ,NVL(xal.version_num,1)
3550   ,'N'
3551   ,nvl(to_date(xal.orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3552   ,fnd_load_util.owner_id(xal.owner)
3553   ,nvl(to_date(xal.orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3554   ,fnd_load_util.owner_id(xal.owner)
3555   ,0
3556   FROM  xla_aad_loader_defns_t   xal
3557        ,xla_product_rules_b      xpr
3558        ,fnd_id_flex_structures   fift
3559        ,fnd_id_flex_structures   fifa
3560   WHERE fift.application_id(+)         = 101
3561     AND fift.id_flex_code(+)           = 'GL#'
3562     AND fift.id_flex_structure_code(+) = xal.trans_coa_id_flex_struct_code
3563     AND fifa.application_id(+)         = 101
3564     AND fifa.id_flex_code(+)           = 'GL#'
3565     AND fifa.id_flex_structure_code(+) = xal.acct_coa_id_flex_struct_code
3566     AND xpr.application_id(+)          = p_application_id
3567     AND xpr.amb_context_code(+)        = p_amb_context_code
3568     AND xpr.product_rule_type_code(+)  = xal.product_rule_type_code
3569     AND xpr.product_rule_code(+)       = xal.product_rule_code
3570     AND xal.table_name                 = 'XLA_PRODUCT_RULES'
3571     AND xal.staging_amb_context_code   = p_staging_context_code;
3572 
3573   l_num_rows :=  SQL%ROWCOUNT;
3574   IF (C_LEVEL_EVENT >= g_log_level) THEN
3575     trace(p_msg    => '# insert (XLA_PRODUCT_RULES_B) = '||l_num_rows,
3576           p_module => l_log_module,
3577           p_level  => C_LEVEL_EVENT);
3578   END IF;
3579 
3580     -- Bug : 16208537
3581     -- API Call to Insert messages into AAD Loader Log Table.
3582     xla_aad_loader_util_pvt.insert_aadloaderlog(
3583              p_amb_context_code =>  p_staging_context_code,
3584              p_application_id   =>  p_application_id,
3585              p_request_code     => 'IMPORT' ,
3586              p_log_type_code    => 'UPLOAD',
3587              p_encoded_message  => '# insert (XLA_PRODUCT_RULES_B) = '||l_num_rows,
3588              p_component_code   =>  'populate_aads');
3589 
3590   INSERT INTO xla_product_rules_tl
3591   (application_id
3592   ,amb_context_code
3593   ,product_rule_type_code
3594   ,product_rule_code
3595   ,language
3596   ,name
3597   ,description
3598   ,source_lang
3599   ,creation_date
3600   ,created_by
3601   ,last_update_date
3602   ,last_updated_by
3603   ,last_update_login)
3604   SELECT
3605    p_application_id
3606   ,p_staging_context_code
3607   ,product_rule_type_code
3608   ,product_rule_code
3609   ,fl.language_code
3610   ,name
3611   ,description
3612   ,USERENV('LANG')
3613   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3614   ,fnd_load_util.owner_id(owner)
3615   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3616   ,fnd_load_util.owner_id(owner)
3617   ,0
3618   FROM  xla_aad_loader_defns_t      xal
3619        ,fnd_languages               fl
3620   WHERE xal.table_name                  = 'XLA_PRODUCT_RULES'
3621     AND xal.staging_amb_context_code    = p_staging_context_code
3622     AND fl.installed_flag               IN ('I', 'B');
3623 
3624   l_num_rows :=  SQL%ROWCOUNT;
3625 
3626   IF (C_LEVEL_EVENT >= g_log_level) THEN
3627     trace(p_msg    => '# insert (XLA_PRODUCT_RULES_TL) = '||l_num_rows,
3628           p_module => l_log_module,
3629           p_level  => C_LEVEL_EVENT);
3630   END IF;
3631 
3632     -- Bug : 16208537
3633     -- API Call to Insert messages into AAD Loader Log Table.
3634     xla_aad_loader_util_pvt.insert_aadloaderlog(
3635              p_amb_context_code =>  p_staging_context_code,
3636              p_application_id   =>  p_application_id,
3637              p_request_code     => 'IMPORT' ,
3638              p_log_type_code    => 'UPLOAD',
3639              p_encoded_message  => '# insert (XLA_PRODUCT_RULES_TL) = '||l_num_rows,
3640              p_component_code   =>  'populate_aads');
3641 
3642   INSERT INTO xla_prod_acct_headers
3643   (application_id
3644   ,amb_context_code
3645   ,product_rule_type_code
3646   ,product_rule_code
3647   ,entity_code
3648   ,event_class_code
3649   ,event_type_code
3650   ,description_type_code
3651   ,description_code
3652   ,accounting_required_flag
3653   ,locking_status_flag
3654   ,validation_status_code
3655   ,creation_date
3656   ,created_by
3657   ,last_update_date
3658   ,last_updated_by
3659   ,last_update_login)
3660   SELECT
3661    p_application_id
3662   ,p_staging_context_code
3663   ,product_rule_type_code
3664   ,product_rule_code
3665   ,entity_code
3666   ,event_class_code
3667   ,event_type_code
3668   ,description_type_code
3669   ,description_code
3670   ,accounting_required_flag
3671   ,locking_status_flag
3672   ,'N'
3673   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3677   ,0
3674   ,fnd_load_util.owner_id(owner)
3675   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3676   ,fnd_load_util.owner_id(owner)
3678   FROM  xla_aad_loader_defns_t
3679   WHERE table_name                  = 'XLA_PROD_ACCT_HEADERS'
3680     AND staging_amb_context_code    = p_staging_context_code;
3681 
3682   l_num_rows :=  SQL%ROWCOUNT;
3683   IF (C_LEVEL_EVENT >= g_log_level) THEN
3684     trace(p_msg    => '# insert (XLA_PROD_ACCT_HEADERS) = '||l_num_rows,
3685           p_module => l_log_module,
3686           p_level  => C_LEVEL_EVENT);
3687   END IF;
3688 
3689     -- Bug : 16208537
3690     -- API Call to Insert messages into AAD Loader Log Table.
3691     xla_aad_loader_util_pvt.insert_aadloaderlog(
3692              p_amb_context_code =>  p_staging_context_code,
3693              p_application_id   =>  p_application_id,
3694              p_request_code     => 'IMPORT' ,
3695              p_log_type_code    => 'UPLOAD',
3696              p_encoded_message  => '# insert (XLA_PROD_ACCT_HEADERS) = '||l_num_rows,
3697              p_component_code   =>  'populate_aads');
3698 
3699   INSERT INTO xla_aad_hdr_acct_attrs
3700   (application_id
3701   ,amb_context_code
3702   ,product_rule_type_code
3703   ,product_rule_code
3704   ,event_class_code
3705   ,event_type_code
3706   ,accounting_attribute_code
3707   ,source_application_id
3708   ,source_type_code
3709   ,source_code
3710   ,event_class_default_flag
3711   ,creation_date
3712   ,created_by
3713   ,last_update_date
3714   ,last_updated_by
3715   ,last_update_login)
3716   SELECT
3717    p_application_id
3718   ,p_staging_context_code
3719   ,product_rule_type_code
3720   ,product_rule_code
3721   ,event_class_code
3722   ,event_type_code
3723   ,accounting_attribute_code
3724   ,fap.application_id
3725   ,source_type_code
3726   ,source_code
3727   ,event_class_default_flag
3728   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3729   ,fnd_load_util.owner_id(owner)
3730   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3731   ,fnd_load_util.owner_id(owner)
3732   ,0
3733   FROM  xla_aad_loader_defns_t      xal
3734        ,fnd_application             fap
3735   WHERE fap.application_short_name(+) = xal.source_app_short_name
3736     AND table_name                    = 'XLA_AAD_HDR_ACCT_ATTRS'
3737     AND staging_amb_context_code      = p_staging_context_code;
3738 
3739   l_num_rows :=  SQL%ROWCOUNT;
3740 
3741   IF (C_LEVEL_EVENT >= g_log_level) THEN
3742     trace(p_msg    => '# insert (XLA_AAD_HDR_ACCT_ATTRS) = '||l_num_rows,
3743           p_module => l_log_module,
3744           p_level  => C_LEVEL_EVENT);
3745   END IF;
3746     -- Bug : 16208537
3747     -- API Call to Insert messages into AAD Loader Log Table.
3748     xla_aad_loader_util_pvt.insert_aadloaderlog(
3749              p_amb_context_code =>  p_staging_context_code,
3750              p_application_id   =>  p_application_id,
3751              p_request_code     => 'IMPORT' ,
3752              p_log_type_code    => 'UPLOAD',
3753              p_encoded_message  => '# insert (XLA_AAD_HDR_ACCT_ATTRS) = '||l_num_rows,
3754              p_component_code   =>  'populate_aads');
3755 
3756   INSERT INTO xla_aad_line_defn_assgns
3757   (application_id
3758   ,amb_context_code
3759   ,product_rule_type_code
3760   ,product_rule_code
3761   ,event_class_code
3762   ,event_type_code
3763   ,line_definition_owner_code
3764   ,line_definition_code
3765   ,object_version_number
3766   ,creation_date
3767   ,created_by
3768   ,last_update_date
3769   ,last_updated_by
3770   ,last_update_login)
3771   SELECT
3772    p_application_id
3773   ,p_staging_context_code
3774   ,product_rule_type_code
3775   ,product_rule_code
3776   ,event_class_code
3777   ,event_type_code
3778   ,line_definition_owner_code
3779   ,line_definition_code
3780   ,1
3781   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3782   ,fnd_load_util.owner_id(owner)
3783   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3784   ,fnd_load_util.owner_id(owner)
3785   ,0
3786   FROM  xla_aad_loader_defns_t
3787   WHERE table_name                  = 'XLA_AAD_LINE_DEFN_ASSGNS'
3788     AND staging_amb_context_code    = p_staging_context_code;
3789   l_num_rows :=  SQL%ROWCOUNT;
3790   IF (C_LEVEL_EVENT >= g_log_level) THEN
3791     trace(p_msg    => '# insert (XLA_AAD_LINE_DEFN_ASSGNS) = '||l_num_rows,
3792           p_module => l_log_module,
3793           p_level  => C_LEVEL_EVENT);
3794   END IF;
3795     -- Bug : 16208537
3796     -- API Call to Insert messages into AAD Loader Log Table.
3797     xla_aad_loader_util_pvt.insert_aadloaderlog(
3798              p_amb_context_code =>  p_staging_context_code,
3799              p_application_id   =>  p_application_id,
3800              p_request_code     => 'IMPORT' ,
3801              p_log_type_code    => 'UPLOAD',
3802              p_encoded_message  => '# insert (XLA_AAD_LINE_DEFN_ASSGNS) = '|| l_num_rows,
3803              p_component_code   =>  'populate_aads');
3804 
3805   INSERT INTO xla_aad_header_ac_assgns
3806   (application_id
3807   ,amb_context_code
3808   ,product_rule_type_code
3809   ,product_rule_code
3810   ,event_class_code
3811   ,event_type_code
3812   ,analytical_criterion_code
3813   ,analytical_criterion_type_code
3814   ,object_version_number
3815   ,creation_date
3816   ,created_by
3817   ,last_update_date
3818   ,last_updated_by
3819   ,last_update_login)
3823   ,product_rule_type_code
3820   SELECT
3821    p_application_id
3822   ,p_staging_context_code
3824   ,product_rule_code
3825   ,event_class_code
3826   ,event_type_code
3827   ,analytical_criterion_code
3828   ,analytical_criterion_type_code
3829   ,1
3830   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3831   ,fnd_load_util.owner_id(owner)
3832   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3833   ,fnd_load_util.owner_id(owner)
3834   ,0
3835   FROM  xla_aad_loader_defns_t
3836   WHERE table_name                  = 'XLA_AAD_HEADER_AC_ASSGNS'
3837     AND staging_amb_context_code    = p_staging_context_code;
3838 
3839   l_num_rows :=  SQL%ROWCOUNT;
3840   IF (C_LEVEL_EVENT >= g_log_level) THEN
3841     trace(p_msg    => '# insert (XLA_AAD_HEADER_AC_ASSGNS) = '|| l_num_rows,
3842           p_module => l_log_module,
3843           p_level  => C_LEVEL_EVENT);
3844   END IF;
3845 
3846     -- Bug : 16208537
3847     -- API Call to Insert messages into AAD Loader Log Table.
3848     xla_aad_loader_util_pvt.insert_aadloaderlog(
3849              p_amb_context_code =>  p_staging_context_code,
3850              p_application_id   =>  p_application_id,
3851              p_request_code     => 'IMPORT' ,
3852              p_log_type_code    => 'UPLOAD',
3853              p_encoded_message  => '# insert (XLA_AAD_HEADER_AC_ASSGNS) = '||l_num_rows,
3854              p_component_code   =>  'populate_aads');
3855 
3856   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3857     trace(p_msg    => 'END of procedure populate_aads',
3858           p_module => l_log_module,
3859           p_level  => C_LEVEL_PROCEDURE);
3860   END IF;
3861 
3862 EXCEPTION
3863 WHEN OTHERS THEN
3864 
3865   l_exception := sqlerrm;  --Bug 16208537
3866   l_excp_code := sqlcode;
3867 
3868   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3869     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_aads',
3870           p_module => l_log_module,
3871           p_level  => C_LEVEL_PROCEDURE);
3872   END IF;
3873 
3874   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3875     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_aads is : '||l_excp_code||'-'||l_exception,
3876           p_module => l_log_module,
3877           p_level  => C_LEVEL_PROCEDURE);
3878   END IF;
3879 
3880   xla_aad_loader_util_pvt.stack_error
3881                (p_appli_s_name    => 'XLA'
3882                ,p_msg_name        => 'XLA_COMMON_ERROR'
3883                ,p_token_1         => 'LOCATION'
3884                ,p_value_1         => 'xla_aad_upload_pvt.populate_aads'
3885                ,p_token_2         => 'ERROR'
3886                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
3887   RAISE;
3888 
3889 END populate_aads;
3890 
3891 --=============================================================================
3892 --
3893 -- Name: populate_acctg_method
3894 -- Description: This API populates the accounting method data from the AAD Loader
3895 --              interface table to the different AMB tables
3896 --
3897 --=============================================================================
3898 PROCEDURE populate_acctg_methods
3899 (p_application_id        IN INTEGER
3900 ,p_staging_context_code  IN VARCHAR2)
3901 IS
3902   l_log_module    VARCHAR2(240);
3903   l_exception     VARCHAR2(240);
3904   l_excp_code     VARCHAR2(100);
3905   l_num_rows      INTEGER;
3906 BEGIN
3907   IF g_log_enabled THEN
3908     l_log_module := C_DEFAULT_MODULE||'.populate_acctg_methods';
3909   END IF;
3910 
3911   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3912     trace(p_msg    => 'BEGIN of procedure populate_acctg_methods',
3913           p_module => l_log_module,
3914           p_level  => C_LEVEL_PROCEDURE);
3915   END IF;
3916 
3917   INSERT INTO xla_stage_acctg_methods
3918   (staging_amb_context_code
3919   ,accounting_method_type_code
3920   ,accounting_method_code
3921   ,name
3922   ,description
3923   ,transaction_coa_id
3924   ,accounting_coa_id
3925   ,enabled_flag
3926   ,object_version_number
3927   ,creation_date
3928   ,created_by
3929   ,last_update_date
3930   ,last_updated_by
3931   ,last_update_login)
3932   SELECT
3933    p_staging_context_code
3934   ,xal.accounting_method_type_code
3935   ,xal.accounting_method_code
3936   ,xal.name
3937   ,xal.description
3938   ,fift.id_flex_num
3939   ,fifa.id_flex_num
3940   ,xal.enabled_flag
3941   ,1
3942   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3943   ,fnd_load_util.owner_id(owner)
3944   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
3945   ,fnd_load_util.owner_id(owner)
3946   ,0
3947   FROM  xla_aad_loader_defns_t   xal
3948        ,fnd_id_flex_structures   fift
3949        ,fnd_id_flex_structures   fifa
3950   WHERE fift.application_id(+)         = 101
3951     AND fift.id_flex_code(+)           = 'GL#'
3952     AND fift.id_flex_structure_code(+) = trans_coa_id_flex_struct_code
3953     AND fifa.application_id(+)         = 101
3954     AND fifa.id_flex_code(+)           = 'GL#'
3955     AND fifa.id_flex_structure_code(+) = acct_coa_id_flex_struct_code
3956     AND table_name                     = 'XLA_STAGE_ACCTG_METHODS'
3957     AND staging_amb_context_code       = p_staging_context_code;
3958 
3959   l_num_rows :=  SQL%ROWCOUNT;
3960   IF (C_LEVEL_EVENT >= g_log_level) THEN
3961     trace(p_msg    => '# insert (XLA_STAGING_ACCTG_METHODS) = '||l_num_rows,
3962           p_module => l_log_module,
3963           p_level  => C_LEVEL_EVENT);
3964   END IF;
3965     -- Bug : 16208537
3966     -- API Call to Insert messages into AAD Loader Log Table.
3970              p_request_code     => 'IMPORT' ,
3967     xla_aad_loader_util_pvt.insert_aadloaderlog(
3968              p_amb_context_code =>  p_staging_context_code,
3969              p_application_id   =>  p_application_id,
3971              p_log_type_code    => 'UPLOAD',
3972              p_encoded_message  => '# insert (XLA_STAGING_ACCTG_METHODS) = '||l_num_rows,
3973              p_component_code   =>  'populate_acctg_methods');
3974 
3975   INSERT INTO xla_acctg_method_rules
3976   (amb_context_code
3977   ,accounting_method_type_code
3978   ,accounting_method_code
3979   ,acctg_method_rule_id
3980   ,application_id
3981   ,product_rule_type_code
3982   ,product_rule_code
3983   ,start_date_active
3984   ,end_date_active
3985   ,creation_date
3986   ,created_by
3987   ,last_update_date
3988   ,last_updated_by
3989   ,last_update_login)
3990   SELECT
3991    p_staging_context_code
3992   ,accounting_method_type_code
3993   ,accounting_method_code
3994   ,xla_acctg_method_rules_s.nextval
3995   ,p_application_id
3996   ,product_rule_type_code
3997   ,product_rule_code
3998   ,start_date_active
3999   ,end_date_active
4000   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
4001   ,fnd_load_util.owner_id(owner)
4002   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
4003   ,fnd_load_util.owner_id(owner)
4004   ,0
4005   FROM  xla_aad_loader_defns_t
4006   WHERE table_name                      = 'XLA_ACCTG_METHOD_RULES'
4007     AND staging_amb_context_code        = p_staging_context_code;
4008 
4009     l_num_rows :=  SQL%ROWCOUNT;
4010 
4011     -- Bug : 16208537
4012     -- API Call to Insert messages into AAD Loader Log Table.
4013     xla_aad_loader_util_pvt.insert_aadloaderlog(
4014              p_amb_context_code =>  p_staging_context_code,
4015              p_application_id   =>  p_application_id,
4016              p_request_code     => 'IMPORT' ,
4017              p_log_type_code    => 'UPLOAD',
4018              p_encoded_message  => '# insert (XLA_ACCTG_METHOD_RULES) = '||l_num_rows,
4019              p_component_code   =>  'populate_acctg_methods');
4020 
4021   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4022     trace(p_msg    => 'END of procedure populate_acctg_methods',
4023           p_module => l_log_module,
4024           p_level  => C_LEVEL_PROCEDURE);
4025   END IF;
4026 
4027 EXCEPTION
4028 WHEN OTHERS THEN
4029 
4030   l_exception := sqlerrm;  --Bug 16208537
4031   l_excp_code := sqlcode;
4032 
4033   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4034     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_acctg_methods',
4035           p_module => l_log_module,
4036           p_level  => C_LEVEL_PROCEDURE);
4037   END IF;
4038 
4039   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4040     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_acctg_methods is : '||l_excp_code||'-'||l_exception,
4041           p_module => l_log_module,
4042           p_level  => C_LEVEL_PROCEDURE);
4043   END IF;
4044 
4045   xla_aad_loader_util_pvt.stack_error
4046                (p_appli_s_name    => 'XLA'
4047                ,p_msg_name        => 'XLA_COMMON_ERROR'
4048                ,p_token_1         => 'LOCATION'
4049                ,p_value_1         => 'xla_aad_upload_pvt.populate_acctg_methods'
4050                ,p_token_2         => 'ERROR'
4051                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
4052   RAISE;
4053 
4054 END populate_acctg_methods;
4055 
4056 --=============================================================================
4057 --
4058 -- Name: populate_history
4059 -- Description: This API populates the history data from the AAD Loader
4060 --              interface table to the different AMB tables
4061 --
4062 --=============================================================================
4063 PROCEDURE populate_history
4064 (p_staging_context_code  IN VARCHAR2)
4065 IS
4066   l_log_module    VARCHAR2(240);
4067   l_exception     VARCHAR2(250);
4068   l_excp_code     VARCHAR2(100);
4069   l_num_rows      INTEGER;
4070 
4071 BEGIN
4072   IF g_log_enabled THEN
4073     l_log_module := C_DEFAULT_MODULE||'.populate_history';
4074   END IF;
4075 
4076   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4077     trace(p_msg    => 'BEGIN of procedure populate_history',
4078           p_module => l_log_module,
4079           p_level  => C_LEVEL_PROCEDURE);
4080   END IF;
4081 
4082   INSERT INTO xla_staging_components_h
4083   (staging_amb_context_code
4084   ,component_type_code
4085   ,component_owner_code
4086   ,component_code
4087   ,version_num
4088   ,base_version_num
4089   ,application_id
4090   ,product_rule_version
4091   ,version_comment
4092   ,leapfrog_flag
4093   ,object_version_number
4094   ,creation_date
4095   ,created_by
4096   ,last_update_date
4097   ,last_updated_by
4098   ,last_update_login)
4099   SELECT
4100    p_staging_context_code
4101   ,component_type_code
4102   ,component_owner_code
4103   ,component_code
4104   ,version_num
4105   ,base_version_num
4106   ,NVL(fap.application_id,-1)
4107   ,product_rule_version
4108   ,version_comment
4109   ,leapfrog_flag
4110   ,1
4111   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
4112   ,fnd_load_util.owner_id(owner)
4113   ,nvl(to_date(orig_last_update_date, 'YYYY/MM/DD'), sysdate)
4114   ,fnd_load_util.owner_id(owner)
4115   ,0
4116   FROM  xla_aad_loader_defns_t          xal
4117        ,fnd_application                 fap
4118   WHERE fap.application_short_name(+)   = xal.application_short_name
4122   l_num_rows :=  SQL%ROWCOUNT;
4119     AND table_name                      = 'XLA_STAGING_COMPONENTS_H'
4120     AND staging_amb_context_code        = p_staging_context_code;
4121 
4123   IF (C_LEVEL_STATEMENT >= g_log_level) THEN
4124     trace(p_msg    => '# row populated in XLA_STAGING_COMPONENTS_H = '||l_num_rows,
4125           p_module => l_log_module,
4126           p_level  => C_LEVEL_PROCEDURE);
4127   END IF;
4128 
4129 
4130   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4131     trace(p_msg    => 'END of procedure populate_history',
4132           p_module => l_log_module,
4133           p_level  => C_LEVEL_PROCEDURE);
4134   END IF;
4135 
4136 EXCEPTION
4137 WHEN OTHERS THEN
4138 
4139   l_exception := sqlerrm; -- --Bug 16208537
4140   l_excp_code := sqlcode;
4141 
4142   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4143     trace(p_msg    => 'In exception of xla_aad_upload_pvt.populate_history',
4144           p_module => l_log_module,
4145           p_level  => C_LEVEL_PROCEDURE);
4146   END IF;
4147 
4148   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4149     trace(p_msg    => 'Error in xla_aad_upload_pvt.populate_history is : '||l_excp_code||'-'||l_exception,
4150           p_module => l_log_module,
4151           p_level  => C_LEVEL_PROCEDURE);
4152   END IF;
4153 
4154   xla_aad_loader_util_pvt.stack_error
4155                (p_appli_s_name    => 'XLA'
4156                ,p_msg_name        => 'XLA_COMMON_ERROR'
4157                ,p_token_1         => 'LOCATION'
4158                ,p_value_1         => 'xla_aad_upload_pvt.populate_history'
4159                ,p_token_2         => 'ERROR'
4160                ,p_value_2         => l_excp_code ||' - '|| l_exception); --Bug 16208537
4161   RAISE;
4162 END populate_history;
4163 
4164 --=============================================================================
4165 --
4166 -- Name       :  XLA_ZD_PREPARE
4167 -- Description:  PREPARE API call for Non-FND Loaders
4168 --
4169 --=============================================================================
4170 PROCEDURE XLA_ZD_PREPARE
4171 IS
4172  l_log_module           VARCHAR2(240);
4173 BEGIN
4174 
4175  IF g_log_enabled THEN
4176     l_log_module := C_DEFAULT_MODULE||'.XLA_ZD_PREPARE';
4177   END IF;
4178 
4179   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4180     trace(p_msg    => 'BEGIN of procedure  XLA_ZD_PREPARE',
4181           p_module => l_log_module,
4182           p_level  => C_LEVEL_PROCEDURE);
4183   END IF;
4184 
4185 	AD_ZD_SEED.PREPARE('XLA_DESCRIPTIONS_B');
4186 	AD_ZD_SEED.PREPARE('XLA_DESCRIPTIONS_TL');
4187 	AD_ZD_SEED.PREPARE('XLA_DESC_PRIORITIES');
4188 	AD_ZD_SEED.PREPARE('XLA_DESCRIPT_DETAILS_B');
4189 	AD_ZD_SEED.PREPARE('XLA_DESCRIPT_DETAILS_TL');
4190 	AD_ZD_SEED.PREPARE('XLA_CONDITIONS');
4191 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SETS_B');
4192 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SETS_TL');
4193 	AD_ZD_SEED.PREPARE('XLA_MAPPING_SET_VALUES');
4194 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_HDRS_B');
4195 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_HDRS_TL');
4196 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_DTLS_B');
4197 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_DTLS_TL');
4198 	AD_ZD_SEED.PREPARE('XLA_ANALYTICAL_SOURCES');
4199 	AD_ZD_SEED.PREPARE('XLA_SEG_RULES_B');
4200 	AD_ZD_SEED.PREPARE('XLA_SEG_RULES_TL');
4201 	AD_ZD_SEED.PREPARE('XLA_SEG_RULE_DETAILS');
4202 	AD_ZD_SEED.PREPARE('XLA_ACCT_LINE_TYPES_B');
4203 	AD_ZD_SEED.PREPARE('XLA_ACCT_LINE_TYPES_TL');
4204 	AD_ZD_SEED.PREPARE('XLA_JLT_ACCT_ATTRS');
4205 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFINITIONS_B');
4206 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFINITIONS_TL');
4207 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_JLT_ASSGNS');
4208 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_ADR_ASSGNS');
4209 	AD_ZD_SEED.PREPARE('XLA_LINE_DEFN_AC_ASSGNS');
4210 	AD_ZD_SEED.PREPARE('XLA_MPA_HEADER_AC_ASSGNS');
4211 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_ASSGNS');
4212 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_AC_ASSGNS');
4213 	AD_ZD_SEED.PREPARE('XLA_MPA_JLT_ADR_ASSGNS');
4214 	AD_ZD_SEED.PREPARE('XLA_PRODUCT_RULES_B');
4215 	AD_ZD_SEED.PREPARE('XLA_PRODUCT_RULES_TL');
4216 	AD_ZD_SEED.PREPARE('XLA_PROD_ACCT_HEADERS');
4217 	AD_ZD_SEED.PREPARE('XLA_AAD_HDR_ACCT_ATTRS');
4218 	AD_ZD_SEED.PREPARE('XLA_AAD_LINE_DEFN_ASSGNS');
4219 	AD_ZD_SEED.PREPARE('XLA_AAD_HEADER_AC_ASSGNS');
4220 	AD_ZD_SEED.PREPARE('XLA_STAGE_ACCTG_METHODS');
4221 	AD_ZD_SEED.PREPARE('XLA_ACCTG_METHOD_RULES');
4222 	AD_ZD_SEED.PREPARE('XLA_STAGING_COMPONENTS_H');
4223 	AD_ZD_SEED.PREPARE('XLA_ACCTG_METHODS_B');  --Bug 16208537
4224 	AD_ZD_SEED.PREPARE('XLA_ACCTG_METHODS_TL');  --Bug 16208537
4225 
4226 
4227   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4228     trace(p_msg    => 'END of procedure XLA_ZD_PREPARE',
4229           p_module => l_log_module,
4230           p_level  => C_LEVEL_PROCEDURE);
4231   END IF;
4232 END XLA_ZD_PREPARE;
4233 
4234 --=============================================================================
4235 --
4236 -- Name: populate_data
4237 -- Description: This API populates the data from the AAD Loader interface
4238 --              table to the different AMB tables
4239 --
4240 --=============================================================================
4241 FUNCTION populate_data
4242 (p_application_id        IN INTEGER
4243 ,p_amb_context_code      IN VARCHAR2
4244 ,p_staging_context_code  IN VARCHAR2)
4245 RETURN VARCHAR2
4246 IS
4247   l_error_found   BOOLEAN;
4248   l_log_module    VARCHAR2(240);
4249 BEGIN
4250   IF g_log_enabled THEN
4251     l_log_module := C_DEFAULT_MODULE||'.populate_data';
4252   END IF;
4253 
4254   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4255     trace(p_msg    => 'BEGIN of procedure populate_data',
4259 
4256           p_module => l_log_module,
4257           p_level  => C_LEVEL_PROCEDURE);
4258   END IF;
4260   l_error_found := FALSE;
4261 
4262   trace(p_msg    => 'Calling Prepare API XLA_ZD_PREPARE',
4263           p_module => l_log_module,
4264           p_level  => C_LEVEL_PROCEDURE);
4265 
4266   -- PREPARE API call for Non-FND Loaders.
4267   XLA_ZD_PREPARE();
4268 
4269   populate_descriptions
4270                (p_application_id       => p_application_id
4271                ,p_staging_context_code => p_staging_context_code);
4272 
4273   IF (populate_mapping_sets
4274                (p_application_id       => p_application_id
4275                ,p_staging_context_code => p_staging_context_code) = 'WARNING') THEN
4276     l_error_found := TRUE;
4277   END IF;
4278 
4279   populate_analytical_criteria
4280                (p_application_id        => p_application_id
4281                ,p_staging_context_code  => p_staging_context_code);
4282 
4283   IF (populate_adrs(p_application_id        => p_application_id
4284                    ,p_staging_context_code  => p_staging_context_code) = 'WARNING') THEN
4285     l_error_found := TRUE;
4286   END IF;
4287 
4288   populate_journal_line_types
4289                (p_application_id       => p_application_id
4290                ,p_staging_context_code => p_staging_context_code);
4291 
4292   populate_jlds
4293                (p_application_id       => p_application_id
4294                ,p_staging_context_code => p_staging_context_code);
4295 
4296   populate_aads
4297                (p_application_id       => p_application_id
4298                ,p_amb_context_code     => p_amb_context_code
4299                ,p_staging_context_code => p_staging_context_code);
4300 
4301   populate_acctg_methods
4302                (p_application_id       => p_application_id
4303                ,p_staging_context_code => p_staging_context_code);
4304 
4305   populate_history(p_staging_context_code => p_staging_context_code);
4306 
4307 
4308   IF (l_error_found) THEN
4309     RAISE FND_API.G_EXC_ERROR;
4310   END IF;
4311 
4312   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4313     trace(p_msg    => 'END of procedure populate_data',
4314           p_module => l_log_module,
4315           p_level  => C_LEVEL_PROCEDURE);
4316   END IF;
4317 
4318   RETURN 'SUCCESS';
4319 EXCEPTION
4320 WHEN FND_API.G_EXC_ERROR THEN
4321   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4322     trace(p_msg    => 'END of procedure populate_data: ERROR',
4323           p_module => l_log_module,
4324           p_level  => C_LEVEL_PROCEDURE);
4325   END IF;
4326 
4327   RETURN 'WARNING';
4328 
4329 WHEN OTHERS THEN
4330   xla_aad_loader_util_pvt.stack_error
4331                (p_appli_s_name    => 'XLA'
4332                ,p_msg_name        => 'XLA_COMMON_ERROR'
4333                ,p_token_1         => 'LOCATION'
4334                ,p_value_1         => 'xla_aad_upload_pvt.populate_data'
4335                ,p_token_2         => 'ERROR'
4336                ,p_value_2         =>   sqlcode ||' - '|| sqlerrm); --Bug 16208537
4337   RAISE;
4338 
4339 END populate_data;
4340 
4341 
4342 
4343 --=============================================================================
4344 --
4345 -- Name: post_upload
4346 -- Description: This API populates the data from the AAD Loader interface
4347 --              table to the different AMB tables
4348 --
4349 --=============================================================================
4350 FUNCTION post_upload
4351 (p_application_id        IN INTEGER
4352 ,p_amb_context_code      IN VARCHAR2
4353 ,p_staging_context_code  IN VARCHAR2)
4354 RETURN VARCHAR2
4355 IS
4356   l_upload_status VARCHAR2(30);
4357   l_error_found   BOOLEAN;
4358   l_log_module    VARCHAR2(240);
4359 BEGIN
4360   IF g_log_enabled THEN
4361     l_log_module := C_DEFAULT_MODULE||'.post_upload';
4362   END IF;
4363 
4364   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4365     trace(p_msg    => 'BEGIN of function post_upload',
4366           p_module => l_log_module,
4367           p_level  => C_LEVEL_PROCEDURE);
4368   END IF;
4369 
4370   l_upload_status := validation
4371                           (p_application_id       => p_application_id
4372                           ,p_staging_context_code => p_staging_context_code);
4373 
4374   IF (l_upload_status IN ('WARNING','ERROR')) THEN
4375     RAISE FND_API.G_EXC_ERROR;
4376   END IF;
4377 
4378   l_upload_status := populate_data
4379                           (p_application_id       => p_application_id
4380                           ,p_amb_context_code     => p_amb_context_code
4381                           ,p_staging_context_code => p_staging_context_code);
4382 
4383   IF (l_upload_status IN ('WARNING','ERROR')) THEN
4384     RAISE FND_API.G_EXC_ERROR;
4385   END IF;
4386 
4387   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4388     trace(p_msg    => 'END of function post_upload',
4389           p_module => l_log_module,
4390           p_level  => C_LEVEL_PROCEDURE);
4391   END IF;
4392 
4393 
4394   RETURN 'SUCCESS';
4395 EXCEPTION
4396 WHEN FND_API.G_EXC_ERROR THEN
4397   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4398     trace(p_msg    => 'END of function post_upload: ERROR',
4399           p_module => l_log_module,
4400           p_level  => C_LEVEL_PROCEDURE);
4401   END IF;
4402 
4403   RETURN l_upload_status;
4404 
4405 WHEN OTHERS THEN
4406   xla_aad_loader_util_pvt.stack_error
4407                (p_appli_s_name    => 'XLA'
4408                ,p_msg_name        => 'XLA_COMMON_ERROR'
4409                ,p_token_1         => 'LOCATION'
4410                ,p_value_1         => 'xla_aad_upload_pvt.post_upload'
4411                ,p_token_2         => 'ERROR'
4412                ,p_value_2         =>  sqlcode ||' - '|| sqlerrm); --Bug 16208537
4413   RETURN 'ERROR';
4414 
4415 END post_upload;
4416 
4417 
4418 --=============================================================================
4419 --
4420 --
4421 --
4422 --
4423 --
4424 --          *********** public procedures and functions **********
4425 --
4426 --
4427 --
4428 --
4429 --
4430 --=============================================================================
4431 
4432 
4433 --=============================================================================
4434 --
4435 -- Name:
4436 -- Description:
4437 --
4438 --=============================================================================
4439 PROCEDURE upload
4440 (p_api_version           IN NUMBER
4441 ,x_return_status         IN OUT NOCOPY VARCHAR2
4442 ,p_application_id        IN INTEGER
4443 ,p_source_pathname       IN VARCHAR2
4444 ,p_amb_context_code      IN VARCHAR2
4445 ,x_upload_status         IN OUT NOCOPY VARCHAR2)
4446 IS
4447   l_api_name             CONSTANT VARCHAR2(30) := 'upload';
4448   l_api_version          CONSTANT NUMBER       := 1.0;
4449   l_staging_context_code VARCHAR2(30);
4450   l_log_module           VARCHAR2(240);
4451 BEGIN
4452   IF g_log_enabled THEN
4453     l_log_module := C_DEFAULT_MODULE||'.upload';
4454   END IF;
4455 
4456   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4457     trace(p_msg    => 'BEGIN of procedure upload',
4458           p_module => l_log_module,
4459           p_level  => C_LEVEL_PROCEDURE);
4460   END IF;
4461 
4462   -- Standard call to check for call compatibility.
4463   IF (NOT xla_aad_loader_util_pvt.compatible_api_call
4464                  (p_current_version_number => l_api_version
4465                  ,p_caller_version_number  => p_api_version
4466                  ,p_api_name               => l_api_name
4467                  ,p_pkg_name               => C_DEFAULT_MODULE))
4468   THEN
4469     RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
4470   END IF;
4471 
4472   --  Initialize variables
4473   x_return_status        := FND_API.G_RET_STS_SUCCESS;
4474 
4475   -- API Logic
4476   l_staging_context_code := xla_aad_loader_util_pvt.get_staging_context_code
4477                                 (p_application_id   => p_application_id
4478                                 ,p_amb_context_code => p_amb_context_code);
4479 
4480   x_upload_status := upload_data
4481                      (p_application_id       => p_application_id
4482                      ,p_source_pathname      => p_source_pathname
4483                      ,p_staging_context_code => l_staging_context_code);
4484 
4485   IF (x_upload_status IN ('ERROR','WARNING')) THEN
4486     RAISE FND_API.G_EXC_ERROR;
4487   END IF;
4488 
4489   x_upload_status := post_upload
4490                      (p_application_id       => p_application_id
4491                      ,p_amb_context_code     => p_amb_context_code
4492                      ,p_staging_context_code => l_staging_context_code);
4493 
4494   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4495     trace(p_msg    => 'END of procedure upload: x_upload_status = '||x_upload_status,
4496           p_module => l_log_module,
4497           p_level  => C_LEVEL_PROCEDURE);
4498   END IF;
4499 EXCEPTION
4500 WHEN FND_API.G_EXC_ERROR THEN
4501   ROLLBACK;
4502   x_return_status := FND_API.G_RET_STS_ERROR ;
4503 
4504 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4505   ROLLBACK;
4506   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4507   x_upload_status := 'ERROR';
4508 
4509 WHEN OTHERS THEN
4510   ROLLBACK;
4511   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
4512   x_upload_status := 'ERROR';
4513 
4514   xla_aad_loader_util_pvt.stack_error
4515                (p_appli_s_name    => 'XLA'
4516                ,p_msg_name        => 'XLA_COMMON_ERROR'
4517                ,p_token_1         => 'LOCATION'
4518                ,p_value_1         => 'xla_aad_upload_pvt.upload'
4519                ,p_token_2         => 'ERROR'
4520                ,p_value_2         => sqlcode ||' - '||sqlerrm); --Bug 16208537
4521 END upload;
4522 
4523 --=============================================================================
4524 --
4525 -- Following code is executed when the package body is referenced for the first
4526 -- time
4527 --
4528 --=============================================================================
4529 BEGIN
4530   g_log_level          := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
4531   g_log_enabled        := fnd_log.test
4532                          (log_level  => g_log_level
4533                          ,module     => C_DEFAULT_MODULE);
4534 
4535   IF NOT g_log_enabled THEN
4536     g_log_level := C_LEVEL_LOG_DISABLED;
4537   END IF;
4538 
4539 END xla_aad_upload_pvt;