[Home] [Help]
PACKAGE BODY: APPS.XLA_ACCOUNTING_CACHE_PKG
Source
1 PACKAGE BODY xla_accounting_cache_pkg AS
2 -- $Header: xlaapche.pkb 120.61.12020000.3 2012/09/07 04:58:23 nmikkili ship $
3 /*===========================================================================+
4 | Copyright (c) 2001-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +============================================================================+
8 | FILENAME |
9 | xlaapche.pkb |
10 | |
11 | PACKAGE NAME |
12 | xla_accounting_cache_pkg |
13 | |
14 | DESCRIPTION |
15 | This package is defined to cache the frequently used data during |
16 | execution of Accounting Program. This is to improve performance and |
17 | provide modular structure and lean interaction between Accounting Engine|
18 | and Accounting Program. |
19 | |
20 | Note: the APIs do not excute COMMIT or ROLLBACK. |
21 | |
22 | HISTORY |
23 | 30-Oct-02 S. Singhania Created |
24 | 06-Dec-02 S. Singhania Made changes to reslove bug # 2695671. |
25 | Added NVL statement to default ledger's |
26 | description language to USERENV('LANG') |
27 | 11-Dec-02 K. Boussema Updated function GetBaseLedgerId |
28 | 19-Dec-02 S. Singhania Fixed the bug # 2701293. Added new sources to|
29 | the cache. Added set_process_cache. |
30 | 06-Jan-03 S. Singhania Made changes due to change in column names of|
31 | ledger view XLA_ALT_CURR_LEDGERS_V |
32 | 08-Jan-03 K. Boussema Update GetTranslatedValueChar to get |
33 | XLA_NLS_DESC_LANGUAGE and |
34 | XLA_ACCT_REVERSAL_OPTION values |
35 | 16-Jan-03 S. Singhania Made changes due to changes in the ledger |
36 | view XLA_ALT_CURR_LEDGERS_V |
37 | 21-Feb-03 S. Singhania Made changes for the new bulk approach of the|
38 | accounting program |
39 | - added 'p_max_event_date' param to |
40 | load_application_ledgers |
41 | - added procedure 'get_pad_info' |
42 | - removed datatypes to cache event |
43 | information |
44 | - merged ledger cahce structures |
45 | - formatting. |
46 | 04-Apr-03 S. Singhania rewrote the APIs and Modified the specs for: |
47 | - GetValueNum |
48 | - GetValueDate |
49 | - GetValueChar |
50 | Made changes due to amb_context_code and new |
51 | sources. Please refer to bug # 2887554 |
52 | 02-May-03 S. Singhania Added section to initilize variables under |
53 | LOAD_APPLICATION_LEDGERS |
54 | Added 'allow_intercompany_post_flag' to the |
55 | cache (bug # 2922615) |
56 | 03-May-03 S. Singhania Added more exception handlers for debugging |
57 | 07-May-03 S. Singhania Based on requirements from the 'Accounting |
58 | Engine' remodified the specifications for: |
59 | - GetValueNum |
60 | - GetValueDate |
61 | - GetValueChar |
62 | - load_application_ledgers |
63 | - GetAlcLedgers |
64 | Modified code to support new specifications |
65 | Renamed 'GetBaseLedgers' to 'GetLedgers' |
66 | Modified the structure of cache to handle ALC|
67 | as there will not be any ALC for secondary |
68 | Added local 'Trace' package |
69 | 08-May-03 S. Singhania Modified ALC cache structure and alc cursor |
70 | to include SLA_LEDGER_ID as attribute of |
71 | ALC ledgers.(bug # 2948635) |
72 | 12-Jun-03 S. Singhania Added trace messages in GET_PAD_INFO |
73 | Added correct calls to FND Messages (bug # |
74 | 3001156) |
75 | 25-Jun-03 S. Singhania Modified the package to use FND_LOG. |
76 | 16-Jul-03 S. Singhania Added following APIs: |
77 | - GetValueNum (Overloaded) |
78 | - GetValueDate (Overloaded) |
79 | - GetValueChar (Overloaded) |
80 | - GetSessionValueChar |
81 | - GetSessionValueChar (Overloaded) |
82 | - get_event_info |
83 | Added following internal routines |
84 | - load_system_sources |
85 | - is_source_valid |
86 | Modified specifications for: |
87 | - GetValueChar |
88 | - Get_PAD_info |
89 | Modified the cache structures. |
90 | 21-Jul-03 S. Singhania Added NVL in GET_PAD_INFO for date comparison|
91 | modified the where clause for csr_ledger_pad |
92 | to select all pads before event's max date |
93 | (bug # 3036628) |
94 | 25-Jul-03 S. Singhania Modified LOAD_APPLICATION_LEDGERS to reduce |
95 | code maintenance. |
96 | 01-Aug-03 S. Singhania Enabled the validation in IS_SOURCE_VALID to |
97 | make sure the system source code is defined|
98 | in AMB. |
99 | 11-Sep-03 S. Singhania Made changes to cache je_category (# 3109690)|
100 | - Modified the structures that store 'event|
101 | class' and 'event type' info. |
102 | - Modified CACHE_APPLICATION_SETUP to cache|
103 | je_categories for event_class/ledger. |
104 | - Added API GET_JE_CATEGORY |
105 | 21-Nov-03 S. Singhania Added new system source (bug # 3264446) |
106 | DYNAMIC_INSERTS_ALLOWED_FLAG. |
107 | 22-Dec-03 S. Singhania Made changes for the FND_LOG. |
108 | Added the condition in cursor csr_base_ledger|
109 | in LOAD_APPLICATION_LEDGERS to check if |
110 | relationship is enabled in configurations. |
111 | 06-Jan-04 S. Singhania Further FND_LOG changes. |
112 | 16-Feb-04 S. Singhania Bug 3443779. Cached ledger_category_code for |
113 | ALC ledgers. |
114 | 18-Mar-04 S. Singhania Added a parameter p_module to the TRACE calls|
115 | and the procedure. |
116 | 20-Sep-04 S. Singhania Added the following to support bulk changes |
117 | in the accounting engine |
118 | - Added API GetArrayPad |
119 | 01-NOV-04 S. Singhania Made changes for Valuation Method |
120 | .Enhancements: |
121 | - Modified LOAD_APPLICATION_LEDGERS |
122 | Fixed GSCC warning File.Sql.35 |
123 | 9-Mar-05 W. Shen Add the function BuildLedgerArray and |
124 | GetLedgerArray to support the calculation |
125 | of rounding |
126 | Add several field to the cache too |
127 | XLA_ALC_ENABLED_FLAG |
128 | XLA_ROUNDING_CCID |
129 | XLA_INHERIT_CONVERSION_TYPE |
130 | XLA_DEFAULT_CONV_RATE_TYPE |
131 | XLA_MAX_DAYS_ROLL_RATE |
132 | XLA_CURRENCY_MAU |
133 | XLA_ROUNDING_RULE_CODE |
134 | 26-May-05 W. Shen Add the function GetCurrencyMau |
135 | 27-May-05 W. Chan Fix bug 4161247 - Add following to cache: |
136 | 1. transaction_calendar_id |
137 | 2. enable_average_balances_flag |
138 | 3. effective_date_rule_code |
139 | 20-Jun-05 W. Shen Fix bug 4444191, add ledger name for alc |
140 | 5-Jul-05 W. Shen Fix bug 4476180, treat the flag |
141 | 'ALC_INHERIT_CONVERSION_TYPE' as 'Y' when |
142 | it is null |
143 | 17-Aug-05 V. Swapna Fix bug 4554935, modified |
144 | cursor csr_je_category |
145 | 01-Dec-05 S. Singhania Bug 4640689. Modified cursors: |
146 | csr_base_ledger and csr_alc_ledger |
147 | to get right value for sla_ledger_id |
148 | 24-Jan-06 V. Swapna Fix bug 4736579. Added an exception |
149 | in get_je_category procedure. |
150 | 02-Mar-06 V. Swapna Bug 5018098: Added an exception in |
151 | load_application_ledgers procedure. |
152 | 24-Jan-2011 karamakr Bug:11680489- Made code changes for VM based|
153 | secondary ledger |
154 | 19-Dec-2011 vgopiset 12985804 changes to perform ALC Accounting |
155 | based on the MO Access to support 11i ALC |
156 | Specific accounting at Org Level. |
157 | 29-Aug-2012 nmikkili 14522783 changes to use the rounding |
158 | differences tracking account for the |
159 | reporting ledger from the ledger setup of |
160 | the reporting ledger. Only if it is not |
161 | defined for the reporting ledger we should |
162 | use it from the primary ledger. |
163 +===========================================================================*/
164
165 --=============================================================================
166 -- **************** declarations ********************
167 --=============================================================================
168 -------------------------------------------------------------------------------
169 -- declaring data types
170 -------------------------------------------------------------------------------
171 -------------------------------------------------------------------------------
172 --
173 -------------------------------------------------------------------------------
174 TYPE t_array_char_value IS TABLE OF VARCHAR2(240) INDEX BY VARCHAR2(30);
175
176 -------------------------------------------------------------------------------
177 --
178 -------------------------------------------------------------------------------
179 TYPE t_array_num_value IS TABLE OF NUMBER INDEX BY VARCHAR2(30);
180
181 -------------------------------------------------------------------------------
182 --
183 -------------------------------------------------------------------------------
184 TYPE t_array_date_value IS TABLE OF DATE INDEX BY VARCHAR2(30);
185
186 -------------------------------------------------------------------------------
187 --
188 -------------------------------------------------------------------------------
189 TYPE t_array_je_category IS TABLE OF VARCHAR2(80) INDEX BY BINARY_INTEGER;
190
191 -------------------------------------------------------------------------------
192 --
193 -------------------------------------------------------------------------------
194 TYPE t_record_sources IS RECORD
195 (char_sources t_array_char_value
196 ,num_sources t_array_num_value
197 ,date_sources t_array_date_value
198 ,char_sources_sl t_array_char_value);
199
200 -------------------------------------------------------------------------------
201 --
202 -------------------------------------------------------------------------------
203 TYPE t_record_ledger IS RECORD
204 (category_code VARCHAR2(30)
205 ,char_sources t_array_char_value
206 ,num_sources t_array_num_value
207 ,date_sources t_array_date_value
208 ,char_sources_sl t_array_char_value
209 ,pads t_array_pad);
210
211 -------------------------------------------------------------------------------
212 --
213 -------------------------------------------------------------------------------
214 TYPE t_array_ledger IS TABLE OF t_record_ledger INDEX BY BINARY_INTEGER;
215
216 -------------------------------------------------------------------------------
217 --
218 -------------------------------------------------------------------------------
219 TYPE t_record_event_type IS RECORD
220 (event_type_name_tl t_array_char_value
221 ,event_type_name_sl VARCHAR2(240));
222
223 -------------------------------------------------------------------------------
224 --
225 -------------------------------------------------------------------------------
226 TYPE t_array_event_type IS TABLE of t_record_event_type INDEX BY VARCHAR2(30);
227
228 -------------------------------------------------------------------------------
229 --
230 -------------------------------------------------------------------------------
231 TYPE t_record_event_class IS RECORD
232 (event_class_name_tl t_array_char_value
233 ,xla_je_category t_array_je_category
234 ,event_class_name_sl VARCHAR2(240));
235
236 TYPE t_record_currency_mau is RECORD
237 ( currency_code VARCHAR2(30)
238 ,currency_mau NUMBER);
239 -------------------------------------------------------------------------------
240 --
241 -------------------------------------------------------------------------------
242 TYPE t_array_event_class IS TABLE of t_record_event_class INDEX BY VARCHAR2(30);
243
244 -------------------------------------------------------------------------------
245 -- declaring package variables
246 -------------------------------------------------------------------------------
247 g_primary_ledger_id NUMBER;
248 g_record_session t_record_sources;
249 g_base_ledger_ids t_array_ledger_id;
250 g_alc_ledger_ids t_array_ledger_id;
251 g_array_ledger t_array_ledger;
252 g_array_sources t_array_char_value;
253 g_array_event_classes t_array_event_class;
254 g_array_event_types t_array_event_type;
255 g_array_ledger_attrs t_array_ledger_attrs;
256 g_entered_currency_mau t_record_currency_mau;
257 g_entered_currency_mau1 t_record_currency_mau;
258 g_entered_currency_mau2 t_record_currency_mau;
259
260
261 -------------------------------------------------------------------------------
262 -- Forward declaration of local routines
263 -------------------------------------------------------------------------------
264 PROCEDURE cache_application_setup
265 (p_application_id IN INTEGER
266 ,p_ledger_id IN INTEGER
267 ,p_ledger_category IN VARCHAR2);
268
269 PROCEDURE load_system_sources;
270
271 FUNCTION is_source_valid
272 (p_source_code IN VARCHAR2
273 ,p_datatype IN VARCHAR2)
274 RETURN BOOLEAN;
275 --=============================================================================
276 -- *********** Local Trace Routine **********
277 --=============================================================================
278 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
279 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
280 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
281 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
282 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
283 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
284
285 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
286 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_accounting_cache_pkg';
287
288 --g_log_module VARCHAR2(240);
289 g_log_level NUMBER;
290 g_log_enabled BOOLEAN;
291
292 PROCEDURE trace
293 (p_msg IN VARCHAR2
294 ,p_level IN NUMBER
295 ,p_module IN VARCHAR2) IS
296 --l_module VARCHAR2(240);
297 BEGIN
298 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
299 fnd_log.message(p_level, NVL(p_module,C_DEFAULT_MODULE));
300 ELSIF p_level >= g_log_level THEN
301 fnd_log.string(p_level, NVL(p_module,C_DEFAULT_MODULE), p_msg);
302 END IF;
303
304 EXCEPTION
305 WHEN xla_exceptions_pkg.application_exception THEN
306 RAISE;
307 WHEN OTHERS THEN
308 xla_exceptions_pkg.raise_message
309 (p_location => 'xla_accounting_cache_pkg.trace');
310 END trace;
311
312
313 --=============================================================================
314 -- *********** public procedures and functions **********
315 --=============================================================================
316
317 --=============================================================================
318 --
319 --
320 --
321 --
322 --
323 --
324 --
325 --
326 --
327 --
328 -- Following are public routines
329 --
330 -- 1. load_application_ledgers
331 -- 2. get_pad_info
332 -- 3. get_event_info
333 -- 4. GetValueNum
334 -- 5. GetValueNum (Overloaded API)
335 -- 6. GetValueDate
336 -- 7. GetValueDate (Overloaded API)
337 -- 8. GetValueChar
338 -- 9. GetValueChar (overloaded API)
339 -- 10. GetSessionValueChar
340 -- 11. GetSessionValueChar (overloaded API)
341 -- 12. GetAlcLedgers
342 -- 13. GetLedgers
343 -- 14. get_je_category
344 -- 15. GetArrayPad
345 --
346 --
347 --
348 --
349 --
350 --
351 --
352 --
353 --
354 --
355 --
356 --=============================================================================
357
358 --=============================================================================
359 --
360 --
361 --
362 --=============================================================================
363 PROCEDURE load_application_ledgers
364 (p_application_id IN INTEGER
365 ,p_event_ledger_id IN INTEGER
366 ,p_max_event_date IN DATE) IS
367 CURSOR csr_base_ledger (x_event_ledger_category IN VARCHAR2) IS
368 (SELECT fat.application_name application_name
369 ,fat.application_id application_id
370 ,gjs.user_je_source_name user_je_source_name
371 ,xso.je_source_name je_source_name
372 ,xso.name ledger_name
373 ,xso.ledger_id ledger_id
374 ,fst.id_flex_structure_name ledger_coa_name
375 ,fsv.id_flex_structure_name session_coa_name
376 ,fsv.dynamic_inserts_allowed_flag dynamic_inserts_allowed_flag
377 ,xso.chart_of_accounts_id coa_id
378 ,amt.name ledger_slam_name
379 ,amv.name session_slam_name
380 ,xso.sla_accounting_method_code slam_code
381 ,xso.sla_accounting_method_type slam_type
382 ,xso.currency_code xla_currency_code
383 ,NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
384 xla_description_language
385 ,NVL(fla.nls_language,SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE'))
386 xla_nls_desc_language
387 ,xso.sla_entered_cur_bal_sus_ccid xla_entered_cur_bal_sus_ccid
388 ,xso.res_encumb_code_combination_id res_encumb_code_combination_id
389 ,xso.ledger_category_code ledger_category_code
390 ,fcu.precision ledger_currency_precision
391 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
392 ledger_currency_mau
393 ,xso.rounding_rule_code xla_rounding_rule_code
394 ,xso.sl_coa_mapping_id coa_mapping_id
395 ,gcm.name coa_mapping_name
396 ,xso.bal_seg_column_name bal_seg_column_name
397 ,xso.mgt_seg_column_name mgt_seg_column_name
398 ,xso.sla_bal_by_ledger_curr_flag xla_ledger_cur_bal_flag
399 ,xso.sla_ledger_cur_bal_sus_ccid xla_ledger_cur_bal_sus_ccid
400 ,xso.rounding_code_combination_id xla_rounding_ccid
401 ,xso.acct_reversal_option_code xla_acct_reversal_option_code
402 -- the following is modified for bug 4640689
403 ,decode(xso.capture_event_flag
404 ,'Y',xso.ledger_id
405 ,xso.primary_ledger_id) sla_ledger_id
406 ,xso.latest_encumbrance_year latest_encumbrance_year
407 ,xso.bal_seg_value_option_code bal_seg_value_option_code
408 ,xso.mgt_seg_value_option_code mgt_seg_value_option_code
409 ,xso.allow_intercompany_post_flag allow_intercompany_post_flag
410 ,nvl(xso.ALC_INHERIT_CONVERSION_TYPE, 'Y') ALC_INHERIT_CONVERSION_TYPE
411 ,xso.ALC_DEFAULT_CONV_RATE_TYPE
412 ,decode(xso.ALC_NO_RATE_ACTION_CODE, 'FIND_RATE', nvl(xso.ALC_MAX_DAYS_ROLL_RATE, -1), 0)
413 ALC_MAX_DAYS_ROLL_RATE
414 ,xso.transaction_calendar_id transaction_calendar_id
415 ,xso.enable_average_balances_flag enable_average_balances_flag
416 ,gjs.effective_date_rule_code effective_date_rule_code
417 ,xso.suspense_allowed_flag suspense_allowed_flag
418 FROM xla_subledger_options_v xso
419 ,fnd_application_tl fat
420 ,gl_je_sources_vl gjs
421 ,fnd_id_flex_structures_tl fst
422 ,fnd_id_flex_structures_vl fsv
423 ,xla_acctg_methods_tl amt
424 ,xla_acctg_methods_vl amv
425 ,fnd_currencies fcu
426 ,fnd_languages fla
427 ,gl_coa_mappings gcm
428 WHERE xso.application_id = p_application_id
429 AND xso.relationship_enabled_flag = 'Y'
430 AND xso.sla_accounting_method_code IS NOT NULL
431 --
432 -- >> valuation method enhanacements
433 --
434 AND DECODE(x_event_ledger_category
435 ,'PRIMARY',xso.primary_ledger_id
436 ,xso.ledger_id) = p_event_ledger_id
437 AND DECODE(x_event_ledger_category
438 ,'PRIMARY',DECODE(xso.ledger_category_code
439 ,'PRIMARY','Y'
440 ,'N')
441 ,'Y') = xso.capture_event_flag
442 --
443 -- << valuation method enhanacements
444 --
445 AND xso.enabled_flag = 'Y'
446 AND fat.application_id = xso.application_id
447 AND fat.language =
448 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
449 AND gjs.je_source_name = xso.je_source_name
450 AND fst.application_id = 101
451 AND fst.id_flex_code = 'GL#'
452 AND fst.id_flex_num = xso.chart_of_accounts_id
453 AND fst.language =
454 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
455 AND fsv.application_id = 101
456 AND fsv.id_flex_code = 'GL#'
457 AND fsv.id_flex_num = xso.chart_of_accounts_id
458 AND amt.accounting_method_code = xso.sla_accounting_method_code
459 AND amt.accounting_method_type_code = xso.sla_accounting_method_type
460 AND amt.language =
461 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
462 AND amv.accounting_method_code = xso.sla_accounting_method_code
463 AND amv.accounting_method_type_code = xso.sla_accounting_method_type
464 AND fcu.currency_code = xso.currency_code
465 AND fla.language_code =
466 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
467 AND gcm.coa_mapping_id(+) = xso.sl_coa_mapping_id)
468 ORDER BY xso.ledger_category_code;
469
470 CURSOR csr_alc_ledger (p_base_ledger_id IN NUMBER) IS
471 (SELECT xlr.target_ledger_id ledger_id
472 ,xlr.name ledger_name
473 ,xlr.currency_code ledger_currency
474 ,fcu.precision ledger_currency_precision
475 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
476 ledger_currency_mau
477 -- the following is modified for bug 4640689
478 ,decode(xsl.alc_enabled_flag
479 ,'Y',p_base_ledger_id
480 ,xlr.target_ledger_id) sla_ledger_id
481 ,nvl(xlr.ALC_INHERIT_CONVERSION_TYPE, 'Y') ALC_INHERIT_CONVERSION_TYPE
482 ,xlr.ALC_DEFAULT_CONV_RATE_TYPE
483 ,decode(xlr.ALC_NO_RATE_ACTION_CODE, 'FIND_RATE', nvl(xlr.ALC_MAX_DAYS_ROLL_RATE, -1), 0)
484 ALC_MAX_DAYS_ROLL_RATE
485 ,l.ROUNDING_CODE_COMBINATION_ID ROUNDING_CODE_COMBINATION_ID -- added for bug14522783
486 FROM xla_ledger_relationships_v xlr
487 ,fnd_currencies fcu
488 -- the following is added for bug 4640689
489 ,xla_subledgers xsl
490 ,gl_ledgers l -- 14522783
491 WHERE xlr.primary_ledger_id = p_base_ledger_id
492 AND l.ledger_id = xlr.target_ledger_id --14522783
493 AND xlr.relationship_enabled_flag = 'Y'
494 AND xlr.ledger_category_code = 'ALC'
495 AND fcu.currency_code = xlr.currency_code
496 AND xsl.application_id = p_application_id
497 -- added 12985804
498 AND ( p_application_id NOT IN (140,200,201,222,275,707)
499 OR
500 ( p_application_id = 707
501 AND TRIM(xsl.SECURITY_FUNCTION_NAME) IS NULL
502 )
503 )
504 UNION
505 SELECT glr.target_ledger_id ledger_id
506 ,glg.name ledger_name
507 ,glg.currency_code ledger_currency
508 ,fcu.precision ledger_currency_precision
509 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
510 ledger_currency_mau
511 ,decode(xsl.alc_enabled_flag
512 ,'Y',p_base_ledger_id
513 ,glr.target_ledger_id) sla_ledger_id
514 ,nvl(glr.ALC_INHERIT_CONVERSION_TYPE, 'Y') ALC_INHERIT_CONVERSION_TYPE
515 ,glr.ALC_DEFAULT_CONV_RATE_TYPE
516 ,decode(glr.ALC_NO_RATE_ACTION_CODE, 'FIND_RATE', nvl(glr.ALC_MAX_DAYS_ROLL_RATE, -1), 0)
517 ALC_MAX_DAYS_ROLL_RATE
518 ,glg.ROUNDING_CODE_COMBINATION_ID ROUNDING_CODE_COMBINATION_ID -- added for bug14522783
519 FROM gl_ledger_relationships glr
520 ,gl_ledgers glg
521 ,fnd_currencies fcu
522 ,xla_subledgers xsl
523 WHERE glr.primary_ledger_id = p_base_ledger_id
524 AND glr.relationship_enabled_flag = 'Y'
525 AND glg.ledger_category_code = 'ALC'
526 AND glr.relationship_type_code = 'SUBLEDGER'
527 AND glr.target_ledger_id = glg.ledger_id
528 AND glg.object_type_code = 'L'
529 AND glg.le_ledger_type_code = 'L'
530 AND fcu.currency_code = glg.currency_code
531 AND xsl.application_id = p_application_id
532 AND glr.application_id = decode(xsl.application_id,707,201,xsl.application_id) -- added 12985804 to make Costing follow org setting of Purchasing
533 AND ( p_application_id IN (140,200,201,222,275)
534 OR
535 ( p_application_id = 707
536 AND TRIM(xsl.SECURITY_FUNCTION_NAME) IS NOT NULL
537 )
538 )
539 AND (glr.org_id = -99
540 OR mo_global.check_access(glr.org_id) = 'Y')
541 AND glr.relationship_id IN (SELECT Max(glr2.relationship_id)
542 FROM gl_ledger_relationships glr2
543 WHERE glr2.primary_ledger_id = glr.primary_ledger_id
544 AND glr2.target_ledger_id = glr.target_ledger_id
545 AND glr2.application_id = glr.application_id
546 AND (glr2.org_id = -99
547 OR mo_global.check_access(glr2.org_id) = 'Y'))
548 );
549
550 CURSOR csr_ledger_pad
551 (p_accounting_method_type IN VARCHAR2
552 ,p_accounting_method_code IN VARCHAR2
553 ,p_ledger_desc_language IN VARCHAR2) IS
554 (SELECT xmr.acctg_method_rule_id rule_id
555 ,xmr.amb_context_code amb_context_code
556 ,xmr.product_rule_type_code pad_type
557 ,xmr.product_rule_code pad_code
558 ,prt.name ledger_pad_name
559 ,prv.name session_pad_name
560 ,xpr.compile_status_code compile_status
561 ,xmr.start_date_active start_date
562 ,xmr.end_date_active end_date
563 ,xla_cmp_hash_pkg.BuildPackageName
564 (p_application_id
565 ,xmr.product_rule_code
566 ,xmr.product_rule_type_code
567 ,xmr.amb_context_code) pad_package_name
568 FROM xla_acctg_method_rules xmr
569 ,xla_product_rules_b xpr
570 ,xla_product_rules_tl prt
571 ,xla_product_rules_vl prv
572 WHERE xmr.application_id = p_application_id
573 AND xmr.accounting_method_type_code = p_accounting_method_type
574 AND xmr.accounting_method_code = p_accounting_method_code
575 AND xmr.amb_context_code = NVL(fnd_profile.value('XLA_AMB_CONTEXT'),'DEFAULT')
576 AND NVL(xmr.start_date_active
577 ,NVL(p_max_event_date
578 ,TRUNC(sysdate)
579 )
580 )
581 <= NVL(p_max_event_date,TRUNC(sysdate))
582 AND xpr.application_id = p_application_id
583 AND xpr.amb_context_code = xmr.amb_context_code
584 AND xpr.product_rule_type_code = xmr.product_rule_type_code
585 AND xpr.product_rule_code = xmr.product_rule_code
586 AND xpr.enabled_flag = 'Y'
587 AND prt.application_id = xpr.application_id
588 AND prt.amb_context_code = xpr.amb_context_code
589 AND prt.product_rule_type_code = xpr.product_rule_type_code
590 AND prt.product_rule_code = xpr.product_rule_code
591 AND prt.language = p_ledger_desc_language
592 AND prv.application_id = xpr.application_id
593 AND prv.amb_context_code = xpr.amb_context_code
594 AND prv.product_rule_type_code = xpr.product_rule_type_code
595 AND prv.product_rule_code = xpr.product_rule_code);
596
597 --Bug :11680489-Load Primary Ledger---------
598 CURSOR csr_primary_ledger (x_event_ledger_category IN VARCHAR2
599 , x_primary_ledger_id IN NUMBER) IS
600 (SELECT fat.application_name application_name
601 ,fat.application_id application_id
602 ,gjs.user_je_source_name user_je_source_name
603 ,xso.je_source_name je_source_name
604 ,xso.name ledger_name
605 ,xso.ledger_id ledger_id
606 ,fst.id_flex_structure_name ledger_coa_name
607 ,fsv.id_flex_structure_name session_coa_name
608 ,fsv.dynamic_inserts_allowed_flag dynamic_inserts_allowed_flag
609 ,xso.chart_of_accounts_id coa_id
610 ,amt.name ledger_slam_name
611 ,amv.name session_slam_name
612 ,xso.sla_accounting_method_code slam_code
613 ,xso.sla_accounting_method_type slam_type
614 ,xso.currency_code xla_currency_code
615 ,NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
616 xla_description_language
617 ,NVL(fla.nls_language,SYS_CONTEXT('USERENV','NLS_DATE_LANGUAGE'))
618 xla_nls_desc_language
619 ,xso.sla_entered_cur_bal_sus_ccid xla_entered_cur_bal_sus_ccid
620 ,xso.res_encumb_code_combination_id res_encumb_code_combination_id
621 ,xso.ledger_category_code ledger_category_code
622 ,fcu.precision ledger_currency_precision
623 ,nvl(fcu.minimum_accountable_unit, power(10, -1* fcu.precision))
624 ledger_currency_mau
625 ,xso.rounding_rule_code xla_rounding_rule_code
626 ,xso.sl_coa_mapping_id coa_mapping_id
627 ,gcm.name coa_mapping_name
628 ,xso.bal_seg_column_name bal_seg_column_name
629 ,xso.mgt_seg_column_name mgt_seg_column_name
630 ,xso.sla_bal_by_ledger_curr_flag xla_ledger_cur_bal_flag
631 ,xso.sla_ledger_cur_bal_sus_ccid xla_ledger_cur_bal_sus_ccid
632 ,xso.rounding_code_combination_id xla_rounding_ccid
633 ,xso.acct_reversal_option_code xla_acct_reversal_option_code
634 -- the following is modified for bug 4640689
635 ,decode(xso.capture_event_flag
636 ,'Y',xso.ledger_id
637 ,xso.primary_ledger_id) sla_ledger_id
638 ,xso.latest_encumbrance_year latest_encumbrance_year
639 ,xso.bal_seg_value_option_code bal_seg_value_option_code
640 ,xso.mgt_seg_value_option_code mgt_seg_value_option_code
641 ,xso.allow_intercompany_post_flag allow_intercompany_post_flag
642 ,nvl(xso.ALC_INHERIT_CONVERSION_TYPE, 'Y') ALC_INHERIT_CONVERSION_TYPE
643 ,xso.ALC_DEFAULT_CONV_RATE_TYPE
644 ,decode(xso.ALC_NO_RATE_ACTION_CODE, 'FIND_RATE', nvl(xso.ALC_MAX_DAYS_ROLL_RATE, -1), 0)
645 ALC_MAX_DAYS_ROLL_RATE
646 ,xso.transaction_calendar_id transaction_calendar_id
647 ,xso.enable_average_balances_flag enable_average_balances_flag
648 ,gjs.effective_date_rule_code effective_date_rule_code
649 ,xso.suspense_allowed_flag suspense_allowed_flag
650 FROM xla_subledger_options_v xso
651 ,fnd_application_tl fat
652 ,gl_je_sources_vl gjs
653 ,fnd_id_flex_structures_tl fst
654 ,fnd_id_flex_structures_vl fsv
655 ,xla_acctg_methods_tl amt
656 ,xla_acctg_methods_vl amv
657 ,fnd_currencies fcu
658 ,fnd_languages fla
659 ,gl_coa_mappings gcm
660 WHERE xso.application_id = p_application_id
661 AND xso.relationship_enabled_flag = 'Y'
662 AND xso.sla_accounting_method_code IS NOT NULL
663 --
664 -- >> valuation method enhanacements
665 --
666 AND DECODE(x_event_ledger_category
667 ,'PRIMARY',xso.primary_ledger_id
668 ,xso.ledger_id) = x_primary_ledger_id
669 AND DECODE(x_event_ledger_category
670 ,'PRIMARY',DECODE(xso.ledger_category_code
671 ,'PRIMARY','Y'
672 ,'N')
673 ,'Y') = xso.capture_event_flag
674 --
675 -- << valuation method enhanacements
676 --
677 AND xso.enabled_flag = 'Y'
678 AND fat.application_id = xso.application_id
679 AND fat.language =
680 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
681 AND gjs.je_source_name = xso.je_source_name
682 AND fst.application_id = 101
683 AND fst.id_flex_code = 'GL#'
684 AND fst.id_flex_num = xso.chart_of_accounts_id
685 AND fst.language =
686 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
687 AND fsv.application_id = 101
688 AND fsv.id_flex_code = 'GL#'
689 AND fsv.id_flex_num = xso.chart_of_accounts_id
690 AND amt.accounting_method_code = xso.sla_accounting_method_code
691 AND amt.accounting_method_type_code = xso.sla_accounting_method_type
692 AND amt.language =
693 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
694 AND amv.accounting_method_code = xso.sla_accounting_method_code
695 AND amv.accounting_method_type_code = xso.sla_accounting_method_type
696 AND fcu.currency_code = xso.currency_code
697 AND fla.language_code =
698 NVL(xso.sla_description_language,SYS_CONTEXT('USERENV','LANG'))
699 AND gcm.coa_mapping_id(+) = xso.sl_coa_mapping_id)
700 ORDER BY xso.ledger_category_code;
701 --------Load Primary Ledger ends---------
702
703 --Bug :11680489- Code change for VM based secondary ledger having different CoA than primary
704 CURSOR csr IS
705 SELECT xso.primary_ledger_id
706 FROM xla_subledger_options_v xso
707 WHERE xso.ledger_id = p_event_ledger_id
708 AND xso.application_id =p_application_id
709 AND ledger_category_code = 'SECONDARY'
710 AND valuation_method_flag = 'Y';
711
712 l_pad_count NUMBER;
713 l_application_name VARCHAR2(240);
714 l_ledger_name VARCHAR2(240);
715 l_base_ledger_count NUMBER := 0;
716 l_alc_ledger_count NUMBER := 0;
717 l_event_ledger_category VARCHAR2(80);
718 l_log_module VARCHAR2(240);
719 l_primary_ledger_id NUMBER; --Bug :11680489
720 BEGIN
721 IF g_log_enabled THEN
722 l_log_module := C_DEFAULT_MODULE||'.load_application_ledgers';
723 END IF;
724
725 -- IF ((g_log_enabled = TRUE) AND (C_LEVEL_PROCEDURE >= g_log_level)) THEN
726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
727 trace
728 (p_msg => 'BEGIN of procedure LOAD_APPLICATION_LEDGERS'
729 ,p_level => C_LEVEL_PROCEDURE
730 ,p_module => l_log_module);
731 trace
732 (p_msg => 'p_application_id = ' ||TO_CHAR(p_application_id)
733 ,p_level => C_LEVEL_PROCEDURE
734 ,p_module => l_log_module);
735 trace
736 (p_msg => 'p_event_ledger_id = '||TO_CHAR(p_event_ledger_id)
737 ,p_level => C_LEVEL_PROCEDURE
738 ,p_module => l_log_module);
739 trace
740 (p_msg => 'p_max_event_date = ' ||TO_CHAR(p_max_event_date)
741 ,p_level => C_LEVEL_PROCEDURE
742 ,p_module => l_log_module);
743 END IF;
744
745 ----------------------------------------------------------------------------
746 -- initializing all the variables
747 ----------------------------------------------------------------------------
748 g_record_session := NULL;
749 g_primary_ledger_id := NULL;
750 g_base_ledger_ids.DELETE;
751 g_alc_ledger_ids.DELETE;
752 g_array_ledger.DELETE;
753 g_array_sources.DELETE;
754 g_array_event_classes.DELETE;
755 g_array_event_types.DELETE;
756 g_array_ledger_attrs.array_ledger_id.DELETE;
757 g_array_ledger_attrs.array_ledger_type.DELETE;
758 g_array_ledger_attrs.array_ledger_currency_code.DELETE;
759 g_array_ledger_attrs.array_rounding_rule_code.DELETE;
760 g_array_ledger_attrs.array_rounding_offset.DELETE;
761 g_array_ledger_attrs.array_mau.DELETE;
762 g_entered_currency_mau:= NULL;
763 g_entered_currency_mau1:= NULL;
764 g_entered_currency_mau2:= NULL;
765
766
767 ----------------------------------------------------------------------------
768 -- Caching application level information
769 ----------------------------------------------------------------------------
770 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
771 trace
772 (p_msg => 'Reading application level cache for application '||
773 TO_CHAR(p_application_id)
774 ,p_level => C_LEVEL_STATEMENT
775 ,p_module => l_log_module);
776 END IF;
777
778 SELECT TRUNC(sysdate)
779 ,fnd_profile.value('USER_ID')
780 ,xsl.application_id
781 ,fav.application_short_name
782 ,fav.application_name
783 ,xsl.je_source_name
784 ,jsv.user_je_source_name
785 ,xsl.valuation_method_flag
786 ,decode(nvl(xsl.control_account_type_code, 'N'), 'N', 'N', 'Y')
787 ,xsl.alc_enabled_flag
788 INTO g_record_session.date_sources('XLA_CREATION_DATE')
789 ,g_record_session.num_sources('XLA_ENTRY_CREATED_BY')
790 ,g_record_session.num_sources('XLA_EVENT_APPL_ID')
791 ,g_record_session.char_sources('XLA_EVENT_APPL_SHORT_NAME')
792 ,g_record_session.char_sources_sl('XLA_EVENT_APPL_NAME')
793 ,g_record_session.char_sources('XLA_JE_SOURCE_NAME')
794 ,g_record_session.char_sources_sl('XLA_USER_JE_SOURCE_NAME')
795 ,g_record_session.char_sources('VALUATION_METHOD_FLAG')
796 ,g_record_session.char_sources('CONTROL_ACCOUNT_ENABLED_FLAG')
797 ,g_record_session.char_sources('XLA_ALC_ENABLED_FLAG')
798 FROM xla_subledgers xsl
799 ,fnd_application_vl fav
800 ,gl_je_sources_vl jsv
801 WHERE xsl.application_id = p_application_id
802 AND fav.application_id = xsl.application_id
803 AND jsv.je_source_name = xsl.je_source_name;
804
805 IF SQL%NOTFOUND THEN
806 IF (C_LEVEL_ERROR >= g_log_level) THEN
807 trace
808 (p_msg => 'ERROR: Problem in caching the session level sources '||
809 'for the application. application ID = '||TO_CHAR(p_application_id)
810 ,p_level => C_LEVEL_ERROR
811 ,p_module => l_log_module);
812 END IF;
813
814 xla_exceptions_pkg.raise_message
815 (p_appli_s_name => 'XLA'
816 ,p_msg_name => 'XLA_COMMON_ERROR'
817 ,p_token_1 => 'ERROR'
818 ,p_value_1 => 'Problem in caching the session level sources for the application.'
819 ,p_token_2 => 'LOCATION'
820 ,p_value_2 => 'load_application_ledgers');
821 END IF;
822
823 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
824 trace
825 (p_msg => 'xla_event_appl_short_name = '||
826 g_record_session.char_sources('XLA_EVENT_APPL_SHORT_NAME')
827 ,p_level => C_LEVEL_STATEMENT
828 ,p_module => l_log_module);
829 trace
830 (p_msg => 'xla_creation_date = '||
831 TO_CHAR(g_record_session.date_sources('XLA_CREATION_DATE'))
832 ,p_level => C_LEVEL_STATEMENT
833 ,p_module => l_log_module);
834 trace
835 (p_msg => 'xla_entry_created_by = '||
836 TO_CHAR(g_record_session.num_sources('XLA_ENTRY_CREATED_BY'))
837 ,p_level => C_LEVEL_STATEMENT
838 ,p_module => l_log_module);
839 trace
840 (p_msg => 'application_id = '||
841 TO_CHAR(g_record_session.num_sources('XLA_EVENT_APPL_ID'))
842 ,p_level => C_LEVEL_STATEMENT
843 ,p_module => l_log_module);
844 trace
845 (p_msg => 'valuation_method_flag = '||
846 g_record_session.char_sources('VALUATION_METHOD_FLAG')
847 ,p_level => C_LEVEL_STATEMENT
848 ,p_module => l_log_module);
849 trace
850 (p_msg => 'control_account_enabled_flag = '||
851 g_record_session.char_sources('CONTROL_ACCOUNT_ENABLED_FLAG')
852 ,p_level => C_LEVEL_STATEMENT
853 ,p_module => l_log_module);
854 trace
855 (p_msg => 'xla_alc_enabled_flag= '||
856 g_record_session.char_sources('XLA_ALC_ENABLED_FLAG')
857 ,p_level => C_LEVEL_STATEMENT
858 ,p_module => l_log_module);
859 END IF;
860
861 ----------------------------------------------------------------------------
862 -- Caching base ledger information
863 ----------------------------------------------------------------------------
864 --
865 -- >> valuation method enhanacements
866 --
867 SELECT ledger_category_code
868 INTO l_event_ledger_category
869 FROM gl_ledgers
870 WHERE ledger_id = p_event_ledger_id;
871 --
872 -- << valuation method enhanacements
873 --
874
875 FOR c1 IN csr_base_ledger (l_event_ledger_category) LOOP
876 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
877 trace
878 (p_msg =>'Reading ledger level cache for ledger '||TO_CHAR(c1.ledger_id)
879 ,p_level => C_LEVEL_STATEMENT
880 ,p_module => l_log_module);
881 END IF;
882
883 -------------------------------------------------------------------------
884 -- Storing ledger_id in an array
885 -------------------------------------------------------------------------
886 l_base_ledger_count := l_base_ledger_count +1;
887 g_base_ledger_ids(l_base_ledger_count) := c1.ledger_id;
888
889 -------------------------------------------------------------------------
890 -- Storing category code in array to efficiently know the ledger
891 -- category
892 -------------------------------------------------------------------------
893 g_array_ledger(c1.ledger_id).category_code := c1.ledger_category_code;
894
895 -------------------------------------------------------------------------
896 -- Caching translated information
897 -------------------------------------------------------------------------
898 g_array_ledger(c1.ledger_id)
899 .char_sources('XLA_EVENT_APPL_NAME') := c1.application_name;
900
901 g_array_ledger(c1.ledger_id)
902 .char_sources('XLA_USER_JE_SOURCE_NAME') := c1.user_je_source_name;
903
904 g_array_ledger(c1.ledger_id)
905 .char_sources('XLA_LEDGER_NAME') := c1.ledger_name;
906
907 g_array_ledger(c1.ledger_id)
908 .char_sources('XLA_COA_NAME') := c1.ledger_coa_name;
909
910 g_array_ledger(c1.ledger_id)
911 .char_sources_sl('XLA_COA_NAME') := c1.session_coa_name;
912
913 g_array_ledger(c1.ledger_id)
914 .char_sources('XLA_ACCOUNTING_METHOD_NAME') := c1.ledger_slam_name;
915
916 g_array_ledger(c1.ledger_id)
917 .char_sources_sl('XLA_ACCOUNTING_METHOD_NAME') := c1.session_slam_name;
918
919
920 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
921 trace
922 (p_msg =>'application_name = '||c1.application_name
923 ,p_level => C_LEVEL_STATEMENT
924 ,p_module => l_log_module);
925 trace
926 (p_msg =>'user_je_source_name = '||c1.user_je_source_name
927 ,p_level => C_LEVEL_STATEMENT
928 ,p_module => l_log_module);
929 trace
930 (p_msg =>'ledger_name = '||c1.ledger_name
931 ,p_level => C_LEVEL_STATEMENT
932 ,p_module => l_log_module);
933 trace
934 (p_msg =>'ledger_coa_name = '||c1.ledger_coa_name
935 ,p_level => C_LEVEL_STATEMENT
936 ,p_module => l_log_module);
937 trace
938 (p_msg =>'session_coa_name = '||c1.session_coa_name
939 ,p_level => C_LEVEL_STATEMENT
940 ,p_module => l_log_module);
941 trace
942 (p_msg =>'ledger_slam_name = '||c1.ledger_slam_name
943 ,p_level => C_LEVEL_STATEMENT
944 ,p_module => l_log_module);
945 trace
946 (p_msg =>'session_slam_name = '||c1.session_slam_name
947 ,p_level => C_LEVEL_STATEMENT
948 ,p_module => l_log_module);
949 END IF;
950
951 -------------------------------------------------------------------------
952 -- Caching untranslated information
953 -------------------------------------------------------------------------
954 g_array_ledger(c1.ledger_id)
955 .char_sources('DYNAMIC_INSERTS_ALLOWED_FLAG') := c1.dynamic_inserts_allowed_flag;
956
957 g_array_ledger(c1.ledger_id)
958 .num_sources('XLA_COA_ID') := c1.coa_id;
959
960 g_array_ledger(c1.ledger_id)
961 .char_sources('XLA_ACCOUNTING_METHOD_OWNER') := c1.slam_type;
962
963 g_array_ledger(c1.ledger_id)
964 .char_sources('XLA_CURRENCY_CODE') := c1.xla_currency_code;
965
966 g_array_ledger(c1.ledger_id)
967 .char_sources('XLA_DESCRIPTION_LANGUAGE') := c1.xla_description_language;
968
969 g_array_ledger(c1.ledger_id)
970 .char_sources('XLA_NLS_DESC_LANGUAGE') := c1.xla_nls_desc_language;
971
972 g_array_ledger(c1.ledger_id)
973 .num_sources('XLA_ENTERED_CUR_BAL_SUS_CCID') := c1.xla_entered_cur_bal_sus_ccid;
974
975 g_array_ledger(c1.ledger_id)
976 .num_sources('XLA_LEDGER_CUR_BAL_SUS_CCID') := c1.xla_ledger_cur_bal_sus_ccid;
977
978 g_array_ledger(c1.ledger_id)
979 .num_sources('RES_ENCUMB_CODE_COMBINATION_ID') := c1.res_encumb_code_combination_id;
980
981 g_array_ledger(c1.ledger_id)
982 .num_sources('XLA_ROUNDING_CCID') := c1.xla_rounding_ccid;
983
984 g_array_ledger(c1.ledger_id)
985 .num_sources('XLA_MAX_DAYS_ROLL_RATE') := c1.ALC_MAX_DAYS_ROLL_RATE;
986
987 g_array_ledger(c1.ledger_id)
988 .char_sources('XLA_INHERIT_CONVERSION_TYPE') := c1.ALC_INHERIT_CONVERSION_TYPE;
989
990 g_array_ledger(c1.ledger_id)
991 .char_sources('XLA_DEFAULT_CONV_RATE_TYPE') := c1.ALC_DEFAULT_CONV_RATE_TYPE;
992
993 g_array_ledger(c1.ledger_id)
994 .char_sources('LEDGER_CATEGORY_CODE') := c1.ledger_category_code;
995
996 g_array_ledger(c1.ledger_id)
997 .num_sources('XLA_CURRENCY_PRECISION') := c1.ledger_currency_precision;
998
999 g_array_ledger(c1.ledger_id)
1000 .num_sources('XLA_CURRENCY_MAU') := c1.ledger_currency_mau;
1001
1002 g_array_ledger(c1.ledger_id)
1003 .char_sources('XLA_ROUNDING_RULE_CODE') := c1.xla_rounding_rule_code;
1004
1005 g_array_ledger(c1.ledger_id)
1006 .num_sources('SL_COA_MAPPING_ID') := c1.coa_mapping_id;
1007
1008 g_array_ledger(c1.ledger_id)
1009 .char_sources('GL_COA_MAPPING_NAME') := c1.coa_mapping_name;
1010
1011 g_array_ledger(c1.ledger_id)
1012 .char_sources('BAL_SEG_COLUMN_NAME') := c1.bal_seg_column_name;
1013
1014 g_array_ledger(c1.ledger_id)
1015 .char_sources('MGT_SEG_COLUMN_NAME') := c1.mgt_seg_column_name;
1016
1017 g_array_ledger(c1.ledger_id)
1018 .char_sources('SLA_BAL_BY_LEDGER_CURR_FLAG') := c1.xla_ledger_cur_bal_flag;
1019
1020 g_array_ledger(c1.ledger_id)
1021 .char_sources('XLA_ACCT_REVERSAL_OPTION') := c1.xla_acct_reversal_option_code;
1022
1023 g_array_ledger(c1.ledger_id)
1024 .num_sources('SLA_LEDGER_ID') := c1.sla_ledger_id ;
1025
1026 g_array_ledger(c1.ledger_id)
1027 .num_sources('LATEST_ENCUMBRANCE_YEAR') := c1.latest_encumbrance_year;
1028
1029 g_array_ledger(c1.ledger_id)
1030 .char_sources('BAL_SEG_VALUE_OPTION_CODE') := c1.bal_seg_value_option_code;
1031
1032 g_array_ledger(c1.ledger_id)
1033 .char_sources('MGT_SEG_VALUE_OPTION_CODE') := c1.mgt_seg_value_option_code;
1034
1035 g_array_ledger(c1.ledger_id)
1036 .char_sources('ALLOW_INTERCOMPANY_POST_FLAG') := c1.allow_intercompany_post_flag;
1037
1038 g_array_ledger(c1.ledger_id)
1039 .num_sources('TRANSACTION_CALENDAR_ID') := c1.transaction_calendar_id;
1040
1041 g_array_ledger(c1.ledger_id)
1042 .char_sources('ENABLE_AVERAGE_BALANCES_FLAG') := c1.enable_average_balances_flag;
1043
1044 g_array_ledger(c1.ledger_id)
1045 .char_sources('EFFECTIVE_DATE_RULE_CODE') := c1.effective_date_rule_code;
1046
1047 g_array_ledger(c1.ledger_id)
1048 .char_sources('SUSPENSE_ALLOWED_FLAG') := c1.suspense_allowed_flag;
1049
1050 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1051 trace
1052 (p_msg =>'dynamic_inserts_allowed_flag = '||c1.dynamic_inserts_allowed_flag
1053 ,p_level => C_LEVEL_STATEMENT
1054 ,p_module => l_log_module);
1055 trace
1056 (p_msg =>'coa_id = '||TO_CHAR(c1.coa_id)
1057 ,p_level => C_LEVEL_STATEMENT
1058 ,p_module => l_log_module);
1059 trace
1060 (p_msg =>'slam_type = '||c1.slam_type
1061 ,p_level => C_LEVEL_STATEMENT
1062 ,p_module => l_log_module);
1063 trace
1064 (p_msg =>'xla_currency_code = '||c1.xla_currency_code
1065 ,p_level => C_LEVEL_STATEMENT
1066 ,p_module => l_log_module);
1067 trace
1068 (p_msg =>'xla_description_language = '||c1.xla_description_language
1069 ,p_level => C_LEVEL_STATEMENT
1070 ,p_module => l_log_module);
1071 trace
1072 (p_msg =>'xla_nls_desc_language = '||c1.xla_nls_desc_language
1073 ,p_level => C_LEVEL_STATEMENT
1074 ,p_module => l_log_module);
1075 trace
1076 (p_msg =>'xla_entered_cur_bal_sus_ccid = '||TO_CHAR(c1.xla_entered_cur_bal_sus_ccid)
1077 ,p_level => C_LEVEL_STATEMENT
1078 ,p_module => l_log_module);
1079 trace
1080 (p_msg =>'xla_ledger_cur_bal_sus_ccid = '||TO_CHAR(c1.xla_ledger_cur_bal_sus_ccid)
1081 ,p_level => C_LEVEL_STATEMENT
1082 ,p_module => l_log_module);
1083 trace
1084 (p_msg =>'res_encumb_code_combination_id = '||TO_CHAR(c1.res_encumb_code_combination_id)
1085 ,p_level => C_LEVEL_STATEMENT
1086 ,p_module => l_log_module);
1087 trace
1088 (p_msg =>'ledger_category_code = '||c1.ledger_category_code
1089 ,p_level => C_LEVEL_STATEMENT
1090 ,p_module => l_log_module);
1091 trace
1092 (p_msg =>'ledger_currency_precision = '||TO_CHAR(c1.ledger_currency_precision)
1093 ,p_level => C_LEVEL_STATEMENT
1094 ,p_module => l_log_module);
1095 trace
1096 (p_msg =>'coa_mapping_id = '||TO_CHAR(c1.coa_mapping_id)
1097 ,p_level => C_LEVEL_STATEMENT
1098 ,p_module => l_log_module);
1099 trace
1100 (p_msg =>'coa_mapping_name = '||c1.coa_mapping_name
1101 ,p_level => C_LEVEL_STATEMENT
1102 ,p_module => l_log_module);
1103 trace
1104 (p_msg =>'bal_seg_column_name = '||c1.bal_seg_column_name
1105 ,p_level => C_LEVEL_STATEMENT
1106 ,p_module => l_log_module);
1107 trace
1108 (p_msg =>'mgt_seg_column_name = '||c1.mgt_seg_column_name
1109 ,p_level => C_LEVEL_STATEMENT
1110 ,p_module => l_log_module);
1111 trace
1112 (p_msg =>'xla_ledger_cur_bal_flag = '||c1.xla_ledger_cur_bal_flag
1113 ,p_level => C_LEVEL_STATEMENT
1114 ,p_module => l_log_module);
1115 trace
1116 (p_msg =>'xla_acct_reversal_option_code = '||c1.xla_acct_reversal_option_code
1117 ,p_level => C_LEVEL_STATEMENT
1118 ,p_module => l_log_module);
1119 trace
1120 (p_msg =>'sla_ledger_id = '||TO_CHAR(c1.sla_ledger_id)
1121 ,p_level => C_LEVEL_STATEMENT
1122 ,p_module => l_log_module);
1123 trace
1124 (p_msg =>'latest_encumbrance_year = '||TO_CHAR(c1.latest_encumbrance_year)
1125 ,p_level => C_LEVEL_STATEMENT
1126 ,p_module => l_log_module);
1127 trace
1128 (p_msg =>'bal_seg_value_option_code = '||c1.bal_seg_value_option_code
1129 ,p_level => C_LEVEL_STATEMENT
1130 ,p_module => l_log_module);
1131 trace
1132 (p_msg =>'mgt_seg_value_option_code = '||c1.mgt_seg_value_option_code
1133 ,p_level => C_LEVEL_STATEMENT
1134 ,p_module => l_log_module);
1135 trace
1136 (p_msg =>'allow_intercompany_post_flag = '||c1.allow_intercompany_post_flag
1137 ,p_level => C_LEVEL_STATEMENT
1138 ,p_module => l_log_module);
1139 trace
1140 (p_msg =>'transaction_calendar_id = '||c1.transaction_calendar_id
1141 ,p_level => C_LEVEL_STATEMENT
1142 ,p_module => l_log_module);
1143 trace
1144 (p_msg =>'enable_average_balance_flag = '||c1.enable_average_balances_flag
1145 ,p_level => C_LEVEL_STATEMENT
1146 ,p_module => l_log_module);
1147 trace
1148 (p_msg =>'effective_date_rule_code = '||c1.effective_date_rule_code
1149 ,p_level => C_LEVEL_STATEMENT
1150 ,p_module => l_log_module);
1151 END IF;
1152
1153 -------------------------------------------------------------------------
1154 -- Caching alc ledger ids only if base ledger is a primary ledger. There
1155 -- cannot be ALC ledgers for a secondary ledger
1156 -------------------------------------------------------------------------
1157 IF c1.ledger_category_code = 'PRIMARY' THEN
1158 g_primary_ledger_id := c1.ledger_id;
1159
1160 --8238617
1161 g_primary_ledger_currency := c1.xla_currency_code;
1162
1163 ----------------------------------------------------------------------
1164 -- Caching currecny information for alc ledgers
1165 ----------------------------------------------------------------------
1166 FOR c2 IN csr_alc_ledger (c1.ledger_id) LOOP
1167 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1168 trace
1169 (p_msg =>'Caching information for alc ledger = '||TO_CHAR(c2.ledger_id)
1170 ,p_level => C_LEVEL_STATEMENT
1171 ,p_module => l_log_module);
1172 END IF;
1173 -------------------------------------------------------------------------
1174 -- Storing ledger_id in an array
1175 -------------------------------------------------------------------------
1176 l_alc_ledger_count := l_alc_ledger_count + 1;
1177 g_alc_ledger_ids(l_alc_ledger_count) := c2.ledger_id;
1178
1179 -------------------------------------------------------------------------
1180 -- Storing category code in array to efficiently know the ledger
1181 -- category
1182 -------------------------------------------------------------------------
1183 g_array_ledger(c2.ledger_id).category_code := 'ALC';
1184
1185 g_array_ledger(c2.ledger_id)
1186 .char_sources('LEDGER_CATEGORY_CODE') := 'ALC';
1187
1188 g_array_ledger(c2.ledger_id)
1189 .char_sources('XLA_LEDGER_NAME') := c2.ledger_name;
1190
1191 g_array_ledger(c2.ledger_id)
1192 .char_sources('XLA_CURRENCY_CODE') := c2.ledger_currency;
1193
1194 g_array_ledger(c2.ledger_id)
1195 .num_sources('XLA_CURRENCY_PRECISION') := c2.ledger_currency_precision;
1196
1197 g_array_ledger(c2.ledger_id)
1198 .num_sources('XLA_CURRENCY_MAU') := c2.ledger_currency_mau;
1199
1200 g_array_ledger(c2.ledger_id)
1201 .num_sources('XLA_MAX_DAYS_ROLL_RATE') := c2.ALC_MAX_DAYS_ROLL_RATE;
1202
1203 g_array_ledger(c2.ledger_id)
1204 .char_sources('XLA_INHERIT_CONVERSION_TYPE') := c2.ALC_INHERIT_CONVERSION_TYPE;
1205
1206 g_array_ledger(c2.ledger_id)
1207 .char_sources('XLA_DEFAULT_CONV_RATE_TYPE') := c2.ALC_DEFAULT_CONV_RATE_TYPE;
1208
1209
1210 g_array_ledger(c2.ledger_id)
1211 .num_sources('SLA_LEDGER_ID') := c2.sla_ledger_id;
1212
1213 -- added below if for bug14522783
1214 IF c2.ROUNDING_CODE_COMBINATION_ID IS NOT NULL THEN
1215 g_array_ledger(c2.ledger_id).num_sources('XLA_ROUNDING_CCID') := c2.ROUNDING_CODE_COMBINATION_ID;
1216 END IF;
1217
1218 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1219 trace
1220 (p_msg =>'ledger_category_code = ALC'
1221 ,p_level => C_LEVEL_STATEMENT
1222 ,p_module => l_log_module);
1223 trace
1224 (p_msg =>'ledger_currency = '||c2.ledger_currency
1225 ,p_level => C_LEVEL_STATEMENT
1226 ,p_module => l_log_module);
1227 trace
1228 (p_msg =>'ledger_currency_precision = '||TO_CHAR(c2.ledger_currency_precision)
1229 ,p_level => C_LEVEL_STATEMENT
1230 ,p_module => l_log_module);
1231 trace
1232 (p_msg =>'sla_ledger_id = '||TO_CHAR(c2.sla_ledger_id)
1233 ,p_level => C_LEVEL_STATEMENT
1234 ,p_module => l_log_module);
1235 trace
1236 (p_msg =>'XLA_ROUNDING_CCID = '||TO_CHAR(c2.ROUNDING_CODE_COMBINATION_ID)
1237 ,p_level => C_LEVEL_STATEMENT
1238 ,p_module => l_log_module); -- added for bug14522783
1239 END IF;
1240
1241 END LOOP;
1242
1243 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1244 trace
1245 (p_msg =>'Number of alc ledgers = '||TO_CHAR(g_alc_ledger_ids.COUNT)
1246 ,p_level => C_LEVEL_STATEMENT
1247 ,p_module => l_log_module);
1248 END IF;
1249 END IF;
1250
1251 -------------------------------------------------------------------------
1252 -- Caching PAD information for the ledger
1253 -------------------------------------------------------------------------
1254 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1255 trace
1256 (p_msg => 'Caching product definitions for the ledger '||
1257 TO_CHAR(c1.ledger_id)
1258 ,p_level => C_LEVEL_STATEMENT
1259 ,p_module => l_log_module);
1260 END IF;
1261
1262 l_pad_count := 0;
1263 FOR c2 IN csr_ledger_pad (c1.slam_type
1264 ,c1.slam_code
1265 ,c1.xla_description_language)
1266 LOOP
1267 l_pad_count := l_pad_count + 1;
1268
1269 g_array_ledger(c1.ledger_id)
1270 .pads(l_pad_count)
1271 .acctg_method_rule_id := c2.rule_id;
1272
1273 g_array_ledger(c1.ledger_id)
1274 .pads(l_pad_count)
1275 .amb_context_code := c2.amb_context_code;
1276
1277 g_array_ledger(c1.ledger_id)
1278 .pads(l_pad_count)
1279 .product_rule_owner := c2.pad_type;
1280
1281 g_array_ledger(c1.ledger_id)
1282 .pads(l_pad_count)
1283 .product_rule_code := c2.pad_code;
1284
1285 g_array_ledger(c1.ledger_id)
1286 .pads(l_pad_count)
1287 .ledger_product_rule_name := c2.ledger_pad_name;
1288
1289 g_array_ledger(c1.ledger_id)
1290 .pads(l_pad_count)
1291 .session_product_rule_name := c2.session_pad_name;
1292
1293 g_array_ledger(c1.ledger_id)
1294 .pads(l_pad_count)
1295 .pad_package_name := c2.pad_package_name;
1296
1297 g_array_ledger(c1.ledger_id)
1298 .pads(l_pad_count)
1299 .compile_status_code := c2.compile_status;
1300
1301 g_array_ledger(c1.ledger_id)
1302 .pads(l_pad_count)
1303 .start_date_active := c2.start_date;
1304
1305 g_array_ledger(c1.ledger_id)
1306 .pads(l_pad_count)
1307 .end_date_active := c2.end_date;
1308
1309 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1310 trace
1311 (p_msg =>'rule_id = '||TO_CHAR(c2.rule_id)
1312 ,p_level => C_LEVEL_STATEMENT
1313 ,p_module => l_log_module);
1314 trace
1315 (p_msg =>'amb_context_code = '||c2.amb_context_code
1316 ,p_level => C_LEVEL_STATEMENT
1317 ,p_module => l_log_module);
1318 trace
1319 (p_msg =>'pad_type = '||c2.pad_type
1320 ,p_level => C_LEVEL_STATEMENT
1321 ,p_module => l_log_module);
1322 trace
1323 (p_msg =>'pad_code = '||c2.pad_code
1324 ,p_level => C_LEVEL_STATEMENT
1325 ,p_module => l_log_module);
1326 trace
1327 (p_msg =>'ledger_pad_name = '||c2.ledger_pad_name
1328 ,p_level => C_LEVEL_STATEMENT
1329 ,p_module => l_log_module);
1330 trace
1331 (p_msg =>'session_pad_name = '||c2.session_pad_name
1332 ,p_level => C_LEVEL_STATEMENT
1333 ,p_module => l_log_module);
1334 trace
1335 (p_msg =>'pad_package_name = '||c2.pad_package_name
1336 ,p_level => C_LEVEL_STATEMENT
1337 ,p_module => l_log_module);
1338 trace
1339 (p_msg =>'compile_status = '||c2.compile_status
1340 ,p_level => C_LEVEL_STATEMENT
1341 ,p_module => l_log_module);
1342 trace
1343 (p_msg =>'start_date = '||TO_CHAR(c2.start_date)
1344 ,p_level => C_LEVEL_STATEMENT
1345 ,p_module => l_log_module);
1346 trace
1347 (p_msg =>'end_date = '||TO_CHAR(c2.end_date)
1348 ,p_level => C_LEVEL_STATEMENT
1349 ,p_module => l_log_module);
1350 END IF;
1351
1352 END LOOP;
1353
1354 IF g_array_ledger.EXISTS(c1.ledger_id) THEN
1355 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1356 trace
1357 (p_msg =>'Number of PADs = '||
1358 TO_CHAR(g_array_ledger(c1.ledger_id).pads.COUNT)
1359 ,p_level => C_LEVEL_STATEMENT
1360 ,p_module => l_log_module);
1361 END IF;
1362 END IF;
1363
1364 END LOOP;
1365
1366 ----Bug :11680489- Code change for VM based secondary ledger having different CoA than primary
1367 ------Start Load Primary Ledger info----------
1368 OPEN csr;
1369 FETCH csr INTO l_primary_ledger_id;
1370 IF csr%NOTFOUND THEN
1371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1372
1373 trace
1374 (p_msg => p_event_ledger_id||' is not a VM based secondary ledger'
1375 ,p_level => C_LEVEL_PROCEDURE
1376 ,p_module => l_log_module);
1377 END IF;
1378 END IF;
1379 CLOSE csr;
1380
1381 IF l_primary_ledger_id IS NOT NULL
1382 THEN
1383 FOR c4 IN csr_primary_ledger (l_event_ledger_category, l_primary_ledger_id) LOOP
1384 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1385 trace
1386 (p_msg =>'Reading ledger level cache for ledger '||TO_CHAR(c4.ledger_id)
1387 ,p_level => C_LEVEL_STATEMENT
1388 ,p_module => l_log_module);
1389 END IF;
1390
1391 -------------------------------------------------------------------------
1392 -- Storing category code in array to efficiently know the ledger
1393 -- category
1394 -------------------------------------------------------------------------
1395 g_array_ledger(c4.ledger_id).category_code := c4.ledger_category_code;
1396
1397 -------------------------------------------------------------------------
1398 -- Caching translated information
1399 -------------------------------------------------------------------------
1400 g_array_ledger(c4.ledger_id)
1401 .char_sources('XLA_EVENT_APPL_NAME') := c4.application_name;
1402
1403 g_array_ledger(c4.ledger_id)
1404 .char_sources('XLA_USER_JE_SOURCE_NAME') := c4.user_je_source_name;
1405
1406 g_array_ledger(c4.ledger_id)
1407 .char_sources('XLA_LEDGER_NAME') := c4.ledger_name;
1408
1409 g_array_ledger(c4.ledger_id)
1410 .char_sources('XLA_COA_NAME') := c4.ledger_coa_name;
1411
1412 g_array_ledger(c4.ledger_id)
1413 .char_sources_sl('XLA_COA_NAME') := c4.session_coa_name;
1414
1415 g_array_ledger(c4.ledger_id)
1416 .char_sources('XLA_ACCOUNTING_METHOD_NAME') := c4.ledger_slam_name;
1417
1418 g_array_ledger(c4.ledger_id)
1419 .char_sources_sl('XLA_ACCOUNTING_METHOD_NAME') := c4.session_slam_name;
1420
1421
1422 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1423 trace
1424 (p_msg =>'application_name = '||c4.application_name
1425 ,p_level => C_LEVEL_STATEMENT
1426 ,p_module => l_log_module);
1427 trace
1428 (p_msg =>'user_je_source_name = '||c4.user_je_source_name
1429 ,p_level => C_LEVEL_STATEMENT
1430 ,p_module => l_log_module);
1431 trace
1432 (p_msg =>'ledger_name = '||c4.ledger_name
1433 ,p_level => C_LEVEL_STATEMENT
1434 ,p_module => l_log_module);
1435 trace
1436 (p_msg =>'ledger_coa_name = '||c4.ledger_coa_name
1437 ,p_level => C_LEVEL_STATEMENT
1438 ,p_module => l_log_module);
1439 trace
1440 (p_msg =>'session_coa_name = '||c4.session_coa_name
1441 ,p_level => C_LEVEL_STATEMENT
1442 ,p_module => l_log_module);
1443 trace
1444 (p_msg =>'ledger_slam_name = '||c4.ledger_slam_name
1445 ,p_level => C_LEVEL_STATEMENT
1446 ,p_module => l_log_module);
1447 trace
1448 (p_msg =>'session_slam_name = '||c4.session_slam_name
1449 ,p_level => C_LEVEL_STATEMENT
1450 ,p_module => l_log_module);
1451 END IF;
1452
1453 -------------------------------------------------------------------------
1454 -- Caching untranslated information
1455 -------------------------------------------------------------------------
1456 g_array_ledger(c4.ledger_id)
1457 .char_sources('DYNAMIC_INSERTS_ALLOWED_FLAG') := c4.dynamic_inserts_allowed_flag;
1458
1459 g_array_ledger(c4.ledger_id)
1460 .num_sources('XLA_COA_ID') := c4.coa_id;
1461
1462 g_array_ledger(c4.ledger_id)
1463 .char_sources('XLA_ACCOUNTING_METHOD_OWNER') := c4.slam_type;
1464
1465 g_array_ledger(c4.ledger_id)
1466 .char_sources('XLA_CURRENCY_CODE') := c4.xla_currency_code;
1467
1468 g_array_ledger(c4.ledger_id)
1469 .char_sources('XLA_DESCRIPTION_LANGUAGE') := c4.xla_description_language;
1470
1471 g_array_ledger(c4.ledger_id)
1472 .char_sources('XLA_NLS_DESC_LANGUAGE') := c4.xla_nls_desc_language;
1473
1474 g_array_ledger(c4.ledger_id)
1475 .num_sources('XLA_ENTERED_CUR_BAL_SUS_CCID') := c4.xla_entered_cur_bal_sus_ccid;
1476
1477 g_array_ledger(c4.ledger_id)
1478 .num_sources('XLA_LEDGER_CUR_BAL_SUS_CCID') := c4.xla_ledger_cur_bal_sus_ccid;
1479
1480 g_array_ledger(c4.ledger_id)
1481 .num_sources('RES_ENCUMB_CODE_COMBINATION_ID') := c4.res_encumb_code_combination_id;
1482
1483 g_array_ledger(c4.ledger_id)
1484 .num_sources('XLA_ROUNDING_CCID') := c4.xla_rounding_ccid;
1485
1486 g_array_ledger(c4.ledger_id)
1487 .num_sources('XLA_MAX_DAYS_ROLL_RATE') := c4.ALC_MAX_DAYS_ROLL_RATE;
1488
1489 g_array_ledger(c4.ledger_id)
1490 .char_sources('XLA_INHERIT_CONVERSION_TYPE') := c4.ALC_INHERIT_CONVERSION_TYPE;
1491
1492 g_array_ledger(c4.ledger_id)
1493 .char_sources('XLA_DEFAULT_CONV_RATE_TYPE') := c4.ALC_DEFAULT_CONV_RATE_TYPE;
1494
1495 g_array_ledger(c4.ledger_id)
1496 .char_sources('LEDGER_CATEGORY_CODE') := c4.ledger_category_code;
1497
1498 g_array_ledger(c4.ledger_id)
1499 .num_sources('XLA_CURRENCY_PRECISION') := c4.ledger_currency_precision;
1500
1501 g_array_ledger(c4.ledger_id)
1502 .num_sources('XLA_CURRENCY_MAU') := c4.ledger_currency_mau;
1503
1504 g_array_ledger(c4.ledger_id)
1505 .char_sources('XLA_ROUNDING_RULE_CODE') := c4.xla_rounding_rule_code;
1506
1507 g_array_ledger(c4.ledger_id)
1508 .num_sources('SL_COA_MAPPING_ID') := c4.coa_mapping_id;
1509
1510 g_array_ledger(c4.ledger_id)
1511 .char_sources('GL_COA_MAPPING_NAME') := c4.coa_mapping_name;
1512
1513 g_array_ledger(c4.ledger_id)
1514 .char_sources('BAL_SEG_COLUMN_NAME') := c4.bal_seg_column_name;
1515
1516 g_array_ledger(c4.ledger_id)
1517 .char_sources('MGT_SEG_COLUMN_NAME') := c4.mgt_seg_column_name;
1518
1519 g_array_ledger(c4.ledger_id)
1520 .char_sources('SLA_BAL_BY_LEDGER_CURR_FLAG') := c4.xla_ledger_cur_bal_flag;
1521
1522 g_array_ledger(c4.ledger_id)
1523 .char_sources('XLA_ACCT_REVERSAL_OPTION') := c4.xla_acct_reversal_option_code;
1524
1525 g_array_ledger(c4.ledger_id)
1526 .num_sources('SLA_LEDGER_ID') := c4.sla_ledger_id ;
1527
1528 g_array_ledger(c4.ledger_id)
1529 .num_sources('LATEST_ENCUMBRANCE_YEAR') := c4.latest_encumbrance_year;
1530
1531 g_array_ledger(c4.ledger_id)
1532 .char_sources('BAL_SEG_VALUE_OPTION_CODE') := c4.bal_seg_value_option_code;
1533
1534 g_array_ledger(c4.ledger_id)
1535 .char_sources('MGT_SEG_VALUE_OPTION_CODE') := c4.mgt_seg_value_option_code;
1536
1537 g_array_ledger(c4.ledger_id)
1538 .char_sources('ALLOW_INTERCOMPANY_POST_FLAG') := c4.allow_intercompany_post_flag;
1539
1540 g_array_ledger(c4.ledger_id)
1541 .num_sources('TRANSACTION_CALENDAR_ID') := c4.transaction_calendar_id;
1542
1543 g_array_ledger(c4.ledger_id)
1544 .char_sources('ENABLE_AVERAGE_BALANCES_FLAG') := c4.enable_average_balances_flag;
1545
1546 g_array_ledger(c4.ledger_id)
1547 .char_sources('EFFECTIVE_DATE_RULE_CODE') := c4.effective_date_rule_code;
1548
1549 g_array_ledger(c4.ledger_id)
1550 .char_sources('SUSPENSE_ALLOWED_FLAG') := c4.suspense_allowed_flag;
1551
1552 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1553 trace
1554 (p_msg =>'dynamic_inserts_allowed_flag = '||c4.dynamic_inserts_allowed_flag
1555 ,p_level => C_LEVEL_STATEMENT
1556 ,p_module => l_log_module);
1557 trace
1558 (p_msg =>'coa_id = '||TO_CHAR(c4.coa_id)
1559 ,p_level => C_LEVEL_STATEMENT
1560 ,p_module => l_log_module);
1561 trace
1562 (p_msg =>'slam_type = '||c4.slam_type
1563 ,p_level => C_LEVEL_STATEMENT
1564 ,p_module => l_log_module);
1565 trace
1566 (p_msg =>'xla_currency_code = '||c4.xla_currency_code
1567 ,p_level => C_LEVEL_STATEMENT
1568 ,p_module => l_log_module);
1569 trace
1570 (p_msg =>'xla_description_language = '||c4.xla_description_language
1571 ,p_level => C_LEVEL_STATEMENT
1572 ,p_module => l_log_module);
1573 trace
1574 (p_msg =>'xla_nls_desc_language = '||c4.xla_nls_desc_language
1575 ,p_level => C_LEVEL_STATEMENT
1576 ,p_module => l_log_module);
1577 trace
1578 (p_msg =>'xla_entered_cur_bal_sus_ccid = '||TO_CHAR(c4.xla_entered_cur_bal_sus_ccid)
1579 ,p_level => C_LEVEL_STATEMENT
1580 ,p_module => l_log_module);
1581 trace
1582 (p_msg =>'xla_ledger_cur_bal_sus_ccid = '||TO_CHAR(c4.xla_ledger_cur_bal_sus_ccid)
1583 ,p_level => C_LEVEL_STATEMENT
1584 ,p_module => l_log_module);
1585 trace
1586 (p_msg =>'res_encumb_code_combination_id = '||TO_CHAR(c4.res_encumb_code_combination_id)
1587 ,p_level => C_LEVEL_STATEMENT
1588 ,p_module => l_log_module);
1589 trace
1590 (p_msg =>'ledger_category_code = '||c4.ledger_category_code
1591 ,p_level => C_LEVEL_STATEMENT
1592 ,p_module => l_log_module);
1593 trace
1594 (p_msg =>'ledger_currency_precision = '||TO_CHAR(c4.ledger_currency_precision)
1595 ,p_level => C_LEVEL_STATEMENT
1596 ,p_module => l_log_module);
1597 trace
1598 (p_msg =>'coa_mapping_id = '||TO_CHAR(c4.coa_mapping_id)
1599 ,p_level => C_LEVEL_STATEMENT
1600 ,p_module => l_log_module);
1601 trace
1602 (p_msg =>'coa_mapping_name = '||c4.coa_mapping_name
1603 ,p_level => C_LEVEL_STATEMENT
1604 ,p_module => l_log_module);
1605 trace
1606 (p_msg =>'bal_seg_column_name = '||c4.bal_seg_column_name
1607 ,p_level => C_LEVEL_STATEMENT
1608 ,p_module => l_log_module);
1609 trace
1610 (p_msg =>'mgt_seg_column_name = '||c4.mgt_seg_column_name
1611 ,p_level => C_LEVEL_STATEMENT
1612 ,p_module => l_log_module);
1613 trace
1614 (p_msg =>'xla_ledger_cur_bal_flag = '||c4.xla_ledger_cur_bal_flag
1615 ,p_level => C_LEVEL_STATEMENT
1616 ,p_module => l_log_module);
1617 trace
1618 (p_msg =>'xla_acct_reversal_option_code = '||c4.xla_acct_reversal_option_code
1619 ,p_level => C_LEVEL_STATEMENT
1620 ,p_module => l_log_module);
1621 trace
1622 (p_msg =>'sla_ledger_id = '||TO_CHAR(c4.sla_ledger_id)
1623 ,p_level => C_LEVEL_STATEMENT
1624 ,p_module => l_log_module);
1625 trace
1626 (p_msg =>'latest_encumbrance_year = '||TO_CHAR(c4.latest_encumbrance_year)
1627 ,p_level => C_LEVEL_STATEMENT
1628 ,p_module => l_log_module);
1629 trace
1630 (p_msg =>'bal_seg_value_option_code = '||c4.bal_seg_value_option_code
1631 ,p_level => C_LEVEL_STATEMENT
1632 ,p_module => l_log_module);
1633 trace
1634 (p_msg =>'mgt_seg_value_option_code = '||c4.mgt_seg_value_option_code
1635 ,p_level => C_LEVEL_STATEMENT
1636 ,p_module => l_log_module);
1637 trace
1638 (p_msg =>'allow_intercompany_post_flag = '||c4.allow_intercompany_post_flag
1639 ,p_level => C_LEVEL_STATEMENT
1640 ,p_module => l_log_module);
1641 trace
1642 (p_msg =>'transaction_calendar_id = '||c4.transaction_calendar_id
1643 ,p_level => C_LEVEL_STATEMENT
1644 ,p_module => l_log_module);
1645 trace
1646 (p_msg =>'enable_average_balance_flag = '||c4.enable_average_balances_flag
1647 ,p_level => C_LEVEL_STATEMENT
1648 ,p_module => l_log_module);
1649 trace
1650 (p_msg =>'effective_date_rule_code = '||c4.effective_date_rule_code
1651 ,p_level => C_LEVEL_STATEMENT
1652 ,p_module => l_log_module);
1653 END IF;
1654
1655 -------------------------------------------------------------------------
1656 -- Caching alc ledger ids only if base ledger is a primary ledger. There
1657 -- cannot be ALC ledgers for a secondary ledger
1658 -------------------------------------------------------------------------
1659 IF c4.ledger_category_code = 'PRIMARY' THEN
1660 g_primary_ledger_id := c4.ledger_id;
1661
1662 END IF;
1663
1664 END LOOP;
1665 END IF;
1666 -----End Load primary Ledger Info------------
1667
1668 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1669 trace
1670 (p_msg =>'Number of base ledgers = '||TO_CHAR(g_base_ledger_ids.COUNT)
1671 ,p_level => C_LEVEL_STATEMENT
1672 ,p_module => l_log_module);
1673 END IF;
1674
1675 IF g_base_ledger_ids.count = 0 THEN
1676 IF (C_LEVEL_ERROR >= g_log_level) THEN
1677 trace
1678 (p_msg => 'ERROR: Problem in caching ledgers. Probably the ledger '||
1679 'setup is incomplete. ledger ID = '||TO_CHAR(p_event_ledger_id)
1680 ,p_level => C_LEVEL_ERROR
1681 ,p_module => l_log_module);
1682 END IF;
1683
1684 xla_exceptions_pkg.raise_message
1685 (p_appli_s_name => 'XLA'
1686 ,p_msg_name => 'XLA_COMMON_ERROR'
1687 ,p_token_1 => 'ERROR'
1688 ,p_value_1 => 'There is problem in caching the ledger. '||
1689 'Probably, the ledger setup is not complete.'
1690 ,p_token_2 => 'LOCATION'
1691 ,p_value_2 => 'load_application_ledgers');
1692 END IF;
1693
1694 ----------------------------------------------------------------------------
1695 -- Call routine to cache application setups
1696 ----------------------------------------------------------------------------
1697 cache_application_setup
1698 (p_application_id => p_application_id
1699 ,p_ledger_id => p_event_ledger_id
1700 ,p_ledger_category => l_event_ledger_category); --pass ledger category also Bug #4554935
1701
1702 ----------------------------------------------------------------------------
1703 -- Call routine to cache defined system sources
1704 ----------------------------------------------------------------------------
1705 load_system_sources;
1706
1707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1708 trace
1709 (p_msg => 'END of procedure LOAD_APPLICATION_LEDGERS'
1710 ,p_level => C_LEVEL_PROCEDURE
1711 ,p_module => l_log_module);
1712 END IF;
1713
1714 EXCEPTION
1715 -- Bug 5018098
1716 WHEN NO_DATA_FOUND THEN
1717 IF csr_base_ledger%NOTFOUND THEN
1718 xla_exceptions_pkg.raise_message
1719 (p_appli_s_name => 'XLA'
1720 ,p_msg_name => 'XLA_COMMON_ERROR'
1721 ,p_token_1 => 'ERROR'
1722 ,p_value_1 => 'ERROR: Problem getting ledger information for application '||p_application_id||'. '||
1723 'Subledger Accounting Options are not defined for this ledger and application.
1724 Please run Update Subledger Accounting Options program for your application.'
1725 ,p_token_2 => 'LOCATION'
1726 ,p_value_2 => 'xla_accounting_cache_pkg.load_application_ledgers');
1727 END IF;
1728 WHEN xla_exceptions_pkg.application_exception THEN
1729 RAISE;
1730 WHEN OTHERS THEN
1731 xla_exceptions_pkg.raise_message
1732 (p_location => l_log_module);
1733 END load_application_ledgers;
1734
1735
1736 --=============================================================================
1737 --
1738 --
1739 --
1740 --=============================================================================
1741 PROCEDURE get_pad_info
1742 (p_ledger_id IN NUMBER
1743 ,p_event_date IN DATE
1744 ,p_pad_owner OUT NOCOPY VARCHAR2
1745 ,p_pad_code OUT NOCOPY VARCHAR2
1746 ,p_ledger_pad_name OUT NOCOPY VARCHAR2
1747 ,p_session_pad_name OUT NOCOPY VARCHAR2
1748 ,p_pad_compile_status OUT NOCOPY VARCHAR2
1749 ,p_pad_package_name OUT NOCOPY VARCHAR2) IS
1750 l_ledger_id NUMBER;
1751 l_pad_found BOOLEAN := FALSE;
1752 l_log_module VARCHAR2(240);
1753 BEGIN
1754 IF g_log_enabled THEN
1755 l_log_module := C_DEFAULT_MODULE||'.get_pad_info';
1756 END IF;
1757
1758 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1759 trace
1760 (p_msg => 'BEGIN of procedure GET_PAD_INFO'
1761 ,p_level => C_LEVEL_PROCEDURE
1762 ,p_module => l_log_module);
1763 trace
1764 (p_msg => 'p_ledger_id = ' ||TO_CHAR(p_ledger_id)
1765 ,p_level => C_LEVEL_PROCEDURE
1766 ,p_module => l_log_module);
1767 trace
1768 (p_msg => 'p_event_date = '||TO_CHAR(p_event_date)
1769 ,p_level => C_LEVEL_PROCEDURE
1770 ,p_module => l_log_module);
1771 END IF;
1772
1773 l_ledger_id := p_ledger_id;
1774
1775 IF (g_array_ledger(l_ledger_id).category_code = 'ALC')
1776 THEN
1777 l_ledger_id := g_primary_ledger_id;
1778 END IF;
1779
1780 ----------------------------------------------------------------------------
1781 -- PAD start date and end date could be null. PAD effective dates must be
1782 -- compared using NVL.
1783 ----------------------------------------------------------------------------
1784 FOR i in 1..g_array_ledger(l_ledger_id).pads.COUNT LOOP
1785 IF (p_event_date >=
1786 NVL(g_array_ledger(l_ledger_id).pads(i).start_date_active, p_event_date-1)
1787 )
1788 AND
1789 (p_event_date <=
1790 NVL(g_array_ledger(p_ledger_id).pads(i).end_date_active, p_event_date+1)
1791 )
1792 THEN
1793 p_pad_owner := g_array_ledger(l_ledger_id)
1794 .pads(i).product_rule_owner;
1795 p_pad_code := g_array_ledger(l_ledger_id)
1796 .pads(i).product_rule_code;
1797 p_ledger_pad_name := g_array_ledger(l_ledger_id)
1798 .pads(i).ledger_product_rule_name;
1799 p_session_pad_name := g_array_ledger(l_ledger_id)
1800 .pads(i).session_product_rule_name;
1801 p_pad_compile_status := g_array_ledger(l_ledger_id)
1802 .pads(i).compile_status_code;
1803 p_pad_package_name := g_array_ledger(l_ledger_id)
1804 .pads(i).pad_package_name;
1805 l_pad_found := TRUE;
1806 EXIT;
1807 END IF;
1808 END LOOP;
1809
1810 IF NOT l_pad_found THEN
1811 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1812 trace
1813 (p_msg => 'WARNNING: No PAD found for : '||
1814 'ledger = '||TO_CHAR(p_ledger_id)||
1815 ' and event date = '||TO_CHAR(p_event_date)
1816 ,p_level => C_LEVEL_EXCEPTION
1817 ,p_module => l_log_module);
1818 END IF;
1819 END IF;
1820
1821 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1822 trace
1823 (p_msg => 'p_pad_owner = '||p_pad_owner
1824 ,p_level => C_LEVEL_PROCEDURE
1825 ,p_module => l_log_module);
1826 trace
1827 (p_msg => 'p_pad_code = '||p_pad_code
1828 ,p_level => C_LEVEL_PROCEDURE
1829 ,p_module => l_log_module);
1830 trace
1831 (p_msg => 'p_ledger_pad_name = '||p_ledger_pad_name
1832 ,p_level => C_LEVEL_PROCEDURE
1833 ,p_module => l_log_module);
1834 trace
1835 (p_msg => 'p_session_pad_name = '||p_session_pad_name
1836 ,p_level => C_LEVEL_PROCEDURE
1837 ,p_module => l_log_module);
1838 trace
1839 (p_msg => 'p_pad_compile_status = '||p_pad_compile_status
1840 ,p_level => C_LEVEL_PROCEDURE
1841 ,p_module => l_log_module);
1842 trace
1843 (p_msg => 'p_pad_package_name = '||p_pad_package_name
1844 ,p_level => C_LEVEL_PROCEDURE
1845 ,p_module => l_log_module);
1846 trace
1847 (p_msg => 'END of procedure GET_PAD_INFO'
1848 ,p_level => C_LEVEL_PROCEDURE
1849 ,p_module => l_log_module);
1850 END IF;
1851 EXCEPTION
1852 WHEN xla_exceptions_pkg.application_exception THEN
1853 RAISE;
1854 WHEN OTHERS THEN
1855 xla_exceptions_pkg.raise_message
1856 (p_location => l_log_module);
1857 END get_pad_info;
1858
1859
1860 --=============================================================================
1861 --
1862 --
1863 --
1864 --=============================================================================
1865 PROCEDURE get_event_info
1866 (p_ledger_id IN NUMBER
1867 ,p_event_class_code IN VARCHAR2
1868 ,p_event_type_code IN VARCHAR2
1869 ,p_ledger_event_class_name OUT NOCOPY VARCHAR2
1870 ,p_session_event_class_name OUT NOCOPY VARCHAR2
1871 ,p_ledger_event_type_name OUT NOCOPY VARCHAR2
1872 ,p_session_event_type_name OUT NOCOPY VARCHAR2) IS
1873 l_ledger_id NUMBER;
1874 l_language VARCHAR2(30);
1875 l_log_module VARCHAR2(240);
1876 BEGIN
1877 IF g_log_enabled THEN
1878 l_log_module := C_DEFAULT_MODULE||'.get_event_info';
1879 END IF;
1880
1881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1882 trace
1883 (p_msg => 'BEGIN of procedure GET_EVENT_INFO'
1884 ,p_level => C_LEVEL_PROCEDURE
1885 ,p_module => l_log_module);
1886 trace
1887 (p_msg => 'p_ledger_id = ' ||TO_CHAR(p_ledger_id)
1888 ,p_level => C_LEVEL_PROCEDURE
1889 ,p_module => l_log_module);
1890 trace
1891 (p_msg => 'p_event_class_code = '||p_event_class_code
1892 ,p_level => C_LEVEL_PROCEDURE
1893 ,p_module => l_log_module);
1894 trace
1895 (p_msg => 'p_event_type_code = '||p_event_type_code
1896 ,p_level => C_LEVEL_PROCEDURE
1897 ,p_module => l_log_module);
1898 END IF;
1899
1900 l_ledger_id := p_ledger_id;
1901
1902 IF (g_array_ledger(l_ledger_id).category_code = 'ALC')
1903 THEN
1904 l_ledger_id := g_primary_ledger_id;
1905 END IF;
1906
1907 l_language := g_array_ledger(l_ledger_id).char_sources('XLA_DESCRIPTION_LANGUAGE');
1908
1909 p_ledger_event_class_name := g_array_event_classes(p_event_class_code)
1910 .event_class_name_tl(l_language);
1911 p_ledger_event_type_name := g_array_event_types(p_event_type_code)
1912 .event_type_name_tl(l_language);
1913 p_session_event_class_name := g_array_event_classes(p_event_class_code)
1914 .event_class_name_sl;
1915 p_session_event_type_name := g_array_event_types(p_event_type_code)
1916 .event_type_name_sl;
1917
1918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1919 trace
1920 (p_msg => 'p_ledger_event_class_name = '||p_ledger_event_class_name
1921 ,p_level => C_LEVEL_PROCEDURE
1922 ,p_module => l_log_module);
1923 trace
1924 (p_msg => 'p_session_event_class_name = '||p_session_event_class_name
1925 ,p_level => C_LEVEL_PROCEDURE
1926 ,p_module => l_log_module);
1927 trace
1928 (p_msg => 'p_ledger_event_type_name = '||p_ledger_event_type_name
1929 ,p_level => C_LEVEL_PROCEDURE
1930 ,p_module => l_log_module);
1931 trace
1932 (p_msg => 'p_session_event_type_name = '||p_session_event_type_name
1933 ,p_level => C_LEVEL_PROCEDURE
1934 ,p_module => l_log_module);
1935 trace
1936 (p_msg => 'END of procedure GET_EVENT_INFO'
1937 ,p_level => C_LEVEL_PROCEDURE
1938 ,p_module => l_log_module);
1939 END IF;
1940 EXCEPTION
1941 WHEN xla_exceptions_pkg.application_exception THEN
1942 RAISE;
1943 WHEN OTHERS THEN
1944 xla_exceptions_pkg.raise_message
1945 (p_location => l_log_module);
1946 END get_event_info;
1947
1948
1949 --=============================================================================
1950 --
1951 -- get values from accounting cache
1952 --
1953 --=============================================================================
1954 FUNCTION GetValueNum
1955 (p_source_code IN VARCHAR2
1956 ,p_target_ledger_id IN NUMBER)
1957 RETURN NUMBER IS
1958 l_ledger_id NUMBER;
1959 l_value NUMBER;
1960 l_log_module VARCHAR2(240);
1961
1962 BEGIN
1963 IF g_log_enabled THEN
1964 l_log_module := C_DEFAULT_MODULE||'.GetValueNum';
1965 END IF;
1966
1967 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1968 trace
1969 (p_msg => 'BEGIN of function GETVALUENUM'
1970 ,p_level => C_LEVEL_PROCEDURE
1971 ,p_module => l_log_module);
1972 trace
1973 (p_msg => 'p_source_code = ' ||p_source_code
1974 ,p_level => C_LEVEL_PROCEDURE
1975 ,p_module => l_log_module);
1976 trace
1977 (p_msg => 'p_target_ledger_id = '||TO_CHAR(p_target_ledger_id)
1978 ,p_level => C_LEVEL_PROCEDURE
1979 ,p_module => l_log_module);
1980 END IF;
1981
1982 IF is_source_valid
1983 (p_source_code => p_source_code
1984 ,p_datatype => 'D')
1985 THEN
1986 l_ledger_id := p_target_ledger_id;
1987
1988 IF ((g_array_ledger(l_ledger_id).category_code = 'ALC') AND
1989 (NOT(g_array_ledger(l_ledger_id).num_sources.EXISTS(p_source_code))))
1990 THEN
1991 l_ledger_id := g_primary_ledger_id;
1992 END IF;
1993
1994 l_value := g_array_ledger(l_ledger_id).num_sources(p_source_code);
1995 END IF;
1996
1997 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1998 trace
1999 (p_msg => 'return value. = '||TO_CHAR(l_value)
2000 ,p_level => C_LEVEL_PROCEDURE
2001 ,p_module => l_log_module);
2002 trace
2003 (p_msg => 'END of function GETVALUENUM'
2004 ,p_level => C_LEVEL_PROCEDURE
2005 ,p_module => l_log_module);
2006 END IF;
2007
2008 RETURN l_value;
2009 EXCEPTION
2010 WHEN xla_exceptions_pkg.application_exception THEN
2011 RAISE;
2012 WHEN OTHERS THEN
2013 xla_exceptions_pkg.raise_message
2014 (p_location => l_log_module);
2015 END GetValueNum;
2016
2017
2018 --=============================================================================
2019 --
2020 -- get values from accounting cache
2021 --
2022 --=============================================================================
2023 FUNCTION GetValueNum
2024 (p_source_code IN VARCHAR2)
2025 RETURN NUMBER IS
2026 l_value NUMBER;
2027 l_log_module VARCHAR2(240);
2028 BEGIN
2029 IF g_log_enabled THEN
2030 l_log_module := C_DEFAULT_MODULE||'.GetValueNum';
2031 END IF;
2032
2033 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2034 trace
2035 (p_msg => 'BEGIN of function GETVALUENUM'
2036 ,p_level => C_LEVEL_PROCEDURE
2037 ,p_module => l_log_module);
2038 trace
2039 (p_msg => 'p_source_code = ' ||p_source_code
2040 ,p_level => C_LEVEL_PROCEDURE
2041 ,p_module => l_log_module);
2042 END IF;
2043
2044 IF is_source_valid
2045 (p_source_code => p_source_code
2046 ,p_datatype => 'D')
2047 THEN
2048 l_value := g_record_session.num_sources(p_source_code);
2049 END IF;
2050
2051 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2052 trace
2053 (p_msg => 'return value. = '||TO_CHAR(l_value)
2054 ,p_level => C_LEVEL_PROCEDURE
2055 ,p_module => l_log_module);
2056 trace
2057 (p_msg => 'END of function GETVALUENUM'
2058 ,p_level => C_LEVEL_PROCEDURE
2059 ,p_module => l_log_module);
2060 END IF;
2061
2062 RETURN l_value;
2063 EXCEPTION
2064 WHEN xla_exceptions_pkg.application_exception THEN
2065 RAISE;
2066 WHEN OTHERS THEN
2067 xla_exceptions_pkg.raise_message
2068 (p_location => l_log_module);
2069 END GetValueNum;
2070
2071
2072
2073 --=============================================================================
2074 --
2075 --
2076 --
2077 --=============================================================================
2078 FUNCTION GetValueDate
2079 (p_source_code IN VARCHAR2
2080 ,p_target_ledger_id IN NUMBER)
2081 RETURN DATE IS
2082 l_ledger_id NUMBER;
2083 l_value DATE;
2084 l_log_module VARCHAR2(240);
2085 BEGIN
2086 IF g_log_enabled THEN
2087 l_log_module := C_DEFAULT_MODULE||'.GetValueDate';
2088 END IF;
2089
2090 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2091 trace
2092 (p_msg => 'BEGIN of function GETVALUEDATE'
2093 ,p_level => C_LEVEL_PROCEDURE
2094 ,p_module => l_log_module);
2095 trace
2096 (p_msg => 'p_source_code = ' ||p_source_code
2097 ,p_level => C_LEVEL_PROCEDURE
2098 ,p_module => l_log_module);
2099 trace
2100 (p_msg => 'p_target_ledger_id = '||TO_CHAR(p_target_ledger_id)
2101 ,p_level => C_LEVEL_PROCEDURE
2102 ,p_module => l_log_module);
2103 END IF;
2104
2105 IF is_source_valid
2106 (p_source_code => p_source_code
2107 ,p_datatype => 'D')
2108 THEN
2109 l_ledger_id := p_target_ledger_id;
2110 IF ((g_array_ledger(l_ledger_id).category_code = 'ALC') AND
2111 (NOT(g_array_ledger(l_ledger_id).date_sources.EXISTS(p_source_code))))
2112 THEN
2113 l_ledger_id := g_primary_ledger_id;
2114 END IF;
2115
2116 l_value := g_array_ledger(l_ledger_id).date_sources(p_source_code);
2117 END IF;
2118
2119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2120 trace
2121 (p_msg => 'return value. = '||TO_CHAR(l_value)
2122 ,p_level => C_LEVEL_PROCEDURE
2123 ,p_module => l_log_module);
2124 trace
2125 (p_msg => 'END of function GETVALUEDATE'
2126 ,p_level => C_LEVEL_PROCEDURE
2127 ,p_module => l_log_module);
2128 END IF;
2129
2130 RETURN l_value;
2131 EXCEPTION
2132 WHEN xla_exceptions_pkg.application_exception THEN
2133 RAISE;
2134 WHEN OTHERS THEN
2135 xla_exceptions_pkg.raise_message
2136 (p_location => l_log_module);
2137 END GetValueDate;
2138
2139
2140 --=============================================================================
2141 --
2142 --
2143 --
2144 --=============================================================================
2145 FUNCTION GetValueDate
2146 (p_source_code IN VARCHAR2)
2147 RETURN DATE IS
2148 l_value DATE;
2149 l_log_module VARCHAR2(240);
2150 BEGIN
2151 IF g_log_enabled THEN
2152 l_log_module := C_DEFAULT_MODULE||'.GetValueDate';
2153 END IF;
2154
2155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2156 trace
2157 (p_msg => 'BEGIN of function GETVALUEDATE'
2158 ,p_level => C_LEVEL_PROCEDURE
2159 ,p_module => l_log_module);
2160 trace
2161 (p_msg => 'p_source_code = ' ||p_source_code
2162 ,p_level => C_LEVEL_PROCEDURE
2163 ,p_module => l_log_module);
2164 END IF;
2165
2166 IF is_source_valid
2167 (p_source_code => p_source_code
2168 ,p_datatype => 'D')
2169 THEN
2170 l_value := g_record_session.date_sources(p_source_code);
2171 END IF;
2172
2173 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2174 trace
2175 (p_msg => 'return value. = '||TO_CHAR(l_value)
2176 ,p_level => C_LEVEL_PROCEDURE
2177 ,p_module => l_log_module);
2178 trace
2179 (p_msg => 'END of function GETVALUEDATE'
2180 ,p_level => C_LEVEL_PROCEDURE
2181 ,p_module => l_log_module);
2182 END IF;
2183
2184 RETURN l_value;
2185 EXCEPTION
2186 WHEN xla_exceptions_pkg.application_exception THEN
2187 RAISE;
2188 WHEN OTHERS THEN
2189 xla_exceptions_pkg.raise_message
2190 (p_location => l_log_module);
2191 END GetValueDate;
2192
2193
2194 --=============================================================================
2195 --
2196 --
2197 --
2198 --=============================================================================
2199 FUNCTION GetValueChar
2200 (p_source_code IN VARCHAR2
2201 ,p_target_ledger_id IN NUMBER)
2202 RETURN VARCHAR2 IS
2203 l_ledger_id NUMBER;
2204 l_value VARCHAR2(240);
2205 l_log_module VARCHAR2(240);
2206 BEGIN
2207 IF g_log_enabled THEN
2208 l_log_module := C_DEFAULT_MODULE||'.GetValueChar';
2209 END IF;
2210
2211 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2212 trace
2213 (p_msg => 'BEGIN of function GETVALUECHAR'
2214 ,p_level => C_LEVEL_PROCEDURE
2215 ,p_module => l_log_module);
2216 trace
2217 (p_msg => 'p_source_code = ' ||p_source_code
2218 ,p_level => C_LEVEL_PROCEDURE
2219 ,p_module => l_log_module);
2220 trace
2221 (p_msg => 'p_target_ledger_id = '||TO_CHAR(p_target_ledger_id)
2222 ,p_level => C_LEVEL_PROCEDURE
2223 ,p_module => l_log_module);
2224 END IF;
2225
2226 IF is_source_valid
2227 (p_source_code => p_source_code
2228 ,p_datatype => 'C')
2229 THEN
2230 l_ledger_id := p_target_ledger_id;
2231 IF ((g_array_ledger(l_ledger_id).category_code = 'ALC') AND
2232 (NOT(g_array_ledger(l_ledger_id).char_sources.EXISTS(p_source_code))))
2233 THEN
2234 l_ledger_id := g_primary_ledger_id;
2235 END IF;
2236
2237 l_value := g_array_ledger(l_ledger_id).char_sources(p_source_code);
2238 END IF;
2239
2240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2241 trace
2242 (p_msg => 'return value. = '||TO_CHAR(l_value)
2243 ,p_level => C_LEVEL_PROCEDURE
2244 ,p_module => l_log_module);
2245 trace
2246 (p_msg => 'END of function GETVALUECHAR'
2247 ,p_level => C_LEVEL_PROCEDURE
2248 ,p_module => l_log_module);
2249 END IF;
2250
2251 RETURN l_value;
2252 EXCEPTION
2253 WHEN xla_exceptions_pkg.application_exception THEN
2254 RAISE;
2255 WHEN OTHERS THEN
2256 xla_exceptions_pkg.raise_message
2257 (p_location => l_log_module);
2258 END GetValueChar;
2259
2260
2261 --=============================================================================
2262 --
2263 --
2264 --
2265 --=============================================================================
2266 FUNCTION GetValueChar
2267 (p_source_code IN VARCHAR2)
2268 RETURN VARCHAR2 IS
2269 l_value VARCHAR2(240);
2270 l_log_module VARCHAR2(240);
2271
2272 BEGIN
2273 IF g_log_enabled THEN
2274 l_log_module := C_DEFAULT_MODULE||'.GetValueChar';
2275 END IF;
2276
2277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2278 trace
2279 (p_msg => 'BEGIN of function GETVALUECHAR'
2280 ,p_level => C_LEVEL_PROCEDURE
2281 ,p_module => l_log_module);
2282 trace
2283 (p_msg => 'p_source_code = ' ||p_source_code
2284 ,p_level => C_LEVEL_PROCEDURE
2285 ,p_module => l_log_module);
2286 END IF;
2287
2288 IF is_source_valid
2289 (p_source_code => p_source_code
2290 ,p_datatype => 'C')
2291 THEN
2292 l_value := g_record_session.char_sources(p_source_code);
2293 END IF;
2294
2295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2296 trace
2297 (p_msg => 'return value. = '||TO_CHAR(l_value)
2298 ,p_level => C_LEVEL_PROCEDURE
2299 ,p_module => l_log_module);
2300 trace
2301 (p_msg => 'END of function GETVALUECHAR'
2302 ,p_level => C_LEVEL_PROCEDURE
2303 ,p_module => l_log_module);
2304 END IF;
2305
2306 RETURN l_value;
2307 EXCEPTION
2308 WHEN xla_exceptions_pkg.application_exception THEN
2309 RAISE;
2310 WHEN OTHERS THEN
2311 xla_exceptions_pkg.raise_message
2312 (p_location => l_log_module);
2313 END GetValueChar;
2314
2315
2316 --=============================================================================
2317 --
2318 --
2319 --
2320 --=============================================================================
2321 FUNCTION GetSessionValueChar
2322 (p_source_code IN VARCHAR2
2323 ,p_target_ledger_id IN NUMBER)
2324 RETURN VARCHAR2 IS
2325 l_ledger_id NUMBER;
2326 l_value VARCHAR2(240);
2327 l_log_module VARCHAR2(240);
2328 BEGIN
2329 IF g_log_enabled THEN
2330 l_log_module := C_DEFAULT_MODULE||'.GetSessionValueChar';
2331 END IF;
2332
2333 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2334 trace
2335 (p_msg => 'BEGIN of function GETSESSIONVALUECHAR'
2336 ,p_level => C_LEVEL_PROCEDURE
2337 ,p_module => l_log_module);
2338 trace
2339 (p_msg => 'p_source_code = ' ||p_source_code
2340 ,p_level => C_LEVEL_PROCEDURE
2341 ,p_module => l_log_module);
2342 trace
2343 (p_msg => 'p_target_ledger_id = '||TO_CHAR(p_target_ledger_id)
2344 ,p_level => C_LEVEL_PROCEDURE
2345 ,p_module => l_log_module);
2346 END IF;
2347
2348 IF is_source_valid
2349 (p_source_code => p_source_code
2350 ,p_datatype => 'C')
2351 THEN
2352 l_ledger_id := p_target_ledger_id;
2353
2354 IF ((g_array_ledger(l_ledger_id).category_code = 'ALC') AND
2355 (NOT(g_array_ledger(l_ledger_id).char_sources_sl.EXISTS(p_source_code))))
2356 THEN
2357 l_ledger_id := g_primary_ledger_id;
2358 END IF;
2359
2360 l_value := g_array_ledger(l_ledger_id).char_sources_sl(p_source_code);
2361 END IF;
2362
2363 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2364 trace
2365 (p_msg => 'return value. = '||TO_CHAR(l_value)
2366 ,p_level => C_LEVEL_PROCEDURE
2367 ,p_module => l_log_module);
2368 trace
2369 (p_msg => 'END of function GETSESSIONVALUECHAR'
2370 ,p_level => C_LEVEL_PROCEDURE
2371 ,p_module => l_log_module);
2372 END IF;
2373
2374 RETURN l_value;
2375 EXCEPTION
2376 WHEN xla_exceptions_pkg.application_exception THEN
2377 RAISE;
2378 WHEN OTHERS THEN
2379 xla_exceptions_pkg.raise_message
2380 (p_location => l_log_module);
2381 END GetSessionValueChar;
2382
2383
2384 --=============================================================================
2385 --
2386 --
2387 --
2388 --=============================================================================
2389 FUNCTION GetSessionValueChar
2390 (p_source_code IN VARCHAR2)
2391 RETURN VARCHAR2 IS
2392 l_value VARCHAR2(240);
2393 l_log_module VARCHAR2(240);
2394 BEGIN
2395 IF g_log_enabled THEN
2396 l_log_module := C_DEFAULT_MODULE||'.GetSessionValueChar';
2397 END IF;
2398
2399 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2400 trace
2401 (p_msg => 'BEGIN of function GETSESSIONVALUECHAR'
2402 ,p_level => C_LEVEL_PROCEDURE
2403 ,p_module => l_log_module);
2404 trace
2405 (p_msg => 'p_source_code = ' ||p_source_code
2406 ,p_level => C_LEVEL_PROCEDURE
2407 ,p_module => l_log_module);
2408 END IF;
2409
2410 IF is_source_valid
2411 (p_source_code => p_source_code
2412 ,p_datatype => 'C')
2413 THEN
2414 l_value := g_record_session.char_sources_sl(p_source_code);
2415 END IF;
2416
2417 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2418 trace
2419 (p_msg => 'return value. = '||TO_CHAR(l_value)
2420 ,p_level => C_LEVEL_PROCEDURE
2421 ,p_module => l_log_module);
2422 trace
2423 (p_msg => 'END of function GETSESSIONVALUECHAR'
2424 ,p_level => C_LEVEL_PROCEDURE
2425 ,p_module => l_log_module);
2426 END IF;
2427
2428 RETURN l_value;
2429 EXCEPTION
2430 WHEN xla_exceptions_pkg.application_exception THEN
2431 RAISE;
2432 WHEN OTHERS THEN
2433 xla_exceptions_pkg.raise_message
2434 (p_location => l_log_module);
2435 END GetSessionValueChar;
2436
2437
2438 --=============================================================================
2439 --
2440 --
2441 --
2442 --=============================================================================
2443 FUNCTION GetAlcLedgers
2444 (p_primary_ledger_id IN NUMBER)
2445 RETURN t_array_ledger_id IS
2446 l_array_alc_ledgers t_array_ledger_id;
2447 l_log_module VARCHAR2(240);
2448 BEGIN
2449 IF g_log_enabled THEN
2450 l_log_module := C_DEFAULT_MODULE||'.GetAlcLedgers';
2451 END IF;
2452
2453 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2454 trace
2455 (p_msg => 'BEGIN of function GETALCLEDGERS'
2456 ,p_level => C_LEVEL_PROCEDURE
2457 ,p_module => l_log_module);
2458 trace
2459 (p_msg => 'p_primary_ledger_id = '||TO_CHAR(p_primary_ledger_id)
2460 ,p_level => C_LEVEL_PROCEDURE
2461 ,p_module => l_log_module);
2462 END IF;
2463
2464 IF p_primary_ledger_id = g_primary_ledger_id THEN
2465 l_array_alc_ledgers := g_alc_ledger_ids;
2466 END IF;
2467
2468 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2469 trace
2470 (p_msg => 'Count of alc ledgers returned = '||
2471 TO_CHAR(l_array_alc_ledgers.COUNT)
2472 ,p_level => C_LEVEL_PROCEDURE
2473 ,p_module => l_log_module);
2474 trace
2475 (p_msg => 'END of function GETALCLEDGERS'
2476 ,p_level => C_LEVEL_PROCEDURE
2477 ,p_module => l_log_module);
2478 END IF;
2479
2480 RETURN l_array_alc_ledgers;
2481 EXCEPTION
2482 WHEN xla_exceptions_pkg.application_exception THEN
2483 RAISE;
2484 WHEN OTHERS THEN
2485 xla_exceptions_pkg.raise_message
2486 (p_location => l_log_module);
2487 END GetAlcLedgers;
2488
2489
2490 --=============================================================================
2491 --
2492 --
2493 --
2494 --=============================================================================
2495 FUNCTION GetLedgers
2496 RETURN t_array_ledger_id IS
2497 l_log_module VARCHAR2(240);
2498 BEGIN
2499 IF g_log_enabled THEN
2500 l_log_module := C_DEFAULT_MODULE||'.GetLedgers';
2501 END IF;
2502
2503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2504 trace
2505 (p_msg => 'BEGIN of function GETLEDGERS'
2506 ,p_level => C_LEVEL_PROCEDURE
2507 ,p_module => l_log_module);
2508 END IF;
2509
2510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2511 trace
2512 (p_msg => 'Count of ledgers returned = '||
2513 TO_CHAR(g_base_ledger_ids.COUNT)
2514 ,p_level => C_LEVEL_PROCEDURE
2515 ,p_module => l_log_module);
2516 trace
2517 (p_msg => 'END of function GETLEDGERS'
2518 ,p_level => C_LEVEL_PROCEDURE
2519 ,p_module => l_log_module);
2520 END IF;
2521
2522 RETURN g_base_ledger_ids;
2523 EXCEPTION
2524 WHEN xla_exceptions_pkg.application_exception THEN
2525 RAISE;
2526 WHEN OTHERS THEN
2527 xla_exceptions_pkg.raise_message
2528 (p_location => l_log_module);
2529 END GetLedgers;
2530
2531
2532
2533 --=============================================================================
2534 --
2535 --
2536 --
2537 --=============================================================================
2538 FUNCTION get_je_category
2539 (p_ledger_id IN NUMBER
2540 ,p_event_class_code IN VARCHAR2)
2541 RETURN VARCHAR2 IS
2542 l_ledger_id NUMBER;
2543 l_je_category VARCHAR2(240);
2544 l_log_module VARCHAR2(240);
2545 BEGIN
2546 IF g_log_enabled THEN
2547 l_log_module := C_DEFAULT_MODULE||'.get_je_category';
2548 END IF;
2549
2550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2551 trace
2552 (p_msg => 'BEGIN of function GET_JE_CATEGORY'
2553 ,p_level => C_LEVEL_PROCEDURE
2554 ,p_module => l_log_module);
2555 trace
2556 (p_msg => 'p_ledger_id = ' ||TO_CHAR(p_ledger_id)
2557 ,p_level => C_LEVEL_PROCEDURE
2558 ,p_module => l_log_module);
2559 trace
2560 (p_msg => 'p_event_class_code = '||p_event_class_code
2561 ,p_level => C_LEVEL_PROCEDURE
2562 ,p_module => l_log_module);
2563 END IF;
2564
2565 l_ledger_id := p_ledger_id;
2566
2567 IF (g_array_ledger(l_ledger_id).category_code = 'ALC')
2568 THEN
2569 l_ledger_id := g_primary_ledger_id;
2570 END IF;
2571
2572 l_je_category := g_array_event_classes(p_event_class_code)
2573 .xla_je_category(l_ledger_id);
2574
2575 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2576 trace
2577 (p_msg => 'Return Value = '||l_je_category
2578 ,p_level => C_LEVEL_PROCEDURE
2579 ,p_module => l_log_module);
2580 trace
2581 (p_msg => 'END of function GET_JE_CATEGORY'
2582 ,p_level => C_LEVEL_PROCEDURE
2583 ,p_module => l_log_module);
2584 END IF;
2585
2586 RETURN l_je_category;
2587 EXCEPTION
2588 -- Bug 4736579
2589 WHEN NO_DATA_FOUND THEN
2590 xla_exceptions_pkg.raise_message
2591 (p_appli_s_name => 'XLA'
2592 ,p_msg_name => 'XLA_COMMON_ERROR'
2593 ,p_token_1 => 'ERROR'
2594 ,p_value_1 => 'ERROR: Problem getting journal category information for '||p_event_class_code||' and ledger '||p_ledger_id||'. '||
2595 'Subledger Accounting Options are not defined for the ledger and your application.'||
2596 'Please run Update Subledger Accounting Options program for your application.'
2597
2598 ,p_token_2 => 'LOCATION'
2599 ,p_value_2 => 'xla_accounting_cache_pkg.get_je_category');
2600
2601 WHEN xla_exceptions_pkg.application_exception THEN
2602 RAISE;
2603 WHEN OTHERS THEN
2604 xla_exceptions_pkg.raise_message
2605 (p_location => l_log_module);
2606 END get_je_category;
2607
2608
2609
2610 --=============================================================================
2611 --
2612 --
2613 --
2614 --=============================================================================
2615 FUNCTION GetArrayPad
2616 (p_ledger_id IN NUMBER -- primary/secondary ledger id
2617 ,p_max_event_date IN DATE
2618 ,p_min_event_date IN DATE)
2619 RETURN t_array_pad IS
2620 l_ledger_id NUMBER;
2621 l_array_pads t_array_pad;
2622 l_pad_found BOOLEAN := FALSE;
2623 l_log_module VARCHAR2(240);
2624 j NUMBER := 0;
2625 BEGIN
2626 IF g_log_enabled THEN
2627 l_log_module := C_DEFAULT_MODULE||'.GetArrayPad';
2628 END IF;
2629
2630 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2631 trace
2632 (p_msg => 'BEGIN of function GETARRAYPAD'
2633 ,p_level => C_LEVEL_PROCEDURE
2634 ,p_module => l_log_module);
2635 trace
2636 (p_msg => 'p_ledger_id = '||p_ledger_id
2637 ,p_level => C_LEVEL_PROCEDURE
2638 ,p_module => l_log_module);
2639 trace
2640 (p_msg => 'p_max_event_date = '||p_max_event_date
2641 ,p_level => C_LEVEL_PROCEDURE
2642 ,p_module => l_log_module);
2643 trace
2644 (p_msg => 'p_min_event_date = '||p_min_event_date
2645 ,p_level => C_LEVEL_PROCEDURE
2646 ,p_module => l_log_module);
2647 END IF;
2648
2649 l_ledger_id := p_ledger_id;
2650
2651 IF (g_array_ledger(l_ledger_id).category_code = 'ALC')
2652 THEN
2653 l_ledger_id := g_primary_ledger_id;
2654 END IF;
2655
2656 ----------------------------------------------------------------------------
2657 -- PAD start date and end date could be null. PAD effective dates must be
2658 -- compared using NVL.
2659 ----------------------------------------------------------------------------
2660 FOR i in 1..g_array_ledger(l_ledger_id).pads.COUNT LOOP
2661 IF (p_min_event_date <=
2662 NVL(g_array_ledger(l_ledger_id).pads(i).end_date_active, p_min_event_date+1)
2663 )
2664 AND
2665 (p_max_event_date >=
2666 NVL(g_array_ledger(p_ledger_id).pads(i).start_date_active, p_max_event_date-1)
2667 )
2668 THEN
2669 j := j + 1;
2670 l_array_pads(j).acctg_method_rule_id := g_array_ledger(l_ledger_id)
2671 .pads(i).acctg_method_rule_id;
2672 l_array_pads(j).amb_context_code := g_array_ledger(l_ledger_id)
2673 .pads(i).amb_context_code;
2674 l_array_pads(j).product_rule_owner := g_array_ledger(l_ledger_id)
2675 .pads(i).product_rule_owner;
2676 l_array_pads(j).product_rule_code := g_array_ledger(l_ledger_id)
2677 .pads(i).product_rule_code;
2678 l_array_pads(j).ledger_product_rule_name := g_array_ledger(l_ledger_id)
2679 .pads(i).ledger_product_rule_name;
2680 l_array_pads(j).session_product_rule_name := g_array_ledger(l_ledger_id)
2681 .pads(i).session_product_rule_name;
2682 l_array_pads(j).compile_status_code := g_array_ledger(l_ledger_id)
2683 .pads(i).compile_status_code;
2684 l_array_pads(j).pad_package_name := g_array_ledger(l_ledger_id)
2685 .pads(i).pad_package_name;
2686 l_array_pads(j).start_date_active := g_array_ledger(l_ledger_id)
2687 .pads(i).start_date_active;
2688 l_array_pads(j).end_date_active := g_array_ledger(l_ledger_id)
2689 .pads(i).end_date_active;
2690 END IF;
2691 END LOOP;
2692
2693 IF l_array_pads.COUNT = 0 THEN
2694 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
2695 trace
2696 (p_msg => 'WARNNING: No PAD found for : '||
2697 'ledger = '||TO_CHAR(p_ledger_id)||
2698 ' and date between '||TO_CHAR(p_min_event_date)||
2699 ' and '||TO_CHAR(p_max_event_date)
2700 ,p_level => C_LEVEL_EXCEPTION
2701 ,p_module => l_log_module);
2702 END IF;
2703 END IF;
2704 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2705 trace
2706 (p_msg => 'Count of pads = '||l_array_pads.COUNT
2707 ,p_level => C_LEVEL_PROCEDURE
2708 ,p_module => l_log_module);
2709 trace
2710 (p_msg => 'END of function GETARRAYPAD'
2711 ,p_level => C_LEVEL_PROCEDURE
2712 ,p_module => l_log_module);
2713 END IF;
2714 return l_array_pads;
2715 END GetArrayPad;
2716
2717
2718 --=============================================================================
2719 -- *********** local procedures and functions **********
2720 --=============================================================================
2721
2722 --=============================================================================
2723 --
2724 --
2725 --
2726 --
2727 --
2728 --
2729 --
2730 --
2731 --
2732 --
2733 -- Following are local routines
2734 --
2735 -- 1. cache_application_setup
2736 -- 2. load_system_sources
2737 -- 3. is_source_valid
2738 --
2739 --
2740 --
2741 --
2742 --
2743 --
2744 --
2745 --
2746 --
2747 --
2748 --
2749 --=============================================================================
2750
2751 --=============================================================================
2752 --
2753 --
2754 --
2755 --=============================================================================
2756 PROCEDURE cache_application_setup
2757 (p_application_id IN INTEGER
2758 ,p_ledger_id IN INTEGER
2759 ,p_ledger_category IN VARCHAR2) IS
2760
2761 CURSOR csr_event_class IS
2762 SELECT ect.event_class_code event_class_code
2763 ,ect.name ledger_event_class_name
2764 ,ecv.name session_event_class_name
2765 ,ect.language language
2766 FROM xla_subledger_options_v xso
2767 ,xla_event_classes_tl ect
2768 ,xla_event_classes_vl ecv
2769 WHERE xso.application_id = p_application_id
2770 AND DECODE(xso.valuation_method_flag
2771 ,'N',xso.primary_ledger_id
2772 ,xso.ledger_id) = p_ledger_id
2773 AND xso.enabled_flag = 'Y'
2774 AND ect.application_id = p_application_id
2775 AND ect.language IN
2776 (NVL(xso.sla_description_language,USERENV('LANG'))
2777 ,USERENV('LANG'))
2778 AND ecv.application_id = p_application_id
2779 AND ecv.event_class_code = ect.event_class_code
2780 GROUP BY ect.event_class_code
2781 ,ecv.name
2782 ,ect.language
2783 ,ect.name;
2784
2785 CURSOR csr_je_category(x_event_ledger_category IN VARCHAR2) IS
2786 SELECT xjc.event_class_code event_class_code
2787 ,xjc.je_category_name je_category_name
2788 ,xso.ledger_id ledger_id
2789 FROM xla_subledger_options_v xso
2790 ,xla_je_categories xjc
2791 WHERE xso.application_id = p_application_id
2792 AND xso.enabled_flag = 'Y'
2793 AND xjc.application_id = p_application_id
2794 AND xjc.ledger_id = xso.ledger_id
2795 AND DECODE(x_event_ledger_category
2796 ,'PRIMARY',xso.primary_ledger_id
2797 ,xso.ledger_id) = p_ledger_id
2798 AND DECODE(x_event_ledger_category
2799 ,'PRIMARY',DECODE(xso.ledger_category_code
2800 ,'PRIMARY','Y','N')
2801 ,'Y') = xso.capture_event_flag;
2802
2803
2804
2805 CURSOR csr_event_type IS
2806 SELECT ett.event_type_code event_type_code
2807 ,ett.name ledger_event_type_name
2808 ,etv.name session_event_type_name
2809 ,ett.language language
2810 FROM xla_subledger_options_v xso
2811 ,xla_event_types_tl ett
2812 ,xla_event_types_vl etv
2813 WHERE xso.application_id = p_application_id
2814 AND DECODE(xso.valuation_method_flag
2815 ,'N',xso.primary_ledger_id
2816 ,xso.ledger_id) = p_ledger_id
2817 AND xso.enabled_flag = 'Y'
2818 AND ett.application_id = p_application_id
2819 AND ett.language IN
2820 (NVL(xso.sla_description_language,USERENV('LANG'))
2821 ,USERENV('LANG'))
2822 AND etv.application_id = p_application_id
2823 AND etv.event_type_code = ett.event_type_code
2824 GROUP BY ett.event_type_code
2825 ,etv.name
2826 ,ett.language
2827 ,ett.name;
2828
2829 l_log_module VARCHAR2(240);
2830 l_event_ledger_category VARCHAR2(30);
2831 BEGIN
2832 IF g_log_enabled THEN
2833 l_log_module := C_DEFAULT_MODULE||'.cache_application_setup';
2834 END IF;
2835
2836 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2837 trace
2838 (p_msg => 'BEGIN of procedure CACHE_APPLICATION_SETUP'
2839 ,p_level => C_LEVEL_PROCEDURE
2840 ,p_module => l_log_module);
2841 trace
2842 (p_msg => 'p_application_id = '||TO_CHAR(p_application_id)
2843 ,p_level => C_LEVEL_PROCEDURE
2844 ,p_module => l_log_module);
2845 trace
2846 (p_msg => 'p_ledger_id = '||TO_CHAR(p_ledger_id)
2847 ,p_level => C_LEVEL_PROCEDURE
2848 ,p_module => l_log_module);
2849 END IF;
2850 l_event_ledger_category := p_ledger_category;
2851
2852 FOR c1 IN csr_event_class LOOP
2853 g_array_event_classes(c1.event_class_code)
2854 .event_class_name_tl(c1.language) := c1.ledger_event_class_name;
2855 g_array_event_classes(c1.event_class_code)
2856 .event_class_name_sl := c1.session_event_class_name;
2857 END LOOP;
2858
2859 ----------------------------------------------------------------------------
2860 -- following is added to cache je_categories defined for a event_class and
2861 -- ledger. (bug # 3109690)
2862 ----------------------------------------------------------------------------
2863 FOR c1 IN csr_je_category(l_event_ledger_category) LOOP
2864 g_array_event_classes(c1.event_class_code)
2865 .xla_je_category(c1.ledger_id) := c1.je_category_name;
2866 END LOOP;
2867
2868 FOR c1 IN csr_event_type LOOP
2869 g_array_event_types(c1.event_type_code)
2870 .event_type_name_tl(c1.language) := c1.ledger_event_type_name;
2871 g_array_event_types(c1.event_type_code)
2872 .event_type_name_sl := c1.session_event_type_name;
2873 END LOOP;
2874
2875 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2876 trace
2877 (p_msg => 'Number of event classes = '||TO_CHAR(g_array_event_classes.COUNT)
2878 ,p_level => C_LEVEL_STATEMENT
2879 ,p_module => l_log_module);
2880 trace
2881 (p_msg => 'Number of event types = '||TO_CHAR(g_array_event_types.COUNT)
2882 ,p_level => C_LEVEL_STATEMENT
2883 ,p_module => l_log_module);
2884 END IF;
2885
2886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2887 trace
2888 (p_msg => 'END of Procedure CACHE_APPLICATION_SETUP'
2889 ,p_level => C_LEVEL_PROCEDURE
2890 ,p_module => l_log_module);
2891 END IF;
2892 EXCEPTION
2893 WHEN xla_exceptions_pkg.application_exception THEN
2894 RAISE;
2895 WHEN OTHERS THEN
2896 xla_exceptions_pkg.raise_message
2897 (p_location => l_log_module);
2898 END cache_application_setup;
2899
2900
2901 --=============================================================================
2902 --
2903 --
2904 --
2905 --=============================================================================
2906 PROCEDURE load_system_sources IS
2907 CURSOR csr_sources IS
2908 SELECT source_code
2909 ,datatype_code
2910 FROM xla_sources_b WHERE application_id = 602;
2911
2912 l_log_module VARCHAR2(240);
2913 BEGIN
2914 IF g_log_enabled THEN
2915 l_log_module := C_DEFAULT_MODULE||'.load_system_sources';
2916 END IF;
2917
2918 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2919 trace
2920 (p_msg => 'BEGIN of Procedure LOAD_SYSTEM_SOURCES'
2921 ,p_level => C_LEVEL_PROCEDURE
2922 ,p_module => l_log_module);
2923 END IF;
2924
2925 FOR c1 IN csr_sources LOOP
2926 g_array_sources(c1.source_code) := c1.datatype_code;
2927 END LOOP;
2928
2929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2930 trace
2931 (p_msg => 'END of Procedure LOAD_SYSTEM_SOURCES'
2932 ,p_level => C_LEVEL_PROCEDURE
2933 ,p_module => l_log_module);
2934 END IF;
2935
2936 EXCEPTION
2937 WHEN xla_exceptions_pkg.application_exception THEN
2938 RAISE;
2939 WHEN OTHERS THEN
2940 xla_exceptions_pkg.raise_message
2941 (p_location => l_log_module);
2942 END load_system_sources;
2943
2944 --=============================================================================
2945 --
2946 --
2947 --
2948 --=============================================================================
2949 FUNCTION is_source_valid
2950 (p_source_code IN VARCHAR2
2951 ,p_datatype IN VARCHAR2)
2952 RETURN BOOLEAN IS
2953 l_return_value BOOLEAN := FALSE;
2954 l_dummy_value VARCHAR2(30);
2955 l_log_module VARCHAR2(240);
2956 BEGIN
2957 IF g_log_enabled THEN
2958 l_log_module := C_DEFAULT_MODULE||'.is_source_valid';
2959 END IF;
2960
2961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2962 trace
2963 (p_msg => 'BEGIN of function IS_SOURCE_VALID'
2964 ,p_level => C_LEVEL_PROCEDURE
2965 ,p_module => l_log_module);
2966 trace
2967 (p_msg => 'p_source_code = '||p_source_code
2968 ,p_level => C_LEVEL_PROCEDURE
2969 ,p_module => l_log_module);
2970 trace
2971 (p_msg => 'p_datatype = '||p_datatype
2972 ,p_level => C_LEVEL_PROCEDURE
2973 ,p_module => l_log_module);
2974 END IF;
2975
2976 IF g_array_sources.EXISTS(p_source_code) THEN
2977 l_return_value := TRUE;
2978 l_dummy_value := 'TRUE';
2979 ELSE
2980 l_dummy_value := 'FALSE';
2981 xla_exceptions_pkg.raise_message
2982 (p_appli_s_name => 'XLA'
2983 ,p_msg_name => 'XLA_AP_INVALID_SOURCE_CODE'
2984 ,p_token_1 => 'SOURCE_CODE'
2985 ,p_value_1 => p_source_code);
2986 END IF;
2987
2988 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2989 trace
2990 (p_msg => 'return value = '||l_dummy_value
2991 ,p_level => C_LEVEL_PROCEDURE
2992 ,p_module => l_log_module);
2993 trace
2994 (p_msg => 'END of function IS_SOURCE_VALID'
2995 ,p_level => C_LEVEL_PROCEDURE
2996 ,p_module => l_log_module);
2997 END IF;
2998
2999 RETURN l_return_value;
3000 EXCEPTION
3001 WHEN xla_exceptions_pkg.application_exception THEN
3002 RAISE;
3003 WHEN OTHERS THEN
3004 xla_exceptions_pkg.raise_message
3005 (p_location => l_log_module);
3006 END is_source_valid;
3007
3008 Procedure BuildLedgerArray
3009 ( p_array_ledger_attrs OUT NOCOPY t_array_ledger_attrs)
3010 IS
3011 l_log_module VARCHAR2(240);
3012 l_count NUMBER :=0;
3013 l_rounding_offset NUMBER;
3014 l_rounding_rule_code VARCHAR2(30);
3015 l_pri_rounding_offset NUMBER;
3016 l_pri_rounding_rule_code VARCHAR2(30);
3017 BEGIN
3018 IF g_log_enabled THEN
3019 l_log_module := C_DEFAULT_MODULE||'.BuildLedgerArray';
3020 END IF;
3021
3022 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3023 trace
3024 (p_msg => 'BEGIN of Procedure BuildLedgerArray'
3025 ,p_level => C_LEVEL_PROCEDURE
3026 ,p_module => l_log_module);
3027 END IF;
3028
3029 IF(g_array_ledger_attrs.array_ledger_id.COUNT>0) THEN
3030 p_array_ledger_attrs := g_array_ledger_attrs;
3031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3032 trace
3033 (p_msg => 'Already built, END of function BuildLedgerArray'
3034 ,p_level => C_LEVEL_PROCEDURE
3035 ,p_module => l_log_module);
3036 END IF;
3037
3038 RETURN;
3039 END IF;
3040
3041 FOR Idx IN g_base_ledger_ids.FIRST .. g_base_ledger_ids.LAST LOOP
3042
3043 l_rounding_rule_code :=xla_accounting_cache_pkg.GetValueChar(
3044 p_source_code => 'XLA_ROUNDING_RULE_CODE'
3045 , p_target_ledger_id => g_base_ledger_ids(Idx)
3046 );
3047 IF l_rounding_rule_code = 'NEAREST' THEN
3048 l_rounding_offset := 0;
3049 ELSIF l_rounding_rule_code = 'UP' THEN
3050 l_rounding_offset := .5-power(10, -30);
3051 ELSIF l_rounding_rule_code = 'DOWN' THEN
3052 l_rounding_offset :=-(.5-power(10, -30));
3053 ELSE
3054 l_rounding_offset := 0;
3055 END IF;
3056
3057 l_count:=l_count+1;
3058
3059 g_array_ledger_attrs.array_default_rate_type(l_count) :=
3060 xla_accounting_cache_pkg.GetValueChar(
3061 p_source_code => 'XLA_DEFAULT_CONV_RATE_TYPE'
3062 , p_target_ledger_id => g_base_ledger_ids(Idx)
3063 );
3064 g_array_ledger_attrs.array_inhert_type_flag(l_count) :=
3065 xla_accounting_cache_pkg.GetValueChar(
3066 p_source_code => 'XLA_INHERIT_CONVERSION_TYPE'
3067 , p_target_ledger_id => g_base_ledger_ids(Idx)
3068 );
3069 g_array_ledger_attrs.array_max_roll_date(l_count) :=
3070 xla_accounting_cache_pkg.GetValueNum(
3071 p_source_code => 'XLA_MAX_DAYS_ROLL_RATE'
3072 , p_target_ledger_id => g_base_ledger_ids(Idx)
3073 );
3074 g_array_ledger_attrs.array_ledger_id(l_count) := g_base_ledger_ids(Idx);
3075 g_array_ledger_attrs.array_ledger_currency_code(l_count):=
3076 xla_accounting_cache_pkg.GetValueChar(
3077 p_source_code => 'XLA_CURRENCY_CODE'
3078 , p_target_ledger_id => g_base_ledger_ids(Idx));
3079 g_array_ledger_attrs.array_mau(l_count):=
3080 xla_accounting_cache_pkg.GetValueNum(
3081 p_source_code => 'XLA_CURRENCY_MAU'
3082 , p_target_ledger_id => g_base_ledger_ids(Idx));
3083 g_array_ledger_attrs.array_rounding_rule_code(l_count):=
3084 l_rounding_rule_code;
3085
3086 g_array_ledger_attrs.array_rounding_offset(l_count):= l_rounding_offset;
3087
3088 IF (g_primary_ledger_id = g_base_ledger_ids(Idx)) THEN
3089 g_array_ledger_attrs.array_ledger_type(l_count):= 'PRIMARY';
3090 l_pri_rounding_rule_code := l_rounding_rule_code;
3091 l_pri_rounding_offset := l_rounding_offset;
3092 ELSE
3093 g_array_ledger_attrs.array_ledger_type(l_count) := 'SECONDARY';
3094 END IF;
3095 END LOOP;
3096
3097 IF(g_alc_ledger_ids.COUNT>0) THEN
3098 FOR Idx1 IN g_alc_ledger_ids.FIRST .. g_alc_ledger_ids.LAST LOOP
3099 l_count:=l_count+1;
3100 g_array_ledger_attrs.array_ledger_id(l_count) := g_alc_ledger_ids(Idx1);
3101 g_array_ledger_attrs.array_ledger_currency_code(l_count):=
3102 xla_accounting_cache_pkg.GetValueChar(
3103 p_source_code => 'XLA_CURRENCY_CODE'
3104 , p_target_ledger_id => g_alc_ledger_ids(Idx1));
3105 g_array_ledger_attrs.array_mau(l_count):=
3106 xla_accounting_cache_pkg.GetValueNum(
3107 p_source_code => 'XLA_CURRENCY_MAU'
3108 , p_target_ledger_id => g_alc_ledger_ids(Idx1)
3109 );
3110 g_array_ledger_attrs.array_rounding_rule_code(l_count):= l_pri_rounding_rule_code;
3111 g_array_ledger_attrs.array_rounding_offset(l_count) := l_pri_rounding_offset;
3112 g_array_ledger_attrs.array_ledger_type(l_count) := 'ALC';
3113 g_array_ledger_attrs.array_default_rate_type(l_count) :=
3114 xla_accounting_cache_pkg.GetValueChar(
3115 p_source_code => 'XLA_DEFAULT_CONV_RATE_TYPE'
3116 , p_target_ledger_id => g_alc_ledger_ids(Idx1)
3117 );
3118 g_array_ledger_attrs.array_inhert_type_flag(l_count) :=
3119 xla_accounting_cache_pkg.GetValueChar(
3120 p_source_code => 'XLA_INHERIT_CONVERSION_TYPE'
3121 , p_target_ledger_id => g_alc_ledger_ids(Idx1)
3122 );
3123 g_array_ledger_attrs.array_max_roll_date(l_count) :=
3124 xla_accounting_cache_pkg.GetValueNum(
3125 p_source_code => 'XLA_MAX_DAYS_ROLL_RATE'
3126 , p_target_ledger_id => g_alc_ledger_ids(Idx1)
3127 );
3128 END LOOP;
3129 END IF;
3130
3131 p_array_ledger_attrs := g_array_ledger_attrs;
3132
3133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3134 trace
3135 (p_msg => 'Count of ledgers returned = '||
3136 to_char(l_count)
3137 ,p_level => C_LEVEL_PROCEDURE
3138 ,p_module => l_log_module);
3139 trace
3140 (p_msg => 'END of function BuildLedgerArray'
3141 ,p_level => C_LEVEL_PROCEDURE
3142 ,p_module => l_log_module);
3143 END IF;
3144
3145 EXCEPTION
3146 WHEN xla_exceptions_pkg.application_exception THEN
3147 RAISE;
3148 WHEN OTHERS THEN
3149 xla_exceptions_pkg.raise_message
3150 (p_location => l_log_module);
3151 END BuildLedgerArray;
3152
3153 PROCEDURE GetLedgerArray
3154 ( p_array_ledger_attrs OUT NOCOPY t_array_ledger_attrs)
3155 IS
3156 l_log_module VARCHAR2(240);
3157 BEGIN
3158 IF g_log_enabled THEN
3159 l_log_module := C_DEFAULT_MODULE||'.GetLedgerArray';
3160 END IF;
3161
3162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3163 trace
3164 (p_msg => 'BEGIN of procedure GETLEDGERARRAY'
3165 ,p_level => C_LEVEL_PROCEDURE
3166 ,p_module => l_log_module);
3167 END IF;
3168
3169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3170 trace
3171 (p_msg => 'Count of ledgers returned = '||
3172 TO_CHAR(g_array_ledger_attrs.array_ledger_id.COUNT)
3173 ,p_level => C_LEVEL_PROCEDURE
3174 ,p_module => l_log_module);
3175 trace
3176 (p_msg => 'END of function GETLEDGERARRAY'
3177 ,p_level => C_LEVEL_PROCEDURE
3178 ,p_module => l_log_module);
3179 END IF;
3180
3181 p_array_ledger_attrs := g_array_ledger_attrs;
3182
3183 EXCEPTION
3184 WHEN xla_exceptions_pkg.application_exception THEN
3185 RAISE;
3186 WHEN OTHERS THEN
3187 xla_exceptions_pkg.raise_message
3188 (p_location => l_log_module);
3189 END GetLedgerArray;
3190
3191 FUNCTION GetCurrencyMau(p_currency_code IN VARCHAR2) return NUMBER
3192 IS
3193 l_entered_currency_mau t_record_currency_mau;
3194 l_log_module VARCHAR2(240);
3195 BEGIN
3196 IF g_log_enabled THEN
3197 l_log_module := C_DEFAULT_MODULE||'.GetCurrencyMau';
3198 END IF;
3199
3200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3201 trace
3202 (p_msg => 'BEGIN of procedure GetCurrencyMau'
3203 ,p_level => C_LEVEL_PROCEDURE
3204 ,p_module => l_log_module);
3205 END IF;
3206
3207 IF(g_entered_currency_mau.currency_code is null or g_entered_currency_mau.currency_code <> p_currency_code) THEN
3208 IF(g_entered_currency_mau1.currency_code is not null and g_entered_currency_mau1.currency_code = p_currency_code) THEN
3209 l_entered_currency_mau := g_entered_currency_mau1;
3210 g_entered_currency_mau1 := g_entered_currency_mau;
3211 g_entered_currency_mau := l_entered_currency_mau;
3212 ELSIF(g_entered_currency_mau2.currency_code is not null and g_entered_currency_mau2.currency_code = p_currency_code) THEN
3213 l_entered_currency_mau := g_entered_currency_mau2;
3214 g_entered_currency_mau2 := g_entered_currency_mau;
3215 g_entered_currency_mau := l_entered_currency_mau;
3216 ELSE
3217 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3218 trace
3219 (p_msg => 'get from the db'
3220 ,p_level => C_LEVEL_STATEMENT
3221 ,p_module => l_log_module);
3222 END IF;
3223
3224
3225 BEGIN --bug9590326
3226 SELECT nvl(minimum_accountable_unit, power(10, -1* precision))
3227 INTO l_entered_currency_mau.currency_mau
3228 FROM FND_CURRENCIES
3229 WHERE currency_code = p_currency_code;
3230
3231 EXCEPTION WHEN NO_DATA_FOUND THEN
3232 l_entered_currency_mau.currency_mau := NULL;
3233 END;
3234
3235
3236 l_entered_currency_mau.currency_code := p_currency_code;
3237 g_entered_currency_mau2 := g_entered_currency_mau1;
3238 g_entered_currency_mau1 := g_entered_currency_mau;
3239 g_entered_currency_mau := l_entered_currency_mau;
3240 END IF;
3241 END IF;
3242
3243 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3244 trace
3245 (p_msg => 'END of procedure GetCurrencyMau:'||to_char(g_entered_currency_mau.currency_mau)
3246 ,p_level => C_LEVEL_PROCEDURE
3247 ,p_module => l_log_module);
3248 END IF;
3249 return g_entered_currency_mau.currency_mau;
3250
3251 EXCEPTION
3252 WHEN xla_exceptions_pkg.application_exception THEN
3253 RAISE;
3254 WHEN OTHERS THEN
3255 xla_exceptions_pkg.raise_message
3256 (p_location => l_log_module);
3257 END GetCurrencyMau;
3258
3259 --=============================================================================
3260 -- *********** Initialization routine **********
3261 --=============================================================================
3262
3263 --=============================================================================
3264 --
3265 --
3266 --
3267 --
3268 --
3269 --
3270 --
3271 --
3272 --
3273 --
3274 -- Following code is executed when the package body is referenced for the first
3275 -- time
3276 --
3277 --
3278 --
3279 --
3280 --
3281 --
3282 --
3283 --
3284 --
3285 --
3286 --
3287 --
3288 --=============================================================================
3289
3290 BEGIN
3291 -- l_log_module := C_DEFAULT_MODULE;
3292 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3293 g_log_enabled := fnd_log.test
3294 (log_level => g_log_level
3295 ,module => C_DEFAULT_MODULE);
3296
3297 IF NOT g_log_enabled THEN
3298 g_log_level := C_LEVEL_LOG_DISABLED;
3299 END IF;
3300 END xla_accounting_cache_pkg;