DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_CMP_MPA_JLT_PKG

Source


1 PACKAGE BODY xla_cmp_mpa_jlt_pkg AS
2 /* $Header: xlacpmlt.pkb 120.8 2007/05/04 00:21:20 masada ship $   */
3 /*============================================================================+
4 |             Copyright (c) 2001-2002 Oracle Corporation                      |
5 |                       Redwood Shores, CA, USA                               |
6 |                         All rights reserved.                                |
7 +=============================================================================+
8 | PACKAGE NAME                                                                |
9 |     xla_cmp_mpa_jlt_pkg                                                     |
10 |                                                                             |
11 | DESCRIPTION                                                                 |
12 |     This is a XLA private package, which contains all the logic required    |
13 |     to generate Recognition Accounting line type procedures from AMB        |
14 |     specifications.                                                         |
15 |                                                                             |
16 |                                                                             |
17 | HISTORY                                                                     |
18 |     11-Jul-2005 A.Wan       Created for MPA project                         |
19 |     18-Oct-2005 V. Kumar    Removed code for Analytical Criteria            |
20 |     30-Jan-2006 A.Wan       Bug 4655713 - in GenerateCallADR, process       |
21 |                                           ALL segments first                |
22 |     02-Feb-2006 A.Wan       Bug 4655713b - handle MPA with bflow method     |
23 |     13-Feb-2006 A.Wan       Bug 4955764  - set g_rec_lines.array_gl_date.   |
24 |     16-Apr-2006 A.Wan       Bug 5132303  - Gain/Loss change for bflow.      |
25 +============================================================================*/
26 --
27 --+==========================================================================+
28 --|                                                                          |
29 --|                                                                          |
30 --| Global Constants                                                         |
31 --|                                                                          |
32 --|                                                                          |
33 --+==========================================================================+
34 
35 
36 C_RECOG_JLT_BODY   CONSTANT      VARCHAR2(10000):= '
37 ---------------------------------------
38 --
39 -- PRIVATE FUNCTION
40 --         RecognitionJLT_$alt_hash_id$
41 --
42 ---------------------------------------
43 FUNCTION RecognitionJLT_$alt_hash_id$ (
44   p_application_id         INTEGER
45  ,p_event_id               INTEGER
46  ,p_hdr_idx                INTEGER
47  ,p_period_num             INTEGER
48  ,p_rec_acct_attrs         XLA_AE_LINES_PKG.t_rec_acct_attrs
49  ,p_calculate_acctd_flag   VARCHAR2
50  ,p_calculate_g_l_flag     VARCHAR2
51  ,p_bflow_applied_to_amt   NUMBER   -- 5132302
52  $parameters$
53 ) RETURN INTEGER
54    IS
55    l_component_type              VARCHAR2(80)  ;
56    l_component_code              VARCHAR2(30)  ;
57    l_component_type_code         VARCHAR2(1)   ;
58    l_component_appl_id           INTEGER       ;
59    l_amb_context_code            VARCHAR2(30)  ;
60    l_entity_code                 VARCHAR2(30)  ;
61    l_event_class_code            VARCHAR2(30)  ;
62    l_ae_header_id                NUMBER        ;
63    l_event_type_code             VARCHAR2(30)  ;
64    l_line_definition_code        VARCHAR2(30)  ;
65    l_line_definition_owner_code  VARCHAR2(1)   ;
66    l_accrual_jlt_type_code       VARCHAR2(1)   ;
67    l_accrual_jlt_code            VARCHAR2(30)  ;
68    l_balance_type_code           VARCHAR2(1)   ;
69    l_acc_rev_natural_side_code   VARCHAR2(1)   ;
70    l_segment                     VARCHAR2(30)  ;
71    l_ccid                        NUMBER;
72    l_adr_transaction_coa_id      NUMBER ;
73    l_adr_accounting_coa_id       NUMBER ;
74    l_adr_value_type_code         VARCHAR2(30);
75    l_adr_value_segment_code      VARCHAR2(30);
76    l_adr_flexfield_segment_code  VARCHAR2(30);
77    l_adr_flex_value_set_id       NUMBER ;
78    l_adr_value_combination_id    NUMBER ;
79 
80    l_bflow_method_code           VARCHAR2(30); -- 4655713b
81    l_inherit_desc_flag           VARCHAR2(1);  -- 4655713b
82 
83    l_CreateCcid                  BOOLEAN       := TRUE;
84    l_log_module                  VARCHAR2(240);
85    --
86 BEGIN
87    --
88    IF g_log_enabled THEN
89       l_log_module := C_DEFAULT_MODULE||''.RecognitionJLT_$alt_hash_id$'';
90    END IF;
91    --
92    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
93 
94       trace
95          (p_msg      => ''BEGIN of RecognitionJLT_$alt_hash_id$''
96          ,p_level    => C_LEVEL_PROCEDURE
97          ,p_module   => l_log_module);
98 
99    END IF;
100    --
101    l_component_type             := ''AMB_RECOGNITION_JLT'';
102    l_component_appl_id          :=   $mpa_jlt_appl_id$;
103    l_component_type_code        := ''$mpa_jlt_type_code$'';
104    l_component_code             := ''$mpa_jlt_code$'';
105    l_amb_context_code           := ''$amb_context_code$'';
106    l_entity_code                := ''$entity_code$'';
107    l_event_class_code           := ''$event_class_code$'';
108    l_event_type_code            := ''$event_type_code$'';
109    l_line_definition_owner_code := ''$line_definition_owner_code$'';
110    l_line_definition_code       := ''$line_definition_code$'';
111    l_accrual_jlt_type_code      := ''$jlt_type_code$'';
112    l_accrual_jlt_code           := ''$jlt_code$'';
113    --
114    l_balance_type_code          := ''A'';
115 
116    l_segment                    := NULL;
117    l_ccid                       := NULL;
118    l_adr_transaction_coa_id     := NULL;
119    l_adr_accounting_coa_id      := NULL;
120    l_adr_value_type_code        := NULL;
121    l_adr_value_segment_code     := NULL;
122    l_adr_flexfield_segment_code := NULL;
123    l_adr_flex_value_set_id      := NULL;
124    l_adr_value_combination_id   := NULL;
125 
126    l_bflow_method_code          := ''$bflow_method_code$'';   -- 4655713b
127    l_inherit_desc_flag          := ''$inherit_desc_flag$'';   -- 4655713b
128 
129    XLA_AE_LINES_PKG.SetNewLine;
130    XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id      -- p_hdr_idx
131                                      ,p_header_num   => p_period_num);
132    --
133    -- set accounting line options
134    --
135    $acct_line_options$
136    --
137    -- set accounting line type info
138    --
139    xla_ae_lines_pkg.SetAcctLineType
140          (p_component_type             => l_component_type
141          ,p_event_type_code            => l_event_type_code
142          ,p_line_definition_owner_code => l_line_definition_owner_code
143          ,p_line_definition_code       => l_line_definition_code
144          ,p_accounting_line_code       => l_component_code
145          ,p_accounting_line_type_code  => l_component_type_code
146          ,p_accounting_line_appl_id    => l_component_appl_id
147          ,p_amb_context_code           => l_amb_context_code
148          ,p_entity_code                => l_entity_code
149          ,p_event_class_code           => l_event_class_code);
150    --
151    -- set accounting class
152    --
153    $set_acct_class$
154    --
155    -- set rounding class
156    --
157    $set_rounding_class$
158    --
159    xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
160    xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
161 
162 
163    XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
164    XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber)
165                                                     := XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
166    --
167    -- set accounting attributes for the line type
168    --
169    XLA_AE_LINES_PKG.SetLineAcctAttrs(p_rec_acct_attrs);
170 
171    -- 4655713b to handle MPA with Business flow method
172    XLA_AE_LINES_PKG.g_rec_lines.array_inherit_desc_flag(XLA_AE_LINES_PKG.g_LineNumber):= l_inherit_desc_flag;
173    IF l_bflow_method_code <> ''NONE'' THEN
174       XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT(''MPA_'',l_bflow_method_code);
175       IF l_inherit_desc_flag = ''Y'' THEN
176          XLA_AE_LINES_PKG.g_rec_lines.array_description(XLA_AE_LINES_PKG.g_LineNumber):= NULL;
177       END IF;
178    END IF;
179 
180    -- 5132302
181    XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber):= p_bflow_applied_to_amt;
182 
183    -- 4955764
184    XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
185                                   XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(p_hdr_idx);
186 
187    --
188    -- call analytical criteria
189    --
190    $call_analytical_criteria$
191 
192    --
193    -- call description
194    --
195    $call_description$
196    --
197    -- call ADRs
198    --
199    $call_adr$
200    --
201    --
202    XLA_AE_LINES_PKG.ValidateCurrentLine;
203 
204    ------------------------------------------------------------
205    -- Add this to calculate the recognition amounts
206    ------------------------------------------------------------
207    XLA_AE_LINES_PKG.SetDebitCreditAmounts;
208 
209    --
210    -- following update the status on header depending on the erros encountered
211    -- while creating the line
212    --
213    XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
214           (p_hdr_idx           => p_hdr_idx
215           ,p_balance_type_code => ''A'');
216     --
217    IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
218       trace
219          (p_msg      => ''END of RecognitionJLT_$alt_hash_id$''
220          ,p_level    => C_LEVEL_PROCEDURE
221          ,p_module   => l_log_module);
222    END IF;
223    --
224    RETURN XLA_AE_LINES_PKG.g_LineNumber;
225 
226 EXCEPTION
227    WHEN xla_exceptions_pkg.application_exception THEN
228       IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
229          trace
230             (p_msg      => ''ERROR: XLA_CMP_COMPILER_ERROR=''||sqlerrm
231             ,p_level    => C_LEVEL_EXCEPTION
232             ,p_module   => l_log_module);
233       END IF;
234       RAISE;
235    WHEN OTHERS THEN
236        xla_exceptions_pkg.raise_message
237            (p_location => ''$package_name$.RecognitionJLT_$alt_hash_id$'');
238 END RecognitionJLT_$alt_hash_id$;
239 --
240 ';  -- C_RECOG_JLT_BODY
241 
242 
243 --+==========================================================================+
244 --|                                                                          |
245 --| Private global constant declarations                                     |
246 --|                                                                          |
247 --+==========================================================================+
248 --
249 --
250 g_package_name     VARCHAR2(30);  -- initialise in GenerateMpaJLT and used by GenerateOneMpaJLT
251 
252 --=============================================================================
253 --
254 --
255 --
256 --
257 --
258 --
259 --
260 --
261 --
262 --
263 --
264 --
265 --
266 --
267 --
268 --
269 --
270 --
271 --
272 --
273 --
274 --
275 --=============================================================================
276 --
277 --=============================================================================
278 --               *********** Local Trace Routine **********
279 --=============================================================================
280 
281 C_LEVEL_STATEMENT     CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
282 C_LEVEL_PROCEDURE     CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
283 C_LEVEL_EVENT         CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
284 C_LEVEL_EXCEPTION     CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
285 C_LEVEL_ERROR         CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
286 C_LEVEL_UNEXPECTED    CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
287 
288 C_LEVEL_LOG_DISABLED  CONSTANT NUMBER := 99;
289 C_DEFAULT_MODULE      CONSTANT VARCHAR2(240) := 'xla.plsql.XLA_CMP_MPA_JLT_PKG';
290 
291 g_log_level           NUMBER;
292 g_log_enabled         BOOLEAN;
293 
294 PROCEDURE trace
295            ( p_msg                        IN VARCHAR2
296            , p_level                      IN NUMBER
297            , p_module                     IN VARCHAR2)
298 IS
299 BEGIN
300 
301 ----------------------------------------------------------------
302 -- Following is for FND log.
303 ----------------------------------------------------------------
304 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
305           fnd_log.message(p_level, p_module);
306 ELSIF p_level >= g_log_level THEN
307           fnd_log.string(p_level, p_module, p_msg);
308 END IF;
309 
310 EXCEPTION
311        WHEN xla_exceptions_pkg.application_exception THEN
312           RAISE;
313        WHEN OTHERS THEN
314           xla_exceptions_pkg.raise_message
315              (p_location   => 'XLA_CMP_MPA_JLT_PKG.trace');
316 END trace;
317 
318 
319 
320 
321 /*------------------------------------------------------------+
322 |                                                             |
323 |  PrivateFunction                                            |
324 |                                                             |
325 |       GenerateCallADR                                       |
326 |                                                             |
327 |                                                             |
328 +------------------------------------------------------------*/
329 FUNCTION GenerateCallADR(
330   p_application_id               IN NUMBER
331 , p_amb_context_code             IN VARCHAR2
332 , p_entity_code                  IN VARCHAR2
333 , p_event_class_code             IN VARCHAR2
334 , p_event_type_code              IN VARCHAR2
335 , p_line_definition_owner_code   IN VARCHAR2
336 , p_line_definition_code         IN VARCHAR2
337 --
338 , p_accrual_jlt_type_code        IN VARCHAR2
339 , p_accrual_jlt_code             IN VARCHAR2
340 , p_mpa_jlt_type_code            IN VARCHAR2
341 , p_mpa_jlt_code                 IN VARCHAR2
342 , p_bflow_method_code            IN VARCHAR2  -- 4655713
343 --
344 , p_rec_aad_objects              IN xla_cmp_source_pkg.t_rec_aad_objects
345 , p_array_mpa_jlt_source_index   IN OUT NOCOPY xla_cmp_source_pkg.t_array_byInt
346 , p_rec_sources                  IN OUT NOCOPY xla_cmp_source_pkg.t_rec_sources
347 )
348 RETURN  CLOB
349 IS
350 CURSOR adr_cur IS
351 SELECT DISTINCT
352         NVL(xldj.segment_rule_appl_id,xldj.application_id)
353       , xldj.segment_rule_type_code
354       , xldj.segment_rule_code
355       , xldj.flexfield_segment_code
356       , 'NA'                          -- 'Side' is not applicable
357       , xldj.inherit_adr_flag
358       , xld.accounting_coa_id
359       , xld.transaction_coa_id
363    AND xldj.amb_context_code              = p_amb_context_code
360   FROM  xla_mpa_jlt_adr_assgns      xldj
361       , xla_line_definitions_b      xld
362  WHERE xldj.application_id                = p_application_id
364    AND xldj.event_class_code              = p_event_class_code
365    AND xldj.event_type_code               = p_event_type_code
366    AND xldj.line_definition_owner_code    = p_line_definition_owner_code
367    AND xldj.line_definition_code          = p_line_definition_code
368    AND xldj.accounting_line_type_code     = p_accrual_jlt_type_code
369    AND xldj.accounting_line_code          = p_accrual_jlt_code
370    AND xldj.mpa_accounting_line_type_code = p_mpa_jlt_type_code
371    AND xldj.mpa_accounting_line_code      = p_mpa_jlt_code
372 --
373    AND xld.application_id                  = xldj.application_id
374    AND xld.amb_context_code                = xldj.amb_context_code
375    AND xld.event_class_code                = xldj.event_class_code
376    AND xld.event_type_code                 = xldj.event_type_code
377    AND xld.line_definition_owner_code      = xldj.line_definition_owner_code
378    AND xld.line_definition_code            = xldj.line_definition_code
379 --
380 ORDER BY decode(xldj.FLEXFIELD_SEGMENT_CODE,'ALL',1,2),                       -- 4655713  process ALL segments first
381          xldj.segment_rule_code
382 ;
383 
384 l_array_adr_type_code           xla_cmp_source_pkg.t_array_VL1;
385 l_array_adr_code                xla_cmp_source_pkg.t_array_VL30;
386 l_array_adr_segment_code        xla_cmp_source_pkg.t_array_VL30;
387 l_array_side_code               xla_cmp_source_pkg.t_array_VL30;
388 l_array_adr_appl_id             xla_cmp_source_pkg.t_array_NUM;
389 l_array_inherit_adr_flag        xla_cmp_source_pkg.t_array_VL1;
390 l_array_accounting_coa_id       xla_cmp_source_pkg.t_array_NUM;
391 l_array_transaction_coa_id      xla_cmp_source_pkg.t_array_NUM;
392 
393 l_adrs                          CLOB;
394 l_log_module                    VARCHAR2(240);
395 
396 BEGIN
397 IF g_log_enabled THEN
398       l_log_module := C_DEFAULT_MODULE||'.GenerateCallADR';
399 END IF;
400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
401       trace
402          (p_msg      => 'BEGIN of GenerateCallADR'
403          ,p_level    => C_LEVEL_PROCEDURE
404          ,p_module   => l_log_module);
405 END IF;
406 --
407 
408 OPEN adr_cur;
409 FETCH adr_cur BULK COLLECT INTO    l_array_adr_appl_id
410                                  , l_array_adr_type_code
411                                  , l_array_adr_code
412                                  , l_array_adr_segment_code
413                                  , l_array_side_code
414                                  , l_array_inherit_adr_flag
415                                  , l_array_accounting_coa_id
416                                  , l_array_transaction_coa_id
417                                  ;
418 CLOSE adr_cur;
419 
420 l_adrs :=  xla_cmp_acct_line_type_pkg.GenerateADRCalls(
421                     p_application_id
422                    ,p_entity_code
423                    ,p_event_class_code
424                    ,l_array_adr_type_code
425                    ,l_array_adr_code
426                    ,l_array_adr_segment_code
427                    ,l_array_side_code             -- Side Code Not Applicable
428                    ,l_array_adr_appl_id           -- IN
429                    ,l_array_inherit_adr_flag      -- IN
430                    ,p_bflow_method_code           -- 4655713
431                    ,l_array_accounting_coa_id     -- IN
432                    ,l_array_transaction_coa_id    -- IN
433                    ,p_array_mpa_jlt_source_index  -- IN OUT
434                    ,p_rec_aad_objects
435                    ,p_rec_sources);
436 RETURN l_adrs;
437 
438 EXCEPTION
439   WHEN VALUE_ERROR THEN
440      IF adr_cur%ISOPEN THEN CLOSE adr_cur; END IF;
441      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
442         trace
443            (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR='||sqlerrm
444            ,p_level    => C_LEVEL_EXCEPTION
445            ,p_module   => l_log_module);
446      END IF;
447      RETURN NULL;
448   WHEN xla_exceptions_pkg.application_exception   THEN
449      IF adr_cur%ISOPEN THEN CLOSE adr_cur; END IF;
450      IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
451          trace
452             (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR='||sqlerrm
453             ,p_level    => C_LEVEL_EXCEPTION
454             ,p_module   => l_log_module);
455      END IF;
456      RETURN NULL;
457   WHEN OTHERS THEN
458      IF adr_cur%ISOPEN THEN CLOSE adr_cur; END IF;
459      xla_exceptions_pkg.raise_message
460          (p_location => 'XLA_CMP_MPA_JLT_PKG.GenerateCallADR');
461 
462 END GenerateCallADR;
463 
464 
465 
466 /*------------------------------------------------------------+
467 |                                                             |
468 |  PrivateFunction                                            |
469 |                                                             |
470 |       GenerateOneMpaJLT                                     |
471 |                                                             |
472 |                                                             |
473 +------------------------------------------------------------*/
474 FUNCTION GenerateOneMpaJLT(
475   p_application_id               IN NUMBER
479 , p_event_type_code              IN VARCHAR2
476 , p_amb_context_code             IN VARCHAR2
477 , p_entity_code                  IN VARCHAR2
478 , p_event_class_code             IN VARCHAR2
480 , p_line_definition_owner_code   IN VARCHAR2
481 , p_line_definition_code         IN VARCHAR2
482 --
483 , p_accrual_jlt_owner_code       IN VARCHAR2
484 , p_accrual_jlt_code             IN VARCHAR2
485 --
486 , p_mpa_jlt_owner_code           IN VARCHAR2
487 , p_mpa_jlt_code                 IN VARCHAR2
488 , p_mpa_jlt_name                 IN VARCHAR2
489 --
490 , p_description_type_code        IN VARCHAR2
491 , p_description_code             IN VARCHAR2
492 --
493 , p_acct_entry_type_code         IN VARCHAR2
494 , p_natural_side_code            IN VARCHAR2
495 , p_transfer_mode_code           IN VARCHAR2
496 , p_switch_side_flag             IN VARCHAR2
497 , p_merge_duplicate_code         IN VARCHAR2
498 , p_accounting_class_code        IN VARCHAR2
499 , p_rounding_class_code          IN VARCHAR2
500 , p_bflow_method_code            IN VARCHAR2  -- 4655713
501 , p_inherit_desc_flag            IN VARCHAR2  -- 4655713b
502 --
503 , p_rec_aad_objects              IN OUT NOCOPY xla_cmp_source_pkg.t_rec_aad_objects
504 , p_rec_sources                  IN OUT NOCOPY xla_cmp_source_pkg.t_rec_sources
505 , p_IsCompiled                   OUT NOCOPY BOOLEAN
506 )
507 RETURN DBMS_SQL.VARCHAR2S
508 IS
509 --
510 l_parameters       VARCHAR2(32000);
511 
512 l_jlt              CLOB;
513 l_ObjectIndex      BINARY_INTEGER;
514 l_array_jlt        DBMS_SQL.VARCHAR2S;
515 
516 l_array_mpa_jlt_source_index    xla_cmp_source_pkg.t_array_ByInt;
517 l_array_null_mpa_jlt_src_idx    xla_cmp_source_pkg.t_array_ByInt;
518 l_log_module                    VARCHAR2(240);
519 
520 BEGIN
521 
522 IF g_log_enabled THEN
523       l_log_module := C_DEFAULT_MODULE||'.GenerateOneMpaJLT';
524 END IF;
525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
526       trace
527          (p_msg      => 'BEGIN of GenerateOneMpaJLT'
528          ,p_level    => C_LEVEL_PROCEDURE
529          ,p_module   => l_log_module);
530 END IF;
531 
532 --------------------------------------
533 -- Initialise
534 --------------------------------------
535 p_IsCompiled  := FALSE;
536 --
537 --
538 -- Replace JLT information token
539 --
540 l_jlt := C_RECOG_JLT_BODY;
541 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$mpa_jlt_appl_id$'            ,TO_CHAR(p_application_id));
542 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$mpa_jlt_type_code$'          ,p_mpa_jlt_owner_code);
543 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$mpa_jlt_code$'               ,p_mpa_jlt_code);
544 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$amb_context_code$'           ,p_amb_context_code);
545 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$entity_code$'                ,p_entity_code);
546 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$event_class_code$'           ,p_event_class_code);
547 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$event_type_code$'            ,p_event_type_code);
548 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$line_definition_owner_code$' ,p_line_definition_owner_code);
549 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$line_definition_code$'       ,p_line_definition_code);
550 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$jlt_type_code$'              ,p_accrual_jlt_owner_code);
551 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$jlt_code$'                   ,p_accrual_jlt_code);
552 
553 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$bflow_method_code$'          ,p_bflow_method_code);  -- 4655713b
554 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt ,'$inherit_desc_flag$'          ,p_inherit_desc_flag);  -- 4655713b
555 
556 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
557                 ,'$acct_line_options$'
558                 ,xla_cmp_acct_line_type_pkg.GetALTOption
559                    (p_acct_entry_type_code
560                    ,'C'  -- mpa line is not gain/loss for sure
561                    ,p_natural_side_code
562                    ,p_transfer_mode_code
563                    ,p_switch_side_flag
564                    ,p_merge_duplicate_code)
565                 );
566 --
567 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
568                 ,'$set_acct_class$'
569                 ,xla_cmp_acct_line_type_pkg.GetAcctClassCode
570                    (p_accounting_class_code)
571                 );
572 --
573 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
574                 ,'$set_rounding_class$'
575                 , xla_cmp_acct_line_type_pkg.GetRoundingClassCode
576                    (p_rounding_class_code)
577                 );
578 
579 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
580                 ,'$call_analytical_criteria$'
581                 ,xla_cmp_analytic_criteria_pkg.GenerateMpaLineAC
582                   (p_application_id
583                   ,p_amb_context_code
584                   ,p_event_class_code
585                   ,p_event_type_code
586                   ,p_line_definition_owner_code
587                   ,p_line_definition_code
588                   ,p_accrual_jlt_owner_code
589                   ,p_accrual_jlt_code
590                   ,p_mpa_jlt_owner_code
591                   ,p_mpa_jlt_code
592                   ,l_array_mpa_jlt_source_index
593                   ,p_rec_sources)
594                );
595 
596 --
600                 ,'$call_description$'
597 IF p_description_type_code IS NOT NULL AND
598    p_description_code      IS NOT NULL THEN
599   l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
601                 , xla_cmp_acct_line_type_pkg.GenerateCallDescription
602                    (p_application_id         => p_application_id
603                    ,p_description_type_code  => p_description_type_code
604                    ,p_description_code       => p_description_code
605                    ,p_header_line            => 'L'                        -- line
606                    ,p_array_alt_source_index => l_array_mpa_jlt_source_index
607                    ,p_rec_aad_objects        => p_rec_aad_objects
608                    ,p_rec_sources            => p_rec_sources)
609                 );
610   --
611 ELSE
612   l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
613                 ,'$call_description$'
614                 ,'-- no description for the jlt');
615 END IF;
616 
617 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt
618                 ,'$call_adr$'
619                 ,GenerateCallADR       -- from XLA_CMP_MPA_JLT_PKG
620                    (p_application_id
621                    ,p_amb_context_code
622                    ,p_entity_code
623                    ,p_event_class_code
624                    ,p_event_type_code
625                    ,p_line_definition_owner_code
626                    ,p_line_definition_code
627                    ,p_accrual_jlt_owner_code
628                    ,p_accrual_jlt_code
629                    ,p_mpa_jlt_owner_code
630                    ,p_mpa_jlt_code
631                    ,p_bflow_method_code        -- 4655713
632                    ,p_rec_aad_objects
633                    ,l_array_mpa_jlt_source_index   -- IN OUT
634                    ,p_rec_sources)
635                 );
636 --
637 l_parameters := xla_cmp_source_pkg.GenerateParameters(
638               p_array_source_index    => l_array_mpa_jlt_source_index
639             , p_rec_sources           => p_rec_sources
640             ) ;
641 --
642 IF l_parameters IS NULL THEN
643   l_jlt := xla_cmp_string_pkg.replace_token(l_jlt, '$parameters$' ,' ');
644 ELSE
645   l_jlt := xla_cmp_string_pkg.replace_token(l_jlt, '$parameters$', l_parameters );
646 END IF;
647 
648 --
649 
650 l_ObjectIndex := xla_cmp_source_pkg.CacheAADObject (
651                p_object                      => xla_cmp_source_pkg.C_RECOG_JLT
652              , p_object_code                 => p_mpa_jlt_code
653              , p_object_type_code            => p_mpa_jlt_owner_code
654              , p_application_id              => p_application_id
655              , p_event_class_code            => p_event_class_code
656              , p_event_type_code             => p_event_type_code
657              , p_line_definition_owner_code  => p_line_definition_owner_code
658              , p_line_definition_code        => p_line_definition_code
659              , p_array_source_index          => l_array_mpa_jlt_source_index
660              , p_rec_aad_objects             => p_rec_aad_objects
661              --
662 );
663 --
664 
665 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt, '$alt_hash_id$', TO_CHAR(l_ObjectIndex));
666 l_jlt := xla_cmp_string_pkg.replace_token(l_jlt, '$package_name$', g_package_name);
667 
668 xla_cmp_string_pkg.CreateString(
669                       p_package_text  => l_jlt
670                      ,p_array_string  => l_array_jlt
671                      );
672 
673 p_IsCompiled := TRUE;    -- l_IsCompiled ;
674 
675 --l_array_mpa_jlt_source_index := l_array_null_mpa_jlt_src_idx; -- awan
676 
677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
678   trace
679        (p_msg      => 'return value. = '||
680             CASE p_IsCompiled WHEN TRUE THEN 'TRUE' ELSE 'FALSE' END
681        ,p_level    => C_LEVEL_PROCEDURE
682        ,p_module   => l_log_module);
683 
684   trace
685        (p_msg      => 'END of GenerateOneMpaJLT'
686        ,p_level    => C_LEVEL_PROCEDURE
687        ,p_module   => l_log_module);
688 END IF;
689 
690 RETURN l_array_jlt;
691 
692 EXCEPTION
693    WHEN VALUE_ERROR THEN
694        IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
695             trace
696                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
697                ,p_level    => C_LEVEL_EXCEPTION
698                ,p_module   => l_log_module);
699         END IF;
700         p_IsCompiled  := FALSE;
701         RETURN xla_cmp_string_pkg.g_null_varchar2s;
702    WHEN xla_exceptions_pkg.application_exception   THEN
703         IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
704             trace
705                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
706                ,p_level    => C_LEVEL_EXCEPTION
707                ,p_module   => l_log_module);
708         END IF;
709         p_IsCompiled  := FALSE;
710         RETURN xla_cmp_string_pkg.g_null_varchar2s;
711    WHEN OTHERS THEN
712       p_IsCompiled  := FALSE;
713       xla_exceptions_pkg.raise_message
714          (p_location => 'XLA_CMP_MPA_JLT_PKG.GenerateOneMpaJLT');
715 END GenerateOneMpaJLT;
716 
717 
718 
719 /*------------------------------------------------------------+
720 |                                                             |
721 |  Public Function                                            |
725 |                                                             |
722 |                                                             |
723 |       GenerateMpaJLCProcs                                   |
724 |                                                             |
726 +------------------------------------------------------------*/
727 FUNCTION GenerateMpaJLTProcs(
728   p_product_rule_code            IN VARCHAR2
729 , p_product_rule_type_code       IN VARCHAR2
730 , p_application_id               IN NUMBER
731 , p_amb_context_code             IN VARCHAR2
732 , p_rec_aad_objects              IN OUT NOCOPY xla_cmp_source_pkg.t_rec_aad_objects
733 , p_rec_sources                  IN OUT NOCOPY xla_cmp_source_pkg.t_rec_sources
734 , p_IsCompiled                   OUT NOCOPY BOOLEAN
735 )
736 RETURN DBMS_SQL.VARCHAR2S
737 IS
738 --
739 -- Retrieve all recognition JLT
740 --
741 CURSOR jlt_cur
742 IS
743 SELECT  DISTINCT
744         xmja.mpa_accounting_line_type_code
745       , xmja.mpa_accounting_line_code
746       --
747       , REPLACE(xaltt.name , '''','''''')
748       --
749       , xmja.description_type_code
750       , xmja.description_code
751       --
752       , xaltb.accounting_entry_type_code
753       , CASE WHEN xmja.mpa_accounting_line_code      = xldj.accounting_line_code AND
754                   xmja.mpa_accounting_line_type_code = xldj.accounting_line_type_code
755              THEN DECODE(xaltb.natural_side_code,'D','C','D')
756              ELSE xaltb.natural_side_code
757              END
758       , xaltb.gl_transfer_mode_code
759       , xaltb.switch_side_flag
760       , xaltb.merge_duplicate_code
761       --
762       , xaltb.accounting_class_code
763       , xaltb.rounding_class_code
764       --
765       , xpah.entity_code
766       , xpah.event_class_code
767       , xpah.event_type_code
768       --
769       , xald.line_definition_owner_code
770       , xald.line_definition_code
771       --
772       , xldj.accounting_line_type_code
773       , xldj.accounting_line_code
774       --
775       , xaltb.business_method_code  -- 4655713
776       , xmja.inherit_desc_flag      -- 4655713b
777   FROM  xla_aad_line_defn_assgns  xald
778       , xla_line_defn_jlt_assgns  xldj
779       , xla_mpa_jlt_assgns        xmja
780       , xla_prod_acct_headers     xpah
781       , xla_acct_line_types_b     xaltb
782       , xla_acct_line_types_tl    xaltt
783       , xla_line_definitions_b    xld
784       --
785  WHERE  xpah.application_id              = p_application_id
786    AND  xpah.product_rule_type_code      = p_product_rule_type_code
787    AND  xpah.product_rule_code           = p_product_rule_code
788    AND  xpah.amb_context_code            = p_amb_context_code
789    AND  xpah.accounting_required_flag    = 'Y'
790    AND  xpah.validation_status_code      = 'R'
791    --
792    AND  xald.application_id              = xpah.application_id
793    AND  xald.amb_context_code            = xpah.amb_context_code
794    AND  xald.product_rule_type_code      = xpah.product_rule_type_code
795    AND  xald.product_rule_code           = xpah.product_rule_code
796    AND  xald.event_class_code            = xpah.event_class_code
797    AND  xald.event_type_code             = xpah.event_type_code
798    --
799    AND  xldj.application_id              = xald.application_id
800    AND  xldj.amb_context_code            = xald.amb_context_code
801    AND  xldj.event_class_code            = xald.event_class_code
802    AND  xldj.event_type_code             = xald.event_type_code
803    AND  xldj.line_definition_owner_code  = xald.line_definition_owner_code
804    AND  xldj.line_definition_code        = xald.line_definition_code
805    AND  xldj.active_flag                 = 'Y'
806    --
807    AND  xmja.application_id              = xldj.application_id
808    AND  xmja.amb_context_code            = xldj.amb_context_code
809    AND  xmja.event_class_code            = xldj.event_class_code
810    AND  xmja.event_type_code             = xldj.event_type_code
811    AND  xmja.line_definition_owner_code  = xldj.line_definition_owner_code
812    AND  xmja.line_definition_code        = xldj.line_definition_code
813    AND  xmja.accounting_line_code        = xldj.accounting_line_code
814    AND  xmja.accounting_line_type_code   = xldj.accounting_line_type_code
815    --
816    AND  xaltb.application_id             = xmja.application_id
817    AND  xaltb.amb_context_code           = xmja.amb_context_code
818    AND  xaltb.accounting_line_code       = xmja.mpa_accounting_line_code
819    AND  xaltb.accounting_line_type_code  = xmja.mpa_accounting_line_type_code
820    AND  xaltb.event_class_code           = xmja.event_class_code
821    AND  xaltb.enabled_flag               = 'Y'
822    --
823    AND  xaltb.application_id             = xaltt.application_id           (+)
824    AND  xaltb.amb_context_code           = xaltt.amb_context_code         (+)
825    AND  xaltb.entity_code                = xaltt.entity_code              (+)
826    AND  xaltb.event_class_code           = xaltt.event_class_code         (+)
827    AND  xaltb.accounting_line_code       = xaltt.accounting_line_code     (+)
828    AND  xaltb.accounting_line_type_code  = xaltt.accounting_line_type_code(+)
829    AND  xaltt.language               (+) = USERENV('LANG')
830    --
831    AND xald.application_id         = xld.application_id
832    AND xald.amb_context_code       = xld.amb_context_code
836    AND xald.line_definition_code  = xld.line_definition_code
833    AND xald.event_class_code       = xld.event_class_code
834    AND xald.event_type_code        = xld.event_type_code
835    AND xald.line_definition_owner_code = xld.line_definition_owner_code
837    AND xld.budgetary_control_flag = XLA_CMP_PAD_PKG.g_bc_pkg_flag
838    --
839    --
840  ORDER BY xldj.accounting_line_type_code, xldj.accounting_line_code,
841           xmja.mpa_accounting_line_type_code, xmja.mpa_accounting_line_code
842 ;
843 --
844 --
845 l_body                        DBMS_SQL.VARCHAR2S;
846 l_jlt                         DBMS_SQL.VARCHAR2S;
847 --
848 l_array_mpa_jlt_type_code     xla_cmp_source_pkg.t_array_VL1;
849 l_array_mpa_jlt_code          xla_cmp_source_pkg.t_array_VL30;
850 l_array_mpa_jlt_name          xla_cmp_source_pkg.t_array_VL80;
851 --
852 l_array_desc_type_code        xla_cmp_source_pkg.t_array_VL1;
853 l_array_desc_code             xla_cmp_source_pkg.t_array_VL30;
854 --
855 l_array_entry_type_code       xla_cmp_source_pkg.t_array_VL1;
856 l_array_natural_side_code     xla_cmp_source_pkg.t_array_VL1;
857 l_array_transfer_mode         xla_cmp_source_pkg.t_array_VL1;
858 l_array_switch_side_flag      xla_cmp_source_pkg.t_array_VL1;
859 l_array_merge_code            xla_cmp_source_pkg.t_array_VL1;
860 --
861 l_array_acct_class_code       xla_cmp_source_pkg.t_array_VL30;
862 l_array_rounding_class_code   xla_cmp_source_pkg.t_array_VL30;
863 --
864 l_array_entity_code           xla_cmp_source_pkg.t_array_VL30;
865 l_array_class_code            xla_cmp_source_pkg.t_array_VL30;
866 l_array_event_type            xla_cmp_source_pkg.t_array_VL30;
867 --
868 l_array_jld_owner_code        xla_cmp_source_pkg.t_array_VL1;
869 l_array_jld_code              xla_cmp_source_pkg.t_array_VL30;
870 --
871 l_array_accrual_jlt_type_code xla_cmp_source_pkg.t_array_VL1;
872 l_array_accrual_jlt_code      xla_cmp_source_pkg.t_array_VL30;
873 --
874 l_array_bflow_method_code     xla_cmp_source_pkg.t_array_VL30;  -- 4655713
875 l_array_inherit_desc_flag     xla_cmp_source_pkg.t_array_VL1;   -- 4655713b
876 
877 --
878 l_IsCompiled                  BOOLEAN;
879 l_number                      NUMBER;
880 
881 l_log_module                  VARCHAR2(240);
882 
883 BEGIN
884 IF g_log_enabled THEN
885       l_log_module := C_DEFAULT_MODULE||'.GenerateMpaJLTProcs';
886 END IF;
887 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
888       trace
889          (p_msg      => 'BEGIN of GenerateMpaJLTProcs'
890          ,p_level    => C_LEVEL_PROCEDURE
891          ,p_module   => l_log_module);
892 END IF;
893 --
894 OPEN  jlt_cur;
895 --
896 FETCH jlt_cur BULK COLLECT INTO   l_array_mpa_jlt_type_code
897                                 , l_array_mpa_jlt_code
898                                 , l_array_mpa_jlt_name
899                                 , l_array_desc_type_code
900                                 , l_array_desc_code
901                                 , l_array_entry_type_code
902                                 , l_array_natural_side_code
903                                 , l_array_transfer_mode
904                                 , l_array_switch_side_flag
905                                 , l_array_merge_code
906                                 , l_array_acct_class_code
907                                 , l_array_rounding_class_code
908                                 , l_array_entity_code
909                                 , l_array_class_code
910                                 , l_array_event_type
911                                 , l_array_jld_owner_code
912                                 , l_array_jld_code
913                                 , l_array_accrual_jlt_type_code
914                                 , l_array_accrual_jlt_code
915                                 , l_array_bflow_method_code   -- 4655713
916                                 , l_array_inherit_desc_flag   -- 4655713b
917                                 ;
918 CLOSE jlt_cur;
919 --
920 l_body := xla_cmp_string_pkg.g_null_varchar2s;
921 
922 p_IsCompiled   := TRUE;
923 
924 --
925 -- Generate RecognitionJLT_XX for each recognition JLT
926 --
927 IF l_array_mpa_jlt_code.COUNT > 0 THEN
928   --
929   p_IsCompiled   := TRUE;
930   --
931   FOR Idx In l_array_mpa_jlt_code.FIRST .. l_array_mpa_jlt_code.LAST LOOP
932     --
933     IF l_array_mpa_jlt_code.EXISTS(Idx) THEN
934       --
935       l_jlt := GenerateOneMpaJLT(
936                  p_application_id             => p_application_id
937                , p_amb_context_code           => p_amb_context_code
938                , p_entity_code                => l_array_entity_code(Idx)
939                , p_event_class_code           => l_array_class_code(Idx)
940                , p_event_type_code            => l_array_event_type(Idx)
941                , p_line_definition_owner_code => l_array_jld_owner_code(Idx)
942                , p_line_definition_code       => l_array_jld_code(Idx)
943                --
944                , p_accrual_jlt_owner_code     => l_array_accrual_jlt_type_code(Idx)
945                , p_accrual_jlt_code           => l_array_accrual_jlt_code(Idx)
946                --
947                , p_mpa_jlt_owner_code         => l_array_mpa_jlt_type_code(Idx)
948                , p_mpa_jlt_code               => l_array_mpa_jlt_code(Idx)
949                , p_mpa_jlt_name               => l_array_mpa_jlt_name(Idx)
950                --
954                , p_natural_side_code          => l_array_natural_side_code(Idx)
951                , p_description_type_code      => l_array_desc_type_code(Idx)
952                , p_description_code           => l_array_desc_code(Idx)
953                , p_acct_entry_type_code       => l_array_entry_type_code(Idx)
955                , p_transfer_mode_code         => l_array_transfer_mode(Idx)
956                , p_switch_side_flag           => l_array_switch_side_flag(Idx)
957                , p_merge_duplicate_code       => l_array_merge_code(Idx)
958                , p_accounting_class_code      => l_array_acct_class_code(Idx)
959                , p_rounding_class_code        => l_array_rounding_class_code(Idx)
960                --
961                , p_bflow_method_code          => l_array_bflow_method_code(Idx)  -- 4655713
962                , p_inherit_desc_flag          => l_array_inherit_desc_flag(Idx)  -- 4655713b
963                --
964                , p_rec_aad_objects            => p_rec_aad_objects
965                , p_rec_sources                => p_rec_sources
966                , p_IsCompiled                 => l_IsCompiled
967                );
968       --
969       l_body := xla_cmp_string_pkg.ConcatTwoStrings (
970                                  p_array_string_1    => l_body
971                                 ,p_array_string_2    => l_jlt
972                           );
973       --
974     END IF;
975     --
976     p_IsCompiled := p_IsCompiled AND l_IsCompiled;
977   --
978   END LOOP;
979 END IF;
980 
981 RETURN l_body;
982 
983 EXCEPTION
984 WHEN xla_exceptions_pkg.application_exception   THEN
985    IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
986             trace
987                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
988                ,p_level    => C_LEVEL_EXCEPTION
989                ,p_module   => l_log_module);
990    END IF;
991    p_IsCompiled  := FALSE;
992    RETURN xla_cmp_string_pkg.g_null_varchar2s;
993 WHEN OTHERS THEN
994    p_IsCompiled  := FALSE;
995    xla_exceptions_pkg.raise_message
996       (p_location => 'XLA_CMP_MPA_JLT_PKG.GenerateMpaJLTProcs');
997 
998 END GenerateMpaJLTProcs;
999 
1000 
1001 /*------------------------------------------------------------+
1002 |                                                             |
1003 |  Public Function                                            |
1004 |                                                             |
1005 |       GenerateMpaJLT                                        |
1006 |                                                             |
1007 |  Generates the RecognitionJLT_xx() functions from the AMB   |
1008 |  Recognition Journal line types assigned to the AAD.        |
1009 |  It returns TRUE if generation succeeds, FALSE otherwise    |
1010 |                                                             |
1011 +------------------------------------------------------------*/
1012 
1013 FUNCTION GenerateMpaJLT(
1014   p_product_rule_code            IN VARCHAR2
1015 , p_product_rule_type_code       IN VARCHAR2
1016 , p_application_id               IN NUMBER
1017 , p_amb_context_code             IN VARCHAR2
1018 , p_package_name                 IN VARCHAR2
1019 , p_rec_aad_objects              IN OUT NOCOPY xla_cmp_source_pkg.t_rec_aad_objects
1020 , p_rec_sources                  IN OUT NOCOPY xla_cmp_source_pkg.t_rec_sources
1021 , p_package_body                 OUT NOCOPY DBMS_SQL.VARCHAR2S
1022 )
1023 RETURN BOOLEAN
1024 IS
1025 
1026 l_IsCompiled  BOOLEAN;
1027 l_body        DBMS_SQL.VARCHAR2S;
1028 l_log_module                    VARCHAR2(240);
1029 
1030 BEGIN
1031 IF g_log_enabled THEN
1032       l_log_module := C_DEFAULT_MODULE||'.GenerateMpaJLT';
1033 END IF;
1034 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1035       trace
1036          (p_msg      => 'BEGIN of GenerateMpaJLT'
1037          ,p_level    => C_LEVEL_PROCEDURE
1038          ,p_module   => l_log_module);
1039 END IF;
1040 --
1041 -- Init global variables
1042 --
1043 l_IsCompiled     := TRUE;
1044 l_body           := xla_cmp_string_pkg.g_null_varchar2s;
1045 --
1046 g_package_name   := p_package_name;
1047 --
1048 l_body  := GenerateMpaJLTProcs(
1049    p_product_rule_code            =>  p_product_rule_code
1050  , p_product_rule_type_code       =>  p_product_rule_type_code
1051  , p_application_id               =>  p_application_id
1052  , p_amb_context_code             =>  p_amb_context_code
1053  , p_rec_aad_objects              =>  p_rec_aad_objects
1054  , p_rec_sources                  =>  p_rec_sources
1055  , p_IsCompiled                   =>  l_IsCompiled
1056 );
1057 --
1058 --
1059 p_package_body := l_body;
1060 g_package_name := NULL;
1061 --
1062 RETURN l_IsCompiled;
1063 
1064 EXCEPTION
1065 WHEN xla_exceptions_pkg.application_exception   THEN
1066    IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
1067             trace
1068                (p_msg      => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
1069                ,p_level    => C_LEVEL_EXCEPTION
1070                ,p_module   => l_log_module);
1071    END IF;
1072    RETURN FALSE;
1073 WHEN OTHERS THEN
1074    xla_exceptions_pkg.raise_message
1075       (p_location => 'XLA_CMP_MPA_JLT_PKG.GenerateMpaJLT');
1076 END GenerateMpaJLT;
1077 --
1078 --=============================================================================
1079 --
1080 --
1081 --
1082 --
1083 --
1084 --
1085 --
1086 --
1087 --
1088 --
1089 --
1090 --
1091 --
1092 --
1093 --
1094 --
1095 --
1096 --
1097 --
1098 --
1099 --
1100 --
1101 --=============================================================================
1102 --=============================================================================
1103 --          *********** Initialization routine **********
1104 --=============================================================================
1105 
1106 BEGIN
1107 
1108    g_log_level      := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
1109    g_log_enabled    := fnd_log.test
1110                           (log_level  => g_log_level
1111                           ,module     => C_DEFAULT_MODULE);
1112 
1113    IF NOT g_log_enabled  THEN
1114       g_log_level := C_LEVEL_LOG_DISABLED;
1115    END IF;
1116 
1117 END xla_cmp_mpa_jlt_pkg;