DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_AE_SOURCES_PKG

Source


1 PACKAGE BODY xla_ae_sources_pkg AS
2 /* $Header: xlajescs.pkb 120.34 2011/01/12 04:24:05 vdamerla ship $   */
3 /*===========================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                     |
5 |                       Redwood Shores, CA, USA                              |
6 |                         All rights reserved.                               |
7 +============================================================================+
8 | PACKAGE NAME                                                               |
9 |     xla_ae_sources_pkg                                                     |
10 |                                                                            |
11 | DESCRIPTION                                                                |
12 |                                                                            |
13 |                                                                            |
14 | HISTORY                                                                    |
15 |     20-NOV-2002 K.Boussema    Created                                      |
16 |     13-MAR-2003 K.Boussema    Made changes for the new bulk approach of the|
17 |                               accounting engine                            |
18 |     19-APR-2003 K.Boussema    Included Error messages                      |
19 |     13-MAI-2003 K.Boussema    Updated Code messages                        |
20 |     16-MAI-2003 K.Boussema    Changed to accept value NULL for some system |
21 |                               sources.                                     |
22 |     19-MAI-2003 K.Boussema    Modified GetTranslatedLookupMeaning          |
23 |                               GetUnTranslatedLookupMeaning                 |
24 |                               and get_flex_value_meaning                   |
25 |                               to fix BUG 2965699                           |
26 |     30-MAI-2003 K.Boussema    Reviewed get_flex_value_meaning, bug2975670  |
27 |     12-JUN-2003 K.Boussema    Reviewed GetSystemSource fcts, bug 2990642   |
28 |     23-JUN-2003 K.Boussema   Updated the call to get_period_name bug3005754|
29 |     30-JUN-2003 K.Boussema   Changed XLA_PERIOD_TYPES by XLA_PERIOD_TYPE   |
30 |     17-JUL-2003 K.Boussema    Updated the call to accounting cache, 3055039|
31 |     21-JUL-2003 K.Boussema   Changed the source name from                  |
32 |                              GL_COA_MAPPINGS_NAME to GL_COA_MAPPING_NAME   |
33 |                              Updated to trap NO_DATA_FOUND exception       |
34 |     24-JUL-2003 K.Boussema    Updated the error messages                   |
35 |     29-JUL-2003 K.Boussema   Included the retrieve of 'Legal entity name'  |
36 |     04-AUG-2003 S.Singhania  corrected a typo in the source code:          |
37 |                               XLA_ACCOUNTING_METHOD_NAME                   |
38 |     01-SEP-2003 K.Boussema   Removed XLA_LEGAL_ENTITY_NAME system source   |
39 |                              Add the update of JE status if system source  |
40 |                              invalid                                       |
41 |     19-SEP-2003 K.Boussema   Added new system source XLA_JE_CATEGORY_NAME  |
42 |     15-DEC-2003 K.Boussema   Removed get_flex_value_meaning function       |
43 |     18-DEC-2003 K.Boussema   Changed to fix bug 3042840,3307761,3268940    |
44 |                               3310291 and 3320689                          |
45 |     05-FEB-2004 K.Boussema   Reviewed get_mapping_flexfield_char/number    |
46 |     16-FEB-2004 K.Boussema   Made changes for the FND_LOG.                 |
47 |     22-MAR-2004 K.Boussema    Added a parameter p_module to the TRACE calls|
48 |                               and the procedure.                           |
49 |     11-MAY-2004 K.Boussema   Removed the call to XLA trace routine from    |
50 |                               trace() procedure                            |
51 |     17-May-2004 W.Shen       change the view name from xla_acctg_sources_tl|
52 |                               to xla_acct_attributes_tl                    |
53 |     22-Sep-2004 S.Singhania  Made minor changes for bulk performance:      |
54 |                                - Changes to calls to build_message.        |
55 |     17-Jan-2006 A.Wan        4731177 Do not error if no value found.       |
56 +===========================================================================*/
57 --
58 --
59 --+==========================================================================+
60 --|                                                                          |
61 --| Global variables                                                         |
62 --|                                                                          |
63 --+==========================================================================+
64 ---
65 -- period type and name cache
66 --
67 g_period_name                        VARCHAR2(15);
68 g_period_type                        VARCHAR2(15);
69 g_period_ledger_id                   NUMBER;
70 g_period_date                        DATE;
71 --
72 --
73 -- Lookup meaning cache
74 --
75 g_meaning_lookup_type                VARCHAR2(30);
76 g_meaning_lookup_code                VARCHAR2(30);
77 g_meaning_lookup_language            VARCHAR2(30);
78 g_meaning_view_appl_id               NUMBER;
79 g_meaning_start_date                 DATE;
80 g_meaning_end_date                   DATE;
81 g_meaning_lookup                     VARCHAR2(80);
82 --
83 --=============================================================================
84 --               *********** Local Trace Routine **********
85 --=============================================================================
86 
87 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
88 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
89 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
90 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
91 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
92 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
93 
94 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
95 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.xla_ae_sources_pkg';
96 
97 g_log_level           NUMBER;
98 g_log_enabled         BOOLEAN;
99 
100 PROCEDURE trace
101            (p_msg                        IN VARCHAR2
102            ,p_level                      IN NUMBER
103            ,p_module                     IN VARCHAR2 DEFAULT C_DEFAULT_MODULE)
104 IS
105 BEGIN
106        ----------------------------------------------------------------------------
107        -- Following is for FND log.
108        ----------------------------------------------------------------------------
109        IF (p_msg IS NULL AND p_level >= g_log_level) THEN
110           fnd_log.message(p_level, p_module);
111        ELSIF p_level >= g_log_level THEN
112           fnd_log.string(p_level, p_module, p_msg);
113        END IF;
114 
115 EXCEPTION
116    WHEN xla_exceptions_pkg.application_exception THEN
117           RAISE;
118    WHEN OTHERS THEN
119           xla_exceptions_pkg.raise_message
120              (p_location   => 'xla_ae_sources_pkg.trace');
121 END trace;
122 --
123 --+==========================================================================+
124 --|                                                                          |
125 --| OVERVIEW of private procedures and functions                             |
126 --|                                                                          |
127 --+==========================================================================+
128 --
129 --
130 --+==========================================================================+
131 --| PUBLIC and Privates APIs to get the name in the language of teh session  |
132 --|                                                                          |
133 --|                                                                          |
134 --|                                                                          |
135 --|                                                                          |
136 --|                                                                          |
137 --|                                                                          |
138 --|                                                                          |
139 --|                                                                          |
140 --|                                                                          |
141 --|                                                                          |
142 --|                                                                          |
143 --|                                                                          |
144 --|                                                                          |
145 --+==========================================================================+
146 --
147 --+==========================================================================+
148 --|                                                                          |
149 --| PUBLIC   function                                                        |
150 --|                                                                          |
151 --+==========================================================================+
152 --
153 FUNCTION GetApplicationName (p_application_id   IN NUMBER)
154 RETURN VARCHAR2
155 IS
156 l_application_name          VARCHAR2(240);
157 l_log_module                VARCHAR2(240);
158 BEGIN
159 --
160 IF g_log_enabled THEN
161       l_log_module := C_DEFAULT_MODULE||'.GetApplicationName';
162 END IF;
163 --
164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
165       trace
166          (p_msg      => 'BEGIN of GetApplicationName'
167          ,p_level    => C_LEVEL_PROCEDURE
168          ,p_module   => l_log_module);
169 
170       trace
171           (p_msg      => 'p_application_id = '|| TO_CHAR(p_application_id)
172          ,p_level    => C_LEVEL_PROCEDURE
173          ,p_module   => l_log_module);
174 
175 END IF;
176 --
177 IF p_application_id  IS NOT NULL THEN
178 
179   SELECT  REPLACE(fat.application_name, '''','''''')
180     INTO  l_application_name
181     FROM  fnd_application_tl fat
182    WHERE  fat.application_id = p_application_id
183      AND  fat.language = nvl(USERENV('LANG'),fat.language)
184      ;
185 --
186 ELSE
187   l_application_name:= NULL;
188 END IF;
189 
190 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
191 
192        trace
193          (p_msg      => 'return value. = '||l_application_name
194          ,p_level    => C_LEVEL_PROCEDURE
195          ,p_module   => l_log_module);
196 
197        trace
198          (p_msg      => 'END of GetApplicationName'
199          ,p_level    => C_LEVEL_PROCEDURE
200          ,p_module   => l_log_module);
201 
202 END IF;
203 RETURN l_application_name;
204 EXCEPTION
205  WHEN OTHERS THEN
206     RETURN TO_CHAR(p_application_id);
207 END GetApplicationName;
208 --
209 /*======================================================================+
210 |                                                                       |
211 | Public Function                                                       |
212 |    GetSourceName                                                      |
213 |                                                                       |
214 +======================================================================*/
215 FUNCTION GetSourceName(
216   p_source_code           IN VARCHAR2
217 , p_source_type_code      IN VARCHAR2
218 , p_source_application_id IN NUMBER
219 )
220 RETURN VARCHAR2
221 IS
222   l_source_name        VARCHAR2(240);
223   l_log_module         VARCHAR2(240);
224 BEGIN
225 --
226 IF g_log_enabled THEN
227       l_log_module := C_DEFAULT_MODULE||'.GetSourceName';
228 END IF;
229 --
230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
231       trace
232          (p_msg      => 'BEGIN of GetSourceName'
233          ,p_level    => C_LEVEL_PROCEDURE
234          ,p_module   => l_log_module);
235 
236       trace
237           (p_msg      => 'p_source_code = '|| p_source_code
238          ,p_level    => C_LEVEL_PROCEDURE
239          ,p_module   => l_log_module);
240 
241       trace
242           (p_msg      => 'p_source_type_code = '|| p_source_type_code
243          ,p_level    => C_LEVEL_PROCEDURE
244          ,p_module   => l_log_module);
245 
246       trace
247           (p_msg      => 'p_source_application_id = '|| TO_CHAR(p_source_application_id)
248          ,p_level    => C_LEVEL_PROCEDURE
249          ,p_module   => l_log_module);
250 END IF;
251 --
252 IF p_source_code IS NOT NULL THEN
253 
254   SELECT  REPLACE(xst.name, '''','''''')
255     INTO  l_source_name
256     FROM  xla_sources_tl   xst
257    WHERE  xst.application_id   = p_source_application_id
258      AND  xst.source_type_code = p_source_type_code
259      AND  xst.source_code      = p_source_code
260      AND  xst.language         = nvl(USERENV('LANG'),xst.language)
261      ;
262 ELSE
263    l_source_name := NULL;
264 END IF;
265 
266 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
267 
268        trace
269          (p_msg      => 'return value. = '||l_source_name
270          ,p_level    => C_LEVEL_PROCEDURE
271          ,p_module   => l_log_module);
272 
273        trace
274          (p_msg      => 'END of GetSourceName'
275          ,p_level    => C_LEVEL_PROCEDURE
276          ,p_module   => l_log_module);
277 
278 END IF;
279 
280 RETURN l_source_name;
281 EXCEPTION
282  WHEN OTHERS THEN
283     RETURN p_source_code;
284 END GetSourceName;
285 --
286 --
287 --+==========================================================================+
288 --|                                                                          |
289 --| PUBLIC  function                                                         |
290 --|                                                                          |
291 --+==========================================================================+
292 --
293 FUNCTION GetAccountingSourceName (p_accounting_source_code   IN VARCHAR2)
294 RETURN VARCHAR2
295 IS
296 l_name               VARCHAR2(160);
297 l_log_module         VARCHAR2(240);
298 BEGIN
299 --
300 IF g_log_enabled THEN
301       l_log_module := C_DEFAULT_MODULE||'.GetAccountingSourceName';
302 END IF;
303 --
304 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
305       trace
306          (p_msg      => 'BEGIN of GetAccountingSourceName'
307          ,p_level    => C_LEVEL_PROCEDURE
308          ,p_module   => l_log_module);
309 
310       trace
311           (p_msg      => 'p_accounting_source_code = '|| p_accounting_source_code
312          ,p_level    => C_LEVEL_PROCEDURE
313          ,p_module   => l_log_module);
314 
315 END IF;
316 --
317 IF p_accounting_source_code IS NOT NULL THEN
318 
319   SELECT  REPLACE(xast.name ,'''','''''')
320     INTO  l_name
321     FROM  xla_acct_attributes_tl xast
322    WHERE  xast.accounting_attribute_code = p_accounting_source_code
323      AND  xast.language = nvl(USERENV('LANG') ,xast.language)
324      ;
325 --
326 ELSE
327    l_name := NULL;
328 END IF;
329 
330 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
331 
332        trace
333          (p_msg      => 'return value. = '||l_name
334          ,p_level    => C_LEVEL_PROCEDURE
335          ,p_module   => l_log_module);
336 
337        trace
338          (p_msg      => 'END of GetAccountingSourceName'
339          ,p_level    => C_LEVEL_PROCEDURE
340          ,p_module   => l_log_module);
341 
342 END IF;
343 RETURN l_name;
344 
345 EXCEPTION
346  WHEN OTHERS THEN
347     RETURN p_accounting_source_code;
348 END GetAccountingSourceName;
349 --
350 --
351 --+==========================================================================+
352 --|                                                                          |
353 --| PRIVATE  function                                                        |
354 --|                                                                          |
355 --+==========================================================================+
356 --
357 FUNCTION GetMappingSetName (
358   p_mapping_set_code   IN VARCHAR2
359 , p_amb_context_code   IN VARCHAR2
360 )
361 RETURN VARCHAR2
362 IS
363 l_mapping_set_name          VARCHAR2(160);
364 l_log_module                VARCHAR2(240);
365 BEGIN
366 --
367 IF g_log_enabled THEN
368       l_log_module := C_DEFAULT_MODULE||'.GetMappingSetName';
369 END IF;
370 --
371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
372       trace
373          (p_msg      => 'BEGIN of GetMappingSetName'
374          ,p_level    => C_LEVEL_PROCEDURE
375          ,p_module   => l_log_module);
376 
377       trace
378          (p_msg      => 'p_mapping_set_code = '|| p_mapping_set_code
379          ,p_level    => C_LEVEL_PROCEDURE
380          ,p_module   => l_log_module);
381 
382       trace
383           (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
384          ,p_level    => C_LEVEL_PROCEDURE
385          ,p_module   => l_log_module);
386 
387 END IF;
388 --
389 IF p_mapping_set_code  IS NOT NULL THEN
390 
391   SELECT  REPLACE(xmst.name, '''','''''')
392     INTO  l_mapping_set_name
393     FROM  xla_mapping_sets_tl xmst
394    WHERE  xmst.mapping_set_code = p_mapping_set_code
395      AND  xmst.amb_context_code = nvl(p_amb_context_code,xmst.amb_context_code)
396      AND  nvl(xmst.language,USERENV('LANG') ) = USERENV('LANG')
397      ;
398 --
399 ELSE
400   l_mapping_set_name := NULL;
401 END IF;
402 
403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
404 
405        trace
406          (p_msg      => 'return value. = '||l_mapping_set_name
407          ,p_level    => C_LEVEL_PROCEDURE
408          ,p_module   => l_log_module);
409 
410        trace
411          (p_msg      => 'END of GetMappingSetName'
412          ,p_level    => C_LEVEL_PROCEDURE
413          ,p_module   => l_log_module);
414 
415 END IF;
416 
417 RETURN l_mapping_set_name;
418 EXCEPTION
419  WHEN OTHERS THEN
420     RETURN p_mapping_set_code;
421 END GetMappingSetName;
422 --
423 --
424 --+==========================================================================+
425 --|                                                                          |
426 --| Public  function                                                        |
427 --|                                                                          |
428 --+==========================================================================+
429 --
430 FUNCTION GetADRName (
431   p_component_code        IN VARCHAR2
432 , p_component_type_code   IN VARCHAR2
433 , p_component_appl_id     IN INTEGER
434 , p_amb_context_code      IN VARCHAR2
435 )
436 RETURN VARCHAR2
437 IS
438 l_name               VARCHAR2(160);
439 l_log_module         VARCHAR2(240);
440 BEGIN
441 --
442 IF g_log_enabled THEN
443       l_log_module := C_DEFAULT_MODULE||'.GetADRName';
444 END IF;
445 --
446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
447 
448       trace
449          (p_msg      => 'BEGIN of GetADRName'
450          ,p_level    => C_LEVEL_PROCEDURE
451          ,p_module   => l_log_module);
452 
453       trace
454          (p_msg      => 'p_component_code = '|| p_component_code
455          ,p_level    => C_LEVEL_PROCEDURE
456          ,p_module   => l_log_module);
457 
458       trace
459           (p_msg      => 'p_component_type_code = '|| p_component_type_code
460          ,p_level    => C_LEVEL_PROCEDURE
461          ,p_module   => l_log_module);
462 
463       trace
464           (p_msg      => 'p_component_application_id = '|| TO_CHAR(p_component_appl_id)
465          ,p_level    => C_LEVEL_PROCEDURE
466          ,p_module   => l_log_module);
467 
468        trace
469           (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
470          ,p_level    => C_LEVEL_PROCEDURE
471          ,p_module   => l_log_module);
472 
473 END IF;
474 
475 --
476 IF p_component_code IS NOT NULL THEN
477 
478   SELECT  REPLACE(xsrt.name, '''','''''')
479     INTO  l_name
480     FROM  xla_seg_rules_tl       xsrt
481    WHERE  xsrt.application_id             =  p_component_appl_id
482      AND  xsrt.amb_context_code           =  p_amb_context_code
483      AND  xsrt.segment_rule_code          =  p_component_code
484      AND  xsrt.segment_rule_type_code     =  p_component_type_code
485      AND  nvl(xsrt.language,USERENV('LANG') ) = USERENV('LANG')
486      ;
487 --
488 ELSE
489  l_name := NULL;
490 END IF;
491 
492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
493 
494        trace
495          (p_msg      => 'return value. = '||l_name
496          ,p_level    => C_LEVEL_PROCEDURE
497          ,p_module   => l_log_module);
498 
499        trace
500          (p_msg      => 'END of GetADRName'
501          ,p_level    => C_LEVEL_PROCEDURE
502          ,p_module   => l_log_module);
503 
504 END IF;
505 
506 RETURN l_name ;
507 EXCEPTION
508  WHEN OTHERS THEN
509     RETURN p_component_code;
510 END GetADRName;
511 --
512 --
513 --+==========================================================================+
514 --|                                                                          |
515 --| Public  function                                                        |
516 --|                                                                          |
517 --+==========================================================================+
518 --
519 FUNCTION GetDescriptionName (
520   p_component_code        IN VARCHAR2
521 , p_component_type_code   IN VARCHAR2
522 , p_component_appl_id     IN INTEGER
523 , p_amb_context_code      IN VARCHAR2
524 )
525 RETURN VARCHAR2
526 IS
527 l_name               VARCHAR2(160);
528 l_log_module         VARCHAR2(240);
529 BEGIN
530 --
531 IF g_log_enabled THEN
532       l_log_module := C_DEFAULT_MODULE||'.GetDescriptionName';
533 END IF;
534 --
535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
536       trace
537          (p_msg      => 'BEGIN of GetDescriptionName'
538          ,p_level    => C_LEVEL_PROCEDURE
539          ,p_module   => l_log_module);
540       trace
541          (p_msg      => 'p_component_code = '|| p_component_code
542          ,p_level    => C_LEVEL_PROCEDURE
543          ,p_module   => l_log_module);
544 
545       trace
546           (p_msg      => 'p_component_type_code = '|| p_component_type_code
547          ,p_level    => C_LEVEL_PROCEDURE
548          ,p_module   => l_log_module);
549 
550       trace
551           (p_msg      => 'p_component_application_id = '|| TO_CHAR(p_component_appl_id)
552          ,p_level    => C_LEVEL_PROCEDURE
553          ,p_module   => l_log_module);
554 
555        trace
556           (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
557          ,p_level    => C_LEVEL_PROCEDURE
558          ,p_module   => l_log_module);
559 
560 END IF;
561 --
562 --
563 IF p_component_code IS NOT NULL THEN
564 
565   SELECT  REPLACE(xdtl.name, '''','''''')
566     INTO  l_name
567     FROM  xla_descriptions_tl       xdtl
568    WHERE  xdtl.application_id             =  p_component_appl_id
569      AND  xdtl.amb_context_code           =  p_amb_context_code
570      AND  xdtl.description_code           =  p_component_code
571      AND  xdtl.description_type_code      =  p_component_type_code
572      AND  nvl(xdtl.language,USERENV('LANG') ) = USERENV('LANG')
573      ;
574 --
575 ELSE
576  l_name := NULL;
577 END IF;
578 
579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
580 
581        trace
582          (p_msg      => 'return value. = '||l_name
583          ,p_level    => C_LEVEL_PROCEDURE
584          ,p_module   => l_log_module);
585 
586        trace
587          (p_msg      => 'END of GetDescriptionName'
588          ,p_level    => C_LEVEL_PROCEDURE
589          ,p_module   => l_log_module);
590 
591 END IF;
592 RETURN l_name ;
593 EXCEPTION
594  WHEN OTHERS THEN
595     RETURN p_component_code;
596 END GetDescriptionName;
597 --
598 --
599 --+==========================================================================+
600 --|                                                                          |
601 --| Public  function                                                        |
602 --|                                                                          |
603 --+==========================================================================+
604 --
605 FUNCTION GetJLTName (
606   p_component_code        IN VARCHAR2
607 , p_component_type_code   IN VARCHAR2
608 , p_component_appl_id     IN INTEGER
609 , p_amb_context_code      IN VARCHAR2
610 , p_entity_code           IN VARCHAR2
611 , p_event_class_code      IN VARCHAR2
612 )
613 RETURN VARCHAR2
614 IS
615 l_name               VARCHAR2(160);
616 l_log_module         VARCHAR2(240);
617 BEGIN
618 --
619 IF g_log_enabled THEN
620       l_log_module := C_DEFAULT_MODULE||'.GetJLTName';
621 END IF;
622 --
623 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
624       trace
625          (p_msg      => 'BEGIN of GetJLTName'
626          ,p_level    => C_LEVEL_PROCEDURE
627          ,p_module   => l_log_module);
628       trace
629          (p_msg      => 'p_component_code = '|| p_component_code
630          ,p_level    => C_LEVEL_PROCEDURE
631          ,p_module   => l_log_module);
632 
633       trace
634          (p_msg      => 'p_component_type_code = '|| p_component_type_code
635          ,p_level    => C_LEVEL_PROCEDURE
636          ,p_module   => l_log_module);
637 
638       trace
639          (p_msg      => 'p_component_application_id = '|| TO_CHAR(p_component_appl_id)
640          ,p_level    => C_LEVEL_PROCEDURE
641          ,p_module   => l_log_module);
642 
643        trace
644          (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
645          ,p_level    => C_LEVEL_PROCEDURE
646          ,p_module   => l_log_module);
647 
648       trace
649           (p_msg      => 'p_entity_code  = '|| p_entity_code
650           ,p_level    => C_LEVEL_PROCEDURE
651           ,p_module   => l_log_module);
652 
653       trace
654          (p_msg      => 'p_event_class_code  = '|| p_event_class_code
655          ,p_level    => C_LEVEL_PROCEDURE
656          ,p_module   => l_log_module);
657 
658 END IF;
659 --
660 IF p_component_code IS NOT NULL THEN
661 
662   SELECT  REPLACE(xaltt.name, '''','''''')
663     INTO  l_name
664     FROM  xla_acct_line_types_tl       xaltt
665    WHERE  xaltt.application_id                 =  p_component_appl_id
666      AND  xaltt.amb_context_code               =  p_amb_context_code
667      AND  xaltt.entity_code                    =  p_entity_code
668      AND  xaltt.event_class_code               =  p_event_class_code
669      AND  xaltt.accounting_line_code           =  p_component_code
670      AND  xaltt.accounting_line_type_code      =  p_component_type_code
671      AND  nvl(xaltt.language,USERENV('LANG') ) = USERENV('LANG')
672      ;
673 --
674 ELSE
675  l_name := NULL;
676 END IF;
677 
678 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
679 
680        trace
681          (p_msg      => 'return value. = '||l_name
682          ,p_level    => C_LEVEL_PROCEDURE
683          ,p_module   => l_log_module);
684 
685        trace
686          (p_msg      => 'END of GetJLTName'
687          ,p_level    => C_LEVEL_PROCEDURE
688          ,p_module   => l_log_module);
689 
690 END IF;
691 
692 RETURN l_name ;
693 EXCEPTION
694  WHEN OTHERS THEN
695     RETURN p_component_code;
696 END GetJLTName;
697 --
698 --
699 --+==========================================================================+
700 --|                                                                          |
701 --| Public  function                                                        |
702 --|                                                                          |
703 --+==========================================================================+
704 --
705 FUNCTION GetComponentName  (
706   p_component_type        IN VARCHAR2
707 , p_component_code        IN VARCHAR2
708 , p_component_type_code   IN VARCHAR2
709 , p_component_appl_id     IN INTEGER
710 , p_amb_context_code      IN VARCHAR2
711 , p_entity_code           IN VARCHAR2
712 , p_event_class_code      IN VARCHAR2
713 )
714 RETURN VARCHAR2
715 IS
716 l_name               VARCHAR2(80):=NULL;
717 l_log_module         VARCHAR2(240);
718 BEGIN
719 --
720 IF g_log_enabled THEN
721       l_log_module := C_DEFAULT_MODULE||'.GetComponentName';
722 END IF;
723 --
724 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
725       trace
726          (p_msg      => 'BEGIN of GetComponentName'
727          ,p_level    => C_LEVEL_PROCEDURE
728          ,p_module   => l_log_module);
729 
730 END IF;
731 --
732 --
733 IF p_component_code IS NOT NULL THEN
734 --
735 CASE p_component_type
736 --
737 WHEN 'AMB_ADR' THEN
738 --
739     l_name:= GetADRName (
740       p_component_code
741     , p_component_type_code
742     , p_component_appl_id
743     , p_amb_context_code
744     );
745 --
746 WHEN 'AMB_JLT' THEN
747 
748     l_name:= GetJLTName (
749          p_component_code
750        , p_component_type_code
751        , p_component_appl_id
752        , p_amb_context_code
753        , p_entity_code
754        , p_event_class_code
755      );
756 
757 
758 WHEN 'AMB_DESCRIPTION' THEN
759 
760     l_name:= GetADRName (
761       p_component_code
762     , p_component_type_code
763     , p_component_appl_id
764     , p_amb_context_code
765     );
766 --
767 ELSE  null;
768 END CASE;
769 --
770 END IF;
771 
772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
773 
774        trace
775          (p_msg      => 'END of GetComponentName'
776          ,p_level    => C_LEVEL_PROCEDURE
777          ,p_module   => l_log_module);
778 
779 END IF;
780 RETURN l_name ;
781 EXCEPTION
782  WHEN OTHERS THEN
783     RETURN p_component_code;
784 END GetComponentName ;
785 --
786 --
787 /*======================================================================+
788 |                                                                       |
789 | Public Function                                                       |
790 |    GetSystemSourceNum                                                 |
791 |                                                                       |
792 +======================================================================*/
793 FUNCTION GetSystemSourceNum(
794   p_source_code           IN VARCHAR2
795 , p_source_type_code      IN VARCHAR2
796 , p_source_application_id IN NUMBER
797 )
798 RETURN NUMBER
799 IS
800   l_system_value       NUMBER;
801   l_log_module         VARCHAR2(240);
802 BEGIN
803 --
804 IF g_log_enabled THEN
805       l_log_module := C_DEFAULT_MODULE||'.GetSystemSourceNum';
806 END IF;
807 --
808 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
809       trace
810          (p_msg      => 'BEGIN of GetSystemSourceNum'
811          ,p_level    => C_LEVEL_PROCEDURE
812          ,p_module   => l_log_module);
813 
814       trace
815          (p_msg      => 'p_source_code = '|| p_source_code
816          ,p_level    => C_LEVEL_PROCEDURE
817          ,p_module   => l_log_module);
818 
819       trace
820          (p_msg      => 'p_source_type_code = '|| p_source_type_code
821          ,p_level    => C_LEVEL_PROCEDURE
822          ,p_module   => l_log_module);
823 
824       trace
825          (p_msg      => 'p_source_application_id = '|| TO_CHAR(p_source_application_id)
826          ,p_level    => C_LEVEL_PROCEDURE
827          ,p_module   => l_log_module);
828 
829       trace
830          (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueNum API'
831          ,p_level    => C_LEVEL_PROCEDURE
832          ,p_module   => l_log_module);
833 
834       trace
835         (p_msg      => 'END of GetSystemSourceNum'
836          ,p_level    => C_LEVEL_PROCEDURE
837          ,p_module   => l_log_module);
838 END IF;
839 --
840 CASE  p_source_code
841 
842 WHEN 'XLA_LEGAL_ENTITY_ID'        THEN
843 
844   RETURN xla_ae_journal_entry_pkg.g_cache_event.legal_entity_id;
845 
846 WHEN 'XLA_REFERENCE_NUM_1'    THEN
847 
848     RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_num_1;
849 
850 WHEN 'XLA_REFERENCE_NUM_2'    THEN
851 
852    RETURN  xla_ae_journal_entry_pkg.g_cache_event.reference_num_2;
853 
854 WHEN 'XLA_REFERENCE_NUM_3'    THEN
855 
856    RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_num_3;
857 
858 WHEN 'XLA_REFERENCE_NUM_4'    THEN
859 
860    RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_num_4;
861 
862 WHEN 'LATEST_ENCUMBRANCE_YEAR'    THEN
863 
864    RETURN  xla_accounting_cache_pkg.GetValueNum
865           (
866             p_source_code       => p_source_code
867           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
868           );
869 WHEN 'SL_COA_MAPPING_ID' THEN
870 
871    RETURN  xla_accounting_cache_pkg.GetValueNum
872           (
873             p_source_code       => p_source_code
874           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
875           );
876 
877 WHEN 'SLA_LEDGER_ID' THEN
878 
879    RETURN  xla_accounting_cache_pkg.GetValueNum
880           (
881             p_source_code       => p_source_code
882           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
883           );
884 
885 WHEN 'XLA_COA_ID' THEN
886 
887    RETURN  xla_accounting_cache_pkg.GetValueNum
888           (
889             p_source_code       => p_source_code
890           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
891           );
892 
893 WHEN 'XLA_CURRENCY_PRECISION' THEN
894 
895    RETURN  xla_accounting_cache_pkg.GetValueNum
896           (
897             p_source_code       => p_source_code
898           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
899           );
900 
901 WHEN 'XLA_ENTERED_CUR_BAL_SUS_CCID' THEN
902 
903    RETURN  xla_accounting_cache_pkg.GetValueNum
904           (
905             p_source_code       => p_source_code
906           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
907           );
908 
909 WHEN 'XLA_ENTRY_CREATED_BY' THEN
910 
911    RETURN  xla_accounting_cache_pkg.GetValueNum
912           (
913             p_source_code       => p_source_code
914           );
915 
916 WHEN 'XLA_EVENT_APPL_ID' THEN
917 
918    RETURN  xla_accounting_cache_pkg.GetValueNum
919           (
920             p_source_code       => p_source_code
921           );
922 
923 WHEN 'XLA_LEDGER_CUR_BAL_SUS_CCID' THEN
924 
925    RETURN  xla_accounting_cache_pkg.GetValueNum
926           (
927             p_source_code       => p_source_code
928           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
929           );
930   --
931 ELSE
932 
933    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
934    xla_accounting_err_pkg.build_message
935                              (p_appli_s_name            => 'XLA'
936                              ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
937                              ,p_token_1                 => 'SOURCE_NAME'
938                              ,p_value_1                 => GetSourceName(
939                                                            p_source_code
940                                                          , p_source_type_code
941                                                          , p_source_application_id
942                                                          )
943                              ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
944                              ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
945                              ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
946          );
947 
948     IF (C_LEVEL_ERROR >= g_log_level) THEN
949               trace
950                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
951                    ,p_level    => C_LEVEL_ERROR
952                    ,p_module   => l_log_module);
953     END IF;
954     RETURN NULL;
955 
956 END CASE;
957 --
958 EXCEPTION
959 WHEN xla_exceptions_pkg.application_exception THEN
960    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
961    xla_accounting_err_pkg.build_message
962                                (p_appli_s_name            => 'XLA'
963                                ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
964                                ,p_token_1                 => 'SOURCE_NAME'
965                                ,p_value_1                 =>GetSourceName(
966                                                            p_source_code
967                                                          , p_source_type_code
968                                                          , p_source_application_id
969                                                          )
970                                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
971                                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
972                                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
973            );
974 
975     IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
976               trace
977                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
978                    ,p_level    => C_LEVEL_EXCEPTION
979                    ,p_module   => l_log_module);
980     END IF;
981 
982     RETURN NULL;
983 WHEN OTHERS  THEN
984    xla_exceptions_pkg.raise_message
985            (p_location => 'xla_ae_sources_pkg.GetSystemSourceNum');
986        --
987 END GetSystemSourceNum;
988 --
989 /*======================================================================+
990 |                                                                       |
991 | Public Function                                                       |
992 |                                                                       |
993 |                                                                       |
994 +======================================================================*/
995 FUNCTION GetSystemSourceDate(
996   p_source_code           IN VARCHAR2
997 , p_source_type_code      IN VARCHAR2
998 , p_source_application_id IN NUMBER
999 )
1000 RETURN DATE
1001 IS
1002 l_system_value       DATE;
1003 l_log_module         VARCHAR2(240);
1004 BEGIN
1005 --
1006 IF g_log_enabled THEN
1007       l_log_module := C_DEFAULT_MODULE||'.GetSystemSourceDate';
1008 END IF;
1009 --
1010 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1011       trace
1012          (p_msg      => 'BEGIN of GetSystemSourceDate'
1013          ,p_level    => C_LEVEL_PROCEDURE
1014          ,p_module   => l_log_module);
1015 
1016       trace
1017          (p_msg      => 'p_source_code = '|| p_source_code
1018          ,p_level    => C_LEVEL_PROCEDURE
1019          ,p_module   => l_log_module);
1020 
1021       trace
1022          (p_msg      => 'p_source_type_code = '|| p_source_type_code
1023          ,p_level    => C_LEVEL_PROCEDURE
1024          ,p_module   => l_log_module);
1025 
1026       trace
1027          (p_msg      => 'p_source_application_id = '|| TO_CHAR(p_source_application_id)
1028          ,p_level    => C_LEVEL_PROCEDURE
1029          ,p_module   => l_log_module);
1030 
1031       trace
1032         (p_msg      => 'END of GetSystemSourceDate'
1033          ,p_level    => C_LEVEL_PROCEDURE
1034          ,p_module   => l_log_module);
1035 END IF;
1036 --
1037 CASE  p_source_code
1038 
1039 WHEN 'XLA_EVENT_DATE'          THEN
1040 
1041    RETURN  xla_ae_journal_entry_pkg.g_cache_event.event_date;
1042 
1043 WHEN 'XLA_TRANSACTION_DATE'          THEN
1044 
1045    RETURN  xla_ae_journal_entry_pkg.g_cache_event.transaction_date;
1046 
1047 WHEN 'XLA_REFERENCE_DATE_1'    THEN
1048 
1049    RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_date_1;
1050 
1051 WHEN 'XLA_REFERENCE_DATE_2'    THEN
1052 
1053    RETURN  xla_ae_journal_entry_pkg.g_cache_event.reference_date_2;
1054 
1055 WHEN 'XLA_REFERENCE_DATE_3'    THEN
1056 
1057    RETURN  xla_ae_journal_entry_pkg.g_cache_event.reference_date_3;
1058 
1059 WHEN 'XLA_REFERENCE_DATE_4'    THEN
1060 
1061   RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_date_4;
1062 
1063 WHEN 'XLA_CREATION_DATE'    THEN
1064 
1065   RETURN xla_accounting_cache_pkg.GetValueDate
1066           (
1067             p_source_code     => p_source_code
1068           );
1069 ELSE
1070 
1071   xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1072   xla_accounting_err_pkg.build_message
1073                              (p_appli_s_name            => 'XLA'
1074                              ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
1075                              ,p_token_1                 => 'SOURCE_NAME'
1076                              ,p_value_1                 => GetSourceName(
1077                                                            p_source_code
1078                                                          , p_source_type_code
1079                                                          , p_source_application_id
1080                                                          )
1081                              ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1082                              ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1083                              ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1084            );
1085 
1086     IF (C_LEVEL_ERROR >= g_log_level) THEN
1087               trace
1088                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
1089                    ,p_level    => C_LEVEL_ERROR
1090                    ,p_module   => l_log_module);
1091     END IF;
1092 
1093    RETURN NULL;
1094 
1095 END CASE;
1096 
1097 EXCEPTION
1098 WHEN xla_exceptions_pkg.application_exception THEN
1099    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
1100    xla_accounting_err_pkg.build_message
1101                                (p_appli_s_name            => 'XLA'
1102                                ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
1103                                ,p_token_1                 => 'SOURCE_NAME'
1104                                ,p_value_1                 => GetSourceName(
1105                                                            p_source_code
1106                                                          , p_source_type_code
1107                                                          , p_source_application_id
1108                                                          )
1109                                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1110                                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
1111                                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1112            );
1113 
1114     IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1115               trace
1116                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
1117                    ,p_level    => C_LEVEL_EXCEPTION
1118                    ,p_module   => l_log_module);
1119     END IF;
1120 
1121     RETURN NULL;
1122 WHEN OTHERS  THEN
1123    xla_exceptions_pkg.raise_message
1124            (p_location => 'xla_ae_sources_pkg.GetSystemSourceDate');
1125        --
1126 END GetSystemSourceDate;
1127 --
1128 /*======================================================================+
1129 |                                                                       |
1130 | Public Function                                                       |
1131 |    GetSystemSourceChar                                                |
1132 |                                                                       |
1133 +======================================================================*/
1134 FUNCTION GetSystemSourceChar(
1135   p_source_code           IN VARCHAR2
1136 , p_source_type_code      IN VARCHAR2
1137 , p_source_application_id IN NUMBER
1138                            )
1139 RETURN VARCHAR2
1140 IS
1141 l_closing_status       VARCHAR2(1);
1142 l_system_value         VARCHAR2(4000);
1143 l_log_module           VARCHAR2(240);
1144 BEGIN
1145 --
1146 IF g_log_enabled THEN
1147       l_log_module := C_DEFAULT_MODULE||'.GetSystemSourceChar';
1148 END IF;
1149 --
1150 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1151       trace
1152          (p_msg      => 'BEGIN of GetSystemSourceChar'
1153          ,p_level    => C_LEVEL_PROCEDURE
1154          ,p_module   => l_log_module);
1155 
1156       trace
1157          (p_msg      => 'p_source_code = '|| p_source_code
1158          ,p_level    => C_LEVEL_PROCEDURE
1159          ,p_module   => l_log_module);
1160 
1161       trace
1162          (p_msg      => 'p_source_type_code = '|| p_source_type_code
1163          ,p_level    => C_LEVEL_PROCEDURE
1164          ,p_module   => l_log_module);
1165 
1166       trace
1167          (p_msg      => 'p_source_application_id = '|| TO_CHAR(p_source_application_id)
1168          ,p_level    => C_LEVEL_PROCEDURE
1169          ,p_module   => l_log_module);
1170 
1171 END IF;
1172 --
1173 CASE  p_source_code
1174 
1175 WHEN 'XLA_JE_CATEGORY_NAME'                THEN
1176 
1177   l_system_value := xla_accounting_cache_pkg.get_je_category(
1178                p_ledger_id        => xla_ae_journal_entry_pkg.g_cache_event.base_ledger_id
1179               ,p_event_class_code => xla_ae_journal_entry_pkg.g_cache_event.event_class
1180              );
1181 
1182   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1183 
1184         trace
1185          (p_msg      => '-> CALL xla_accounting_cache_pkg.get_je_category API'
1186          ,p_level    => C_LEVEL_PROCEDURE
1187          ,p_module   => l_log_module);
1188 
1189         trace
1190            (p_msg      => 'return value. = '||l_system_value
1191            ,p_level    => C_LEVEL_PROCEDURE
1192            ,p_module   => l_log_module);
1193 
1194         trace
1195           (p_msg      => 'END of GetSystemSourceChar'
1196           ,p_level    => C_LEVEL_PROCEDURE
1197           ,p_module   => l_log_module);
1198   END IF;
1199   RETURN l_system_value ;
1200 
1201 WHEN 'ALLOW_INTERCOMPANY_POST_FLAG'        THEN
1202 
1203   l_system_value := xla_accounting_cache_pkg.GetValueChar
1204           (
1205             p_source_code       => p_source_code
1206           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1207           );
1208 
1209   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1210 
1211         trace
1212            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1213            ,p_level    => C_LEVEL_PROCEDURE
1214            ,p_module   => l_log_module);
1215 
1216         trace
1217            (p_msg      => 'return value. = '||l_system_value
1218            ,p_level    => C_LEVEL_PROCEDURE
1219            ,p_module   => l_log_module);
1220 
1221         trace
1222           (p_msg      => 'END of GetSystemSourceChar'
1223           ,p_level    => C_LEVEL_PROCEDURE
1224           ,p_module   => l_log_module);
1225   END IF;
1226   RETURN l_system_value ;
1227 
1228    WHEN 'EFFECTIVE_DATE_RULE_CODE'        THEN
1229 
1230    l_system_value := xla_accounting_cache_pkg.GetValueChar
1231            (
1232              p_source_code       => p_source_code
1233            , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1234            );
1235 
1236    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1237 
1238          trace
1239             (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1240             ,p_level    => C_LEVEL_PROCEDURE
1241             ,p_module   => l_log_module);
1242 
1243          trace
1244             (p_msg      => 'return value. = '||l_system_value
1245             ,p_level    => C_LEVEL_PROCEDURE
1246             ,p_module   => l_log_module);
1247 
1248          trace
1249            (p_msg      => 'END of GetSystemSourceChar'
1250            ,p_level    => C_LEVEL_PROCEDURE
1251            ,p_module   => l_log_module);
1252    END IF;
1253    RETURN l_system_value ;
1254 
1255 WHEN 'BAL_SEG_COLUMN_NAME '        THEN
1256 
1257   l_system_value := xla_accounting_cache_pkg.GetValueChar
1258           (
1259             p_source_code       => p_source_code
1260           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1261           );
1262 
1263   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1264 
1265         trace
1266            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1267            ,p_level    => C_LEVEL_PROCEDURE
1268            ,p_module   => l_log_module);
1269 
1270         trace
1271            (p_msg      => 'return value. = '||l_system_value
1272            ,p_level    => C_LEVEL_PROCEDURE
1273            ,p_module   => l_log_module);
1274 
1275         trace
1276           (p_msg      => 'END of GetSystemSourceChar'
1277           ,p_level    => C_LEVEL_PROCEDURE
1278           ,p_module   => l_log_module);
1279   END IF;
1280   RETURN l_system_value ;
1281 
1282 WHEN 'BAL_SEG_VALUE_OPTION_CODE'        THEN
1283 
1284   l_system_value := xla_accounting_cache_pkg.GetValueChar
1285           (
1286             p_source_code       => p_source_code
1287           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1288           );
1289 
1290   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1291 
1292         trace
1293            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1294            ,p_level    => C_LEVEL_PROCEDURE
1295            ,p_module   => l_log_module);
1296 
1297         trace
1298            (p_msg      => 'return value. = '||l_system_value
1299            ,p_level    => C_LEVEL_PROCEDURE
1300            ,p_module   => l_log_module);
1301 
1302         trace
1303           (p_msg      => 'END of GetSystemSourceChar'
1304           ,p_level    => C_LEVEL_PROCEDURE
1305           ,p_module   => l_log_module);
1306   END IF;
1307   RETURN l_system_value ;
1308 
1309 WHEN 'CONTROL_ACCOUNT_ENABLED_FLAG'        THEN
1310 
1311   l_system_value := xla_accounting_cache_pkg.GetValueChar
1312           (
1313             p_source_code       => p_source_code
1314           );
1315 
1316   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1317 
1318         trace
1319            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1320            ,p_level    => C_LEVEL_PROCEDURE
1321            ,p_module   => l_log_module);
1322 
1323         trace
1324            (p_msg      => 'return value. = '||l_system_value
1325            ,p_level    => C_LEVEL_PROCEDURE
1326            ,p_module   => l_log_module);
1327 
1328         trace
1329           (p_msg      => 'END of GetSystemSourceChar'
1330           ,p_level    => C_LEVEL_PROCEDURE
1331           ,p_module   => l_log_module);
1332   END IF;
1333   RETURN l_system_value ;
1334 
1335 WHEN 'GL_COA_MAPPING_NAME'        THEN
1336 
1337   l_system_value := xla_accounting_cache_pkg.GetValueChar
1338           (
1339             p_source_code       => p_source_code
1340           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1341            );
1342 
1343   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1344 
1345         trace
1346            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1347            ,p_level    => C_LEVEL_PROCEDURE
1348            ,p_module   => l_log_module);
1349 
1350         trace
1351            (p_msg      => 'return value. = '||l_system_value
1352            ,p_level    => C_LEVEL_PROCEDURE
1353            ,p_module   => l_log_module);
1354 
1355         trace
1356           (p_msg      => 'END of GetSystemSourceChar'
1357           ,p_level    => C_LEVEL_PROCEDURE
1358           ,p_module   => l_log_module);
1359   END IF;
1360   RETURN l_system_value ;
1361 
1362 WHEN 'LEDGER_CATEGORY_CODE'        THEN
1363 
1364   l_system_value := xla_accounting_cache_pkg.GetValueChar
1365           (
1366             p_source_code       => p_source_code
1367           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1368            );
1369 
1370   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1371 
1372         trace
1373            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1374            ,p_level    => C_LEVEL_PROCEDURE
1375            ,p_module   => l_log_module);
1376 
1377         trace
1378            (p_msg      => 'return value. = '||l_system_value
1379            ,p_level    => C_LEVEL_PROCEDURE
1380            ,p_module   => l_log_module);
1381 
1382         trace
1383           (p_msg      => 'END of GetSystemSourceChar'
1384           ,p_level    => C_LEVEL_PROCEDURE
1385           ,p_module   => l_log_module);
1386   END IF;
1387   RETURN l_system_value ;
1388 
1389 WHEN 'MGT_SEG_COLUMN_NAME'        THEN
1390 
1391   l_system_value := xla_accounting_cache_pkg.GetValueChar
1392           (
1393             p_source_code       => p_source_code
1394           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1395            );
1396 
1397   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1398 
1399         trace
1400            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1401            ,p_level    => C_LEVEL_PROCEDURE
1402            ,p_module   => l_log_module);
1403 
1404         trace
1405            (p_msg      => 'return value. = '||l_system_value
1406            ,p_level    => C_LEVEL_PROCEDURE
1407            ,p_module   => l_log_module);
1408 
1409         trace
1410           (p_msg      => 'END of GetSystemSourceChar'
1411           ,p_level    => C_LEVEL_PROCEDURE
1412           ,p_module   => l_log_module);
1413   END IF;
1414   RETURN l_system_value ;
1415 
1416 WHEN 'MGT_SEG_VALUE_OPTION_CODE'        THEN
1417 
1418   l_system_value := xla_accounting_cache_pkg.GetValueChar
1419           (
1420             p_source_code       => p_source_code
1421           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1422            );
1423 
1424   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1425 
1426         trace
1427            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1428            ,p_level    => C_LEVEL_PROCEDURE
1429            ,p_module   => l_log_module);
1430 
1431         trace
1432            (p_msg      => 'return value. = '||l_system_value
1433            ,p_level    => C_LEVEL_PROCEDURE
1434            ,p_module   => l_log_module);
1435 
1436         trace
1437           (p_msg      => 'END of GetSystemSourceChar'
1438           ,p_level    => C_LEVEL_PROCEDURE
1439           ,p_module   => l_log_module);
1440   END IF;
1441   RETURN l_system_value ;
1442 
1443 WHEN 'SLA_BAL_BY_LEDGER_CURR_FLAG'        THEN
1444 
1445   l_system_value := xla_accounting_cache_pkg.GetValueChar
1446           (
1447             p_source_code       => p_source_code
1448           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1449            );
1450 
1451   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1452 
1453         trace
1454            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1455            ,p_level    => C_LEVEL_PROCEDURE
1456            ,p_module   => l_log_module);
1457 
1458         trace
1459            (p_msg      => 'return value. = '||l_system_value
1460            ,p_level    => C_LEVEL_PROCEDURE
1461            ,p_module   => l_log_module);
1462 
1463         trace
1464           (p_msg      => 'END of GetSystemSourceChar'
1465           ,p_level    => C_LEVEL_PROCEDURE
1466           ,p_module   => l_log_module);
1467   END IF;
1468   RETURN l_system_value ;
1469 
1470 WHEN 'VALUATION_METHOD_FLAG'        THEN
1471 
1472   l_system_value := xla_accounting_cache_pkg.GetValueChar
1473           (
1474             p_source_code       => p_source_code
1475            );
1476 
1477   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1478 
1479         trace
1480            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1481            ,p_level    => C_LEVEL_PROCEDURE
1482            ,p_module   => l_log_module);
1483 
1484         trace
1485            (p_msg      => 'return value. = '||l_system_value
1486            ,p_level    => C_LEVEL_PROCEDURE
1487            ,p_module   => l_log_module);
1488 
1489         trace
1490           (p_msg      => 'END of GetSystemSourceChar'
1491           ,p_level    => C_LEVEL_PROCEDURE
1492           ,p_module   => l_log_module);
1493   END IF;
1494   RETURN l_system_value ;
1495 
1496 WHEN 'XLA_ACCOUNTING_METHOD_NAME'        THEN
1497 
1498   l_system_value := xla_accounting_cache_pkg.GetValueChar
1499           (
1500             p_source_code       => p_source_code
1501           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1502            );
1503 
1504   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1505 
1506         trace
1507            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1508            ,p_level    => C_LEVEL_PROCEDURE
1509            ,p_module   => l_log_module);
1510 
1511         trace
1512            (p_msg      => 'return value. = '||l_system_value
1513            ,p_level    => C_LEVEL_PROCEDURE
1514            ,p_module   => l_log_module);
1515 
1516         trace
1517           (p_msg      => 'END of GetSystemSourceChar'
1518           ,p_level    => C_LEVEL_PROCEDURE
1519           ,p_module   => l_log_module);
1520   END IF;
1521   RETURN l_system_value ;
1522 
1523 WHEN 'XLA_ACCOUNTING_METHOD_OWNER'        THEN
1524 
1525   l_system_value := xla_accounting_cache_pkg.GetValueChar
1526           (
1527             p_source_code       => p_source_code
1528           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1529            );
1530 
1531   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1532 
1533         trace
1534            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1535            ,p_level    => C_LEVEL_PROCEDURE
1536            ,p_module   => l_log_module);
1537 
1538         trace
1539            (p_msg      => 'return value. = '||l_system_value
1540            ,p_level    => C_LEVEL_PROCEDURE
1541            ,p_module   => l_log_module);
1542 
1543         trace
1544           (p_msg      => 'END of GetSystemSourceChar'
1545           ,p_level    => C_LEVEL_PROCEDURE
1546           ,p_module   => l_log_module);
1547   END IF;
1548   RETURN l_system_value ;
1549 
1550 WHEN 'XLA_ACCT_REVERSAL_OPTION'        THEN
1551 
1552   l_system_value := xla_accounting_cache_pkg.GetValueChar
1553           (
1554             p_source_code       => p_source_code
1555           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1556            );
1557 
1558   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1559 
1560         trace
1561            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1562            ,p_level    => C_LEVEL_PROCEDURE
1563            ,p_module   => l_log_module);
1564 
1565         trace
1566            (p_msg      => 'return value. = '||l_system_value
1567            ,p_level    => C_LEVEL_PROCEDURE
1568            ,p_module   => l_log_module);
1569 
1570         trace
1571           (p_msg      => 'END of GetSystemSourceChar'
1572           ,p_level    => C_LEVEL_PROCEDURE
1573           ,p_module   => l_log_module);
1574   END IF;
1575   RETURN l_system_value ;
1576 
1577 WHEN 'XLA_COA_NAME'        THEN
1578 
1579   l_system_value := xla_accounting_cache_pkg.GetValueChar
1580           (
1581             p_source_code       => p_source_code
1582           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1583            );
1584 
1585   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1586 
1587         trace
1588            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1589            ,p_level    => C_LEVEL_PROCEDURE
1590            ,p_module   => l_log_module);
1591 
1592         trace
1593            (p_msg      => 'return value. = '||l_system_value
1594            ,p_level    => C_LEVEL_PROCEDURE
1595            ,p_module   => l_log_module);
1596 
1597         trace
1598           (p_msg      => 'END of GetSystemSourceChar'
1599           ,p_level    => C_LEVEL_PROCEDURE
1600           ,p_module   => l_log_module);
1601   END IF;
1602   RETURN l_system_value ;
1603 
1604 WHEN 'XLA_CURRENCY_CODE'        THEN
1605 
1606   l_system_value := xla_accounting_cache_pkg.GetValueChar
1607           (
1608             p_source_code       => p_source_code
1609           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1610            );
1611 
1612   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1613 
1614         trace
1615            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1616            ,p_level    => C_LEVEL_PROCEDURE
1617            ,p_module   => l_log_module);
1618 
1619         trace
1620            (p_msg      => 'return value. = '||l_system_value
1621            ,p_level    => C_LEVEL_PROCEDURE
1622            ,p_module   => l_log_module);
1623 
1624         trace
1625           (p_msg      => 'END of GetSystemSourceChar'
1626           ,p_level    => C_LEVEL_PROCEDURE
1627           ,p_module   => l_log_module);
1628   END IF;
1629   RETURN l_system_value ;
1630 
1631 WHEN 'XLA_DESCRIPTION_LANGUAGE'        THEN
1632 
1633   l_system_value := xla_accounting_cache_pkg.GetValueChar
1634           (
1635             p_source_code       => p_source_code
1636           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1637            );
1638 
1639   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1640 
1641         trace
1642            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1643            ,p_level    => C_LEVEL_PROCEDURE
1644            ,p_module   => l_log_module);
1645 
1646         trace
1647            (p_msg      => 'return value. = '||l_system_value
1648            ,p_level    => C_LEVEL_PROCEDURE
1649            ,p_module   => l_log_module);
1650 
1651         trace
1652           (p_msg      => 'END of GetSystemSourceChar'
1653           ,p_level    => C_LEVEL_PROCEDURE
1654           ,p_module   => l_log_module);
1655   END IF;
1656   RETURN l_system_value ;
1657 
1658 WHEN 'XLA_ENTITY_CODE' THEN
1659 
1660   l_system_value := xla_ae_journal_entry_pkg.g_cache_event.entity_code;
1661 
1662   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1663 
1664         trace
1665            (p_msg      => 'return value. = '||l_system_value
1666            ,p_level    => C_LEVEL_PROCEDURE
1667            ,p_module   => l_log_module);
1668 
1669         trace
1670           (p_msg      => 'END of GetSystemSourceChar'
1671           ,p_level    => C_LEVEL_PROCEDURE
1672           ,p_module   => l_log_module);
1673   END IF;
1674   RETURN l_system_value ;
1675 
1676 WHEN 'XLA_EVENT_APPL_NAME'        THEN
1677 
1678   l_system_value := xla_accounting_cache_pkg.GetValueChar
1679           (
1680             p_source_code       => p_source_code
1681           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1682            );
1683 
1684   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1685 
1686         trace
1687            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1688            ,p_level    => C_LEVEL_PROCEDURE
1689            ,p_module   => l_log_module);
1690 
1691         trace
1692            (p_msg      => 'return value. = '||l_system_value
1693            ,p_level    => C_LEVEL_PROCEDURE
1694            ,p_module   => l_log_module);
1695 
1696         trace
1697           (p_msg      => 'END of GetSystemSourceChar'
1698           ,p_level    => C_LEVEL_PROCEDURE
1699           ,p_module   => l_log_module);
1700   END IF;
1701   RETURN l_system_value ;
1702 
1703 WHEN 'XLA_EVENT_APPL_SHORT_NAME'        THEN
1704 
1705   l_system_value := xla_accounting_cache_pkg.GetValueChar
1706           (
1707             p_source_code       => p_source_code
1708            );
1709 
1710   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1711 
1712         trace
1713            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1714            ,p_level    => C_LEVEL_PROCEDURE
1715            ,p_module   => l_log_module);
1716 
1717         trace
1718            (p_msg      => 'return value. = '||l_system_value
1719            ,p_level    => C_LEVEL_PROCEDURE
1720            ,p_module   => l_log_module);
1721 
1722         trace
1723           (p_msg      => 'END of GetSystemSourceChar'
1724           ,p_level    => C_LEVEL_PROCEDURE
1725           ,p_module   => l_log_module);
1726   END IF;
1727   RETURN l_system_value ;
1728 
1729 WHEN 'XLA_EVENT_CLASS_CODE' THEN
1730 
1731   l_system_value := xla_ae_journal_entry_pkg.g_cache_event.event_class;
1732 
1733   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1734 
1735         trace
1736            (p_msg      => 'return value. = '||l_system_value
1737            ,p_level    => C_LEVEL_PROCEDURE
1738            ,p_module   => l_log_module);
1739 
1740         trace
1741           (p_msg      => 'END of GetSystemSourceChar'
1742           ,p_level    => C_LEVEL_PROCEDURE
1743           ,p_module   => l_log_module);
1744   END IF;
1745   RETURN l_system_value ;
1746 
1747 WHEN 'XLA_EVENT_CLASS_NAME' THEN
1748 
1749   l_system_value :=xla_ae_journal_entry_pkg.g_cache_event_tl.event_class_name;
1750   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1751 
1752         trace
1753            (p_msg      => 'return value. = '||l_system_value
1754            ,p_level    => C_LEVEL_PROCEDURE
1755            ,p_module   => l_log_module);
1756 
1757         trace
1758           (p_msg      => 'END of GetSystemSourceChar'
1759           ,p_level    => C_LEVEL_PROCEDURE
1760           ,p_module   => l_log_module);
1761   END IF;
1762   RETURN l_system_value ;
1763 
1764 
1765 WHEN 'XLA_EVENT_CREATED_BY'        THEN
1766 
1767   l_system_value := xla_ae_journal_entry_pkg.g_cache_event.event_created_by;
1768   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1769 
1770         trace
1771            (p_msg      => 'return value. = '||l_system_value
1772            ,p_level    => C_LEVEL_PROCEDURE
1773            ,p_module   => l_log_module);
1774 
1775         trace
1776           (p_msg      => 'END of GetSystemSourceChar'
1777           ,p_level    => C_LEVEL_PROCEDURE
1778           ,p_module   => l_log_module);
1779   END IF;
1780   RETURN l_system_value ;
1781 
1782 WHEN 'XLA_EVENT_TYPE_CODE'        THEN
1783 
1784   l_system_value := xla_ae_journal_entry_pkg.g_cache_event.event_type;
1785   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1786 
1787         trace
1788            (p_msg      => 'return value. = '||l_system_value
1789            ,p_level    => C_LEVEL_PROCEDURE
1790            ,p_module   => l_log_module);
1791 
1792         trace
1793           (p_msg      => 'END of GetSystemSourceChar'
1794           ,p_level    => C_LEVEL_PROCEDURE
1795           ,p_module   => l_log_module);
1796   END IF;
1797   RETURN l_system_value ;
1798 --
1799 WHEN 'XLA_EVENT_TYPE_NAME'        THEN
1800 
1801   l_system_value := xla_ae_journal_entry_pkg.g_cache_event_tl.event_type_name;
1802   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1803 
1804         trace
1805            (p_msg      => 'return value. = '||l_system_value
1806            ,p_level    => C_LEVEL_PROCEDURE
1807            ,p_module   => l_log_module);
1808 
1809         trace
1810           (p_msg      => 'END of GetSystemSourceChar'
1811           ,p_level    => C_LEVEL_PROCEDURE
1812           ,p_module   => l_log_module);
1813   END IF;
1814   RETURN l_system_value ;
1815 
1816 WHEN 'XLA_JE_SOURCE_NAME'        THEN
1817 
1818   l_system_value := xla_accounting_cache_pkg.GetValueChar
1819           (
1820             p_source_code       => p_source_code
1821            );
1822 
1823   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1824 
1825         trace
1826            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1827            ,p_level    => C_LEVEL_PROCEDURE
1828            ,p_module   => l_log_module);
1829 
1830         trace
1831            (p_msg      => 'return value. = '||l_system_value
1832            ,p_level    => C_LEVEL_PROCEDURE
1833            ,p_module   => l_log_module);
1834 
1835         trace
1836           (p_msg      => 'END of GetSystemSourceChar'
1837           ,p_level    => C_LEVEL_PROCEDURE
1838           ,p_module   => l_log_module);
1839   END IF;
1840   RETURN l_system_value ;
1841 
1842 WHEN 'XLA_LEDGER_NAME'        THEN
1843 
1844   l_system_value := xla_accounting_cache_pkg.GetValueChar
1845           (
1846             p_source_code       => p_source_code
1847           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1848            );
1849 
1850   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1851 
1852         trace
1853            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1854            ,p_level    => C_LEVEL_PROCEDURE
1855            ,p_module   => l_log_module);
1856 
1857         trace
1858            (p_msg      => 'return value. = '||l_system_value
1859            ,p_level    => C_LEVEL_PROCEDURE
1860            ,p_module   => l_log_module);
1861 
1862         trace
1863           (p_msg      => 'END of GetSystemSourceChar'
1864           ,p_level    => C_LEVEL_PROCEDURE
1865           ,p_module   => l_log_module);
1866   END IF;
1867   RETURN l_system_value ;
1868 
1869 WHEN 'XLA_NLS_DESC_LANGUAGE'        THEN
1870 
1871   l_system_value := xla_accounting_cache_pkg.GetValueChar
1872           (
1873             p_source_code       => p_source_code
1874           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1875            );
1876 
1877   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1878 
1879         trace
1880            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
1881            ,p_level    => C_LEVEL_PROCEDURE
1882            ,p_module   => l_log_module);
1883 
1884         trace
1885            (p_msg      => 'return value. = '||l_system_value
1886            ,p_level    => C_LEVEL_PROCEDURE
1887            ,p_module   => l_log_module);
1888 
1889         trace
1890           (p_msg      => 'END of GetSystemSourceChar'
1891           ,p_level    => C_LEVEL_PROCEDURE
1892           ,p_module   => l_log_module);
1893   END IF;
1894   RETURN l_system_value ;
1895 
1896 WHEN 'XLA_PAD_CODE'        THEN
1897 
1898   l_system_value := xla_ae_journal_entry_pkg.g_cache_pad.product_rule_code;
1899 
1900   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1901 
1902         trace
1903            (p_msg      => 'return value. = '||l_system_value
1904            ,p_level    => C_LEVEL_PROCEDURE
1905            ,p_module   => l_log_module);
1906 
1907         trace
1908           (p_msg      => 'END of GetSystemSourceChar'
1909           ,p_level    => C_LEVEL_PROCEDURE
1910           ,p_module   => l_log_module);
1911   END IF;
1912   RETURN l_system_value ;
1913 
1914 WHEN 'XLA_PAD_COMPILE_STATUS'        THEN
1915 
1916   l_system_value := xla_ae_journal_entry_pkg.g_cache_pad.pad_compile_status;
1917 
1918   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1919 
1920         trace
1921            (p_msg      => 'return value. = '||l_system_value
1922            ,p_level    => C_LEVEL_PROCEDURE
1923            ,p_module   => l_log_module);
1924 
1925         trace
1926           (p_msg      => 'END of GetSystemSourceChar'
1927           ,p_level    => C_LEVEL_PROCEDURE
1928           ,p_module   => l_log_module);
1929   END IF;
1930   RETURN l_system_value ;
1931 
1932 
1933 WHEN 'XLA_PAD_NAME'        THEN
1934 
1935   l_system_value :=xla_ae_journal_entry_pkg.g_cache_pad.product_rule_name;
1936   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1937 
1938         trace
1939            (p_msg      => 'return value. = '||l_system_value
1940            ,p_level    => C_LEVEL_PROCEDURE
1941            ,p_module   => l_log_module);
1942 
1943         trace
1944           (p_msg      => 'END of GetSystemSourceChar'
1945           ,p_level    => C_LEVEL_PROCEDURE
1946           ,p_module   => l_log_module);
1947   END IF;
1948   RETURN l_system_value ;
1949 
1950 
1951 WHEN 'XLA_PAD_OWNER'        THEN
1952 
1953   l_system_value := xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code;
1954   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1955 
1956         trace
1957            (p_msg      => 'return value. = '||l_system_value
1958            ,p_level    => C_LEVEL_PROCEDURE
1959            ,p_module   => l_log_module);
1960 
1961         trace
1962           (p_msg      => 'END of GetSystemSourceChar'
1963           ,p_level    => C_LEVEL_PROCEDURE
1964           ,p_module   => l_log_module);
1965   END IF;
1966   RETURN l_system_value ;
1967 
1968 WHEN 'XLA_PAD_PACKAGE_NAME'        THEN
1969 
1970   l_system_value := xla_ae_journal_entry_pkg.g_cache_pad.pad_package_name;
1971   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1972 
1973         trace
1974            (p_msg      => 'return value. = '||l_system_value
1975            ,p_level    => C_LEVEL_PROCEDURE
1976            ,p_module   => l_log_module);
1977 
1978         trace
1979           (p_msg      => 'END of GetSystemSourceChar'
1980           ,p_level    => C_LEVEL_PROCEDURE
1981           ,p_module   => l_log_module);
1982   END IF;
1983   RETURN l_system_value ;
1984 
1985 WHEN 'XLA_PAD_VERSION'        THEN
1986 
1987   l_system_value := xla_ae_journal_entry_pkg.g_cache_pad.product_rule_version;
1988   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1989 
1990         trace
1991            (p_msg      => 'return value. = '||l_system_value
1992            ,p_level    => C_LEVEL_PROCEDURE
1993            ,p_module   => l_log_module);
1994 
1995         trace
1996           (p_msg      => 'END of GetSystemSourceChar'
1997           ,p_level    => C_LEVEL_PROCEDURE
1998           ,p_module   => l_log_module);
1999   END IF;
2000   RETURN l_system_value ;
2001 
2002 
2003 WHEN 'XLA_PERIOD_NAME'        THEN
2004 --
2005   IF g_period_ledger_id = xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id AND
2006      g_period_date      = xla_ae_journal_entry_pkg.g_cache_event.event_date
2007   THEN
2008      NULL;
2009   ELSE
2010     g_period_name   := xla_je_validation_pkg.get_period_name
2011                  (p_ledger_id          => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2012                  ,p_accounting_date    => xla_ae_journal_entry_pkg.g_cache_event.event_date
2013                  ,p_closing_status     => l_closing_status
2014                  ,p_period_type        => g_period_type
2015                  );
2016      --
2017     g_period_ledger_id     := xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id;
2018     g_period_date          := xla_ae_journal_entry_pkg.g_cache_event.event_date;
2019   END IF;
2020 
2021   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2022 
2023         trace
2024            (p_msg      => '-> CALL xla_je_validation_pkg.get_period_name API'
2025            ,p_level    => C_LEVEL_PROCEDURE
2026            ,p_module   => l_log_module);
2027 
2028         trace
2029            (p_msg      => 'return value. = '||g_period_name
2030            ,p_level    => C_LEVEL_PROCEDURE
2031            ,p_module   => l_log_module);
2032 
2033         trace
2034           (p_msg      => 'END of GetSystemSourceChar'
2035           ,p_level    => C_LEVEL_PROCEDURE
2036           ,p_module   => l_log_module);
2037   END IF;
2038   RETURN g_period_name;
2039 --
2040 WHEN 'XLA_PERIOD_TYPE'   THEN
2041 --
2042 --
2043   IF g_period_ledger_id = xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id AND
2044      g_period_date      = xla_ae_journal_entry_pkg.g_cache_event.event_date
2045   THEN
2046        NULL;
2047   ELSE
2048     g_period_name   := xla_je_validation_pkg.get_period_name
2049                  (p_ledger_id          => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2050                  ,p_accounting_date    => xla_ae_journal_entry_pkg.g_cache_event.event_date
2051                  ,p_closing_status     => l_closing_status
2052                  ,p_period_type        => g_period_type
2053                  );
2054      --
2055     g_period_ledger_id     := xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id;
2056     g_period_date          := xla_ae_journal_entry_pkg.g_cache_event.event_date;
2057   END IF;
2058   --
2059  IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2060         trace
2061            (p_msg      => '-> CALL xla_je_validation_pkg.get_period_name API'
2062            ,p_level    => C_LEVEL_PROCEDURE
2063            ,p_module   => l_log_module);
2064 
2065         trace
2066            (p_msg      => 'return value. = '||g_period_type
2067            ,p_level    => C_LEVEL_PROCEDURE
2068            ,p_module   => l_log_module);
2069 
2070         trace
2071           (p_msg      => 'END of GetSystemSourceChar'
2072           ,p_level    => C_LEVEL_PROCEDURE
2073           ,p_module   => l_log_module);
2074   END IF;
2075   RETURN g_period_type;
2076 --
2077 
2078 WHEN 'XLA_REFERENCE_CHAR_1'    THEN
2079 
2080   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2081 
2082         trace
2083            (p_msg      => 'return value. = '||xla_ae_journal_entry_pkg.g_cache_event.reference_char_1
2084            ,p_level    => C_LEVEL_PROCEDURE
2085            ,p_module   => l_log_module);
2086 
2087         trace
2088           (p_msg      => 'END of GetSystemSourceChar'
2089           ,p_level    => C_LEVEL_PROCEDURE
2090           ,p_module   => l_log_module);
2091   END IF;
2092   RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_char_1;
2093 
2094 WHEN 'XLA_REFERENCE_CHAR_2'    THEN
2095 
2096   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2097 
2098         trace
2099            (p_msg      => 'return value. = '||xla_ae_journal_entry_pkg.g_cache_event.reference_char_2
2100            ,p_level    => C_LEVEL_PROCEDURE
2101            ,p_module   => l_log_module);
2102 
2103         trace
2104           (p_msg      => 'END of GetSystemSourceChar'
2105           ,p_level    => C_LEVEL_PROCEDURE
2106           ,p_module   => l_log_module);
2107   END IF;
2108   RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_char_2;
2109 
2110 WHEN 'XLA_REFERENCE_CHAR_3'    THEN
2111 
2112   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2113 
2114         trace
2115            (p_msg      => 'return value. = '||xla_ae_journal_entry_pkg.g_cache_event.reference_char_3
2116            ,p_level    => C_LEVEL_PROCEDURE
2117            ,p_module   => l_log_module);
2118 
2119         trace
2120           (p_msg      => 'END of GetSystemSourceChar'
2121           ,p_level    => C_LEVEL_PROCEDURE
2122           ,p_module   => l_log_module);
2123   END IF;
2124   RETURN xla_ae_journal_entry_pkg.g_cache_event.reference_char_3;
2125 
2126 WHEN 'XLA_REFERENCE_CHAR_4'    THEN
2127 
2128   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2129 
2130         trace
2131            (p_msg      => 'return value. = '||xla_ae_journal_entry_pkg.g_cache_event.reference_char_4
2132            ,p_level    => C_LEVEL_PROCEDURE
2133            ,p_module   => l_log_module);
2134 
2135         trace
2136           (p_msg      => 'END of GetSystemSourceChar'
2137           ,p_level    => C_LEVEL_PROCEDURE
2138           ,p_module   => l_log_module);
2139  END IF;
2140  RETURN  xla_ae_journal_entry_pkg.g_cache_event.reference_char_4;
2141 
2142 WHEN 'XLA_USER_JE_SOURCE_NAME'        THEN
2143 
2144   l_system_value := xla_accounting_cache_pkg.GetValueChar
2145           (
2146             p_source_code       => p_source_code
2147           , p_target_ledger_id  => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2148            );
2149 
2150   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2151 
2152         trace
2153            (p_msg      => '-> CALL xla_accounting_cache_pkg.GetValueChar API'
2154            ,p_level    => C_LEVEL_PROCEDURE
2155            ,p_module   => l_log_module);
2156 
2157         trace
2158            (p_msg      => 'return value. = '|| l_system_value
2159            ,p_level    => C_LEVEL_PROCEDURE
2160            ,p_module   => l_log_module);
2161 
2162         trace
2163           (p_msg      => 'END of GetSystemSourceChar'
2164           ,p_level    => C_LEVEL_PROCEDURE
2165           ,p_module   => l_log_module);
2166   END IF;
2167   RETURN l_system_value ;
2168 ELSE
2169 
2170   xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2171   xla_accounting_err_pkg.build_message
2172                              (p_appli_s_name            => 'XLA'
2173                              ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
2174                              ,p_token_1                 => 'SOURCE_NAME'
2175                              ,p_value_1                 => GetSourceName(
2176                                                            p_source_code
2177                                                          , p_source_type_code
2178                                                          , p_source_application_id
2179                                                          )
2180                              ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2181                              ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2182                              ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2183            );
2184 
2185   IF (C_LEVEL_ERROR >= g_log_level) THEN
2186               trace
2187                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
2188                    ,p_level    => C_LEVEL_ERROR
2189                    ,p_module   => l_log_module);
2190   END IF;
2191   RETURN NULL;
2192 
2193 END CASE;
2194 --
2195 EXCEPTION
2196 WHEN xla_exceptions_pkg.application_exception THEN
2197    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2198    xla_accounting_err_pkg.build_message
2199                                (p_appli_s_name            => 'XLA'
2200                                ,p_msg_name                => 'XLA_AP_INVALID_SYSTEM_SOURCE'
2201                                ,p_token_1                 => 'SOURCE_NAME'
2202                                ,p_value_1                 => GetSourceName(
2203                                                            p_source_code
2204                                                          , p_source_type_code
2205                                                          , p_source_application_id
2206                                                          )
2207                                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2208                                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2209                                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2210            );
2211 
2212     IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2213               trace
2214                    (p_msg      => 'ERROR: XLA_AP_INVALID_SYSTEM_SOURCE'
2215                    ,p_level    => C_LEVEL_EXCEPTION
2216                    ,p_module   => l_log_module);
2217     END IF;
2218 
2219     RETURN NULL;
2220 WHEN OTHERS  THEN
2221    xla_exceptions_pkg.raise_message
2222            (p_location => 'xla_ae_sources_pkg.GetSystemSourceChar');
2223        --
2224 END GetSystemSourceChar;
2225 --
2226 --
2227 --+==========================================================================+
2228 --| PUBLIC  procedures and functions                                         |
2229 --|                                                                          |
2230 --|                                                                          |
2231 --|   GetTranslatedLookupMeaning                                             |
2232 --|                                                                          |
2233 --|   GetUnTranslatedLookupMeaning                                           |
2234 --|                                                                          |
2235 --|                                                                          |
2236 --|                                                                          |
2237 --|                                                                          |
2238 --|                                                                          |
2239 --|                                                                          |
2240 --|                                                                          |
2241 --|                                                                          |
2242 --|                                                                          |
2243 --+==========================================================================+
2244 --
2245 /*======================================================================+
2246 |                                                                       |
2247 | Public Function                                                       |
2248 |                                                                       |
2249 |                                                                       |
2250 +======================================================================*/
2251 FUNCTION GetLookupMeaning(
2252   p_lookup_code            IN VARCHAR2
2253 , p_lookup_type            IN VARCHAR2
2254 , p_view_application_id    IN NUMBER
2255 , p_source_code            IN VARCHAR2
2256 , p_source_type_code       IN VARCHAR2
2257 , p_source_application_id  IN INTEGER
2258 )
2259 RETURN VARCHAR2
2260 
2261 IS
2262 
2263 l_language          VARCHAR2(30):=xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
2264 l_event_date        DATE        :=xla_ae_journal_entry_pkg.g_cache_event.event_date;
2265 l_log_module        VARCHAR2(240);
2266 
2267 BEGIN
2268 --
2269 IF g_log_enabled THEN
2270       l_log_module := C_DEFAULT_MODULE||'.GetLookupMeaning';
2271 END IF;
2272 --
2273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2274 
2275       trace
2276          (p_msg      => 'BEGIN of GetLookupMeaning'
2277          ,p_level    => C_LEVEL_PROCEDURE
2278          ,p_module   => l_log_module);
2279 
2280       trace
2281          (p_msg      => 'p_lookup_code = '|| p_lookup_code
2282          ,p_level    => C_LEVEL_PROCEDURE
2283          ,p_module   => l_log_module);
2284 
2285       trace
2286           (p_msg      => 'p_lookup_type = '|| p_lookup_type
2287          ,p_level    => C_LEVEL_PROCEDURE
2288          ,p_module   => l_log_module);
2289 
2290      trace
2291           (p_msg      => 'p_view_application_id = '|| p_view_application_id
2292          ,p_level    => C_LEVEL_PROCEDURE
2293          ,p_module   => l_log_module);
2294 
2295 END IF;
2296 --
2297 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2298 
2299     trace
2300          (p_msg      => 'p_source_code = '|| p_source_code
2301          ,p_level    => C_LEVEL_STATEMENT
2302          ,p_module   => l_log_module);
2303 
2304     trace
2305          (p_msg      => 'p_source_type_code = '|| p_source_type_code
2306          ,p_level    => C_LEVEL_STATEMENT
2307          ,p_module   => l_log_module);
2308 
2309     trace
2310          (p_msg      => 'p_source_application_id = '|| p_source_application_id
2311          ,p_level    => C_LEVEL_STATEMENT
2312          ,p_module   => l_log_module);
2313 
2314 END IF;
2315 --
2316 
2317 IF g_meaning_lookup_type     = p_lookup_type                     AND
2318    g_meaning_lookup_code     = p_lookup_code                     AND
2319    g_meaning_lookup_language = NVL(l_language , USERENV('LANG')) AND
2320    g_meaning_view_appl_id    = p_view_application_id             AND
2321    l_event_date BETWEEN g_meaning_start_date AND g_meaning_end_date
2322 THEN
2323 
2324    NULL;
2325 
2326 ELSIF p_lookup_code IS NOT NULL AND p_lookup_type IS NOT NULL THEN
2327 
2328 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2329     trace
2330          (p_msg      => 'SQL - Select from fnd_lookup_values'
2331          ,p_level    => C_LEVEL_STATEMENT
2332          ,p_module   => l_log_module);
2333 
2334 END IF;
2335 
2336 SELECT meaning,
2337        start_date_active,
2338        end_date_active
2339   INTO g_meaning_lookup
2340       ,g_meaning_start_date
2341       ,g_meaning_end_date
2342   FROM fnd_lookup_values
2343  WHERE  lookup_type         = p_lookup_type
2344    AND  lookup_code         = p_lookup_code
2345    AND  view_application_id = p_view_application_id
2346    AND  language            = NVL(l_language , USERENV('LANG'))
2347    AND  enabled_flag        = 'Y'
2348    AND  l_event_date BETWEEN nvl(start_date_active,l_event_date)  AND nvl (end_date_active, l_event_date)
2349 ;
2350 
2351 g_meaning_lookup_type                := p_lookup_type;
2352 g_meaning_lookup_code                := p_lookup_code;
2353 g_meaning_lookup_language            := NVL(l_language , USERENV('LANG'));
2354 g_meaning_view_appl_id               := p_view_application_id;
2355 
2356 ELSE
2357 
2358   g_meaning_lookup:= NULL;
2359 
2360 END IF;
2361 
2362 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2363 
2364         trace
2365            (p_msg      => 'return value. = '|| g_meaning_lookup
2366            ,p_level    => C_LEVEL_PROCEDURE
2367            ,p_module   => l_log_module);
2368 
2369         trace
2370           (p_msg      => 'END of GetLookupMeaning'
2371           ,p_level    => C_LEVEL_PROCEDURE
2372           ,p_module   => l_log_module);
2373 END IF;
2374 
2375 RETURN g_meaning_lookup;
2376 
2377 EXCEPTION
2378 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
2379 
2380    xla_ae_journal_entry_pkg.g_global_status      :=  xla_ae_journal_entry_pkg.C_INVALID;
2381    xla_accounting_err_pkg. build_message
2382                (p_appli_s_name            => 'XLA'
2383                ,p_msg_name                => 'XLA_AP_NO_LOOKUP_MEANING'
2384                ,p_token_1                 => 'SOURCE_NAME'
2385                ,p_value_1                 =>  GetSourceName(
2386                                                            p_source_code
2387                                                          , p_source_type_code
2388                                                          , p_source_application_id
2389                                                          )
2390                ,p_token_2                 => 'LOOKUP_CODE'
2391                ,p_value_2                 =>  p_lookup_code
2392                ,p_token_3                 => 'LOOKUP_TYPE'
2393                ,p_value_3                 =>  p_lookup_type
2394                ,p_token_4                 => 'PRODUCT_NAME'
2395                ,p_value_4                 => xla_ae_journal_entry_pkg.g_cache_event.application_name
2396                ,p_entity_id               => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2397                ,p_event_id                => xla_ae_journal_entry_pkg.g_cache_event.event_id
2398                ,p_ledger_id               => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2399        );
2400 
2401     IF (C_LEVEL_ERROR >= g_log_level) THEN
2402               trace
2403                    (p_msg      => 'ERROR: XLA_AP_NO_LOOKUP_MEANING'
2404                    ,p_level    => C_LEVEL_ERROR
2405                    ,p_module   => l_log_module);
2406     END IF;
2407 
2408    RETURN NULL;
2409 WHEN xla_exceptions_pkg.application_exception THEN
2410   RAISE;
2411 WHEN OTHERS  THEN
2412    xla_exceptions_pkg.raise_message
2413            (p_location => 'xla_ae_sources_pkg.GetLookupMeaning');
2414        --
2415 END GetLookupMeaning;
2416 --
2417 --
2418 --+==========================================================================+
2419 --| PUBLIC  procedures and functions                                         |
2420 --|                                                                          |
2421 --|                                                                          |
2422 --|   mapping set                                                            |
2423 --|                                                                          |
2424 --|                                                                          |
2425 --|                                                                          |
2426 --|                                                                          |
2427 --|                                                                          |
2428 --|                                                                          |
2429 --|                                                                          |
2430 --|                                                                          |
2431 --|                                                                          |
2432 --|                                                                          |
2433 --|                                                                          |
2434 --+==========================================================================+
2435 --
2436 --
2437 /*======================================================================+
2438 |                                                                       |
2439 | Public Procedure                                                      |
2440 |                                                                       |
2441 |                                                                       |
2442 +======================================================================*/
2443 
2444 -- rewritten in bug10037318 to implement mapping sets caching
2445 
2446 
2447 FUNCTION get_mapping_flexfield_char (
2448    p_component_type      IN VARCHAR2
2449  , p_component_code      IN VARCHAR2
2450  , p_component_type_code IN VARCHAR2
2451  , p_component_appl_id   IN INTEGER
2452  , p_amb_context_code    IN VARCHAR2
2453  , p_mapping_set_code    IN VARCHAR2
2454  , p_input_constant      IN VARCHAR2
2455  , p_ae_header_id        IN NUMBER
2456  )
2457  RETURN VARCHAR2
2458  IS
2459  --
2460  l_event_date           DATE := xla_ae_journal_entry_pkg.g_cache_event.event_date;
2461 
2462  --
2463  CURSOR value_cur(  p_mapping_set_code   VARCHAR2
2464                   , p_input_constant     VARCHAR2
2465 		  , p_event_date         DATE
2466                 )
2467  IS
2468  --
2469  SELECT   xmsv.value_constant
2470        ,  xmsv.input_value_type_code
2471        ,  xmsv.effective_date_from
2472        ,  xmsv.effective_date_to
2473     FROM  xla_mapping_set_values  xmsv
2474    WHERE  xmsv.mapping_set_code    = p_mapping_set_code
2475           AND (p_event_date BETWEEN NVL(xmsv.effective_date_from,p_event_date)AND NVL(xmsv.effective_date_to,p_event_date))
2476      AND ( ( xmsv.input_value_type_code ='I' AND xmsv.input_value_constant = p_input_constant )
2477            OR   xmsv.input_value_type_code = 'D'
2478          )
2479      AND enabled_flag = 'Y'
2480      AND amb_context_code = p_amb_context_code;
2481 
2482  -- 8501964 changed where clause to include amb_context_code and remove nvl
2483  --
2484  l_result               VARCHAR2(240);
2485  l_default              VARCHAR2(240);
2486  l_index                VARCHAR2(500);
2487  l_exists               BOOLEAN:= FALSE;
2488  l_log_module           VARCHAR2(240);
2489 
2490  BEGIN
2491   --
2492   IF g_log_enabled THEN
2493         l_log_module := C_DEFAULT_MODULE||'.get_mapping_flexfield_char';
2494   END IF;
2495 --
2496 
2497 
2498  IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2499        trace
2500           (p_msg      => 'BEGIN of get_mapping_flexfield_char'
2501           ,p_level    => C_LEVEL_PROCEDURE
2502           ,p_module   => l_log_module);
2503 
2504        trace
2505           (p_msg      => 'p_mapping_set_code = '|| p_mapping_set_code
2506           ,p_level    => C_LEVEL_PROCEDURE
2507           ,p_module   => l_log_module);
2508 
2509        trace
2510            (p_msg      => 'p_input_constant = '|| p_input_constant
2511           ,p_level    => C_LEVEL_PROCEDURE
2512           ,p_module   => l_log_module);
2513 
2514       trace
2515            (p_msg      => 'l_event_date = '|| TO_CHAR(l_event_date)
2516           ,p_level    => C_LEVEL_PROCEDURE
2517           ,p_module   => l_log_module);
2518 
2519       trace
2520            (p_msg      => 'p_component_type = '|| p_component_type
2521            ,p_level    => C_LEVEL_STATEMENT
2522            ,p_module   => l_log_module);
2523 
2524       trace
2525            (p_msg      => 'p_component_code = '|| p_component_code
2526            ,p_level    => C_LEVEL_STATEMENT
2527            ,p_module   => l_log_module);
2528 
2529       trace
2530            (p_msg      => 'p_component_type_code = '|| p_component_type_code
2531            ,p_level    => C_LEVEL_STATEMENT
2532            ,p_module   => l_log_module);
2533 
2534       trace
2535            (p_msg      => 'p_component_appl_id = '|| p_component_appl_id
2536            ,p_level    => C_LEVEL_STATEMENT
2537            ,p_module   => l_log_module);
2538 
2539       trace
2540            (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
2541            ,p_level    => C_LEVEL_STATEMENT
2542            ,p_module   => l_log_module);
2543 
2544  END IF;
2545 
2546 
2547 
2548  l_index := p_amb_context_code||'-'||p_mapping_set_code||'-'||p_input_constant;
2549 
2550 
2551   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2552        trace
2553           (p_msg      => 'l_index value = '|| l_index
2554           ,p_level    => C_LEVEL_PROCEDURE
2555           ,p_module   => l_log_module);
2556   END IF;
2557 
2558 
2559  --retrieve directly from cache if it already exists there and if the date check is satisfied
2560  IF xla_accounting_cache_pkg.l_mapping_table_char.EXISTS(l_index)
2561       AND (l_event_date >= NVL(xla_accounting_cache_pkg.l_mapping_table_char(l_index).effective_date_from,l_event_date))
2562       AND (l_event_date <= NVL(xla_accounting_cache_pkg.l_mapping_table_char(l_index).effective_date_to,l_event_date))
2563         THEN
2564 
2565      IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2566        trace
2567           (p_msg      => 'cache hit for input = '|| l_index
2568           ,p_level    => C_LEVEL_PROCEDURE
2569           ,p_module   => l_log_module);
2570        trace
2571           (p_msg      => 'cache returns value = '|| xla_accounting_cache_pkg.l_mapping_table_char(l_index).value_constant
2572           ,p_level    => C_LEVEL_PROCEDURE
2573           ,p_module   => l_log_module);
2574      END IF;
2575 
2576      RETURN(xla_accounting_cache_pkg.l_mapping_table_char(l_index).value_constant);
2577 
2578 
2579  END IF;
2580 
2581  -- possibilities in this flow:
2582  -- a) didnt exist in cache at all, requires searching in database table:
2583            --i)  if I found in database table, then cache and return result
2584 	   --ii) if D found in database table, then don't cache and return result
2585 	   --ii) if not found in database table, then either bad input value or date/other filter didnt satisfy,
2586 	          --don't cache and return NULL
2587 --  b) exists in cache but date check didn't satisfy, maybe it will satisfy D date check or some other I case, else will return NULL
2588 
2589  l_result              := NULL;
2590  l_default             := NULL;
2591 
2592        FOR value_rec IN value_cur(p_mapping_set_code   => p_mapping_set_code
2593                                  ,p_input_constant     => p_input_constant
2594 				 ,p_event_date         => l_event_date)
2595        --loop could return:
2596           --a) no rows
2597 	  --b) two rows: I and D
2598 	  --c) two rows: D and I
2599 	  --d) one row I
2600 	  --e) one row D
2601        LOOP
2602 	       IF value_rec.input_value_type_code = 'I' THEN
2603 		   xla_accounting_cache_pkg.l_mapping_table_char(l_index).value_constant := value_rec.value_constant;
2604 		   xla_accounting_cache_pkg.l_mapping_table_char(l_index).effective_date_from := value_rec.effective_date_from;
2605 		   xla_accounting_cache_pkg.l_mapping_table_char(l_index).effective_date_to := value_rec.effective_date_to;
2606 	           l_result := value_rec.value_constant;
2607 
2608 		    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2609 		       trace
2610 			  (p_msg      => 'database hit for I case, return value  = '|| value_rec.value_constant
2611 			  ,p_level    => C_LEVEL_PROCEDURE
2612 			  ,p_module   => l_log_module);
2613 		     END IF;
2614 
2615 	       ELSIF value_rec.input_value_type_code = 'D' THEN
2616                    l_default := value_rec.value_constant;
2617 
2618 	             IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2619 		       trace
2620 			  (p_msg      => 'database hit for D case, return value  = '|| value_rec.value_constant
2621 			  ,p_level    => C_LEVEL_PROCEDURE
2622 			  ,p_module   => l_log_module);
2623 		     END IF;
2624 
2625 	       END IF;
2626        END LOOP;
2627 
2628 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2629        trace
2630 	   (p_msg      => 'function return value '|| NVL(l_result, l_default)
2631 	   ,p_level    => C_LEVEL_PROCEDURE
2632 	   ,p_module   => l_log_module);
2633        trace
2634            (p_msg      => 'END of get_mapping_flexfield_char'
2635            ,p_level    => C_LEVEL_PROCEDURE
2636            ,p_module   => l_log_module);
2637 
2638 END IF;
2639 
2640 
2641 RETURN NVL(l_result, l_default);
2642 
2643  --
2644 EXCEPTION
2645 WHEN xla_exceptions_pkg.application_exception THEN
2646   RAISE;
2647 WHEN OTHERS  THEN
2648    xla_exceptions_pkg.raise_message
2649            (p_location => 'xla_ae_sources_pkg.get_mapping_flexfield_char');
2650 END get_mapping_flexfield_char;
2651 --
2652 --
2653 /*======================================================================+
2654 |                                                                       |
2655 | Public Procedure                                                      |
2656 |                                                                       |
2657 |                                                                       |
2658 +======================================================================*/
2659 
2660 -- rewritten in bug10037318 to implement mapping sets caching
2661 
2662 FUNCTION get_mapping_flexfield_number (
2663    p_component_type      IN VARCHAR2
2664  , p_component_code      IN VARCHAR2
2665  , p_component_type_code IN VARCHAR2
2666  , p_component_appl_id   IN INTEGER
2667  , p_amb_context_code    IN VARCHAR2
2668  , p_mapping_set_code    IN VARCHAR2
2669  , p_input_constant      IN VARCHAR2
2670  , p_ae_header_id        IN NUMBER
2671  )
2672  RETURN NUMBER
2673  IS
2674  --
2675  l_event_date           DATE := xla_ae_journal_entry_pkg.g_cache_event.event_date;
2676 
2677  --
2678  CURSOR value_cur(  p_mapping_set_code   VARCHAR2
2679                   , p_input_constant     VARCHAR2
2680 		  , p_event_date         DATE
2681                 )
2682  IS
2683  --
2684  SELECT   xmsv.value_code_combination_id
2685        ,  xmsv.input_value_type_code
2686        ,  xmsv.effective_date_from
2687        ,  xmsv.effective_date_to
2688     FROM  xla_mapping_set_values  xmsv
2689    WHERE  xmsv.mapping_set_code    = p_mapping_set_code
2690           AND (p_event_date BETWEEN NVL(xmsv.effective_date_from,p_event_date)AND NVL(xmsv.effective_date_to,p_event_date))
2691      AND ( ( xmsv.input_value_type_code ='I' AND xmsv.input_value_constant = p_input_constant )
2692            OR   xmsv.input_value_type_code = 'D'
2693          )
2694      AND enabled_flag = 'Y'
2695      AND amb_context_code = p_amb_context_code;
2696 
2697  -- 8501964 changed where clause to include amb_context_code and remove nvl
2698  --
2699  l_result               NUMBER;
2700  l_default              NUMBER;
2701  l_index                VARCHAR2(500);
2702  l_exists               BOOLEAN:= FALSE;
2703  l_log_module           VARCHAR2(240);
2704 
2705  BEGIN
2706   --
2707   IF g_log_enabled THEN
2708         l_log_module := C_DEFAULT_MODULE||'.get_mapping_flexfield_number';
2709   END IF;
2710 --
2711 
2712 
2713  IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2714        trace
2715           (p_msg      => 'BEGIN of get_mapping_flexfield_number'
2716           ,p_level    => C_LEVEL_PROCEDURE
2717           ,p_module   => l_log_module);
2718 
2719        trace
2720           (p_msg      => 'p_mapping_set_code = '|| p_mapping_set_code
2721           ,p_level    => C_LEVEL_PROCEDURE
2722           ,p_module   => l_log_module);
2723 
2724        trace
2725            (p_msg      => 'p_input_constant = '|| p_input_constant
2726           ,p_level    => C_LEVEL_PROCEDURE
2727           ,p_module   => l_log_module);
2728 
2729       trace
2730            (p_msg      => 'l_event_date = '|| TO_CHAR(l_event_date)
2731           ,p_level    => C_LEVEL_PROCEDURE
2732           ,p_module   => l_log_module);
2733 
2734       trace
2735            (p_msg      => 'p_component_type = '|| p_component_type
2736            ,p_level    => C_LEVEL_STATEMENT
2737            ,p_module   => l_log_module);
2738 
2739       trace
2740            (p_msg      => 'p_component_code = '|| p_component_code
2741            ,p_level    => C_LEVEL_STATEMENT
2742            ,p_module   => l_log_module);
2743 
2744       trace
2745            (p_msg      => 'p_component_type_code = '|| p_component_type_code
2746            ,p_level    => C_LEVEL_STATEMENT
2747            ,p_module   => l_log_module);
2748 
2749       trace
2750            (p_msg      => 'p_component_appl_id = '|| p_component_appl_id
2751            ,p_level    => C_LEVEL_STATEMENT
2752            ,p_module   => l_log_module);
2753 
2754       trace
2755            (p_msg      => 'p_amb_context_code = '|| p_amb_context_code
2756            ,p_level    => C_LEVEL_STATEMENT
2757            ,p_module   => l_log_module);
2758 
2759  END IF;
2760 
2761 
2762 
2763  l_index := p_amb_context_code||'-'||p_mapping_set_code||'-'||p_input_constant;
2764 
2765 
2766   IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2767        trace
2768           (p_msg      => 'l_index value = '|| l_index
2769           ,p_level    => C_LEVEL_PROCEDURE
2770           ,p_module   => l_log_module);
2771   END IF;
2772 
2773 
2774  --retrieve directly from cache if it already exists there and if the date check is satisfied
2775  IF xla_accounting_cache_pkg.l_mapping_table_num.EXISTS(l_index)
2776       AND (l_event_date >= NVL(xla_accounting_cache_pkg.l_mapping_table_num(l_index).effective_date_from,l_event_date))
2777       AND (l_event_date <= NVL(xla_accounting_cache_pkg.l_mapping_table_num(l_index).effective_date_to,l_event_date))
2778         THEN
2779 
2780      IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2781        trace
2782           (p_msg      => 'cache hit for input = '|| l_index
2783           ,p_level    => C_LEVEL_PROCEDURE
2784           ,p_module   => l_log_module);
2785        trace
2786           (p_msg      => 'cache returns value = '|| xla_accounting_cache_pkg.l_mapping_table_num(l_index).value_code_combination_id
2787           ,p_level    => C_LEVEL_PROCEDURE
2788           ,p_module   => l_log_module);
2789      END IF;
2790 
2791      RETURN(xla_accounting_cache_pkg.l_mapping_table_num(l_index).value_code_combination_id);
2792 
2793 
2794  END IF;
2795 
2796  -- possibilities in this flow:
2797  -- a) didnt exist in cache at all, requires searching in database table:
2798            --i)  if I found in database table, then cache and return result
2799 	   --ii) if D found in database table, then don't cache and return result
2800 	   --ii) if not found in database table, then either bad input value or date/other filter didnt satisfy,
2801 	          --don't cache and return NULL
2802 --  b) exists in cache but date check didn't satisfy, maybe it will satisfy D date check or some other I case, else will return NULL
2803 
2804  l_result              := NULL;
2805  l_default             := NULL;
2806 
2807        FOR value_rec IN value_cur(p_mapping_set_code   => p_mapping_set_code
2808                                  ,p_input_constant     => p_input_constant
2809 				 ,p_event_date         => l_event_date)
2810        --loop could return:
2811           --a) no rows
2812 	  --b) two rows: I and D
2813 	  --c) two rows: D and I
2814 	  --d) one row I
2815 	  --e) one row D
2816        LOOP
2817 	       IF value_rec.input_value_type_code = 'I' THEN
2818 		   xla_accounting_cache_pkg.l_mapping_table_num(l_index).value_code_combination_id := value_rec.value_code_combination_id;
2819 		   xla_accounting_cache_pkg.l_mapping_table_num(l_index).effective_date_from := value_rec.effective_date_from;
2820 		   xla_accounting_cache_pkg.l_mapping_table_num(l_index).effective_date_to := value_rec.effective_date_to;
2821 	           l_result := value_rec.value_code_combination_id;
2822 
2823 		    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2824 		       trace
2825 			  (p_msg      => 'database hit for I case, return value  = '|| value_rec.value_code_combination_id
2826 			  ,p_level    => C_LEVEL_PROCEDURE
2827 			  ,p_module   => l_log_module);
2828 		     END IF;
2829 
2830 	       ELSIF value_rec.input_value_type_code = 'D' THEN
2831                    l_default := value_rec.value_code_combination_id;
2832 
2833 	             IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2834 		       trace
2835 			  (p_msg      => 'database hit for D case, return value  = '|| value_rec.value_code_combination_id
2836 			  ,p_level    => C_LEVEL_PROCEDURE
2837 			  ,p_module   => l_log_module);
2838 		     END IF;
2839 
2840 	       END IF;
2841        END LOOP;
2842 
2843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2844        trace
2845 	   (p_msg      => 'function return value '|| NVL(l_result, l_default)
2846 	   ,p_level    => C_LEVEL_PROCEDURE
2847 	   ,p_module   => l_log_module);
2848        trace
2849            (p_msg      => 'END of get_mapping_flexfield_number'
2850            ,p_level    => C_LEVEL_PROCEDURE
2851            ,p_module   => l_log_module);
2852 
2853 END IF;
2854 
2855 
2856 RETURN NVL(l_result, l_default);
2857 
2858  --
2859 EXCEPTION
2860 WHEN xla_exceptions_pkg.application_exception THEN
2861   RAISE;
2862 WHEN OTHERS  THEN
2863    xla_exceptions_pkg.raise_message
2864            (p_location => 'xla_ae_sources_pkg.get_mapping_flexfield_number');
2865 END get_mapping_flexfield_number;
2866 --
2867 --
2868 /*======================================================================+
2869 |                                                                       |
2870 | Public Function                                                       |
2871 |      Convert date into varchar according to the description language  |
2872 |                                                                       |
2873 +======================================================================*/
2874 FUNCTION DATE_TO_CHAR (
2875    p_date               IN DATE
2876   ,p_nls_desc_language  IN VARCHAR2
2877  )
2878 RETURN VARCHAR2
2879 IS
2880 l_date_language     VARCHAR2(200);
2881 l_date_format       VARCHAR2(200);
2882 l_log_module        VARCHAR2(240);
2883 BEGIN
2884 --
2885 IF g_log_enabled THEN
2886         l_log_module := C_DEFAULT_MODULE||'.DATE_TO_CHAR';
2887 END IF;
2888 --
2889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2890 
2891        trace
2892           (p_msg      => 'BEGIN of DATE_TO_CHAR'
2893           ,p_level    => C_LEVEL_PROCEDURE
2894           ,p_module   => l_log_module);
2895 
2896        trace
2897           (p_msg      => 'p_date = '|| p_date
2898           ,p_level    => C_LEVEL_PROCEDURE
2899           ,p_module   => l_log_module);
2900 
2901        trace
2902            (p_msg      => 'p_nls_desc_language = '|| p_nls_desc_language
2903           ,p_level    => C_LEVEL_PROCEDURE
2904           ,p_module   => l_log_module);
2905 
2906  END IF;
2907  --
2908 
2909 l_date_language := 'nls_date_language= '''||p_nls_desc_language||'''';
2910 l_date_format   := SYS_CONTEXT('USERENV','NLS_DATE_FORMAT');
2911 --
2912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2913 
2914          trace
2915             (p_msg      => 'return value. = '|| TO_CHAR(p_date,l_date_format,l_date_language)
2916             ,p_level    => C_LEVEL_PROCEDURE
2917             ,p_module   => l_log_module);
2918 
2919          trace
2920            (p_msg      => 'END of DATE_TO_CHAR'
2921            ,p_level    => C_LEVEL_PROCEDURE
2922            ,p_module   => l_log_module);
2923 END IF;
2924 
2925 RETURN TO_CHAR(p_date,l_date_format,l_date_language);
2926 --
2927 EXCEPTION
2928 WHEN xla_exceptions_pkg.application_exception THEN
2929   RAISE;
2930 WHEN OTHERS  THEN
2931    xla_exceptions_pkg.raise_message
2932            (p_location => 'xla_ae_sources_pkg.DATE_TO_CHAR');
2933 END DATE_TO_CHAR;
2934 --
2935 --
2936 --=============================================================================
2937 --
2938 --
2939 --
2940 --
2941 --
2942 --
2943 --
2944 --
2945 --
2946 --
2947 --
2948 --
2949 --
2950 --
2951 --
2952 --
2953 --
2954 --
2955 --
2956 --
2957 --
2958 --
2959 --=============================================================================
2960 --=============================================================================
2961 --          *********** Initialization routine **********
2962 --=============================================================================
2963 
2964 BEGIN
2965 
2966    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2967    g_log_enabled    := fnd_log.test
2968                           (log_level  => g_log_level
2969                           ,module     => C_DEFAULT_MODULE);
2970 
2971    IF NOT g_log_enabled  THEN
2972       g_log_level := C_LEVEL_LOG_DISABLED;
2973    END IF;
2974 
2975 END xla_ae_sources_pkg; --