[Home] [Help]
PACKAGE BODY: APPS.XLA_SOURCES_PKG
Source
1 PACKAGE BODY xla_sources_pkg AS
2 /* $Header: xlaamdss.pkb 120.27 2006/01/09 14:24:00 vkasina ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_sources_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Sources Package |
13 | |
14 | HISTORY |
15 | 01-May-01 Dimple Shah Created |
16 | 19-Oct-04 Wynne Chan Changes for Journal Lines Definitions |
17 | |
18 +======================================================================*/
19
20 --=============================================================================
21 -- *********** Local Trace Routine **********
22 --=============================================================================
23 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
24 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
25 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
26 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
27 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
28 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
29
30 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
31 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_sources_pkg';
32
33 g_log_level NUMBER;
34 g_log_enabled BOOLEAN;
35
36 PROCEDURE trace
37 (p_msg IN VARCHAR2
38 ,p_module IN VARCHAR2
39 ,p_level IN NUMBER) IS
40 BEGIN
41 ----------------------------------------------------------------------------
42 -- Following is for FND log.
43 ----------------------------------------------------------------------------
44 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
45 fnd_log.message(p_level, p_module);
46 ELSIF p_level >= g_log_level THEN
47 fnd_log.string(p_level, p_module, p_msg);
48 END IF;
49
50 EXCEPTION
51 WHEN xla_exceptions_pkg.application_exception THEN
52 RAISE;
53
54 WHEN OTHERS THEN
55 xla_exceptions_pkg.raise_message
56 (p_location => 'xla_sources_pkg.trace');
57 END trace;
58
59
60 /*======================================================================+
61 | |
62 | Private Function |
63 | |
64 | uncompile_tad_for_der_source |
65 | |
66 | Sets status of assigned transaction account definition to uncompiled |
67 | for a derived source |
68 | |
69 +======================================================================*/
70
71 FUNCTION uncompile_tad_for_der_source
72 (p_der_application_id IN NUMBER
73 ,p_der_source_code IN VARCHAR2
74 ,p_der_source_type_code IN VARCHAR2
75 ,p_trx_acct_def IN OUT NOCOPY VARCHAR2
76 ,p_trx_acct_def_type IN OUT NOCOPY VARCHAR2)
77 RETURN BOOLEAN
78
79 IS
80 --
81 -- Private variables
82 --
83 l_exist VARCHAR2(1) ;
84 l_return BOOLEAN := TRUE;
85
86 l_application_name varchar2(240) := null;
87 l_trx_acct_def varchar2(80) := null;
88 l_trx_acct_def_type varchar2(80) := null;
89
90 --
91 -- Cursor declarations
92 --
93 CURSOR c_seg_rules
94 IS
95 SELECT a.application_id, a.amb_context_code, a.segment_rule_type_code, a.segment_rule_code
96 FROM xla_seg_rules_b a
97 WHERE exists (SELECT 'x'
98 FROM xla_seg_rule_details sd
99 WHERE ((value_source_application_id = p_der_application_id
100 AND value_source_type_code = p_der_source_type_code
101 AND value_source_code = p_der_source_code)
102 OR (input_source_application_id = p_der_application_id
103 AND input_source_type_code = p_der_source_type_code
104 AND input_source_code = p_der_source_code
105 AND input_source_code IS NOT NULL))
106 AND sd.application_id = a.application_id
107 AND sd.amb_context_code = a.amb_context_code
108 AND sd.segment_rule_type_code = a.segment_rule_type_code
109 AND sd.segment_rule_code = a.segment_rule_code
110 UNION
111 SELECT 'x'
112 FROM xla_conditions c, xla_seg_rule_details sd
113 WHERE ((c.source_application_id = p_der_application_id
114 AND c.source_code = p_der_source_code
115 AND c.source_type_code = p_der_source_type_code)
116 OR (c.value_source_application_id = p_der_application_id
117 AND c.value_source_type_code = p_der_source_type_code
118 AND c.value_source_code = p_der_source_code
119 AND c.value_source_code IS NOT NULL))
120 AND c.segment_rule_detail_id = sd.segment_rule_detail_id
121 AND sd.application_id = a.application_id
122 AND sd.amb_context_code = a.amb_context_code
123 AND sd.segment_rule_type_code = a.segment_rule_type_code
124 AND sd.segment_rule_code = a.segment_rule_code);
125
126 l_seg_rule c_seg_rules%rowtype;
127
128 l_log_module VARCHAR2(240);
129 BEGIN
130 IF g_log_enabled THEN
131 l_log_module := C_DEFAULT_MODULE||'.uncompile_tad_for_der_source';
132 END IF;
133
134 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
135 trace(p_msg => 'BEGIN of procedure uncompile_tad_for_der_source'
136 ,p_module => l_log_module
137 ,p_level => C_LEVEL_PROCEDURE);
138 END IF;
139
140 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
141 trace(p_msg => 'application_id = '||p_der_application_id||
142 ',source_code = '||p_der_source_code||
143 ',source_type_code = '||p_der_source_type_code||
144 ',trx_acct_def = '||p_trx_acct_def||
145 ',trx_acct_def_type = '||p_trx_acct_def_type
146 ,p_module => l_log_module
147 ,p_level => C_LEVEL_STATEMENT);
148 END IF;
149
150 OPEN c_seg_rules;
151 LOOP
152 FETCH c_seg_rules
153 INTO l_seg_rule;
154 EXIT WHEN c_seg_rules%NOTFOUND or l_return=FALSE;
155
156 IF xla_seg_rules_pkg.uncompile_tran_acct_def
157 (p_application_id => l_seg_rule.application_id
158 ,p_amb_context_code => l_seg_rule.amb_context_code
159 ,p_segment_rule_type_code => l_seg_rule.segment_rule_type_code
160 ,p_segment_rule_code => l_seg_rule.segment_rule_code
161 ,p_application_name => l_application_name
162 ,p_trx_acct_def => l_trx_acct_def
163 ,p_trx_acct_def_type => l_trx_acct_def_type) THEN
164
165 l_return := TRUE;
166 ELSE
167 l_return := FALSE;
168 END IF;
169 END LOOP;
170 CLOSE c_seg_rules;
171
172 p_trx_acct_def := l_trx_acct_def;
173 p_trx_acct_def_type := l_trx_acct_def_type;
174
175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
176 trace(p_msg => 'END of procedure uncompile_tad_for_der_source'
177 ,p_module => l_log_module
178 ,p_level => C_LEVEL_PROCEDURE);
179 END IF;
180
181
182 return l_return;
183
184 EXCEPTION
185 WHEN xla_exceptions_pkg.application_exception THEN
186 RAISE;
187 WHEN OTHERS THEN
188 xla_exceptions_pkg.raise_message
189 (p_location => 'xla_sources_pkg.uncompile_tad_for_der_source');
190
191 END uncompile_tad_for_der_source;
192
193
194 /*======================================================================+
195 | |
196 | Private Function |
197 | |
198 | derived_source_locked_by_tab |
199 | |
200 | Returns true if the derived source is being used by a locked |
201 | transaction account definition |
202 | |
203 +======================================================================*/
204 FUNCTION derived_source_locked_by_tab
205 (p_der_application_id IN NUMBER
206 ,p_der_source_code IN VARCHAR2
207 ,p_der_source_type_code IN VARCHAR2)
208 RETURN BOOLEAN
209
210 IS
211
212 --
213 -- Private variables
214 --
215 l_exist VARCHAR2(1) ;
216 l_return BOOLEAN;
217
218 --
219 -- Cursor declarations
220 --
221
222 CURSOR check_sr_conditions
223 IS
224 SELECT 'x'
225 FROM xla_conditions c
226 WHERE ((source_application_id = p_der_application_id
227 AND source_code = p_der_source_code
228 AND source_type_code = p_der_source_type_code)
229 OR (value_source_application_id = p_der_application_id
230 AND value_source_type_code = p_der_source_type_code
231 AND value_source_code = p_der_source_code
232 AND value_source_code IS NOT NULL))
233 AND exists (SELECT 'x'
234 FROM xla_seg_rule_details sd,
235 xla_tab_acct_def_details pl, xla_tab_acct_defs_b p
236 WHERE sd.segment_rule_detail_id = c.segment_rule_detail_id
237 AND pl.application_id = sd.application_id
238 AND pl.amb_context_code = sd.amb_context_code
239 AND pl.segment_rule_type_code = sd.segment_rule_type_code
240 AND pl.segment_rule_code = sd.segment_rule_code
241 AND pl.application_id = p.application_id
242 AND pl.amb_context_code = p.amb_context_code
243 AND pl.account_definition_type_code = p.account_definition_type_code
244 AND pl.account_definition_code = p.account_definition_code
245 AND p.locking_status_flag = 'Y');
246
247
248 CURSOR check_sr_details
249 IS
250 SELECT 'x'
251 FROM xla_seg_rule_details sd
252 WHERE ((value_source_application_id = p_der_application_id
253 AND value_source_type_code = p_der_source_type_code
254 AND value_source_code = p_der_source_code)
255 OR (input_source_application_id = p_der_application_id
256 AND input_source_type_code = p_der_source_type_code
257 AND input_source_code = p_der_source_code
258 AND input_source_code IS NOT NULL))
259 AND exists (SELECT 'x'
260 FROM xla_tab_acct_def_details pl, xla_tab_acct_defs_b p
261 WHERE pl.application_id = sd.application_id
262 AND pl.amb_context_code = sd.amb_context_code
263 AND pl.segment_rule_type_code = sd.segment_rule_type_code
264 AND pl.segment_rule_code = sd.segment_rule_code
265 AND pl.application_id = p.application_id
266 AND pl.amb_context_code = p.amb_context_code
267 AND pl.account_definition_type_code = p.account_definition_type_code
268 AND pl.account_definition_code = p.account_definition_code
269 AND p.locking_status_flag = 'Y');
270
271 l_log_module VARCHAR2(240);
272 BEGIN
273 IF g_log_enabled THEN
274 l_log_module := C_DEFAULT_MODULE||'.derived_source_locked_by_tab';
275 END IF;
276
277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
278 trace(p_msg => 'BEGIN of procedure derived_source_locked_by_tab'
279 ,p_module => l_log_module
280 ,p_level => C_LEVEL_PROCEDURE);
281 END IF;
282
283 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
284 trace(p_msg => 'application_id = '||p_der_application_id||
285 ',source_code = '||p_der_source_code||
286 ',source_type_code = '||p_der_source_type_code
287 ,p_module => l_log_module
288 ,p_level => C_LEVEL_STATEMENT);
289 END IF;
290
291 IF p_der_source_type_code = 'D' THEN
292
293 OPEN check_sr_conditions;
294 FETCH check_sr_conditions
295 INTO l_exist;
296 IF check_sr_conditions%found THEN
297 l_return := TRUE;
298 ELSE
299 l_return := FALSE;
300 END IF;
301 CLOSE check_sr_conditions;
302
303 IF l_return = FALSE THEN
304
305 OPEN check_sr_details;
306 FETCH check_sr_details
307 INTO l_exist;
308 IF check_sr_details%found THEN
309 l_return := TRUE;
310 ELSE
311 l_return := FALSE;
312 END IF;
313 CLOSE check_sr_details;
314 END IF;
315 END IF;
316
317 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
318 trace(p_msg => 'END of procedure derived_source_locked_by_tab'
319 ,p_module => l_log_module
320 ,p_level => C_LEVEL_PROCEDURE);
321 END IF;
322
323 RETURN l_return;
324
325 EXCEPTION
326 WHEN xla_exceptions_pkg.application_exception THEN
327
328 IF check_sr_details%ISOPEN THEN
329 CLOSE check_sr_details;
330 END IF;
331 IF check_sr_conditions%ISOPEN THEN
332 CLOSE check_sr_conditions;
333 END IF;
334
335 RAISE;
336
337 WHEN OTHERS THEN
338
339 IF check_sr_details%ISOPEN THEN
340 CLOSE check_sr_details;
341 END IF;
342 IF check_sr_conditions%ISOPEN THEN
343 CLOSE check_sr_conditions;
344 END IF;
345
346 xla_exceptions_pkg.raise_message
347 (p_location => 'xla_sources_pkg.derived_source_locked_by_tab');
348
349 END derived_source_locked_by_tab;
350
351 /*======================================================================+
352 | |
353 | Private Function |
354 | |
355 | uncompile_pad_for_der_source |
356 | |
357 | Sets status of assigned product rule to uncompiled for a |
358 | derived source |
359 | |
360 +======================================================================*/
361
362 FUNCTION uncompile_pad_for_der_source
363 (p_der_application_id IN NUMBER
364 ,p_der_source_code IN VARCHAR2
365 ,p_der_source_type_code IN VARCHAR2
366 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
367 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
368 ,x_event_class_name IN OUT NOCOPY VARCHAR2
369 ,x_event_type_name IN OUT NOCOPY VARCHAR2
370 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
371 RETURN BOOLEAN
372
373 IS
374
375 --
376 -- Private variables
377 --
378 l_exist VARCHAR2(1) ;
379 l_return BOOLEAN := TRUE;
380
381 l_application_name varchar2(240) := null;
382 l_product_rule_name varchar2(80) := null;
383 l_product_rule_type varchar2(80) := null;
384 l_event_class_name varchar2(80) := null;
385 l_event_type_name varchar2(80) := null;
386 l_line_definition_name varchar2(80) := null;
387 l_line_definition_owner varchar2(80) := NULL;
388 l_locking_status_flag varchar2(1) := NULL;
389
390 --
391 -- Cursor declarations
392 --
393
394 CURSOR c_analytical
395 IS
396 SELECT amb_context_code, analytical_criterion_code, analytical_criterion_type_code
397 FROM xla_analytical_hdrs_b a
398 WHERE exists (SELECT 'x'
399 FROM xla_analytical_sources r
400 WHERE source_application_id = p_der_application_id
401 AND source_code = p_der_source_code
402 AND source_type_code = p_der_source_type_code
403 AND r.analytical_criterion_code = a.analytical_criterion_code
404 AND r.analytical_criterion_type_code = a.analytical_criterion_type_code);
405
406 l_analytical c_analytical%rowtype;
407
408
409 CURSOR c_descriptions
410 IS
411 SELECT x.application_id, x.amb_context_code,
412 x.description_type_code, x.description_code
413 FROM xla_descriptions_b x
414 WHERE exists (SELECT 'x'
415 FROM xla_descript_details_b d, xla_desc_priorities dp
416 WHERE d.source_application_id = p_der_application_id
417 AND d.source_code = p_der_source_code
418 AND d.source_type_code = p_der_source_type_code
419 AND d.source_code is not null
420 AND dp.description_prio_id = d.description_prio_id
421 AND dp.application_id = x.application_id
422 AND dp.amb_context_code = x.amb_context_code
423 AND dp.description_type_code = x.description_type_code
424 AND dp.description_code = x.description_code
425 UNION
426 SELECT 'x'
427 FROM xla_conditions c, xla_desc_priorities dp
428 WHERE ((c.source_application_id = p_der_application_id
429 AND c.source_code = p_der_source_code
430 AND c.source_type_code = p_der_source_type_code)
431 OR (c.value_source_application_id = p_der_application_id
432 AND c.value_source_type_code = p_der_source_type_code
433 AND c.value_source_code = p_der_source_code
434 AND c.value_source_code IS NOT NULL))
435 AND dp.description_prio_id = c.description_prio_id
436 AND dp.application_id = x.application_id
437 AND dp.amb_context_code = x.amb_context_code
438 AND dp.description_type_code = x.description_type_code
439 AND dp.description_code = x.description_code);
440
441 l_description c_descriptions%rowtype;
442
443 CURSOR c_seg_rules
444 IS
445 SELECT a.application_id, a.amb_context_code, a.segment_rule_type_code, a.segment_rule_code
446 FROM xla_seg_rules_b a
447 WHERE exists (SELECT 'x'
448 FROM xla_seg_rule_details sd
449 WHERE ((value_source_application_id = p_der_application_id
450 AND value_source_type_code = p_der_source_type_code
451 AND value_source_code = p_der_source_code)
452 OR (input_source_application_id = p_der_application_id
453 AND input_source_type_code = p_der_source_type_code
454 AND input_source_code = p_der_source_code
455 AND input_source_code IS NOT NULL))
456 AND sd.application_id = a.application_id
457 AND sd.amb_context_code = a.amb_context_code
458 AND sd.segment_rule_type_code = a.segment_rule_type_code
459 AND sd.segment_rule_code = a.segment_rule_code
460 UNION
461 SELECT 'x'
462 FROM xla_conditions c, xla_seg_rule_details sd
463 WHERE ((c.source_application_id = p_der_application_id
464 AND c.source_code = p_der_source_code
465 AND c.source_type_code = p_der_source_type_code)
466 OR (c.value_source_application_id = p_der_application_id
467 AND c.value_source_type_code = p_der_source_type_code
468 AND c.value_source_code = p_der_source_code
469 AND c.value_source_code IS NOT NULL))
470 AND c.segment_rule_detail_id = sd.segment_rule_detail_id
471 AND sd.application_id = a.application_id
472 AND sd.amb_context_code = a.amb_context_code
473 AND sd.segment_rule_type_code = a.segment_rule_type_code
474 AND sd.segment_rule_code = a.segment_rule_code);
475
476 l_seg_rule c_seg_rules%rowtype;
477
478 CURSOR c_line_types
479 IS
480 SELECT a.application_id, a.amb_context_code, a.entity_code, a.event_class_code,
481 a.accounting_line_type_code, a.accounting_line_code
482 FROM xla_acct_line_types_b a
483 ,xla_conditions c
484 WHERE a.application_id = c.application_id
485 AND a.amb_context_code = c.amb_context_code
486 AND a.entity_code = c.entity_code
487 AND a.event_class_code = c.event_class_code
488 AND a.accounting_line_type_code = c.accounting_line_type_code
489 AND a.accounting_line_code = c.accounting_line_code
490 AND ((c.source_application_id = p_der_application_id
491 AND c.source_code = p_der_source_code
492 AND c.source_type_code = p_der_source_type_code)
493 OR (c.value_source_application_id = p_der_application_id
494 AND c.value_source_type_code = p_der_source_type_code
495 AND c.value_source_code = p_der_source_code
496 AND c.value_source_code IS NOT NULL))
497 UNION
498 SELECT a.application_id, a.amb_context_code, a.entity_code, a.event_class_code,
499 a.accounting_line_type_code, a.accounting_line_code
500 FROM xla_acct_line_types_b a
501 ,xla_jlt_acct_attrs r
502 WHERE a.application_id = r.application_id
503 AND a.amb_context_code = r.amb_context_code
504 AND a.event_class_code = r.event_class_code
505 AND a.accounting_line_type_code = r.accounting_line_type_code
506 AND a.accounting_line_code = r.accounting_line_code
507 AND r.source_application_id = p_der_application_id
508 AND r.source_code = p_der_source_code
509 AND r.source_type_code = p_der_source_type_code
510 AND r.source_code IS NOT NULL;
511
512 l_line_type c_line_types%rowtype;
513
514 CURSOR c_aad
515 IS
516 SELECT application_id, amb_context_code, product_rule_type_code, product_rule_code
517 FROM xla_product_rules_b a
518 WHERE exists (SELECT 'x'
519 FROM xla_aad_hdr_acct_attrs r
520 WHERE source_application_id = p_der_application_id
521 AND source_code = p_der_source_code
522 AND source_type_code = p_der_source_type_code
523 AND source_code is not null
524 AND r.application_id = a.application_id
525 AND r.amb_context_code = a.amb_context_code
526 AND r.product_rule_type_code = a.product_rule_type_code
527 AND r.product_rule_code = a.product_rule_code);
528
529 l_aad c_aad%rowtype;
530
531
532 l_log_module VARCHAR2(240);
533 BEGIN
534 IF g_log_enabled THEN
535 l_log_module := C_DEFAULT_MODULE||'.uncompile_pad_for_der_source';
536 END IF;
537
538 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
539 trace(p_msg => 'BEGIN of procedure uncompile_pad_for_der_source'
540 ,p_module => l_log_module
541 ,p_level => C_LEVEL_PROCEDURE);
542 END IF;
543
544 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
545 trace(p_msg => 'application_id = '||p_der_application_id||
546 ',source_code = '||p_der_source_code||
547 ',source_type_code = '||p_der_source_type_code
548 ,p_module => l_log_module
549 ,p_level => C_LEVEL_STATEMENT);
550 END IF;
551
552 OPEN c_analytical;
553 LOOP
554 FETCH c_analytical
555 INTO l_analytical;
556 EXIT WHEN c_analytical%NOTFOUND or l_return=FALSE;
557
558
559 IF xla_analytical_hdrs_pkg.uncompile_definitions
560 (p_amb_context_code => l_analytical.amb_context_code
561 ,p_analytical_criterion_code => l_analytical.analytical_criterion_code
562 ,p_anal_criterion_type_code => l_analytical.analytical_criterion_type_code
563 ,x_product_rule_name => l_product_rule_name
564 ,x_product_rule_type => l_product_rule_type
565 ,x_event_class_name => l_event_class_name
566 ,x_event_type_name => l_event_type_name
567 ,x_locking_status_flag => l_locking_status_flag) THEN
568
569 l_return := TRUE;
570 ELSE
571 l_return := FALSE;
572 END IF;
573 END LOOP;
574 CLOSE c_analytical;
575
576 IF l_return = TRUE THEN
577 OPEN c_descriptions;
578 LOOP
579 FETCH c_descriptions
580 INTO l_description;
581 EXIT WHEN c_descriptions%NOTFOUND or l_return=FALSE;
582
583 IF xla_descriptions_pkg.uncompile_definitions
584 (p_application_id => l_description.application_id
585 ,p_amb_context_code => l_description.amb_context_code
586 ,p_description_type_code => l_description.description_type_code
587 ,p_description_code => l_description.description_code
588 ,x_product_rule_name => l_product_rule_name
589 ,x_product_rule_type => l_product_rule_type
590 ,x_event_class_name => l_event_class_name
591 ,x_event_type_name => l_event_type_name
592 ,x_locking_status_flag => l_locking_status_flag) THEN
593
594 l_return := TRUE;
595 ELSE
596 l_return := FALSE;
597 END IF;
598 END LOOP;
599
600 CLOSE c_descriptions;
601 END IF;
602
603
604 IF l_return = TRUE THEN
605 OPEN c_seg_rules;
606 LOOP
607 FETCH c_seg_rules
608 INTO l_seg_rule;
609 EXIT WHEN c_seg_rules%NOTFOUND or l_return=FALSE;
610
611 IF xla_seg_rules_pkg.uncompile_definitions
612 (p_application_id => l_seg_rule.application_id
613 ,p_amb_context_code => l_seg_rule.amb_context_code
614 ,p_segment_rule_type_code => l_seg_rule.segment_rule_type_code
615 ,p_segment_rule_code => l_seg_rule.segment_rule_code
616 ,x_product_rule_name => l_product_rule_name
617 ,x_product_rule_type => l_product_rule_type
618 ,x_event_class_name => l_event_class_name
619 ,x_event_type_name => l_event_type_name
620 ,x_locking_status_flag => l_locking_status_flag) THEN
621
622 l_return := TRUE;
623 ELSE
624 l_return := FALSE;
625 END IF;
626 END LOOP;
627 CLOSE c_seg_rules;
628 END IF;
629
630
631 IF l_return = TRUE THEN
632 OPEN c_line_types;
633 LOOP
634 FETCH c_line_types
635 INTO l_line_type;
636 EXIT WHEN c_line_types%NOTFOUND or l_return=FALSE;
637
638 IF xla_line_types_pkg.uncompile_definitions
639 (p_application_id => l_line_type.application_id
640 ,p_amb_context_code => l_line_type.amb_context_code
641 ,p_event_class_code => l_line_type.event_class_code
642 ,p_accounting_line_type_code => l_line_type.accounting_line_type_code
643 ,p_accounting_line_code => l_line_type.accounting_line_code
644 ,x_product_rule_name => l_product_rule_name
645 ,x_product_rule_type => l_product_rule_type
646 ,x_event_class_name => l_event_class_name
647 ,x_event_type_name => l_event_type_name
648 ,x_locking_status_flag => l_locking_status_flag) THEN
649
650 l_return := TRUE;
651 ELSE
652 l_return := FALSE;
653 END IF;
654 END LOOP;
655 CLOSE c_line_types;
656 END IF;
657
658 IF l_return = TRUE THEN
659 OPEN c_aad;
660 LOOP
661 FETCH c_aad
662 INTO l_aad;
663 EXIT WHEN c_aad%NOTFOUND or l_return=FALSE;
664
665 IF xla_product_rules_pkg.uncompile_product_rule
666 (p_application_id => l_aad.application_id
667 ,p_amb_context_code => l_aad.amb_context_code
668 ,p_product_rule_type_code => l_aad.product_rule_type_code
669 ,p_product_rule_code => l_aad.product_rule_code) THEN
670
671 l_return := TRUE;
672 ELSE
673 xla_validations_pkg.get_product_rule_info
674 (p_application_id => l_aad.application_id
675 ,p_amb_context_code => l_aad.amb_context_code
676 ,p_product_rule_type_code => l_aad.product_rule_type_code
677 ,p_product_rule_code => l_aad.product_rule_code
678 ,p_application_name => l_application_name
679 ,p_product_rule_name => l_product_rule_name
680 ,p_product_rule_type => l_product_rule_type);
681 l_return := FALSE;
682 END IF;
683 END LOOP;
684 CLOSE c_aad;
685 END IF;
686
687 x_product_rule_name := l_product_rule_name;
688 x_product_rule_type := l_product_rule_type;
689 x_event_class_name := l_event_class_name;
690 x_event_type_name := l_event_type_name;
691 x_locking_status_flag := l_locking_status_flag;
692
693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
694 trace(p_msg => 'END of procedure uncompile_pad_for_der_source'
695 ,p_module => l_log_module
696 ,p_level => C_LEVEL_PROCEDURE);
697 END IF;
698
699 return l_return;
700
701 EXCEPTION
702 WHEN xla_exceptions_pkg.application_exception THEN
703 RAISE;
704 WHEN OTHERS THEN
705 xla_exceptions_pkg.raise_message
706 (p_location => 'xla_sources_pkg.uncompile_pad_for_der_source');
707
708 END uncompile_pad_for_der_source;
709
710 /*======================================================================+
711 | |
712 | Private Function |
713 | |
714 | derived_source_is_locked |
715 | |
716 | Returns true if the derived source is being used by a locked |
717 | product rule |
718 | |
719 +======================================================================*/
720 FUNCTION derived_source_is_locked
721 (p_der_application_id IN NUMBER
722 ,p_der_source_code IN VARCHAR2
723 ,p_der_source_type_code IN VARCHAR2)
724 RETURN BOOLEAN
725
726 IS
727
728 --
729 -- Private variables
730 --
731 l_exist VARCHAR2(1) ;
732 l_return BOOLEAN;
733
734 --
735 -- Cursor declarations
736 --
737 CURSOR check_analytical
738 IS
739 SELECT 'x'
740 FROM xla_analytical_sources xas
741 WHERE source_application_id = p_der_application_id
742 AND source_code = p_der_source_code
743 AND source_type_code = p_der_source_type_code
744 AND exists (SELECT 'x'
745 FROM xla_aad_header_ac_assgns xah
746 , xla_prod_acct_headers xpa
747 WHERE xah.amb_context_code = xas.amb_context_code
748 AND xah.analytical_criterion_code = xas.analytical_criterion_code
749 AND xah.analytical_criterion_type_code = xas.analytical_criterion_type_code
750 AND xpa.application_id = xah.application_id
751 AND xpa.amb_context_code = xah.amb_context_code
752 AND xpa.product_rule_type_code = xah.product_rule_type_code
753 AND xpa.product_rule_code = xah.product_rule_code
754 AND xpa.event_class_code = xah.event_class_code
755 AND xpa.event_type_code = xah.event_type_code
756 AND xpa.locking_status_flag = 'Y'
757 UNION
758 SELECT 'x'
759 FROM xla_line_defn_ac_assgns xld
760 , xla_aad_line_defn_assgns xal
761 , xla_prod_acct_headers xpa
762 WHERE xld.amb_context_code = xas.amb_context_code
763 AND xld.analytical_criterion_code = xas.analytical_criterion_code
764 AND xld.analytical_criterion_type_code = xas.analytical_criterion_type_code
765 AND xal.application_id = xld.application_id
766 AND xal.amb_context_code = xld.amb_context_code
767 AND xal.event_class_code = xld.event_class_code
768 AND xal.event_type_code = xld.event_type_code
769 AND xal.line_definition_owner_code = xld.line_definition_owner_code
770 AND xal.line_definition_code = xld.line_definition_code
771 AND xpa.application_id = xal.application_id
772 AND xpa.amb_context_code = xal.amb_context_code
773 AND xpa.product_rule_type_code = xal.product_rule_type_code
774 AND xpa.product_rule_code = xal.product_rule_code
775 AND xpa.event_class_code = xal.event_class_code
776 AND xpa.event_type_code = xal.event_type_code
777 AND xpa.locking_status_flag = 'Y');
778
779 CURSOR check_descript_details
780 IS
781 SELECT 'x'
782 FROM xla_descript_details_b xdd
783 WHERE source_application_id = p_der_application_id
784 AND source_code = p_der_source_code
785 AND source_type_code = p_der_source_type_code
786 AND source_code is not null
787 AND exists (SELECT 'x'
788 FROM xla_desc_priorities xdp
789 , xla_line_defn_jlt_assgns xld
790 , xla_aad_line_defn_assgns xal
791 , xla_prod_acct_headers xpa
792 WHERE xdp.description_prio_id = xdd.description_prio_id
793 AND xld.application_id = xdp.application_id
794 AND xld.amb_context_code = xdp.amb_context_code
795 AND xld.description_type_code = xdp.description_type_code
796 AND xld.description_code = xdp.description_code
797 AND xal.application_id = xld.application_id
798 AND xal.amb_context_code = xld.amb_context_code
799 AND xal.event_class_code = xld.event_class_code
800 AND xal.event_type_code = xld.event_type_code
801 AND xal.line_definition_owner_code = xld.line_definition_owner_code
802 AND xal.line_definition_code = xld.line_definition_code
803 AND xpa.application_id = xal.application_id
804 AND xpa.amb_context_code = xal.amb_context_code
805 AND xpa.product_rule_type_code = xal.product_rule_type_code
806 AND xpa.product_rule_code = xal.product_rule_code
807 AND xpa.event_class_code = xal.event_class_code
808 AND xpa.event_type_code = xal.event_type_code
809 AND xpa.locking_status_flag = 'Y'
810 UNION
811 SELECT 'x'
812 FROM xla_desc_priorities xdp
813 , xla_prod_acct_headers xpa
814 WHERE xdp.description_prio_id = xdd.description_prio_id
815 AND xpa.application_id = xdp.application_id
816 AND xpa.amb_context_code = xdp.amb_context_code
817 AND xpa.description_type_code = xdp.description_type_code
818 AND xpa.description_code = xdp.description_code
819 AND xpa.locking_status_flag = 'Y');
820
821 CURSOR check_desc_conditions
822 IS
823 SELECT 'x'
824 FROM xla_conditions xco
825 WHERE ((source_application_id = p_der_application_id
826 AND source_code = p_der_source_code
827 AND source_type_code = p_der_source_type_code)
828 OR (value_source_application_id = p_der_application_id
829 AND value_source_type_code = p_der_source_type_code
830 AND value_source_code = p_der_source_code
831 AND value_source_code IS NOT NULL))
832 AND exists (SELECT 'x'
833 FROM xla_desc_priorities xdp,
834 xla_line_defn_jlt_assgns xld,
835 xla_aad_line_defn_assgns xal,
836 xla_prod_acct_headers xpa
837 WHERE xdp.description_prio_id = xco.description_prio_id
838 AND xld.application_id = xdp.application_id
839 AND xld.amb_context_code = xdp.amb_context_code
840 AND xld.description_type_code = xdp.description_type_code
841 AND xld.description_code = xdp.description_code
842 AND xal.application_id = xld.application_id
843 AND xal.amb_context_code = xld.amb_context_code
844 AND xal.event_class_code = xld.event_class_code
845 AND xal.event_type_code = xld.event_type_code
846 AND xal.line_definition_owner_code = xld.line_definition_owner_code
847 AND xal.line_definition_code = xld.line_definition_code
848 AND xpa.application_id = xal.application_id
849 AND xpa.amb_context_code = xal.amb_context_code
850 AND xpa.product_rule_type_code = xal.product_rule_type_code
851 AND xpa.product_rule_code = xal.product_rule_code
852 AND xpa.event_class_code = xal.event_class_code
853 AND xpa.event_type_code = xal.event_type_code
854 AND xpa.locking_status_flag = 'Y');
855
856 CURSOR check_sr_conditions
857 IS
858 SELECT 'x'
859 FROM xla_conditions xco
860 WHERE ((source_application_id = p_der_application_id
861 AND source_code = p_der_source_code
862 AND source_type_code = p_der_source_type_code)
863 OR (value_source_application_id = p_der_application_id
864 AND value_source_type_code = p_der_source_type_code
865 AND value_source_code = p_der_source_code
866 AND value_source_code IS NOT NULL))
867 AND exists (SELECT 'x'
868 FROM xla_seg_rule_details xsd,
869 xla_line_defn_adr_assgns xld,
870 xla_aad_line_defn_assgns xal,
871 xla_prod_acct_headers xpa
872 WHERE xsd.segment_rule_detail_id = xco.segment_rule_detail_id
873 AND xld.application_id = xsd.application_id
874 AND xld.amb_context_code = xsd.amb_context_code
875 AND xld.segment_rule_type_code = xsd.segment_rule_type_code
876 AND xld.segment_rule_code = xsd.segment_rule_code
877 AND xal.application_id = xld.application_id
878 AND xal.amb_context_code = xld.amb_context_code
879 AND xal.event_class_code = xld.event_class_code
880 AND xal.event_type_code = xld.event_type_code
881 AND xal.line_definition_owner_code = xld.line_definition_owner_code
882 AND xal.line_definition_code = xld.line_definition_code
883 AND xpa.application_id = xal.application_id
884 AND xpa.amb_context_code = xal.amb_context_code
885 AND xpa.product_rule_type_code = xal.product_rule_type_code
886 AND xpa.product_rule_code = xal.product_rule_code
887 AND xpa.event_class_code = xal.event_class_code
888 AND xpa.event_type_code = xal.event_type_code
889 AND xpa.locking_status_flag = 'Y');
890
891 CURSOR check_lt_conditions
892 IS
893 SELECT 'x'
894 FROM xla_conditions xco
895 WHERE ((source_application_id = p_der_application_id
896 AND source_code = p_der_source_code
897 AND source_type_code = p_der_source_type_code)
898 OR (value_source_application_id = p_der_application_id
899 AND value_source_type_code = p_der_source_type_code
900 AND value_source_code = p_der_source_code
901 AND value_source_code IS NOT NULL))
902 AND exists (SELECT 'x'
903 FROM xla_line_defn_jlt_assgns xld,
904 xla_aad_line_defn_assgns xal,
905 xla_prod_acct_headers xpa
906 WHERE xld.application_id = xco.application_id
907 AND xld.amb_context_code = xco.amb_context_code
908 AND xld.event_class_code = xco.event_class_code
909 AND xld.accounting_line_type_code = xco.accounting_line_type_code
910 AND xld.accounting_line_code = xco.accounting_line_code
911 AND xal.application_id = xld.application_id
912 AND xal.amb_context_code = xld.amb_context_code
913 AND xal.event_class_code = xld.event_class_code
914 AND xal.event_type_code = xld.event_type_code
915 AND xal.line_definition_owner_code = xld.line_definition_owner_code
916 AND xal.line_definition_code = xld.line_definition_code
917 AND xpa.application_id = xal.application_id
918 AND xpa.amb_context_code = xal.amb_context_code
919 AND xpa.product_rule_type_code = xal.product_rule_type_code
920 AND xpa.product_rule_code = xal.product_rule_code
921 AND xpa.event_class_code = xal.event_class_code
922 AND xpa.event_type_code = xal.event_type_code
923 AND xpa.locking_status_flag = 'Y');
924
925 CURSOR check_sr_details
926 IS
927 SELECT 'x'
928 FROM xla_seg_rule_details xsr
929 WHERE ((value_source_application_id = p_der_application_id
930 AND value_source_type_code = p_der_source_type_code
931 AND value_source_code = p_der_source_code)
932 OR (input_source_application_id = p_der_application_id
933 AND input_source_type_code = p_der_source_type_code
934 AND input_source_code = p_der_source_code
935 AND input_source_code IS NOT NULL))
936 AND exists (SELECT 'x'
937 FROM xla_line_defn_adr_assgns xld,
938 xla_aad_line_defn_assgns xal,
939 xla_prod_acct_headers xpa
940 WHERE xld.application_id = xsr.application_id
941 AND xld.amb_context_code = xsr.amb_context_code
942 AND xld.segment_rule_type_code = xsr.segment_rule_type_code
943 AND xld.segment_rule_code = xsr.segment_rule_code
944 AND xal.application_id = xld.application_id
945 AND xal.amb_context_code = xld.amb_context_code
946 AND xal.event_class_code = xld.event_class_code
947 AND xal.event_type_code = xld.event_type_code
948 AND xal.line_definition_owner_code = xld.line_definition_owner_code
949 AND xal.line_definition_code = xld.line_definition_code
950 AND xpa.application_id = xal.application_id
951 AND xpa.amb_context_code = xal.amb_context_code
952 AND xpa.product_rule_type_code = xal.product_rule_type_code
953 AND xpa.product_rule_code = xal.product_rule_code
954 AND xpa.event_class_code = xal.event_class_code
955 AND xpa.event_type_code = xal.event_type_code
956 AND xpa.locking_status_flag = 'Y');
957
958
959
960 CURSOR check_line_types
961 IS
962 SELECT 'x'
963 FROM xla_jlt_acct_attrs xja
964 WHERE source_application_id = p_der_application_id
965 AND source_code = p_der_source_code
966 AND source_type_code = p_der_source_type_code
967 AND exists (SELECT 'x'
968 FROM xla_line_defn_jlt_assgns xld,
969 xla_aad_line_defn_assgns xal,
970 xla_prod_acct_headers xpa
971 WHERE xld.application_id = xja.application_id
972 AND xld.amb_context_code = xja.amb_context_code
973 AND xld.event_class_code = xja.event_class_code
974 AND xld.accounting_line_type_code = xja.accounting_line_type_code
975 AND xld.accounting_line_code = xja.accounting_line_code
976 AND xal.application_id = xld.application_id
977 AND xal.amb_context_code = xld.amb_context_code
978 AND xal.event_class_code = xld.event_class_code
979 AND xal.event_type_code = xld.event_type_code
980 AND xal.line_definition_owner_code = xld.line_definition_owner_code
981 AND xal.line_definition_code = xld.line_definition_code
982 AND xpa.application_id = xal.application_id
983 AND xpa.amb_context_code = xal.amb_context_code
984 AND xpa.product_rule_type_code = xal.product_rule_type_code
985 AND xpa.product_rule_code = xal.product_rule_code
986 AND xpa.event_class_code = xal.event_class_code
987 AND xpa.event_type_code = xal.event_type_code
988 AND xpa.locking_status_flag = 'Y');
989
990 CURSOR check_aad
991 IS
992 SELECT 'x'
993 FROM DUAL
994 WHERE EXISTS (SELECT 'x'
995 FROM xla_aad_hdr_acct_attrs xah, xla_prod_acct_headers xpa
996 WHERE xah.source_application_id = p_der_application_id
997 AND xah.source_code = p_der_source_code
998 AND xah.source_type_code = p_der_source_type_code
999 AND xah.source_type_code IS NOT NULL
1000 AND xpa.application_id = xah.application_id
1001 AND xpa.amb_context_code = xah.amb_context_code
1002 AND xpa.product_rule_type_code = xah.product_rule_type_code
1003 AND xpa.product_rule_code = xah.product_rule_code
1004 AND xpa.event_class_code = xah.event_class_code
1005 AND xpa.event_type_code = xah.event_type_code
1006 AND xpa.locking_status_flag = 'Y');
1007
1008
1009 l_log_module VARCHAR2(240);
1010 BEGIN
1011 IF g_log_enabled THEN
1012 l_log_module := C_DEFAULT_MODULE||'.derived_source_is_locked';
1013 END IF;
1014
1015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1016 trace(p_msg => 'BEGIN of procedure derived_source_is_locked'
1017 ,p_module => l_log_module
1018 ,p_level => C_LEVEL_PROCEDURE);
1019 END IF;
1020
1021 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1022 trace(p_msg => 'application_id = '||p_der_application_id||
1023 ',source_code = '||p_der_source_code||
1024 ',source_type_code = '||p_der_source_type_code
1025 ,p_module => l_log_module
1026 ,p_level => C_LEVEL_STATEMENT);
1027 END IF;
1028
1029 IF p_der_source_type_code = 'D' THEN
1030
1031 OPEN check_analytical;
1032 FETCH check_analytical
1033 INTO l_exist;
1034 IF check_analytical%found THEN
1035 l_return := TRUE;
1036 ELSE
1037 l_return := FALSE;
1038 END IF;
1039 CLOSE check_analytical;
1040
1041 IF l_return = FALSE THEN
1042
1043 OPEN check_descript_details;
1044 FETCH check_descript_details
1045 INTO l_exist;
1046 IF check_descript_details%found THEN
1047 l_return := TRUE;
1048 ELSE
1049 l_return := FALSE;
1050 END IF;
1051 CLOSE check_descript_details;
1052 END IF;
1053
1054 IF l_return = FALSE THEN
1055
1056 OPEN check_desc_conditions;
1057 FETCH check_desc_conditions
1058 INTO l_exist;
1059 IF check_desc_conditions%found THEN
1060 l_return := TRUE;
1061 ELSE
1062 l_return := FALSE;
1063 END IF;
1064 CLOSE check_desc_conditions;
1065 END IF;
1066
1067 IF l_return = FALSE THEN
1068
1069 OPEN check_sr_conditions;
1070 FETCH check_sr_conditions
1071 INTO l_exist;
1072 IF check_sr_conditions%found THEN
1073 l_return := TRUE;
1074 ELSE
1075 l_return := FALSE;
1076 END IF;
1077 CLOSE check_sr_conditions;
1078 END IF;
1079
1080
1081 IF l_return = FALSE THEN
1082
1083 OPEN check_lt_conditions;
1084 FETCH check_lt_conditions
1085 INTO l_exist;
1086 IF check_lt_conditions%found THEN
1087 l_return := TRUE;
1088 ELSE
1089 l_return := FALSE;
1090 END IF;
1091 CLOSE check_lt_conditions;
1092 END IF;
1093
1094 IF l_return = FALSE THEN
1095
1096 OPEN check_sr_details;
1097 FETCH check_sr_details
1098 INTO l_exist;
1099 IF check_sr_details%found THEN
1100 l_return := TRUE;
1101 ELSE
1102 l_return := FALSE;
1103 END IF;
1104 CLOSE check_sr_details;
1105 END IF;
1106
1107
1108 IF l_return = FALSE THEN
1109
1110 OPEN check_line_types;
1111 FETCH check_line_types
1112 INTO l_exist;
1113 IF check_line_types%found THEN
1114 l_return := TRUE;
1115 ELSE
1116 l_return := FALSE;
1117 END IF;
1118 CLOSE check_line_types;
1119 END IF;
1120
1121 IF l_return = FALSE THEN
1122
1123 OPEN check_aad;
1124 FETCH check_aad
1125 INTO l_exist;
1126 IF check_aad%found THEN
1127 l_return := TRUE;
1128 ELSE
1129 l_return := FALSE;
1130 END IF;
1131 CLOSE check_aad;
1132 END IF;
1133
1134 END IF;
1135
1136 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1137 trace(p_msg => 'END of procedure derived_source_is_locked'
1138 ,p_module => l_log_module
1139 ,p_level => C_LEVEL_PROCEDURE);
1140 END IF;
1141
1142 RETURN l_return;
1143
1144 EXCEPTION
1145 WHEN xla_exceptions_pkg.application_exception THEN
1146
1147 IF check_analytical%ISOPEN THEN
1148 CLOSE check_analytical;
1149 END IF;
1150 IF check_descript_details%ISOPEN THEN
1151 CLOSE check_descript_details;
1152 END IF;
1153 IF check_sr_details%ISOPEN THEN
1154 CLOSE check_sr_details;
1155 END IF;
1156 IF check_lt_conditions%ISOPEN THEN
1157 CLOSE check_lt_conditions;
1158 END IF;
1159 IF check_sr_conditions%ISOPEN THEN
1160 CLOSE check_sr_conditions;
1161 END IF;
1162 IF check_desc_conditions%ISOPEN THEN
1163 CLOSE check_desc_conditions;
1164 END IF;
1165 IF check_line_types%ISOPEN THEN
1166 CLOSE check_line_types;
1167 END IF;
1168
1169 RAISE;
1170
1171 WHEN OTHERS THEN
1172
1173 IF check_analytical%ISOPEN THEN
1174 CLOSE check_analytical;
1175 END IF;
1176 IF check_sr_details%ISOPEN THEN
1177 CLOSE check_sr_details;
1178 END IF;
1179 IF check_lt_conditions%ISOPEN THEN
1180 CLOSE check_lt_conditions;
1181 END IF;
1182 IF check_sr_conditions%ISOPEN THEN
1183 CLOSE check_sr_conditions;
1184 END IF;
1185 IF check_desc_conditions%ISOPEN THEN
1186 CLOSE check_desc_conditions;
1187 END IF;
1188 IF check_descript_details%ISOPEN THEN
1189 CLOSE check_descript_details;
1190 END IF;
1191 IF check_line_types%ISOPEN THEN
1192 CLOSE check_line_types;
1193 END IF;
1194
1195 xla_exceptions_pkg.raise_message
1196 (p_location => 'xla_sources_pkg.derived_source_is_locked');
1197
1198 END derived_source_is_locked;
1199
1200 /*======================================================================+
1201 | |
1202 | Public Function |
1203 | |
1204 | source_in_use |
1205 | |
1206 | Returns true if the source is being used |
1207 | |
1208 +======================================================================*/
1209 FUNCTION source_in_use
1210 (p_event IN VARCHAR2
1211 ,p_application_id IN NUMBER
1212 ,p_source_code IN VARCHAR2
1213 ,p_source_type_code IN VARCHAR2
1214 ,p_source_msg OUT NOCOPY VARCHAR2)
1215 RETURN BOOLEAN
1216
1217 IS
1218
1219 --
1220 -- Private variables
1221 --
1222 l_exist VARCHAR2(1) ;
1223 l_return BOOLEAN;
1224
1225 --
1226 -- Cursor declarations
1227 --
1228 CURSOR check_entity_sources
1229 IS
1230 SELECT 'x'
1231 FROM xla_event_sources
1232 WHERE source_application_id = p_application_id
1233 AND source_code = p_source_code
1234 AND source_type_code = p_source_type_code;
1235
1236 CURSOR check_ssa_acctg_sources
1237 IS
1238 SELECT 'x'
1239 FROM xla_evt_class_acct_attrs
1240 WHERE source_application_id = p_application_id
1241 AND source_code = p_source_code
1242 AND source_type_code = p_source_type_code;
1243
1244 CURSOR check_source_params
1245 IS
1246 SELECT 'x'
1247 FROM xla_source_params
1248 WHERE ref_source_application_id = p_application_id
1249 AND ref_source_code = p_source_code
1250 AND ref_source_type_code = p_source_type_code;
1251
1252 CURSOR check_analytical
1253 IS
1254 SELECT 'x'
1255 FROM xla_analytical_sources
1256 WHERE source_application_id = p_application_id
1257 AND source_code = p_source_code
1258 AND source_type_code = p_source_type_code;
1259
1260 CURSOR check_acct_line_sources
1261 IS
1262 SELECT 'x'
1263 FROM xla_jlt_acct_attrs
1264 WHERE source_application_id = p_application_id
1265 AND source_code = p_source_code
1266 AND source_type_code = p_source_type_code;
1267
1268 CURSOR check_aad_acct_attr
1269 IS
1270 SELECT 'x'
1271 FROM xla_aad_hdr_acct_attrs
1272 WHERE source_application_id = p_application_id
1273 AND source_code = p_source_code
1274 AND source_type_code = p_source_type_code;
1275
1276 CURSOR check_descript_details
1277 IS
1278 SELECT 'x'
1279 FROM xla_descript_details_b
1280 WHERE source_application_id = p_application_id
1281 AND source_code = p_source_code
1282 AND source_type_code = p_source_type_code
1283 AND source_code is not null;
1284
1285 CURSOR check_seg_rule_details
1286 IS
1287 SELECT 'x'
1288 FROM DUAL
1289 WHERE EXISTS
1290 (SELECT 'x'
1291 FROM xla_seg_rule_details
1292 WHERE value_source_application_id = p_application_id
1293 AND value_source_code = p_source_code
1294 AND value_source_type_code = p_source_type_code
1295 AND value_source_code is not null
1296 UNION
1297 SELECT 'x'
1298 FROM xla_seg_rule_details
1299 WHERE input_source_application_id = p_application_id
1300 AND input_source_code = p_source_code
1301 AND input_source_type_code = p_source_type_code
1302 AND input_source_code is not null);
1303
1304 CURSOR check_conditions
1305 IS
1306 SELECT 'x'
1307 FROM DUAL
1308 WHERE EXISTS
1309 (SELECT 'x'
1310 FROM xla_conditions
1311 WHERE source_application_id = p_application_id
1312 AND source_code = p_source_code
1313 AND source_type_code = p_source_type_code
1314 UNION
1315 SELECT 'x'
1316 FROM xla_conditions
1317 WHERE value_source_application_id = p_application_id
1318 AND value_source_code = p_source_code
1319 AND value_source_type_code = p_source_type_code
1320 AND value_source_code is not null);
1321
1322 CURSOR check_input_source
1323 IS
1324 SELECT 'x'
1325 FROM xla_seg_rule_details
1326 WHERE input_source_application_id = p_application_id
1327 AND input_source_code = p_source_code
1328 AND input_source_type_code = p_source_type_code
1329 AND input_source_code is not null;
1330
1331 l_log_module VARCHAR2(240);
1332 BEGIN
1333 IF g_log_enabled THEN
1334 l_log_module := C_DEFAULT_MODULE||'.source_in_use';
1335 END IF;
1336
1337 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1338 trace(p_msg => 'BEGIN of procedure source_in_use'
1339 ,p_module => l_log_module
1340 ,p_level => C_LEVEL_PROCEDURE);
1341 END IF;
1342
1343 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1344 trace(p_msg => 'event = '||p_event||
1345 ',application_id = '||p_application_id||
1346 ',source_code = '||p_source_code||
1347 ',source_type_code = '||p_source_type_code
1348 ,p_module => l_log_module
1349 ,p_level => C_LEVEL_STATEMENT);
1350 END IF;
1351
1352 IF p_source_type_code = 'S' THEN
1353
1354 IF p_event in ('DELETE', 'DISABLE') THEN
1355
1356 OPEN check_entity_sources;
1357 FETCH check_entity_sources
1358 INTO l_exist;
1359 IF check_entity_sources%found THEN
1360 l_return := TRUE;
1361 p_source_msg := 'XLA_AB_SOURCE_IN_ENTITIES';
1362 ELSE
1363 l_return := FALSE;
1364 END IF;
1365 CLOSE check_entity_sources;
1366
1367 IF l_return = FALSE THEN
1368
1369 OPEN check_source_params;
1370 FETCH check_source_params
1371 INTO l_exist;
1372 IF check_source_params%found THEN
1373 l_return := TRUE;
1374 p_source_msg := 'XLA_AB_SOURCE_IN_CUSTOM_PARAMS';
1375 ELSE
1376 l_return := FALSE;
1377 END IF;
1378 CLOSE check_source_params;
1379 END IF;
1380
1381 IF l_return = FALSE THEN
1382
1383 OPEN check_acct_line_sources;
1384 FETCH check_acct_line_sources
1385 INTO l_exist;
1386 IF check_acct_line_sources%found THEN
1387 l_return := TRUE;
1388 p_source_msg := 'XLA_AB_SOURCE_IN_JOURNAL_TYPE';
1389 ELSE
1390 l_return := FALSE;
1391 END IF;
1392 CLOSE check_acct_line_sources;
1393 END IF;
1394
1395 IF l_return = FALSE THEN
1396
1397 OPEN check_aad_acct_attr;
1398 FETCH check_aad_acct_attr
1399 INTO l_exist;
1400 IF check_aad_acct_attr%found THEN
1401 l_return := TRUE;
1402 p_source_msg := 'XLA_AB_SOURCE_IN_HEADER_ASSGN';
1403 ELSE
1404 l_return := FALSE;
1405 END IF;
1406 CLOSE check_aad_acct_attr;
1407 END IF;
1408
1409 IF l_return = FALSE THEN
1410
1411 OPEN check_analytical;
1412 FETCH check_analytical
1413 INTO l_exist;
1414 IF check_analytical%found THEN
1415 l_return := TRUE;
1416 p_source_msg := 'XLA_AB_SOURCE_IN_ANALYTICAL';
1417 ELSE
1418 l_return := FALSE;
1419 END IF;
1420 CLOSE check_analytical;
1421 END IF;
1422
1423 IF l_return = FALSE THEN
1424
1425 OPEN check_descript_details;
1426 FETCH check_descript_details
1427 INTO l_exist;
1428 IF check_descript_details%found THEN
1429 l_return := TRUE;
1430 p_source_msg := 'XLA_AB_SOURCE_IN_DESCRIPTIONS';
1431 ELSE
1432 l_return := FALSE;
1433 END IF;
1434 CLOSE check_descript_details;
1435 END IF;
1436
1437 IF l_return = FALSE THEN
1438
1439 OPEN check_seg_rule_details;
1440 FETCH check_seg_rule_details
1441 INTO l_exist;
1442 IF check_seg_rule_details%found THEN
1443 l_return := TRUE;
1444 p_source_msg := 'XLA_AB_SOURCE_IN_ADR';
1445 ELSE
1446 l_return := FALSE;
1447 END IF;
1448 CLOSE check_seg_rule_details;
1449 END IF;
1450
1451 IF l_return = FALSE THEN
1452
1453 OPEN check_conditions;
1454 FETCH check_conditions
1455 INTO l_exist;
1456 IF check_conditions%found THEN
1457 l_return := TRUE;
1458 p_source_msg := 'XLA_AB_SOURCE_IN_CONDITIONS';
1459 ELSE
1460 l_return := FALSE;
1461 END IF;
1462 CLOSE check_conditions;
1463 END IF;
1464
1465 ELSIF p_event = 'UPDATE_DT' THEN
1466
1467 OPEN check_ssa_acctg_sources;
1468 FETCH check_ssa_acctg_sources
1469 INTO l_exist;
1470 IF check_ssa_acctg_sources%found THEN
1471 l_return := TRUE;
1472 p_source_msg := 'XLA_AB_SOURCE_IN_EVENT_CLASS';
1473 ELSE
1474 l_return := FALSE;
1475 END IF;
1476 CLOSE check_ssa_acctg_sources;
1477
1478 IF l_return = FALSE THEN
1479
1480 OPEN check_source_params;
1481 FETCH check_source_params
1482 INTO l_exist;
1483 IF check_source_params%found THEN
1484 l_return := TRUE;
1485 p_source_msg := 'XLA_AB_SOURCE_IN_CUSTOM_PARAMS';
1486 ELSE
1487 l_return := FALSE;
1488 END IF;
1489 CLOSE check_source_params;
1490 END IF;
1491
1492 IF l_return = FALSE THEN
1493
1494 OPEN check_acct_line_sources;
1495 FETCH check_acct_line_sources
1496 INTO l_exist;
1497 IF check_acct_line_sources%found THEN
1498 l_return := TRUE;
1499 p_source_msg := 'XLA_AB_SOURCE_IN_JOURNAL_TYPE';
1500 ELSE
1501 l_return := FALSE;
1502 END IF;
1503 CLOSE check_acct_line_sources;
1504 END IF;
1505
1506 IF l_return = FALSE THEN
1507
1508 OPEN check_aad_acct_attr;
1509 FETCH check_aad_acct_attr
1510 INTO l_exist;
1511 IF check_aad_acct_attr%found THEN
1512 l_return := TRUE;
1513 p_source_msg := 'XLA_AB_SOURCE_IN_HEADER_ASSGN';
1514 ELSE
1515 l_return := FALSE;
1516 END IF;
1517 CLOSE check_aad_acct_attr;
1518 END IF;
1519
1520 IF l_return = FALSE THEN
1521
1522 OPEN check_analytical;
1523 FETCH check_analytical
1524 INTO l_exist;
1525 IF check_analytical%found THEN
1526 l_return := TRUE;
1527 p_source_msg := 'XLA_AB_SOURCE_IN_ANALYTICAL';
1528 ELSE
1529 l_return := FALSE;
1530 END IF;
1531 CLOSE check_analytical;
1532 END IF;
1533
1534 IF l_return = FALSE THEN
1535
1536 OPEN check_descript_details;
1537 FETCH check_descript_details
1538 INTO l_exist;
1539 IF check_descript_details%found THEN
1540 l_return := TRUE;
1541 p_source_msg := 'XLA_AB_SOURCE_IN_DESCRIPTIONS';
1542 ELSE
1543 l_return := FALSE;
1544 END IF;
1545 CLOSE check_descript_details;
1546 END IF;
1547
1548 IF l_return = FALSE THEN
1549
1550 OPEN check_seg_rule_details;
1551 FETCH check_seg_rule_details
1552 INTO l_exist;
1553 IF check_seg_rule_details%found THEN
1554 l_return := TRUE;
1555 p_source_msg := 'XLA_AB_SOURCE_IN_ADR';
1556 ELSE
1557 l_return := FALSE;
1558 END IF;
1559 CLOSE check_seg_rule_details;
1560 END IF;
1561 IF l_return = FALSE THEN
1562
1563 OPEN check_conditions;
1564 FETCH check_conditions
1565 INTO l_exist;
1566 IF check_conditions%found THEN
1567 l_return := TRUE;
1568 p_source_msg := 'XLA_AB_SOURCE_IN_CONDITIONS';
1569 ELSE
1570 l_return := FALSE;
1571 END IF;
1572 CLOSE check_conditions;
1573 END IF;
1574
1575 ELSIF p_event = ('UPDATE_VS') THEN
1576
1577 OPEN check_input_source;
1578 FETCH check_input_source
1579 INTO l_exist;
1580 IF check_input_source%found THEN
1581 l_return := TRUE;
1582 p_source_msg := 'XLA_AB_SOURCE_IN_DESCRIPTIONS';
1583 ELSE
1584 l_return := FALSE;
1585 END IF;
1586 CLOSE check_input_source;
1587
1588 IF l_return = FALSE THEN
1589
1590 OPEN check_conditions;
1591 FETCH check_conditions
1592 INTO l_exist;
1593 IF check_conditions%found THEN
1594 l_return := TRUE;
1595 p_source_msg := 'XLA_AB_SOURCE_IN_CONDITIONS';
1596 ELSE
1597 l_return := FALSE;
1598 END IF;
1599 CLOSE check_conditions;
1600 END IF;
1601
1602 END IF;
1603
1604 ELSIF p_source_type_code = 'D' THEN
1605
1606 IF p_event in ('DELETE', 'DISABLE', 'UPDATE_DT') THEN
1607
1608 OPEN check_acct_line_sources;
1609 FETCH check_acct_line_sources
1610 INTO l_exist;
1611 IF check_acct_line_sources%found THEN
1612 l_return := TRUE;
1613 p_source_msg := 'XLA_AB_SOURCE_IN_JOURNAL_TYPE';
1614 ELSE
1615 l_return := FALSE;
1616 END IF;
1617 CLOSE check_acct_line_sources;
1618
1619 IF l_return = FALSE THEN
1620
1621 OPEN check_aad_acct_attr;
1622 FETCH check_aad_acct_attr
1623 INTO l_exist;
1624 IF check_aad_acct_attr%found THEN
1625 l_return := TRUE;
1626 p_source_msg := 'XLA_AB_SOURCE_IN_HEADER_ASSGN';
1627 ELSE
1628 l_return := FALSE;
1629 END IF;
1630 CLOSE check_aad_acct_attr;
1631 END IF;
1632
1633 IF l_return = FALSE THEN
1634
1635 OPEN check_ssa_acctg_sources;
1636 FETCH check_ssa_acctg_sources
1637 INTO l_exist;
1638 IF check_ssa_acctg_sources%found THEN
1639 l_return := TRUE;
1640 p_source_msg := 'XLA_AB_SOURCE_IN_EVENT_CLASS';
1641 ELSE
1642 l_return := FALSE;
1643 END IF;
1644 CLOSE check_ssa_acctg_sources;
1645 END IF;
1646
1647 IF l_return = FALSE THEN
1648
1649 OPEN check_analytical;
1650 FETCH check_analytical
1651 INTO l_exist;
1652 IF check_analytical%found THEN
1653 l_return := TRUE;
1654 p_source_msg := 'XLA_AB_SOURCE_IN_ANALYTICAL';
1655 ELSE
1656 l_return := FALSE;
1657 END IF;
1658 CLOSE check_analytical;
1659 END IF;
1660
1661 IF l_return = FALSE THEN
1662
1663 OPEN check_descript_details;
1664 FETCH check_descript_details
1665 INTO l_exist;
1666 IF check_descript_details%found THEN
1667 l_return := TRUE;
1668 p_source_msg := 'XLA_AB_SOURCE_IN_DESCRIPTIONS';
1669 ELSE
1670 l_return := FALSE;
1671 END IF;
1672 CLOSE check_descript_details;
1673 END IF;
1674
1675 IF l_return = FALSE THEN
1676
1677 OPEN check_seg_rule_details;
1678 FETCH check_seg_rule_details
1679 INTO l_exist;
1680 IF check_seg_rule_details%found THEN
1681 l_return := TRUE;
1682 p_source_msg := 'XLA_AB_SOURCE_IN_ADR';
1683 ELSE
1684 l_return := FALSE;
1685 END IF;
1686 CLOSE check_seg_rule_details;
1687 END IF;
1688
1689 IF l_return = FALSE THEN
1690
1691 OPEN check_conditions;
1692 FETCH check_conditions
1693 INTO l_exist;
1694 IF check_conditions%found THEN
1695 l_return := TRUE;
1696 p_source_msg := 'XLA_AB_SOURCE_IN_CONDITIONS';
1697 ELSE
1698 l_return := FALSE;
1699 END IF;
1700 CLOSE check_conditions;
1701 END IF;
1702
1703 END IF;
1704 END IF;
1705
1706 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1707 trace(p_msg => 'END of procedure source_in_use'
1708 ,p_module => l_log_module
1709 ,p_level => C_LEVEL_PROCEDURE);
1710 END IF;
1711
1712 RETURN l_return;
1713
1714 EXCEPTION
1715 WHEN xla_exceptions_pkg.application_exception THEN
1716 IF check_acct_line_sources%ISOPEN THEN
1717 CLOSE check_acct_line_sources;
1718 END IF;
1719 IF check_analytical%ISOPEN THEN
1720 CLOSE check_analytical;
1721 END IF;
1722 IF check_conditions%ISOPEN THEN
1723 CLOSE check_conditions;
1724 END IF;
1725 IF check_input_source%ISOPEN THEN
1726 CLOSE check_input_source;
1727 END IF;
1728 IF check_seg_rule_details%ISOPEN THEN
1729 CLOSE check_seg_rule_details;
1730 END IF;
1731 IF check_descript_details%ISOPEN THEN
1732 CLOSE check_descript_details;
1733 END IF;
1734 IF check_source_params%ISOPEN THEN
1735 CLOSE check_source_params;
1736 END IF;
1737 IF check_entity_sources%ISOPEN THEN
1738 CLOSE check_entity_sources;
1739 END IF;
1740
1741 RAISE;
1742
1743 WHEN OTHERS THEN
1744 IF check_acct_line_sources%ISOPEN THEN
1745 CLOSE check_acct_line_sources;
1746 END IF;
1747 IF check_analytical%ISOPEN THEN
1748 CLOSE check_analytical;
1749 END IF;
1750 IF check_conditions%ISOPEN THEN
1751 CLOSE check_conditions;
1752 END IF;
1753 IF check_input_source%ISOPEN THEN
1754 CLOSE check_input_source;
1755 END IF;
1756 IF check_seg_rule_details%ISOPEN THEN
1757 CLOSE check_seg_rule_details;
1758 END IF;
1759 IF check_descript_details%ISOPEN THEN
1760 CLOSE check_descript_details;
1761 END IF;
1762 IF check_source_params%ISOPEN THEN
1763 CLOSE check_source_params;
1764 END IF;
1765 IF check_entity_sources%ISOPEN THEN
1766 CLOSE check_entity_sources;
1767 END IF;
1768
1769 xla_exceptions_pkg.raise_message
1770 (p_location => 'xla_sources_pkg.source_in_use');
1771
1772 END source_in_use;
1773
1774 /*======================================================================+
1775 | |
1776 | Public Function |
1777 | |
1778 | source_is_locked |
1779 | |
1780 | Returns true if the source is being used by a locked product rule |
1781 | |
1782 +======================================================================*/
1783 FUNCTION source_is_locked
1784 (p_application_id IN NUMBER
1785 ,p_source_code IN VARCHAR2
1786 ,p_source_type_code IN VARCHAR2)
1787 RETURN BOOLEAN
1788
1789 IS
1790
1791 --
1792 -- Private variables
1793 --
1794 l_exist VARCHAR2(1);
1795 l_return BOOLEAN;
1796
1797 --
1798 -- Cursor declarations
1799 --
1800
1801 CURSOR check_analytical
1802 IS
1803 SELECT 'x'
1804 FROM xla_analytical_sources xas
1805 WHERE source_application_id = p_application_id
1806 AND source_code = p_source_code
1807 AND source_type_code = p_source_type_code
1808 AND exists (SELECT 'x'
1809 FROM xla_aad_header_ac_assgns xah
1810 , xla_prod_acct_headers xpa
1811 WHERE xah.amb_context_code = xas.amb_context_code
1812 AND xah.analytical_criterion_code = xas.analytical_criterion_code
1813 AND xah.analytical_criterion_type_code = xas.analytical_criterion_type_code
1814 AND xpa.application_id = xah.application_id
1815 AND xpa.amb_context_code = xah.amb_context_code
1816 AND xpa.product_rule_type_code = xah.product_rule_type_code
1817 AND xpa.product_rule_code = xah.product_rule_code
1818 AND xpa.event_class_code = xah.event_class_code
1819 AND xpa.event_type_code = xah.event_type_code
1820 AND xpa.locking_status_flag = 'Y'
1821 UNION
1822 SELECT 'x'
1823 FROM xla_line_defn_ac_assgns xad
1824 , xla_aad_line_defn_assgns xal
1825 , xla_prod_acct_headers xpa
1826 WHERE xad.amb_context_code = xas.amb_context_code
1827 AND xad.analytical_criterion_code = xas.analytical_criterion_code
1828 AND xad.analytical_criterion_type_code = xas.analytical_criterion_type_code
1829 AND xal.application_id = xad.application_id
1830 AND xal.amb_context_code = xad.amb_context_code
1831 AND xal.event_class_code = xad.event_class_code
1832 AND xal.event_type_code = xad.event_type_code
1833 AND xal.line_definition_owner_code = xad.line_definition_owner_code
1834 AND xal.line_definition_code = xad.line_definition_code
1835 AND xpa.application_id = xal.application_id
1836 AND xpa.amb_context_code = xal.amb_context_code
1837 AND xpa.event_class_code = xal.event_class_code
1838 AND xpa.event_type_code = xal.event_type_code
1839 AND xpa.product_rule_type_code = xal.product_rule_type_code
1840 AND xpa.product_rule_code = xal.product_rule_code
1841 AND xpa.locking_status_flag = 'Y');
1842
1843 CURSOR check_descript_details
1844 IS
1845 SELECT 'x'
1846 FROM xla_descript_details_b xdd
1847 WHERE source_application_id = p_application_id
1848 AND source_code = p_source_code
1849 AND source_type_code = p_source_type_code
1850 AND source_code is not null
1851 AND exists (SELECT 'x'
1852 FROM xla_desc_priorities xdp
1853 ,xla_line_defn_jlt_assgns xjl
1854 ,xla_aad_line_defn_assgns xal
1855 ,xla_prod_acct_headers xpa
1856 WHERE xdp.description_prio_id = xdd.description_prio_id
1857 AND xjl.application_id = xdp.application_id
1858 AND xjl.amb_context_code = xdp.amb_context_code
1859 AND xjl.description_type_code = xdp.description_type_code
1860 AND xjl.description_code = xdp.description_code
1861 AND xal.application_id = xjl.application_id
1862 AND xal.amb_context_code = xjl.amb_context_code
1863 AND xal.event_class_code = xjl.event_class_code
1864 AND xal.event_type_code = xjl.event_type_code
1865 AND xal.line_definition_owner_code = xjl.line_definition_owner_code
1866 AND xal.line_definition_code = xjl.line_definition_code
1867 AND xpa.application_id = xal.application_id
1868 AND xpa.amb_context_code = xal.amb_context_code
1869 AND xpa.event_class_code = xal.event_class_code
1870 AND xpa.event_type_code = xal.event_type_code
1871 AND xpa.product_rule_type_code = xal.product_rule_type_code
1872 AND xpa.product_rule_code = xal.product_rule_code
1873 AND xpa.locking_status_flag = 'Y'
1874 UNION
1875 SELECT 'x'
1876 FROM xla_desc_priorities xdp
1877 , xla_prod_acct_headers xpa
1878 WHERE xdp.description_prio_id = xdd.description_prio_id
1879 AND xpa.application_id = xdp.application_id
1880 AND xpa.amb_context_code = xdp.amb_context_code
1881 AND xpa.description_type_code = xdp.description_type_code
1882 AND xpa.description_code = xdp.description_code
1883 AND xpa.locking_status_flag = 'Y');
1884
1885 CURSOR check_desc_conditions
1886 IS
1887 SELECT 'x'
1888 FROM xla_conditions xco
1889 WHERE ((source_application_id = p_application_id
1890 AND source_code = p_source_code
1891 AND source_type_code = p_source_type_code)
1892 OR (value_source_application_id = p_application_id
1893 AND value_source_type_code = p_source_type_code
1894 AND value_source_code = p_source_code
1895 AND value_source_code IS NOT NULL))
1896 AND exists (SELECT 'x'
1897 FROM xla_desc_priorities xdp
1898 ,xla_line_defn_jlt_assgns xld
1899 ,xla_aad_line_defn_assgns xal
1900 ,xla_prod_acct_headers xpa
1901 WHERE xdp.description_prio_id = xco.description_prio_id
1902 AND xld.application_id = xdp.application_id
1903 AND xld.amb_context_code = xdp.amb_context_code
1904 AND xld.description_type_code = xdp.description_type_code
1905 AND xld.description_code = xdp.description_code
1906 AND xal.application_id = xld.application_id
1907 AND xal.amb_context_code = xld.amb_context_code
1908 AND xal.event_class_code = xld.event_class_code
1909 AND xal.event_type_code = xld.event_type_code
1910 AND xal.line_definition_owner_code = xld.line_definition_owner_code
1911 AND xal.line_definition_code = xld.line_definition_code
1912 AND xpa.application_id = xal.application_id
1913 AND xpa.amb_context_code = xal.amb_context_code
1914 AND xpa.event_class_code = xal.event_class_code
1915 AND xpa.event_type_code = xal.event_type_code
1916 AND xpa.product_rule_type_code = xal.product_rule_type_code
1917 AND xpa.product_rule_code = xal.product_rule_code
1918 AND xpa.locking_status_flag = 'Y');
1919
1920
1921 CURSOR check_sr_conditions
1922 IS
1923 SELECT 'x'
1924 FROM xla_conditions xco
1925 WHERE ((source_application_id = p_application_id
1926 AND source_code = p_source_code
1927 AND source_type_code = p_source_type_code)
1928 OR (value_source_application_id = p_application_id
1929 AND value_source_type_code = p_source_type_code
1930 AND value_source_code = p_source_code
1931 AND value_source_code IS NOT NULL))
1932 AND exists (SELECT 'x'
1933 FROM xla_seg_rule_details xsr
1934 ,xla_line_defn_adr_assgns xld
1935 ,xla_aad_line_defn_assgns xal
1936 ,xla_prod_acct_headers xpa
1937 WHERE xsr.segment_rule_detail_id = xco.segment_rule_detail_id
1938 AND xld.application_id = xsr.application_id
1939 AND xld.amb_context_code = xsr.amb_context_code
1940 AND xld.segment_rule_type_code = xsr.segment_rule_type_code
1941 AND xld.segment_rule_code = xsr.segment_rule_code
1942 AND xal.application_id = xld.application_id
1943 AND xal.amb_context_code = xld.amb_context_code
1944 AND xal.event_class_code = xld.event_class_code
1945 AND xal.event_type_code = xld.event_type_code
1946 AND xal.line_definition_owner_code = xld.line_definition_owner_code
1947 AND xal.line_definition_code = xld.line_definition_code
1948 AND xpa.application_id = xal.application_id
1949 AND xpa.amb_context_code = xal.amb_context_code
1950 AND xpa.event_class_code = xal.event_class_code
1951 AND xpa.event_type_code = xal.event_type_code
1952 AND xpa.product_rule_type_code = xal.product_rule_type_code
1953 AND xpa.product_rule_code = xal.product_rule_code
1954 AND xpa.locking_status_flag = 'Y');
1955
1956
1957 CURSOR check_lt_conditions
1958 IS
1959 SELECT 'x'
1960 FROM xla_conditions c
1961 WHERE ((source_application_id = p_application_id
1962 AND source_code = p_source_code
1963 AND source_type_code = p_source_type_code)
1964 OR (value_source_application_id = p_application_id
1965 AND value_source_type_code = p_source_type_code
1966 AND value_source_code = p_source_code
1967 AND value_source_code IS NOT NULL))
1968 AND exists (SELECT 'x'
1969 FROM xla_line_defn_jlt_assgns pl
1970 ,xla_aad_line_defn_assgns p
1971 ,xla_prod_acct_headers xpa
1972 WHERE pl.application_id = c.application_id
1973 AND pl.amb_context_code = c.amb_context_code
1974 AND pl.event_class_code = c.event_class_code
1975 AND pl.accounting_line_type_code = c.accounting_line_type_code
1976 AND pl.accounting_line_code = c.accounting_line_code
1977 AND pl.application_id = p.application_id
1978 AND pl.amb_context_code = p.amb_context_code
1979 AND pl.event_class_code = p.event_class_code
1980 AND pl.event_type_code = p.event_type_code
1981 AND pl.line_definition_owner_code = p.line_definition_owner_code
1982 AND pl.line_definition_code = p.line_definition_code
1983 AND xpa.application_id = p.application_id
1984 AND xpa.amb_context_code = p.amb_context_code
1985 AND xpa.event_class_code = p.event_class_code
1986 AND xpa.event_type_code = p.event_type_code
1987 AND xpa.product_rule_type_code = p.product_rule_type_code
1988 AND xpa.product_rule_code = p.product_rule_code
1989 AND xpa.locking_status_flag = 'Y');
1990
1991 CURSOR check_sr_details
1992 IS
1993 SELECT 'x'
1994 FROM xla_seg_rule_details sd
1995 WHERE ((value_source_application_id = p_application_id
1996 AND value_source_type_code = p_source_type_code
1997 AND value_source_code = p_source_code)
1998 OR (input_source_application_id = p_application_id
1999 AND input_source_type_code = p_source_type_code
2000 AND input_source_code = p_source_code
2001 AND input_source_code IS NOT NULL))
2002 AND exists (SELECT 'x'
2003 FROM xla_line_defn_adr_assgns pl
2004 ,xla_aad_line_defn_assgns p
2005 ,xla_prod_acct_headers xpa
2006 WHERE pl.application_id = sd.application_id
2007 AND pl.amb_context_code = sd.amb_context_code
2008 AND pl.segment_rule_type_code = sd.segment_rule_type_code
2009 AND pl.segment_rule_code = sd.segment_rule_code
2010 AND pl.application_id = p.application_id
2011 AND pl.amb_context_code = p.amb_context_code
2012 AND pl.event_class_code = p.event_class_code
2013 AND pl.event_type_code = p.event_type_code
2014 AND pl.line_definition_owner_code = p.line_definition_owner_code
2015 AND pl.line_definition_code = p.line_definition_code
2016 AND xpa.application_id = p.application_id
2017 AND xpa.amb_context_code = p.amb_context_code
2018 AND xpa.event_class_code = p.event_class_code
2019 AND xpa.event_type_code = p.event_type_code
2020 AND xpa.product_rule_type_code = p.product_rule_type_code
2021 AND xpa.product_rule_code = p.product_rule_code
2022 AND xpa.locking_status_flag = 'Y');
2023
2024 CURSOR check_line_types
2025 IS
2026 SELECT 'x'
2027 FROM xla_jlt_acct_attrs r
2028 WHERE source_application_id = p_application_id
2029 AND source_code = p_source_code
2030 AND source_type_code = p_source_type_code
2031 AND exists (SELECT 'x'
2032 FROM xla_line_defn_jlt_assgns pl
2033 ,xla_aad_line_defn_assgns p
2034 ,xla_prod_acct_headers xpa
2035 WHERE pl.application_id = r.application_id
2036 AND pl.amb_context_code = r.amb_context_code
2037 AND pl.event_class_code = r.event_class_code
2038 AND pl.accounting_line_type_code = r.accounting_line_type_code
2039 AND pl.accounting_line_code = r.accounting_line_code
2040 AND pl.application_id = p.application_id
2041 AND pl.amb_context_code = p.amb_context_code
2042 AND pl.event_class_code = p.event_class_code
2043 AND pl.event_type_code = p.event_type_code
2044 AND pl.line_definition_owner_code = p.line_definition_owner_code
2045 AND pl.line_definition_code = p.line_definition_code
2046 AND xpa.application_id = p.application_id
2047 AND xpa.amb_context_code = p.amb_context_code
2048 AND xpa.event_class_code = p.event_class_code
2049 AND xpa.event_type_code = p.event_type_code
2050 AND xpa.product_rule_type_code = p.product_rule_type_code
2051 AND xpa.product_rule_code = p.product_rule_code
2052 AND xpa.locking_status_flag = 'Y');
2053
2054 CURSOR check_aad
2055 IS
2056 SELECT 'x'
2057 FROM DUAL
2058 WHERE EXISTS (SELECT 'x'
2059 FROM xla_aad_hdr_acct_attrs r, xla_prod_acct_headers p
2060 WHERE r.source_application_id = p_application_id
2061 AND r.source_code = p_source_code
2062 AND r.source_type_code = p_source_type_code
2063 AND r.source_type_code IS NOT NULL
2064 AND p.application_id = r.application_id
2065 AND p.amb_context_code = r.amb_context_code
2066 AND p.product_rule_type_code = r.product_rule_type_code
2067 AND p.product_rule_code = r.product_rule_code
2068 AND p.event_class_code = r.event_class_code
2069 AND p.event_type_code = r.event_type_code
2070 AND p.locking_status_flag = 'Y');
2071
2072 CURSOR c_check_derived_sources
2073 IS
2074 SELECT application_id, source_type_code, source_code
2075 FROM xla_sources_b r
2076 WHERE exists (SELECT 'x'
2077 FROM xla_source_params p
2078 WHERE p.ref_source_application_id = p_application_id
2079 AND p.ref_source_code = p_source_code
2080 AND p.ref_source_type_code = p_source_type_code
2081 AND p.application_id = r.application_id
2082 AND p.source_type_code = r.source_type_code
2083 AND p.source_code = r.source_code);
2084
2085 l_check_derived_sources c_check_derived_sources%rowtype;
2086
2087 l_log_module VARCHAR2(240);
2088 BEGIN
2089 IF g_log_enabled THEN
2090 l_log_module := C_DEFAULT_MODULE||'.source_is_locked';
2091 END IF;
2092
2093 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2094 trace(p_msg => 'BEGIN of procedure source_is_locked'
2095 ,p_module => l_log_module
2096 ,p_level => C_LEVEL_PROCEDURE);
2097 END IF;
2098
2099 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2100 trace(p_msg => 'application_id = '||p_application_id||
2101 ',source_code = '||p_source_code||
2102 ',source_type_code = '||p_source_type_code
2103 ,p_module => l_log_module
2104 ,p_level => C_LEVEL_STATEMENT);
2105 END IF;
2106
2107 IF p_source_type_code = 'S' THEN
2108
2109 OPEN check_analytical;
2110 FETCH check_analytical
2111 INTO l_exist;
2112 IF check_analytical%found THEN
2113 l_return := TRUE;
2114 ELSE
2115 l_return := FALSE;
2116 END IF;
2117 CLOSE check_analytical;
2118
2119 IF l_return = FALSE THEN
2120
2121 OPEN check_descript_details;
2122 FETCH check_descript_details
2123 INTO l_exist;
2124 IF check_descript_details%found THEN
2125 l_return := TRUE;
2126 ELSE
2127 l_return := FALSE;
2128 END IF;
2129 CLOSE check_descript_details;
2130 END IF;
2131
2132 IF l_return = FALSE THEN
2133
2134 OPEN check_desc_conditions;
2135 FETCH check_desc_conditions
2136 INTO l_exist;
2137 IF check_desc_conditions%found THEN
2138 l_return := TRUE;
2139 ELSE
2140 l_return := FALSE;
2141 END IF;
2142 CLOSE check_desc_conditions;
2143 END IF;
2144
2145 IF l_return = FALSE THEN
2146
2147 OPEN check_sr_conditions;
2148 FETCH check_sr_conditions
2149 INTO l_exist;
2150 IF check_sr_conditions%found THEN
2151 l_return := TRUE;
2152 ELSE
2153 l_return := FALSE;
2154 END IF;
2155 CLOSE check_sr_conditions;
2156 END IF;
2157
2158 IF l_return = FALSE THEN
2159
2160 OPEN check_lt_conditions;
2161 FETCH check_lt_conditions
2162 INTO l_exist;
2163 IF check_lt_conditions%found THEN
2164 l_return := TRUE;
2165 ELSE
2166 l_return := FALSE;
2167 END IF;
2168 CLOSE check_lt_conditions;
2169 END IF;
2170
2171 IF l_return = FALSE THEN
2172
2173 OPEN check_sr_details;
2174 FETCH check_sr_details
2175 INTO l_exist;
2176 IF check_sr_details%found THEN
2177 l_return := TRUE;
2178 ELSE
2179 l_return := FALSE;
2180 END IF;
2181 CLOSE check_sr_details;
2182 END IF;
2183
2184 IF l_return = FALSE THEN
2185
2186 OPEN check_line_types;
2187 FETCH check_line_types
2188 INTO l_exist;
2189 IF check_line_types%found THEN
2190 l_return := TRUE;
2191 ELSE
2192 l_return := FALSE;
2193 END IF;
2194 CLOSE check_line_types;
2195 END IF;
2196
2197 IF l_return = FALSE THEN
2198
2199 OPEN check_aad;
2200 FETCH check_aad
2201 INTO l_exist;
2202 IF check_aad%found THEN
2203 l_return := TRUE;
2204 ELSE
2205 l_return := FALSE;
2206 END IF;
2207 CLOSE check_aad;
2208 END IF;
2209
2210 IF l_return = FALSE THEN
2211
2212 OPEN c_check_derived_sources;
2213 LOOP
2214 FETCH c_check_derived_sources
2215 INTO l_check_derived_sources;
2216 EXIT WHEN c_check_derived_sources%notfound or l_return = TRUE;
2217
2218 IF derived_source_is_locked
2219 (p_der_application_id => l_check_derived_sources.application_id
2220 ,p_der_source_type_code => l_check_derived_sources.source_type_code
2221 ,p_der_source_code => l_check_derived_sources.source_code) THEN
2222
2223 l_return := TRUE;
2224 ELSE
2225 l_return := FALSE;
2226 END IF;
2227 END LOOP;
2228 CLOSE c_check_derived_sources;
2229 END IF;
2230
2231 ELSIF p_source_type_code = 'D' THEN
2232
2233 IF derived_source_is_locked
2234 (p_der_application_id => p_application_id
2235 ,p_der_source_type_code => p_source_type_code
2236 ,p_der_source_code => p_source_code) THEN
2237
2238 l_return := TRUE;
2239 ELSE
2240 l_return := FALSE;
2241 END IF;
2242 END IF;
2243
2244 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2245 trace(p_msg => 'END of procedure source_is_locked'
2246 ,p_module => l_log_module
2247 ,p_level => C_LEVEL_PROCEDURE);
2248 END IF;
2249
2250 RETURN l_return;
2251
2252 EXCEPTION
2253 WHEN xla_exceptions_pkg.application_exception THEN
2254
2255 IF check_analytical%ISOPEN THEN
2256 CLOSE check_analytical;
2257 END IF;
2258 IF check_descript_details%ISOPEN THEN
2259 CLOSE check_descript_details;
2260 END IF;
2261 IF check_sr_details%ISOPEN THEN
2262 CLOSE check_sr_details;
2263 END IF;
2264 IF check_lt_conditions%ISOPEN THEN
2265 CLOSE check_lt_conditions;
2266 END IF;
2267 IF check_sr_conditions%ISOPEN THEN
2268 CLOSE check_sr_conditions;
2269 END IF;
2270 IF check_desc_conditions%ISOPEN THEN
2271 CLOSE check_desc_conditions;
2272 END IF;
2273 IF check_line_types%ISOPEN THEN
2274 CLOSE check_line_types;
2275 END IF;
2276
2277 RAISE;
2278
2279 WHEN OTHERS THEN
2280
2281 IF check_analytical%ISOPEN THEN
2282 CLOSE check_analytical;
2283 END IF;
2284 IF check_sr_details%ISOPEN THEN
2285 CLOSE check_sr_details;
2286 END IF;
2287 IF check_lt_conditions%ISOPEN THEN
2288 CLOSE check_lt_conditions;
2289 END IF;
2290 IF check_sr_conditions%ISOPEN THEN
2291 CLOSE check_sr_conditions;
2292 END IF;
2293 IF check_desc_conditions%ISOPEN THEN
2294 CLOSE check_desc_conditions;
2295 END IF;
2296 IF check_descript_details%ISOPEN THEN
2297 CLOSE check_descript_details;
2298 END IF;
2299 IF check_line_types%ISOPEN THEN
2300 CLOSE check_line_types;
2301 END IF;
2302
2303 xla_exceptions_pkg.raise_message
2304 (p_location => 'xla_sources_pkg.source_is_locked');
2305
2306 END source_is_locked;
2307
2308 /*======================================================================+
2309 | |
2310 | Public Procedure |
2311 | |
2312 | uncompile_prod_rule |
2313 | |
2314 | Wrapper for uncompile_definitions |
2315 | Provided for backward-compatibility, to be obsoleted |
2316 | |
2317 +======================================================================*/
2318
2319 FUNCTION uncompile_prod_rule
2320 (p_application_id IN NUMBER
2321 ,p_source_code IN VARCHAR2
2322 ,p_source_type_code IN VARCHAR2
2323 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
2324 ,p_product_rule_type IN OUT NOCOPY VARCHAR2)
2325 RETURN BOOLEAN
2326
2327 IS
2328 l_event_class_name varchar2(80) := NULL;
2329 l_event_type_name varchar2(80) := NULL;
2330 l_locking_status_flag varchar2(1) := NULL;
2331 l_return BOOLEAN := TRUE;
2332
2333 l_log_module VARCHAR2(240);
2334 BEGIN
2335 IF g_log_enabled THEN
2336 l_log_module := C_DEFAULT_MODULE||'.uncompile_prod_rule';
2337 END IF;
2338
2339 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2340 trace(p_msg => 'BEGIN of procedure uncompile_prod_rule'
2341 ,p_module => l_log_module
2342 ,p_level => C_LEVEL_PROCEDURE);
2343 END IF;
2344
2345 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2346 trace(p_msg => 'application_id = '||p_application_id||
2347 ',source_code = '||p_source_code||
2348 ',source_type_code = '||p_source_type_code
2349 ,p_module => l_log_module
2350 ,p_level => C_LEVEL_STATEMENT);
2351 END IF;
2352
2353 l_return := uncompile_definitions
2354 (p_application_id => p_application_id
2355 ,p_source_code => p_source_code
2356 ,p_source_type_code => p_source_type_code
2357 ,x_product_rule_name => p_product_rule_name
2358 ,x_product_rule_type => p_product_rule_type
2359 ,x_event_class_name => l_event_class_name
2360 ,x_event_type_name => l_event_type_name
2361 ,x_locking_status_flag => l_locking_status_flag);
2362
2363
2364 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2365 trace(p_msg => 'END of procedure uncompile_prod_rule'
2366 ,p_module => l_log_module
2367 ,p_level => C_LEVEL_PROCEDURE);
2368 END IF;
2369
2370 return l_return;
2371
2372 EXCEPTION
2373 WHEN xla_exceptions_pkg.application_exception THEN
2374 RAISE;
2375 WHEN OTHERS THEN
2376 xla_exceptions_pkg.raise_message
2377 (p_location => 'xla_sources_pkg.uncompile_prod_rule');
2378
2379 END uncompile_prod_rule;
2380
2381
2382
2383 /*======================================================================+
2384 | |
2385 | Public Procedure |
2386 | |
2387 | uncompile_definitions |
2388 | |
2389 | Sets status of assigned application accounting definitions and journ |
2390 | lines definitions to uncompiled |
2391 | |
2392 +======================================================================*/
2393
2394 FUNCTION uncompile_definitions
2395 (p_application_id IN NUMBER
2396 ,p_source_code IN VARCHAR2
2397 ,p_source_type_code IN VARCHAR2
2398 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
2399 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
2400 ,x_event_class_name IN OUT NOCOPY VARCHAR2
2401 ,x_event_type_name IN OUT NOCOPY VARCHAR2
2402 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
2403 RETURN BOOLEAN
2404
2405 IS
2406
2407 --
2408 -- Private variables
2409 --
2410 l_exist VARCHAR2(1) ;
2411 l_return BOOLEAN := TRUE;
2412
2413 l_application_name varchar2(240) := null;
2414 l_line_definition_name varchar2(80) := null;
2415 l_line_definition_owner varchar2(80) := NULL;
2416 l_product_rule_name varchar2(80) := null;
2417 l_product_rule_type varchar2(80) := NULL;
2418 l_event_class_name varchar2(80) := NULL;
2419 l_event_type_name varchar2(80) := NULL;
2420 l_locking_status_flag varchar2(1) := NULL;
2421 --
2422 -- Cursor declarations
2423 --
2424
2425 CURSOR c_analytical
2426 IS
2427 SELECT amb_context_code, analytical_criterion_code, analytical_criterion_type_code
2428 FROM xla_analytical_hdrs_b a
2429 WHERE exists (SELECT 'x'
2430 FROM xla_analytical_sources r
2431 WHERE source_application_id = p_application_id
2432 AND source_code = p_source_code
2433 AND source_type_code = p_source_type_code
2434 AND r.amb_context_code = a.amb_context_code
2435 AND r.analytical_criterion_code = a.analytical_criterion_code
2436 AND r.analytical_criterion_type_code = a.analytical_criterion_type_code);
2437
2438 l_analytical c_analytical%rowtype;
2439
2440 CURSOR c_descriptions
2441 IS
2442 SELECT x.application_id, x.amb_context_code,
2443 x.description_type_code, x.description_code
2444 FROM xla_descriptions_b x
2445 WHERE exists (SELECT 'x'
2446 FROM xla_descript_details_b d, xla_desc_priorities dp
2447 WHERE d.source_application_id = p_application_id
2448 AND d.source_code = p_source_code
2449 AND d.source_type_code = p_source_type_code
2450 AND d.source_code is not null
2451 AND dp.description_prio_id = d.description_prio_id
2452 AND dp.application_id = x.application_id
2453 AND dp.amb_context_code = x.amb_context_code
2454 AND dp.description_type_code = x.description_type_code
2455 AND dp.description_code = x.description_code
2456 UNION
2457 SELECT 'x'
2458 FROM xla_conditions c, xla_desc_priorities dp
2459 WHERE ((c.source_application_id = p_application_id
2460 AND c.source_code = p_source_code
2461 AND c.source_type_code = p_source_type_code)
2462 OR (c.value_source_application_id = p_application_id
2463 AND c.value_source_type_code = p_source_type_code
2464 AND c.value_source_code = p_source_code
2465 AND c.value_source_code IS NOT NULL))
2466 AND dp.description_prio_id = c.description_prio_id
2467 AND dp.application_id = x.application_id
2468 AND dp.amb_context_code = x.amb_context_code
2469 AND dp.description_type_code = x.description_type_code
2470 AND dp.description_code = x.description_code);
2471
2472 l_description c_descriptions%rowtype;
2473
2474 CURSOR c_seg_rules
2475 IS
2476 SELECT a.application_id, a.amb_context_code, a.segment_rule_type_code, a.segment_rule_code
2477 FROM xla_seg_rules_b a
2478 WHERE exists (SELECT 'x'
2479 FROM xla_seg_rule_details sd
2480 WHERE ((value_source_application_id = p_application_id
2481 AND value_source_type_code = p_source_type_code
2482 AND value_source_code = p_source_code)
2483 OR (input_source_application_id = p_application_id
2484 AND input_source_type_code = p_source_type_code
2485 AND input_source_code = p_source_code
2486 AND input_source_code IS NOT NULL))
2487 AND sd.application_id = a.application_id
2488 AND sd.amb_context_code = a.amb_context_code
2489 AND sd.segment_rule_type_code = a.segment_rule_type_code
2490 AND sd.segment_rule_code = a.segment_rule_code
2491 UNION
2492 SELECT 'x'
2493 FROM xla_conditions c, xla_seg_rule_details sd
2494 WHERE ((c.source_application_id = p_application_id
2495 AND c.source_code = p_source_code
2496 AND c.source_type_code = p_source_type_code)
2497 OR (c.value_source_application_id = p_application_id
2498 AND c.value_source_type_code = p_source_type_code
2499 AND c.value_source_code = p_source_code
2500 AND c.value_source_code IS NOT NULL))
2501 AND c.segment_rule_detail_id = sd.segment_rule_detail_id
2502 AND sd.application_id = a.application_id
2503 AND sd.amb_context_code = a.amb_context_code
2504 AND sd.segment_rule_type_code = a.segment_rule_type_code
2505 AND sd.segment_rule_code = a.segment_rule_code);
2506
2507 l_seg_rule c_seg_rules%rowtype;
2508
2509 CURSOR c_line_types
2510 IS
2511 SELECT application_id, a.amb_context_code, entity_code, event_class_code,
2512 accounting_line_type_code, accounting_line_code
2513 FROM xla_acct_line_types_b a
2514 WHERE exists (SELECT 'x'
2515 FROM xla_conditions c
2516 WHERE ((source_application_id = p_application_id
2517 AND source_code = p_source_code
2518 AND source_type_code = p_source_type_code)
2519 OR (value_source_application_id = p_application_id
2520 AND value_source_type_code = p_source_type_code
2521 AND value_source_code = p_source_code
2522 AND value_source_code IS NOT NULL))
2523 AND c.application_id = a.application_id
2524 AND c.amb_context_code = a.amb_context_code
2525 AND c.entity_code = a.entity_code
2526 AND c.event_class_code = a.event_class_code
2527 AND c.accounting_line_type_code = a.accounting_line_type_code
2528 AND c.accounting_line_code = a.accounting_line_code
2529 UNION
2530 SELECT 'x'
2531 FROM xla_jlt_acct_attrs r
2532 WHERE source_application_id = p_application_id
2533 AND source_code = p_source_code
2534 AND source_type_code = p_source_type_code
2535 AND r.application_id = a.application_id
2536 AND r.amb_context_code = a.amb_context_code
2537 AND r.event_class_code = a.event_class_code
2538 AND r.accounting_line_type_code = a.accounting_line_type_code
2539 AND r.accounting_line_code = a.accounting_line_code);
2540
2541 l_line_type c_line_types%rowtype;
2542
2543 CURSOR c_aad
2544 IS
2545 SELECT application_id, amb_context_code,
2546 product_rule_type_code, product_rule_code
2547 FROM xla_product_rules_b a
2548 WHERE exists (SELECT 'x'
2549 FROM xla_aad_hdr_acct_attrs r
2550 WHERE source_application_id = p_application_id
2551 AND source_code = p_source_code
2552 AND source_type_code = p_source_type_code
2553 AND source_code is not null
2554 AND r.application_id = a.application_id
2555 AND r.amb_context_code = a.amb_context_code
2556 AND r.product_rule_type_code = a.product_rule_type_code
2557 AND r.product_rule_code = a.product_rule_code);
2558
2559 l_aad c_aad%rowtype;
2560
2561 CURSOR c_check_derived_sources
2562 IS
2563 SELECT application_id, source_type_code, source_code
2564 FROM xla_sources_b r
2565 WHERE exists (SELECT 'x'
2566 FROM xla_source_params p
2567 WHERE p.ref_source_application_id = p_application_id
2568 AND p.ref_source_code = p_source_code
2569 AND p.ref_source_type_code = p_source_type_code
2570 AND p.application_id = r.application_id
2571 AND p.source_type_code = r.source_type_code
2572 AND p.source_code = r.source_code);
2573
2574 l_check_derived_sources c_check_derived_sources%rowtype;
2575
2576 l_log_module VARCHAR2(240);
2577 BEGIN
2578 IF g_log_enabled THEN
2579 l_log_module := C_DEFAULT_MODULE||'.uncompile_definitions';
2580 END IF;
2581
2582 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2583 trace(p_msg => 'BEGIN of procedure uncompile_definitions'
2584 ,p_module => l_log_module
2585 ,p_level => C_LEVEL_PROCEDURE);
2586 END IF;
2587
2588 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2589 trace(p_msg => 'application_id = '||p_application_id||
2590 ',source_code = '||p_source_code||
2591 ',source_type_code = '||p_source_type_code
2592 ,p_module => l_log_module
2593 ,p_level => C_LEVEL_STATEMENT);
2594 END IF;
2595
2596 IF p_source_type_code = 'S' THEN
2597
2598 OPEN c_analytical;
2599 LOOP
2600 FETCH c_analytical
2601 INTO l_analytical;
2602 EXIT WHEN c_analytical%NOTFOUND or l_return=FALSE;
2603
2604 IF xla_analytical_hdrs_pkg.uncompile_definitions
2605 (p_amb_context_code => l_analytical.amb_context_code
2606 ,p_analytical_criterion_code => l_analytical.analytical_criterion_code
2607 ,p_anal_criterion_type_code => l_analytical.analytical_criterion_type_code
2608 ,x_product_rule_name => l_product_rule_name
2609 ,x_product_rule_type => l_product_rule_type
2610 ,x_event_class_name => l_event_class_name
2611 ,x_event_type_name => l_event_type_name
2612 ,x_locking_status_flag => l_locking_status_flag) THEN
2613
2614 l_return := TRUE;
2615 ELSE
2616 l_return := FALSE;
2617 END IF;
2618 END LOOP;
2619 CLOSE c_analytical;
2620
2621 IF l_return = TRUE THEN
2622 OPEN c_descriptions;
2623 LOOP
2624 FETCH c_descriptions
2625 INTO l_description;
2626 EXIT WHEN c_descriptions%NOTFOUND or l_return=FALSE;
2627
2628 IF xla_descriptions_pkg.uncompile_definitions
2629 (p_application_id => l_description.application_id
2630 ,p_amb_context_code => l_description.amb_context_code
2631 ,p_description_type_code => l_description.description_type_code
2632 ,p_description_code => l_description.description_code
2633 ,x_product_rule_name => l_product_rule_name
2634 ,x_product_rule_type => l_product_rule_type
2635 ,x_event_class_name => l_event_class_name
2636 ,x_event_type_name => l_event_type_name
2637 ,x_locking_status_flag => l_locking_status_flag) THEN
2638
2639 l_return := TRUE;
2640 ELSE
2641 l_return := FALSE;
2642 END IF;
2643 END LOOP;
2644 CLOSE c_descriptions;
2645 END IF;
2646
2647
2648 IF l_return = TRUE THEN
2649 OPEN c_seg_rules;
2650 LOOP
2651 FETCH c_seg_rules
2652 INTO l_seg_rule;
2653 EXIT WHEN c_seg_rules%NOTFOUND or l_return=FALSE;
2654
2655 IF xla_seg_rules_pkg.uncompile_definitions
2656 (p_application_id => l_seg_rule.application_id
2657 ,p_amb_context_code => l_seg_rule.amb_context_code
2658 ,p_segment_rule_type_code => l_seg_rule.segment_rule_type_code
2659 ,p_segment_rule_code => l_seg_rule.segment_rule_code
2660 ,x_product_rule_name => l_product_rule_name
2661 ,x_product_rule_type => l_product_rule_type
2662 ,x_event_class_name => l_event_class_name
2663 ,x_event_type_name => l_event_type_name
2664 ,x_locking_status_flag => l_locking_status_flag) THEN
2665
2666 l_return := TRUE;
2667 ELSE
2668 l_return := FALSE;
2669 END IF;
2670 END LOOP;
2671 CLOSE c_seg_rules;
2672 END IF;
2673
2674
2675 IF l_return = TRUE THEN
2676 OPEN c_line_types;
2677 LOOP
2678 FETCH c_line_types
2679 INTO l_line_type;
2680 EXIT WHEN c_line_types%NOTFOUND or l_return=FALSE;
2681
2682 IF xla_line_types_pkg.uncompile_definitions
2683 (p_application_id => l_line_type.application_id
2684 ,p_amb_context_code => l_line_type.amb_context_code
2685 ,p_event_class_code => l_line_type.event_class_code
2686 ,p_accounting_line_type_code => l_line_type.accounting_line_type_code
2687 ,p_accounting_line_code => l_line_type.accounting_line_code
2688 ,x_product_rule_name => l_product_rule_name
2689 ,x_product_rule_type => l_product_rule_type
2690 ,x_event_class_name => l_event_class_name
2691 ,x_event_type_name => l_event_type_name
2692 ,x_locking_status_flag => l_locking_status_flag) THEN
2693
2694 l_return := TRUE;
2695 ELSE
2696 l_return := FALSE;
2697 END IF;
2698 END LOOP;
2699 CLOSE c_line_types;
2700 END IF;
2701
2702 IF l_return = TRUE THEN
2703 OPEN c_aad;
2704 LOOP
2705 FETCH c_aad
2706 INTO l_aad;
2707 EXIT WHEN c_aad%NOTFOUND or l_return=FALSE;
2708
2709 IF xla_product_rules_pkg.uncompile_product_rule
2710 (p_application_id => l_aad.application_id
2711 ,p_amb_context_code => l_aad.amb_context_code
2712 ,p_product_rule_type_code => l_aad.product_rule_type_code
2713 ,p_product_rule_code => l_aad.product_rule_code) THEN
2714
2715 l_return := TRUE;
2716 ELSE
2717 xla_validations_pkg.get_product_rule_info
2718 (p_application_id => l_aad.application_id
2719 ,p_amb_context_code => l_aad.amb_context_code
2720 ,p_product_rule_type_code => l_aad.product_rule_type_code
2721 ,p_product_rule_code => l_aad.product_rule_code
2722 ,p_application_name => l_application_name
2723 ,p_product_rule_name => l_product_rule_name
2724 ,p_product_rule_type => l_product_rule_type);
2725
2726 l_return := FALSE;
2727 END IF;
2728 END LOOP;
2729 CLOSE c_aad;
2730 END IF;
2731
2732 IF l_return = TRUE THEN
2733
2734 OPEN c_check_derived_sources;
2735 LOOP
2736 FETCH c_check_derived_sources
2737 INTO l_check_derived_sources;
2738 EXIT WHEN c_check_derived_sources%notfound or l_return = FALSE;
2739
2740 IF uncompile_pad_for_der_source
2741 (p_der_application_id => l_check_derived_sources.application_id
2742 ,p_der_source_type_code => l_check_derived_sources.source_type_code
2743 ,p_der_source_code => l_check_derived_sources.source_code
2744 ,x_product_rule_name => l_product_rule_name
2745 ,x_product_rule_type => l_product_rule_type
2746 ,x_event_class_name => l_event_class_name
2747 ,x_event_type_name => l_event_type_name
2748 ,x_locking_status_flag => l_locking_status_flag) THEN
2749
2750 l_return := TRUE;
2751 ELSE
2752 l_return := FALSE;
2753 END IF;
2754 END LOOP;
2755 CLOSE c_check_derived_sources;
2756 END IF;
2757
2758 ELSIF p_source_type_code = 'D' THEN
2759
2760 IF uncompile_pad_for_der_source
2761 (p_der_application_id => p_application_id
2762 ,p_der_source_type_code => p_source_type_code
2763 ,p_der_source_code => p_source_code
2764 ,x_product_rule_name => l_product_rule_name
2765 ,x_product_rule_type => l_product_rule_type
2766 ,x_event_class_name => l_event_class_name
2767 ,x_event_type_name => l_event_type_name
2768 ,x_locking_status_flag => l_locking_status_flag) THEN
2769
2770 l_return := TRUE;
2771 ELSE
2772 l_return := FALSE;
2773 END IF;
2774
2775 END IF;
2776
2777 x_product_rule_name := l_product_rule_name;
2778 x_product_rule_type := l_product_rule_type;
2779 x_event_class_name := l_event_class_name;
2780 x_event_type_name := l_event_type_name;
2781 x_locking_status_flag := l_locking_status_flag;
2782
2783 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2784 trace(p_msg => 'END of procedure uncompile_definitions'
2785 ,p_module => l_log_module
2786 ,p_level => C_LEVEL_PROCEDURE);
2787 END IF;
2788
2789 return l_return;
2790
2791 EXCEPTION
2792 WHEN xla_exceptions_pkg.application_exception THEN
2793 RAISE;
2794 WHEN OTHERS THEN
2795 xla_exceptions_pkg.raise_message
2796 (p_location => 'xla_sources_pkg.uncompile_definitions');
2797
2798 END uncompile_definitions;
2799
2800 /*======================================================================+
2801 | |
2802 | Public Procedure |
2803 | |
2804 | delete_derived_source_details |
2805 | |
2806 | Deletes details of the derived source when the source is deleted |
2807 | |
2808 +======================================================================*/
2809 PROCEDURE delete_derived_source_details
2810 (p_application_id IN NUMBER
2811 ,p_source_code IN VARCHAR2
2812 ,p_source_type_code IN VARCHAR2)
2813
2814 IS
2815
2816 l_log_module VARCHAR2(240);
2817 BEGIN
2818 IF g_log_enabled THEN
2819 l_log_module := C_DEFAULT_MODULE||'.delete_derived_source_details';
2820 END IF;
2821
2822 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2823 trace(p_msg => 'BEGIN of procedure delete_derived_source_details'
2824 ,p_module => l_log_module
2825 ,p_level => C_LEVEL_PROCEDURE);
2826 END IF;
2827
2828 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2829 trace(p_msg => 'application_id = '||p_application_id||
2830 ',source_code = '||p_source_code||
2831 ',source_type_code = '||p_source_type_code
2832 ,p_module => l_log_module
2833 ,p_level => C_LEVEL_STATEMENT);
2834 END IF;
2835
2836 DELETE
2837 FROM xla_source_params
2838 WHERE application_id = p_application_id
2839 AND source_type_code = p_source_type_code
2840 AND source_code = p_source_code;
2841
2842 DELETE
2843 FROM xla_event_sources
2844 WHERE source_application_id = p_application_id
2845 AND source_type_code = p_source_type_code
2846 AND source_code = p_source_code;
2847
2848 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2849 trace(p_msg => 'END of procedure delete_derived_source_details'
2850 ,p_module => l_log_module
2851 ,p_level => C_LEVEL_PROCEDURE);
2852 END IF;
2853
2854
2855 EXCEPTION
2856 WHEN xla_exceptions_pkg.application_exception THEN
2857 RAISE;
2858 WHEN OTHERS THEN
2859 xla_exceptions_pkg.raise_message
2860 (p_location => 'xla_sources_pkg.delete_derived_source_details');
2861
2862 END delete_derived_source_details;
2863
2864 /*======================================================================+
2865 | |
2866 | Public Function |
2867 | |
2868 | derived_source_is_invalid |
2869 | |
2870 | Returns true if the derived source has seeded sources that do not |
2871 | belong to the entity or event class |
2872 | |
2873 +======================================================================*/
2874 FUNCTION derived_source_is_invalid
2875 (p_application_id IN NUMBER
2876 ,p_derived_source_code IN VARCHAR2
2877 ,p_derived_source_type_code IN VARCHAR2
2878 ,p_event_class_code IN VARCHAR2
2879 ,p_level IN VARCHAR2)
2880 RETURN VARCHAR2
2881
2882 IS
2883
2884 --
2885 -- Private variables
2886 --
2887 l_exist VARCHAR2(1) ;
2888 l_return VARCHAR2(30);
2889
2890 --
2891 -- Cursor declarations
2892 --
2893
2894 CURSOR check_header_source
2895 IS
2896 SELECT 'x'
2897 FROM xla_source_params r
2898 WHERE application_id = p_application_id
2899 AND source_code = p_derived_source_code
2900 AND source_type_code = p_derived_source_type_code
2901 AND ref_source_code is not null
2902 AND ref_source_type_code = 'S'
2903 AND not exists (SELECT 'x'
2904 FROM xla_event_sources s
2905 WHERE s.source_application_id = r.ref_source_application_id
2906 AND s.source_type_code = r.ref_source_type_code
2907 AND s.source_code = r.ref_source_code
2908 AND s.application_id = p_application_id
2909 AND s.event_class_code = p_event_class_code
2910 AND s.active_flag = 'Y'
2911 AND s.level_code = 'H');
2912
2913 CURSOR check_line_source
2914 IS
2915 SELECT 'x'
2916 FROM xla_source_params r
2917 WHERE application_id = p_application_id
2918 AND source_code = p_derived_source_code
2919 AND source_type_code = p_derived_source_type_code
2920 AND ref_source_code is not null
2921 AND ref_source_type_code = 'S'
2922 AND not exists (SELECT 'x'
2923 FROM xla_event_sources s
2924 WHERE s.source_application_id = r.ref_source_application_id
2925 AND s.source_type_code = r.ref_source_type_code
2926 AND s.source_code = r.ref_source_code
2927 AND s.application_id = p_application_id
2928 AND s.event_class_code = p_event_class_code
2929 AND s.active_flag = 'Y');
2930
2931 l_log_module VARCHAR2(240);
2932 BEGIN
2933 IF g_log_enabled THEN
2934 l_log_module := C_DEFAULT_MODULE||'.derived_source_is_invalid';
2935 END IF;
2936
2937 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2938 trace(p_msg => 'BEGIN of procedure derived_source_is_invalid'
2939 ,p_module => l_log_module
2940 ,p_level => C_LEVEL_PROCEDURE);
2941 END IF;
2942
2943 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
2944 trace(p_msg => 'application_id = '||p_application_id||
2945 ',source_code = '||p_derived_source_code||
2946 ',source_type_code = '||p_derived_source_type_code||
2947 ',event_class_code = '||p_event_class_code||
2948 ',level = '||p_event_class_code
2949 ,p_module => l_log_module
2950 ,p_level => C_LEVEL_STATEMENT);
2951 END IF;
2952
2953 IF p_level = 'H' THEN
2954
2955 OPEN check_header_source;
2956 FETCH check_header_source
2957 INTO l_exist;
2958 IF check_header_source%found THEN
2959 l_return := 'TRUE';
2960 ELSE
2961 l_return := 'FALSE';
2962 END IF;
2963 CLOSE check_header_source;
2964
2965 ELSE
2966
2967 OPEN check_line_source;
2968 FETCH check_line_source
2969 INTO l_exist;
2970 IF check_line_source%found THEN
2971 l_return := 'TRUE';
2972 ELSE
2973 l_return := 'FALSE';
2974 END IF;
2975 CLOSE check_line_source;
2976
2977 END IF;
2978
2979 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2980 trace(p_msg => 'END of procedure derived_source_is_invalid'
2981 ,p_module => l_log_module
2982 ,p_level => C_LEVEL_PROCEDURE);
2983 END IF;
2984
2985
2986 RETURN l_return;
2987
2988 EXCEPTION
2989 WHEN xla_exceptions_pkg.application_exception THEN
2990
2991 IF check_header_source%ISOPEN THEN
2992 CLOSE check_header_source;
2993 END IF;
2994 IF check_line_source%ISOPEN THEN
2995 CLOSE check_line_source;
2996 END IF;
2997
2998 RAISE;
2999
3000 WHEN OTHERS THEN
3001
3002 IF check_header_source%ISOPEN THEN
3003 CLOSE check_header_source;
3004 END IF;
3005 IF check_line_source%ISOPEN THEN
3006 CLOSE check_line_source;
3007 END IF;
3008
3009 xla_exceptions_pkg.raise_message
3010 (p_location => 'xla_sources_pkg.derived_source_is_invalid');
3011
3012 END derived_source_is_invalid;
3013
3014
3015 FUNCTION derived_source_is_invalid
3016 (p_application_id IN NUMBER
3017 ,p_derived_source_code IN VARCHAR2
3018 ,p_derived_source_type_code IN VARCHAR2
3019 ,p_entity_code IN VARCHAR2
3020 ,p_event_class_code IN VARCHAR2
3021 ,p_level IN VARCHAR2)
3022 RETURN VARCHAR2
3023 IS
3024 l_return VARCHAR2(30);
3025
3026 l_log_module VARCHAR2(240);
3027 BEGIN
3028 IF g_log_enabled THEN
3029 l_log_module := C_DEFAULT_MODULE||'.derived_source_is_invalid';
3030 END IF;
3031
3032 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3033 trace(p_msg => 'BEGIN of procedure derived_source_is_invalid'
3034 ,p_module => l_log_module
3035 ,p_level => C_LEVEL_PROCEDURE);
3036 END IF;
3037
3038 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3039 trace(p_msg => 'application_id = '||p_application_id||
3040 ',source_code = '||p_derived_source_code||
3041 ',source_type_code = '||p_derived_source_type_code||
3042 ',event_class_code = '||p_event_class_code||
3043 ',entity_code = '||p_entity_code||
3044 ',level = '||p_event_class_code
3045 ,p_module => l_log_module
3046 ,p_level => C_LEVEL_STATEMENT);
3047 END IF;
3048
3049 l_return := derived_source_is_invalid
3050 (p_application_id => p_application_id
3051 ,p_derived_source_code => p_derived_source_code
3052 ,p_derived_source_type_code => p_derived_source_type_code
3053 ,p_event_class_code => p_event_class_code
3054 ,p_level => p_level);
3055
3056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3057 trace(p_msg => 'END of procedure derived_source_is_invalid'
3058 ,p_module => l_log_module
3059 ,p_level => C_LEVEL_PROCEDURE);
3060 END IF;
3061
3062 RETURN l_return;
3063
3064 EXCEPTION
3065 WHEN xla_exceptions_pkg.application_exception THEN
3066
3067 RAISE;
3068
3069 WHEN OTHERS THEN
3070
3071 xla_exceptions_pkg.raise_message
3072 (p_location => 'xla_sources_pkg.derived_source_is_invalid');
3073
3074 END derived_source_is_invalid;
3075
3076
3077 /*======================================================================+
3078 | |
3079 | Public Function |
3080 | |
3081 | source_in_use_by_tab |
3082 | |
3083 | Returns true if the source is being used |
3084 | |
3085 +======================================================================*/
3086 FUNCTION source_in_use_by_tab
3087 (p_event IN VARCHAR2
3088 ,p_application_id IN NUMBER
3089 ,p_source_code IN VARCHAR2
3090 ,p_source_type_code IN VARCHAR2)
3091 RETURN BOOLEAN
3092 IS
3093
3094 --
3095 -- Private variables
3096 --
3097 l_exist VARCHAR2(1) ;
3098 l_return BOOLEAN := FALSE;
3099
3100 --
3101 -- Cursor declarations
3102 --
3103 CURSOR check_trx_acct_type
3104 IS
3105 SELECT 'x'
3106 FROM xla_tab_acct_type_srcs
3107 WHERE source_application_id = p_application_id
3108 AND source_code = p_source_code
3109 AND source_type_code = p_source_type_code;
3110
3111 l_log_module VARCHAR2(240);
3112 BEGIN
3113 IF g_log_enabled THEN
3114 l_log_module := C_DEFAULT_MODULE||'.source_in_use_by_tab';
3115 END IF;
3116
3117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3118 trace(p_msg => 'BEGIN of procedure source_in_use_by_tab'
3119 ,p_module => l_log_module
3120 ,p_level => C_LEVEL_PROCEDURE);
3121 END IF;
3122
3123 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3124 trace(p_msg => 'application_id = '||p_application_id||
3125 ',source_code = '||p_source_code||
3126 ',source_type_code = '||p_source_type_code||
3127 ',event = '||p_event
3128 ,p_module => l_log_module
3129 ,p_level => C_LEVEL_STATEMENT);
3130 END IF;
3131
3132 IF p_source_type_code = 'S' THEN
3133
3134 IF p_event in ('DELETE', 'DISABLE') THEN
3135
3136 OPEN check_trx_acct_type;
3137 FETCH check_trx_acct_type
3138 INTO l_exist;
3139 IF check_trx_acct_type%found THEN
3140 l_return := TRUE;
3141 ELSE
3142 l_return := FALSE;
3143 END IF;
3144 CLOSE check_trx_acct_type;
3145 END IF;
3146 END IF;
3147
3148 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3149 trace(p_msg => 'END of procedure source_in_use_by_tab'
3150 ,p_module => l_log_module
3151 ,p_level => C_LEVEL_PROCEDURE);
3152 END IF;
3153
3154 RETURN l_return;
3155
3156 EXCEPTION
3157 WHEN xla_exceptions_pkg.application_exception THEN
3158 IF check_trx_acct_type%ISOPEN THEN
3159 CLOSE check_trx_acct_type;
3160 END IF;
3161 RAISE;
3162
3163 WHEN OTHERS THEN
3164 IF check_trx_acct_type%ISOPEN THEN
3165 CLOSE check_trx_acct_type;
3166 END IF;
3167
3168 xla_exceptions_pkg.raise_message
3169 (p_location => 'xla_sources_pkg.source_in_use_by_tab');
3170
3171 END source_in_use_by_tab;
3172
3173 /*======================================================================+
3174 | |
3175 | Public Function |
3176 | |
3177 | source_is_locked_by_tab |
3178 | |
3179 | Returns true if the source is being used by a locked TAD |
3180 | |
3181 +======================================================================*/
3182 FUNCTION source_is_locked_by_tab
3183 (p_application_id IN NUMBER
3184 ,p_source_code IN VARCHAR2
3185 ,p_source_type_code IN VARCHAR2)
3186 RETURN BOOLEAN
3187
3188 IS
3189
3190 --
3191 -- Private variables
3192 --
3193 l_exist VARCHAR2(1) ;
3194 l_return BOOLEAN;
3195
3196 --
3197 -- Cursor declarations
3198 --
3199
3200 CURSOR check_sr_conditions
3201 IS
3202 SELECT 'x'
3203 FROM xla_conditions c
3204 WHERE ((source_application_id = p_application_id
3205 AND source_code = p_source_code
3206 AND source_type_code = p_source_type_code)
3207 OR (value_source_application_id = p_application_id
3208 AND value_source_type_code = p_source_type_code
3209 AND value_source_code = p_source_code
3210 AND value_source_code IS NOT NULL))
3211 AND exists (SELECT 'x'
3212 FROM xla_seg_rule_details sd,
3213 xla_tab_acct_def_details pl, xla_tab_acct_defs_b p
3214 WHERE sd.segment_rule_detail_id = c.segment_rule_detail_id
3215 AND pl.application_id = sd.application_id
3216 AND pl.amb_context_code = sd.amb_context_code
3217 AND pl.segment_rule_type_code = sd.segment_rule_type_code
3218 AND pl.segment_rule_code = sd.segment_rule_code
3219 AND pl.application_id = p.application_id
3220 AND pl.amb_context_code = p.amb_context_code
3221 AND pl.account_definition_type_code = p.account_definition_type_code
3222 AND pl.account_definition_code = p.account_definition_code
3223 AND p.locking_status_flag = 'Y');
3224
3225 CURSOR check_sr_details
3226 IS
3227 SELECT 'x'
3228 FROM xla_seg_rule_details sd
3229 WHERE ((value_source_application_id = p_application_id
3230 AND value_source_type_code = p_source_type_code
3231 AND value_source_code = p_source_code)
3232 OR (input_source_application_id = p_application_id
3233 AND input_source_type_code = p_source_type_code
3234 AND input_source_code = p_source_code
3235 AND input_source_code IS NOT NULL))
3236 AND exists (SELECT 'x'
3237 FROM xla_tab_acct_def_details pl, xla_tab_acct_defs_b p
3238 WHERE pl.application_id = sd.application_id
3239 AND pl.amb_context_code = sd.amb_context_code
3240 AND pl.segment_rule_type_code = sd.segment_rule_type_code
3241 AND pl.segment_rule_code = sd.segment_rule_code
3242 AND pl.application_id = p.application_id
3243 AND pl.amb_context_code = p.amb_context_code
3244 AND pl.account_definition_type_code = p.account_definition_type_code
3245 AND pl.account_definition_code = p.account_definition_code
3246 AND p.locking_status_flag = 'Y');
3247
3248 CURSOR c_check_derived_sources
3249 IS
3250 SELECT application_id, source_type_code, source_code
3251 FROM xla_sources_b r
3252 WHERE exists (SELECT 'x'
3253 FROM xla_source_params p
3254 WHERE p.ref_source_application_id = p_application_id
3255 AND p.ref_source_code = p_source_code
3256 AND p.ref_source_type_code = p_source_type_code
3257 AND p.application_id = r.application_id
3258 AND p.source_type_code = r.source_type_code
3259 AND p.source_code = r.source_code);
3260
3261 l_check_derived_sources c_check_derived_sources%rowtype;
3262
3263 l_log_module VARCHAR2(240);
3264 BEGIN
3265 IF g_log_enabled THEN
3266 l_log_module := C_DEFAULT_MODULE||'.source_is_locked_by_tab';
3267 END IF;
3268
3269 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3270 trace(p_msg => 'BEGIN of procedure source_is_locked_by_tab'
3271 ,p_module => l_log_module
3272 ,p_level => C_LEVEL_PROCEDURE);
3273 END IF;
3274
3275 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3276 trace(p_msg => 'application_id = '||p_application_id||
3277 ',source_code = '||p_source_code||
3278 ',source_type_code = '||p_source_type_code
3279 ,p_module => l_log_module
3280 ,p_level => C_LEVEL_STATEMENT);
3281 END IF;
3282
3283 IF p_source_type_code = 'S' THEN
3284
3285 OPEN check_sr_conditions;
3286 FETCH check_sr_conditions
3287 INTO l_exist;
3288 IF check_sr_conditions%found THEN
3289 l_return := TRUE;
3290 ELSE
3291 l_return := FALSE;
3292 END IF;
3293 CLOSE check_sr_conditions;
3294
3295 IF l_return = FALSE THEN
3296
3297 OPEN check_sr_details;
3298 FETCH check_sr_details
3299 INTO l_exist;
3300 IF check_sr_details%found THEN
3301 l_return := TRUE;
3302 ELSE
3303 l_return := FALSE;
3304 END IF;
3305 CLOSE check_sr_details;
3306 END IF;
3307
3308 IF l_return = FALSE THEN
3309
3310 OPEN c_check_derived_sources;
3311 LOOP
3312 FETCH c_check_derived_sources
3313 INTO l_check_derived_sources;
3314 EXIT WHEN c_check_derived_sources%notfound or l_return = TRUE;
3315
3316 IF derived_source_locked_by_tab
3317 (p_der_application_id => l_check_derived_sources.application_id
3318 ,p_der_source_type_code => l_check_derived_sources.source_type_code
3319 ,p_der_source_code => l_check_derived_sources.source_code)
3320 THEN
3321
3322 l_return := TRUE;
3323 ELSE
3324 l_return := FALSE;
3325 END IF;
3326 END LOOP;
3327 CLOSE c_check_derived_sources;
3328 END IF;
3329
3330 ELSIF p_source_type_code = 'D' THEN
3331
3332 IF derived_source_locked_by_tab
3333 (p_der_application_id => p_application_id
3334 ,p_der_source_type_code => p_source_type_code
3335 ,p_der_source_code => p_source_code) THEN
3336
3337 l_return := TRUE;
3338 ELSE
3339 l_return := FALSE;
3340 END IF;
3341 END IF;
3342
3343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3344 trace(p_msg => 'END of procedure source_is_locked_by_tab'
3345 ,p_module => l_log_module
3346 ,p_level => C_LEVEL_PROCEDURE);
3347 END IF;
3348
3349 RETURN l_return;
3350
3351 EXCEPTION
3352 WHEN xla_exceptions_pkg.application_exception THEN
3353
3354 IF check_sr_conditions%ISOPEN THEN
3355 CLOSE check_sr_conditions;
3356 END IF;
3357 IF check_sr_details%ISOPEN THEN
3358 CLOSE check_sr_details;
3359 END IF;
3360 IF c_check_derived_sources%ISOPEN THEN
3361 CLOSE c_check_derived_sources;
3362 END IF;
3363
3364 RAISE;
3365
3366 WHEN OTHERS THEN
3367 IF check_sr_conditions%ISOPEN THEN
3368 CLOSE check_sr_conditions;
3369 END IF;
3370 IF check_sr_details%ISOPEN THEN
3371 CLOSE check_sr_details;
3372 END IF;
3373 IF c_check_derived_sources%ISOPEN THEN
3374 CLOSE c_check_derived_sources;
3375 END IF;
3376
3377 xla_exceptions_pkg.raise_message
3378 (p_location => 'xla_sources_pkg.source_is_locked_by_tab');
3379
3380 END source_is_locked_by_tab;
3381
3382 /*======================================================================+
3383 | |
3384 | Public Function |
3385 | |
3386 | uncompile_tran_acct_def |
3387 | |
3388 | Sets status of the assigned transaction account definition |
3389 | to uncompiled |
3390 | |
3391 +======================================================================*/
3392 FUNCTION uncompile_tran_acct_def
3393 (p_application_id IN NUMBER
3394 ,p_source_code IN VARCHAR2
3395 ,p_source_type_code IN VARCHAR2
3396 ,p_trx_acct_def IN OUT NOCOPY VARCHAR2
3397 ,p_trx_acct_def_type IN OUT NOCOPY VARCHAR2)
3398 RETURN BOOLEAN
3399
3400 IS
3401
3402 --
3403 -- Private variables
3404 --
3405 l_exist VARCHAR2(1) ;
3406 l_return BOOLEAN := TRUE;
3407
3408 l_application_name varchar2(240) := null;
3409 l_trx_acct_def varchar2(80) := null;
3410 l_trx_acct_def_type varchar2(80) := NULL;
3411 --
3412 -- Cursor declarations
3413 --
3414 CURSOR c_seg_rules
3415 IS
3416 SELECT a.application_id, a.amb_context_code, a.segment_rule_type_code, a.segment_rule_code
3417 FROM xla_seg_rules_b a
3418 WHERE exists (SELECT 'x'
3419 FROM xla_seg_rule_details sd
3420 WHERE ((value_source_application_id = p_application_id
3421 AND value_source_type_code = p_source_type_code
3422 AND value_source_code = p_source_code)
3423 OR (input_source_application_id = p_application_id
3424 AND input_source_type_code = p_source_type_code
3425 AND input_source_code = p_source_code
3426 AND input_source_code IS NOT NULL))
3427 AND sd.application_id = a.application_id
3428 AND sd.amb_context_code = a.amb_context_code
3429 AND sd.segment_rule_type_code = a.segment_rule_type_code
3430 AND sd.segment_rule_code = a.segment_rule_code
3431 UNION
3432 SELECT 'x'
3433 FROM xla_conditions c, xla_seg_rule_details sd
3434 WHERE ((c.source_application_id = p_application_id
3435 AND c.source_code = p_source_code
3436 AND c.source_type_code = p_source_type_code)
3437 OR (c.value_source_application_id = p_application_id
3438 AND c.value_source_type_code = p_source_type_code
3439 AND c.value_source_code = p_source_code
3440 AND c.value_source_code IS NOT NULL))
3441 AND c.segment_rule_detail_id = sd.segment_rule_detail_id
3442 AND sd.application_id = a.application_id
3443 AND sd.amb_context_code = a.amb_context_code
3444 AND sd.segment_rule_type_code = a.segment_rule_type_code
3445 AND sd.segment_rule_code = a.segment_rule_code);
3446
3447 l_seg_rule c_seg_rules%rowtype;
3448
3449 CURSOR c_check_derived_sources
3450 IS
3451 SELECT application_id, source_type_code, source_code
3452 FROM xla_sources_b r
3453 WHERE exists (SELECT 'x'
3454 FROM xla_source_params p
3455 WHERE p.ref_source_application_id = p_application_id
3456 AND p.ref_source_code = p_source_code
3457 AND p.ref_source_type_code = p_source_type_code
3458 AND p.application_id = r.application_id
3459 AND p.source_type_code = r.source_type_code
3460 AND p.source_code = r.source_code);
3461
3462 l_check_derived_sources c_check_derived_sources%rowtype;
3463
3464
3465 l_log_module VARCHAR2(240);
3466 BEGIN
3467 IF g_log_enabled THEN
3468 l_log_module := C_DEFAULT_MODULE||'.uncompile_tran_acct_def';
3469 END IF;
3470
3471 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3472 trace(p_msg => 'BEGIN of procedure uncompile_tran_acct_def'
3473 ,p_module => l_log_module
3474 ,p_level => C_LEVEL_PROCEDURE);
3475 END IF;
3476
3477 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3478 trace(p_msg => 'application_id = '||p_application_id||
3479 ',source_code = '||p_source_code||
3480 ',source_type_code = '||p_source_type_code
3481 ,p_module => l_log_module
3482 ,p_level => C_LEVEL_STATEMENT);
3483 END IF;
3484
3485 IF p_source_type_code = 'S' THEN
3486
3487 OPEN c_seg_rules;
3488 LOOP
3489 FETCH c_seg_rules
3490 INTO l_seg_rule;
3491 EXIT WHEN c_seg_rules%NOTFOUND or l_return=FALSE;
3492
3493 IF xla_seg_rules_pkg.uncompile_tran_acct_def
3494 (p_application_id => l_seg_rule.application_id
3495 ,p_amb_context_code => l_seg_rule.amb_context_code
3496 ,p_segment_rule_type_code => l_seg_rule.segment_rule_type_code
3497 ,p_segment_rule_code => l_seg_rule.segment_rule_code
3498 ,p_application_name => l_application_name
3499 ,p_trx_acct_def => l_trx_acct_def
3500 ,p_trx_acct_def_type => l_trx_acct_def_type) THEN
3501
3502 l_return := TRUE;
3503 ELSE
3504 l_return := FALSE;
3505 END IF;
3506 END LOOP;
3507 CLOSE c_seg_rules;
3508
3509 IF l_return = TRUE THEN
3510
3511 OPEN c_check_derived_sources;
3512 LOOP
3513 FETCH c_check_derived_sources
3514 INTO l_check_derived_sources;
3515 EXIT WHEN c_check_derived_sources%notfound or l_return = FALSE;
3516
3517 IF uncompile_tad_for_der_source
3518 (p_der_application_id => l_check_derived_sources.application_id
3519 ,p_der_source_type_code => l_check_derived_sources.source_type_code
3520 ,p_der_source_code => l_check_derived_sources.source_code
3521 ,p_trx_acct_def => l_trx_acct_def
3522 ,p_trx_acct_def_type => l_trx_acct_def_type) THEN
3523
3524 l_return := TRUE;
3525 ELSE
3526 l_return := FALSE;
3527 END IF;
3528 END LOOP;
3529
3530 CLOSE c_check_derived_sources;
3531 END IF;
3532
3533 ELSIF p_source_type_code = 'D' THEN
3534
3535 IF uncompile_tad_for_der_source
3536 (p_der_application_id => p_application_id
3537 ,p_der_source_type_code => p_source_type_code
3538 ,p_der_source_code => p_source_code
3539 ,p_trx_acct_def => l_trx_acct_def
3540 ,p_trx_acct_def_type => l_trx_acct_def_type) THEN
3541
3542 l_return := TRUE;
3543 ELSE
3544 l_return := FALSE;
3545 END IF;
3546
3547 END IF;
3548
3549 p_trx_acct_def := l_trx_acct_def;
3550 p_trx_acct_def_type := l_trx_acct_def_type;
3551
3552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3553 trace(p_msg => 'END of procedure uncompile_tran_acct_def'
3554 ,p_module => l_log_module
3555 ,p_level => C_LEVEL_PROCEDURE);
3556 END IF;
3557
3558 return l_return;
3559
3560 EXCEPTION
3561 WHEN xla_exceptions_pkg.application_exception THEN
3562 RAISE;
3563 WHEN OTHERS THEN
3564 xla_exceptions_pkg.raise_message
3565 (p_location => 'xla_sources_pkg.uncompile_tran_acct_def');
3566
3567 END uncompile_tran_acct_def;
3568
3569 /*======================================================================+
3570 | |
3571 | Public Function |
3572 | |
3573 | source_in_use_by_tad |
3574 | |
3575 | Returns true if the source is being used by a transaction account |
3576 | definition |
3577 | |
3578 +======================================================================*/
3579 FUNCTION source_in_use_by_tad
3580 (p_application_id IN NUMBER
3581 ,p_source_code IN VARCHAR2
3582 ,p_source_type_code IN VARCHAR2
3583 ,p_account_type_code IN VARCHAR2)
3584 RETURN VARCHAR2
3585
3586 IS
3587
3588 CURSOR check_det_value_source
3589 IS
3590 SELECT 'x'
3591 FROM xla_seg_rule_details s
3592 WHERE s.value_source_application_id = p_application_id
3593 AND s.value_source_code = p_source_code
3594 AND s.value_source_type_code = p_source_type_code
3595 AND s.value_source_code is not null
3596 AND exists (SELECT 'x'
3597 FROM xla_tab_acct_def_details d
3598 WHERE s.application_id = d.application_id
3599 AND d.account_type_code = p_account_type_code
3600 AND s.amb_context_code = d.amb_context_code
3601 AND s.segment_rule_code = d.segment_rule_code
3602 AND s.segment_rule_type_code = d.segment_rule_type_code);
3603
3604 CURSOR check_det_input_source
3605 IS
3606 SELECT 'x'
3607 FROM xla_seg_rule_details s
3608 WHERE s.input_source_application_id = p_application_id
3609 AND s.input_source_code = p_source_code
3610 AND s.input_source_type_code = p_source_type_code
3611 AND s.input_source_code is not null
3612 AND exists (SELECT 'x'
3613 FROM xla_tab_acct_def_details d
3614 WHERE s.application_id = d.application_id
3615 AND d.account_type_code = p_account_type_code
3616 AND s.amb_context_code = d.amb_context_code
3617 AND s.segment_rule_code = d.segment_rule_code
3618 AND s.segment_rule_type_code = d.segment_rule_type_code);
3619
3620
3621
3622 CURSOR check_con_source
3623 IS
3624 SELECT 'x'
3625 FROM xla_conditions c
3626 WHERE c.source_application_id = p_application_id
3627 AND c.source_code = p_source_code
3628 AND c.source_type_code = p_source_type_code
3629 AND exists (SELECT 'x'
3630 FROM xla_tab_acct_def_details d, xla_seg_rule_details s
3631 WHERE s.application_id = d.application_id
3632 AND d.account_type_code = p_account_type_code
3633 AND s.amb_context_code = d.amb_context_code
3634 AND s.segment_rule_code = d.segment_rule_code
3635 AND s.segment_rule_type_code = d.segment_rule_type_code
3636 AND s.segment_rule_detail_id = c.segment_rule_detail_id);
3637
3638 CURSOR check_con_value_source
3639 IS
3640 SELECT 'x'
3641 FROM xla_conditions c
3642 WHERE value_source_application_id = p_application_id
3643 AND value_source_code = p_source_code
3644 AND value_source_type_code = p_source_type_code
3645 AND value_source_code is not null
3646 AND exists (SELECT 'x'
3647 FROM xla_tab_acct_def_details d, xla_seg_rule_details s
3648 WHERE s.application_id = d.application_id
3649 AND d.account_type_code = p_account_type_code
3650 AND s.amb_context_code = d.amb_context_code
3651 AND s.segment_rule_code = d.segment_rule_code
3652 AND s.segment_rule_type_code = d.segment_rule_type_code
3653 AND s.segment_rule_detail_id = c.segment_rule_detail_id);
3654
3655
3656 l_exist VARCHAR2(1);
3657 l_return VARCHAR2(30);
3658
3659 l_log_module VARCHAR2(240);
3660 BEGIN
3661
3662 l_return := 'FALSE';
3663
3664 IF g_log_enabled THEN
3665 l_log_module := C_DEFAULT_MODULE||'.source_in_use_by_tad';
3666 END IF;
3667
3668 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3669 trace(p_msg => 'BEGIN of procedure source_in_use_by_tad'
3670 ,p_module => l_log_module
3671 ,p_level => C_LEVEL_PROCEDURE);
3672 END IF;
3673
3674 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3675 trace(p_msg => 'application_id = '||p_application_id||
3676 ',source_code = '||p_source_code||
3677 ',source_type_code = '||p_source_type_code||
3678 ',account_type_code = '||p_account_type_code
3679 ,p_module => l_log_module
3680 ,p_level => C_LEVEL_STATEMENT);
3681 END IF;
3682
3683 OPEN check_det_value_source;
3684 FETCH check_det_value_source
3685 INTO l_exist;
3686 IF check_det_value_source%found THEN
3687 l_return := 'TRUE';
3688 ELSE
3689 l_return := 'FALSE';
3690 END IF;
3691 CLOSE check_det_value_source;
3692
3693 IF l_return = 'FALSE' THEN
3694
3695 OPEN check_det_input_source;
3696 FETCH check_det_input_source
3697 INTO l_exist;
3698 IF check_det_input_source%found THEN
3699 l_return := 'TRUE';
3700 ELSE
3701 l_return := 'FALSE';
3702 END IF;
3703 CLOSE check_det_input_source;
3704 END IF;
3705
3706 IF l_return = 'FALSE' THEN
3707
3708 OPEN check_con_source;
3709 FETCH check_con_source
3710 INTO l_exist;
3711 IF check_con_source%found THEN
3712 l_return := 'TRUE';
3713 ELSE
3714 l_return := 'FALSE';
3715 END IF;
3716 CLOSE check_con_source;
3717 END IF;
3718
3719 IF l_return = 'FALSE' THEN
3720
3721 OPEN check_con_value_source;
3722 FETCH check_con_value_source
3723 INTO l_exist;
3724 IF check_con_value_source%found THEN
3725 l_return := 'TRUE';
3726 ELSE
3727 l_return := 'FALSE';
3728 END IF;
3729 CLOSE check_con_value_source;
3730 END IF;
3731
3732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3733 trace(p_msg => 'END of procedure source_in_use_by_tad'
3734 ,p_module => l_log_module
3735 ,p_level => C_LEVEL_PROCEDURE);
3736 END IF;
3737
3738 RETURN l_return;
3739
3740 EXCEPTION
3741 WHEN xla_exceptions_pkg.application_exception THEN
3742 RAISE;
3743
3744 WHEN OTHERS THEN
3745 xla_exceptions_pkg.raise_message
3746 (p_location => 'xla_sources_pkg.source_in_use_by_tad');
3747
3748 END source_in_use_by_tad;
3749
3750 /*======================================================================+
3751 | |
3752 | Public Function |
3753 | |
3754 | get_derived_source_level |
3755 | |
3756 | Gets the level of derived source if the source belongs to the event |
3757 | class |
3758 | |
3759 +======================================================================*/
3760 FUNCTION get_derived_source_level
3761 (p_application_id IN NUMBER
3762 ,p_derived_source_type_code IN VARCHAR2
3763 ,p_derived_source_code IN VARCHAR2
3764 ,p_event_class_code IN VARCHAR2)
3765 RETURN VARCHAR2
3766
3767 IS
3768
3769 --
3770 -- Private variables
3771 --
3772 l_exist VARCHAR2(1) ;
3773 l_level VARCHAR2(30);
3774
3775 --
3776 -- Cursor declarations
3777 --
3778
3779 CURSOR class_source
3780 IS
3781 SELECT 'x'
3782 FROM xla_source_params r
3783 WHERE application_id = p_application_id
3784 AND source_code = p_derived_source_code
3785 AND source_type_code = p_derived_source_type_code
3786 AND ref_source_code is not null
3787 AND ref_source_type_code = 'S'
3788 AND not exists (SELECT 'x'
3789 FROM xla_event_sources s
3790 WHERE s.source_application_id = r.ref_source_application_id
3791 AND s.source_type_code = r.ref_source_type_code
3792 AND s.source_code = r.ref_source_code
3793 AND s.application_id = p_application_id
3794 AND s.event_class_code = p_event_class_code
3795 AND s.active_flag = 'Y');
3796
3797 CURSOR lc_source
3798 IS
3799 SELECT 'x'
3800 FROM xla_source_params r
3801 WHERE application_id = p_application_id
3802 AND source_code = p_derived_source_code
3803 AND source_type_code = p_derived_source_type_code
3804 AND ref_source_code is not null
3805 AND ref_source_type_code = 'S'
3806 AND exists (SELECT 'x'
3807 FROM xla_event_sources s
3808 WHERE s.source_application_id = r.ref_source_application_id
3809 AND s.source_type_code = r.ref_source_type_code
3810 AND s.source_code = r.ref_source_code
3811 AND s.application_id = p_application_id
3812 AND s.event_class_code = p_event_class_code
3813 AND s.active_flag = 'Y'
3814 AND s.level_code = 'C');
3815
3816 CURSOR line_source
3817 IS
3818 SELECT 'x'
3819 FROM xla_source_params r
3820 WHERE application_id = p_application_id
3821 AND source_code = p_derived_source_code
3822 AND source_type_code = p_derived_source_type_code
3823 AND ref_source_code is not null
3824 AND ref_source_type_code = 'S'
3825 AND exists (SELECT 'x'
3826 FROM xla_event_sources s
3827 WHERE s.source_application_id = r.ref_source_application_id
3828 AND s.source_type_code = r.ref_source_type_code
3829 AND s.source_code = r.ref_source_code
3830 AND s.application_id = p_application_id
3831 AND s.event_class_code = p_event_class_code
3832 AND s.active_flag = 'Y'
3833 AND s.level_code = 'L');
3834
3835 l_log_module VARCHAR2(240);
3836 BEGIN
3837
3838 l_level := 'H';
3839
3840 IF g_log_enabled THEN
3841 l_log_module := C_DEFAULT_MODULE||'.get_derived_source_level';
3842 END IF;
3843
3844 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3845 trace(p_msg => 'BEGIN of procedure get_derived_source_level'
3846 ,p_module => l_log_module
3847 ,p_level => C_LEVEL_PROCEDURE);
3848 END IF;
3849
3850 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
3851 trace(p_msg => 'application_id = '||p_application_id||
3852 ',source_code = '||p_derived_source_code||
3853 ',source_type_code = '||p_derived_source_type_code||
3854 ',event_class_code = '||p_event_class_code
3855 ,p_module => l_log_module
3856 ,p_level => C_LEVEL_STATEMENT);
3857 END IF;
3858
3859 OPEN class_source;
3860 FETCH class_source
3861 INTO l_exist;
3862 IF class_source%found THEN
3863 l_level := 'X';
3864 END IF;
3865 CLOSE class_source;
3866
3867 IF l_level <> 'X' THEN
3868
3869 OPEN lc_source;
3870 FETCH lc_source
3871 INTO l_exist;
3872 IF lc_source%found THEN
3873 l_level := 'C';
3874 ELSE
3875 OPEN line_source;
3876 FETCH line_source
3877 INTO l_exist;
3878 IF line_source%found THEN
3879 l_level := 'L';
3880 END IF;
3881 CLOSE line_source;
3882 END IF;
3883 CLOSE lc_source;
3884 END IF;
3885
3886 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3887 trace(p_msg => 'END of procedure get_derived_source_level'
3888 ,p_module => l_log_module
3889 ,p_level => C_LEVEL_PROCEDURE);
3890 END IF;
3891
3892
3893 RETURN l_level;
3894
3895 EXCEPTION
3896 WHEN xla_exceptions_pkg.application_exception THEN
3897 RAISE;
3898
3899 WHEN OTHERS THEN
3900 xla_exceptions_pkg.raise_message
3901 (p_location => 'xla_sources_pkg.get_derived_source_level');
3902
3903 END get_derived_source_level;
3904
3905 --=============================================================================
3906 --
3907 -- Following code is executed when the package body is referenced for the first
3908 -- time
3909 --
3910 --=============================================================================
3911 BEGIN
3912 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
3913 g_log_enabled := fnd_log.test
3914 (log_level => g_log_level
3915 ,module => C_DEFAULT_MODULE);
3916
3917 IF NOT g_log_enabled THEN
3918 g_log_level := C_LEVEL_LOG_DISABLED;
3919 END IF;
3920
3921 END xla_sources_pkg;