[Home] [Help]
PACKAGE BODY: APPS.XLA_VALIDATIONS_PKG
Source
1 PACKAGE BODY xla_validations_pkg AS
2 /* $Header: xlacmval.pkb 120.16 2006/04/21 18:14:54 wychan ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_validations_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Common Validations Package |
13 | |
14 | HISTORY |
15 | 22-May-02 Dimple Shah Created |
16 | |
17 +======================================================================*/
18
19 /*======================================================================+
20 | |
21 | Public Function |
22 | |
23 | object_name_is_valid |
24 | |
25 | Checks whether the object name is valid |
26 | |
27 +======================================================================*/
28 FUNCTION object_name_is_valid
29 (p_object_name IN VARCHAR2)
30 RETURN BOOLEAN
31
32 IS
33
34 --
35 -- Variable declarations
36 --
37 l_length number := 0;
38 l_char varchar2(1) := null;
39 l_return BOOLEAN := TRUE;
40
41 BEGIN
42 xla_utility_pkg.trace('> xla_validations_pkg.object_name_is_valid' , 10);
43
44 xla_utility_pkg.trace('Object Name = '||p_object_name , 20);
45
46 SELECT length(p_object_name)
47 INTO l_length
48 FROM dual;
49
50 FOR i in 1..l_length
51 LOOP
52 SELECT substr(p_object_name,i,1)
53 INTO l_char
54 FROM dual;
55 IF l_return = TRUE THEN
56 IF (l_char = '&' OR
57 l_char = '''') THEN
58 l_return := FALSE;
59 ELSE
60 l_return := TRUE;
61 END IF;
62 END IF;
63 END LOOP;
64
65 xla_utility_pkg.trace('< xla_validations_pkg.object_name_is_valid' , 10);
66
67 RETURN l_return;
68
69 EXCEPTION
70 WHEN xla_exceptions_pkg.application_exception THEN
71 RAISE;
72 WHEN OTHERS THEN
73 xla_exceptions_pkg.raise_message
74 (p_location => 'xla_validations_pkg.object_name_is_valid');
75 END object_name_is_valid;
76
77 /*======================================================================+
78 | |
79 | Public procedure |
80 | |
81 | get_product_rule_info |
82 | |
83 | Gets name and owner for the product rule code |
84 | |
85 +======================================================================*/
86 PROCEDURE get_product_rule_info
87 (p_application_id IN NUMBER
88 ,p_amb_context_code IN VARCHAR2
89 ,p_product_rule_type_code IN VARCHAR2
90 ,p_product_rule_code IN VARCHAR2
91 ,p_application_name IN OUT NOCOPY VARCHAR2
92 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
93 ,p_product_rule_type IN OUT NOCOPY VARCHAR2)
94
95 IS
96
97 --
98 -- Cursor declarations
99 --
100 CURSOR c_prod_rule
101 IS
102 SELECT fat.application_name, xpr.name, xlk.meaning product_rule_type_dsp
103 FROM xla_product_rules_tl xpr
104 , fnd_application_tl fat
105 , xla_lookups xlk
106 WHERE xlk.lookup_type = 'XLA_OWNER_TYPE'
107 AND xlk.lookup_code = xpr.product_rule_type_code
108 AND fat.application_id = xpr.application_id
109 AND fat.language = USERENV('LANG')
110 AND xpr.application_id = p_application_id
111 AND xpr.amb_context_code = p_amb_context_code
112 AND xpr.product_rule_type_code = p_product_rule_type_code
113 AND xpr.product_rule_code = p_product_rule_code
114 AND xpr.language = USERENV('LANG');
115
116 BEGIN
117 xla_utility_pkg.trace('> xla_validations_pkg.get_product_rule_info' , 10);
118
119 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
120 xla_utility_pkg.trace('product_rule_type_code = '||p_product_rule_type_code , 20);
121 xla_utility_pkg.trace('product_rule_code = '||p_product_rule_code , 20);
122
123 OPEN c_prod_rule;
124 FETCH c_prod_rule
125 INTO p_application_name, p_product_rule_name, p_product_rule_type;
126 CLOSE c_prod_rule;
127
128 xla_utility_pkg.trace('< xla_validations_pkg.get_product_rule_info' , 10);
129
130 EXCEPTION
131 WHEN xla_exceptions_pkg.application_exception THEN
132 RAISE;
133 WHEN OTHERS THEN
134 xla_exceptions_pkg.raise_message
135 (p_location => 'xla_validations_pkg.get_product_rule_info');
136
137 END get_product_rule_info;
138
139 /*======================================================================+
140 | |
141 | Public procedure |
142 | |
143 | get_description_info |
144 | |
145 | Gets name and owner for the description rule code |
146 | |
147 +======================================================================*/
148 PROCEDURE get_description_info
149 (p_application_id IN NUMBER
150 ,p_amb_context_code IN VARCHAR2
151 ,p_description_type_code IN VARCHAR2
152 ,p_description_code IN VARCHAR2
153 ,p_application_name IN OUT NOCOPY VARCHAR2
154 ,p_description_name IN OUT NOCOPY VARCHAR2
155 ,p_description_type IN OUT NOCOPY VARCHAR2)
156
157 IS
158
159 --
160 -- Cursor declarations
161 --
162 CURSOR c_desc_rule
163 IS
164 SELECT fat.application_name, xdt.name, xlk.meaning description_type_code_dsp
165 FROM xla_descriptions_tl xdt
166 , fnd_application_tl fat
167 , xla_lookups xlk
168 WHERE xlk.lookup_type = 'XLA_OWNER_TYPE'
169 AND xlk.lookup_code = xdt.description_type_code
170 AND fat.application_id = xdt.application_id
171 AND fat.language = USERENV('LANG')
172 AND xdt.application_id = p_application_id
173 AND xdt.amb_context_code = p_amb_context_code
174 AND xdt.description_type_code = p_description_type_code
175 AND xdt.description_code = p_description_code
176 AND xdt.language = USERENV('LANG');
177
178 BEGIN
179 xla_utility_pkg.trace('> xla_validations_pkg.get_description_info' , 10);
180
181 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
182 xla_utility_pkg.trace('description_type_code = '||p_description_type_code , 20);
183 xla_utility_pkg.trace('description_code = '||p_description_code , 20);
184
185 OPEN c_desc_rule;
186 FETCH c_desc_rule
187 INTO p_application_name, p_description_name, p_description_type;
188 CLOSE c_desc_rule;
189
190 xla_utility_pkg.trace('< xla_validations_pkg.get_description_info' , 10);
191
192 EXCEPTION
193 WHEN xla_exceptions_pkg.application_exception THEN
194 RAISE;
195 WHEN OTHERS THEN
196 xla_exceptions_pkg.raise_message
197 (p_location => 'xla_validations_pkg.get_description_info');
198
199 END get_description_info;
200
201 /*======================================================================+
202 | |
203 | Public procedure |
204 | |
205 | get_segment_rule_info |
206 | |
207 | Gets name and owner for the segment rule code |
208 | |
209 +======================================================================*/
210 PROCEDURE get_segment_rule_info
211 (p_application_id IN NUMBER
212 ,p_amb_context_code IN VARCHAR2
213 ,p_segment_rule_type_code IN VARCHAR2
214 ,p_segment_rule_code IN VARCHAR2
215 ,p_application_name IN OUT NOCOPY VARCHAR2
216 ,p_segment_rule_name IN OUT NOCOPY VARCHAR2
217 ,p_segment_rule_type IN OUT NOCOPY VARCHAR2)
218
219 IS
220
221 --
222 -- Cursor declarations
223 --
224 CURSOR c_seg_rule
225 IS
226 SELECT fat.application_name, xsr.name, xlk.meaning segment_rule_type_dsp
227 FROM xla_seg_rules_tl xsr
228 , fnd_application_tl fat
229 , xla_lookups xlk
230 WHERE xlk.lookup_type = 'XLA_OWNER_TYPE'
231 AND xlk.lookup_code = xsr.segment_rule_type_code
232 AND fat.application_id = xsr.application_id
233 AND fat.language = USERENV('LANG')
234 AND xsr.application_id = p_application_id
235 AND xsr.amb_context_code = p_amb_context_code
236 AND xsr.segment_rule_type_code = p_segment_rule_type_code
237 AND xsr.segment_rule_code = p_segment_rule_code
238 AND xsr.language = USERENV('LANG');
239
240 BEGIN
241 xla_utility_pkg.trace('> xla_validations_pkg.get_segment_rule_info' , 10);
242
243 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
244 xla_utility_pkg.trace('segment_rule_type_code = '||p_segment_rule_type_code , 20
245 );
246 xla_utility_pkg.trace('segment_rule_code = '||p_segment_rule_code , 20);
247
248 OPEN c_seg_rule;
249 FETCH c_seg_rule
250 INTO p_application_name, p_segment_rule_name, p_segment_rule_type;
251 CLOSE c_seg_rule;
252
253 xla_utility_pkg.trace('< xla_validations_pkg.get_segment_rule_info' , 10);
254
255 EXCEPTION
256 WHEN xla_exceptions_pkg.application_exception THEN
257 RAISE;
258 WHEN OTHERS THEN
259 xla_exceptions_pkg.raise_message
260 (p_location => 'xla_validations_pkg.get_segment_rule_info');
261
262 END get_segment_rule_info;
263
264 /*======================================================================+
265 | |
266 | Public procedure |
267 | |
268 | get_line_type_info |
269 | |
270 | Gets name and owner for the line type code |
271 | |
272 +======================================================================*/
273 PROCEDURE get_line_type_info
274 (p_application_id IN NUMBER
275 ,p_amb_context_code IN VARCHAR2
276 ,p_entity_code IN VARCHAR2
277 ,p_event_class_code IN VARCHAR2
278 ,p_accounting_line_type_code IN VARCHAR2
279 ,p_accounting_line_code IN VARCHAR2
280 ,p_application_name IN OUT NOCOPY VARCHAR2
281 ,p_accounting_line_type_name IN OUT NOCOPY VARCHAR2
282 ,p_accounting_line_type IN OUT NOCOPY VARCHAR2)
283
284 IS
285
286 --
287 -- Cursor declarations
288 --
289 CURSOR c_line_type
290 IS
291 SELECT fat.application_name, xal.name, xlk.meaning accounting_line_type_dsp
292 FROM xla_acct_line_types_tl xal
293 , fnd_application_tl fat
294 , xla_lookups xlk
295 WHERE xlk.lookup_type = 'XLA_OWNER_TYPE'
296 AND xlk.lookup_code = xal.accounting_line_type_code
297 AND fat.application_id = xal.application_id
298 AND fat.language = USERENV('LANG')
299 AND xal.application_id = p_application_id
300 AND xal.amb_context_code = p_amb_context_code
301 AND xal.entity_code = p_entity_code
302 AND xal.event_class_code = p_event_class_code
303 AND xal.accounting_line_type_code = p_accounting_line_type_code
304 AND xal.accounting_line_code = p_accounting_line_code
305 AND xal.language = USERENV('LANG');
306
307 BEGIN
308 xla_utility_pkg.trace('> xla_validations_pkg.get_line_type_info' , 10);
309
310 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
311 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
312 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
313 xla_utility_pkg.trace('accounting_line_type_code = '||p_accounting_line_type_code , 20
314 );
315 xla_utility_pkg.trace('accounting_line_code = '||p_accounting_line_code , 20);
316
317 OPEN c_line_type;
318 FETCH c_line_type
319 INTO p_application_name, p_accounting_line_type_name, p_accounting_line_type;
320 CLOSE c_line_type;
321
322 xla_utility_pkg.trace('< xla_validations_pkg.get_line_type_info' , 10);
323
324 EXCEPTION
325 WHEN xla_exceptions_pkg.application_exception THEN
326 RAISE;
327 WHEN OTHERS THEN
328 xla_exceptions_pkg.raise_message
329 (p_location => 'xla_validations_pkg.get_line_type_info');
330
331 END get_line_type_info;
332
333 /*======================================================================+
334 | |
335 | Public procedure |
336 | |
337 | get_event_class_info |
338 | |
339 | Gets name for the event class |
340 | |
341 +======================================================================*/
342 PROCEDURE get_event_class_info
343 (p_application_id IN NUMBER
344 ,p_entity_code IN VARCHAR2
345 ,p_event_class_code IN VARCHAR2
346 ,p_event_class_name IN OUT NOCOPY VARCHAR2)
347
348 IS
349
350 --
351 -- Cursor declarations
352 --
353 CURSOR c_event_class
354 IS
355 SELECT name
356 FROM xla_event_classes_tl
357 WHERE application_id = p_application_id
358 AND entity_code = p_entity_code
359 AND event_class_code = p_event_class_code
360 AND language = USERENV('LANG');
361
362 BEGIN
363 xla_utility_pkg.trace('> xla_validations_pkg.get_event_class_info' , 10);
364
365 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
366 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
367 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
368
369 OPEN c_event_class;
370 FETCH c_event_class
371 INTO p_event_class_name;
372 CLOSE c_event_class;
373
374 xla_utility_pkg.trace('< xla_validations_pkg.get_event_class_info' , 10);
375
376 EXCEPTION
377 WHEN xla_exceptions_pkg.application_exception THEN
378 RAISE;
379 WHEN OTHERS THEN
380 xla_exceptions_pkg.raise_message
381 (p_location => 'xla_validations_pkg.get_event_class_info');
382
383 END get_event_class_info;
384
385 /*======================================================================+
386 | |
387 | Public procedure |
388 | |
389 | get_event_type_info |
390 | |
391 | Gets name for the event class |
392 | |
393 +======================================================================*/
394 PROCEDURE get_event_type_info
395 (p_application_id IN NUMBER
396 ,p_entity_code IN VARCHAR2
397 ,p_event_class_code IN VARCHAR2
398 ,p_event_type_code IN VARCHAR2
399 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
400
401 IS
402
403 --
404 -- Cursor declarations
405 --
406 CURSOR c_event_type
407 IS
408 SELECT name
409 FROM xla_event_types_tl
410 WHERE application_id = p_application_id
411 AND entity_code = p_entity_code
412 AND event_class_code = p_event_class_code
413 AND event_type_code = p_event_type_code
414 AND language = USERENV('LANG');
415
416 BEGIN
417 xla_utility_pkg.trace('> xla_validations_pkg.get_event_type_info' , 10);
418
419 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
420 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
421 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
422 xla_utility_pkg.trace('event_type_code = '||p_event_type_code , 20);
423
424 OPEN c_event_type;
425 FETCH c_event_type
426 INTO p_event_type_name;
427 CLOSE c_event_type;
428
429 xla_utility_pkg.trace('< xla_validations_pkg.get_event_type_info' , 10);
430
431 EXCEPTION
432 WHEN xla_exceptions_pkg.application_exception THEN
433 RAISE;
434 WHEN OTHERS THEN
435 xla_exceptions_pkg.raise_message
436 (p_location => 'xla_validations_pkg.get_event_type_info');
437
438 END get_event_type_info;
439
440 /*======================================================================+
441 | |
442 | Public procedure |
443 | |
444 | get_source_info |
445 | |
446 | Gets name for the source |
447 | |
448 +======================================================================*/
449 PROCEDURE get_source_info
450 (p_application_id IN NUMBER
451 ,p_source_type_code IN VARCHAR2
452 ,p_source_code IN VARCHAR2
453 ,p_source_name IN OUT NOCOPY VARCHAR2
454 ,p_source_type IN OUT NOCOPY VARCHAR2)
455
456 IS
457
458 --
459 -- Cursor declarations
460 --
461 CURSOR c_source
462 IS
463 SELECT s.name, l.meaning source_type
464 FROM xla_sources_tl s, xla_lookups l
465 WHERE s.application_id = p_application_id
466 AND s.source_type_code = p_source_type_code
467 AND s.source_code = p_source_code
468 AND s.language = USERENV('LANG')
469 AND s.source_type_code = l.lookup_code
470 AND l.lookup_type = 'XLA_SOURCE_TYPE';
471
472 BEGIN
473 xla_utility_pkg.trace('> xla_validations_pkg.get_source_info' , 10);
474
475 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
476 xla_utility_pkg.trace('source_code = '||p_source_code , 20);
477 xla_utility_pkg.trace('source_type_code = '||p_source_type_code , 20);
478
479 OPEN c_source;
480 FETCH c_source
481 INTO p_source_name, p_source_type;
482 CLOSE c_source;
483
484 xla_utility_pkg.trace('< xla_validations_pkg.get_source_info' , 10);
485
486 EXCEPTION
487 WHEN xla_exceptions_pkg.application_exception THEN
488 RAISE;
489 WHEN OTHERS THEN
490 xla_exceptions_pkg.raise_message
491 (p_location => 'xla_validations_pkg.get_source_info');
492
493 END get_source_info;
494
495 /*======================================================================+
496 | |
497 | Public procedure |
498 | |
499 | get_analytical_criteria_info |
500 | |
501 | Gets name for the analytical criteria |
502 | |
503 +======================================================================*/
504 PROCEDURE get_analytical_criteria_info
505 (p_amb_context_code IN VARCHAR2
506 ,p_anal_criterion_type_code IN VARCHAR2
507 ,p_analytical_criterion_code IN VARCHAR2
508 ,p_analytical_criteria_name IN OUT NOCOPY VARCHAR2
509 ,p_analytical_criteria_type IN OUT NOCOPY VARCHAR2)
510
511 IS
512
513 --
514 -- Cursor declarations
515 --
516 CURSOR c_anc
517 IS
518 SELECT s.name, l.meaning analytical_criteria_type
519 FROM xla_analytical_hdrs_vl s, xla_lookups l
520 WHERE s.amb_context_code = p_amb_context_code
521 AND s.analytical_criterion_type_code = p_anal_criterion_type_code
522 AND s.analytical_criterion_code = p_analytical_criterion_code
523 AND s.analytical_criterion_type_code = l.lookup_code
524 AND l.lookup_type = 'XLA_OWNER_TYPE';
525
526 BEGIN
527 xla_utility_pkg.trace('> xla_validations_pkg.get_analytical_criteria_info' , 10);
528
529 xla_utility_pkg.trace('analytical_criteria_code = '||p_analytical_criterion_code , 20);
530 xla_utility_pkg.trace('anal_criteria_type_code = '||p_anal_criterion_type_code , 20);
531
532 OPEN c_anc;
533 FETCH c_anc
534 INTO p_analytical_criteria_name, p_analytical_criteria_type;
535 CLOSE c_anc;
536
537 xla_utility_pkg.trace('< xla_validations_pkg.get_analytical_criteria_info' , 10);
538
539 EXCEPTION
540 WHEN xla_exceptions_pkg.application_exception THEN
541 RAISE;
542 WHEN OTHERS THEN
543 xla_exceptions_pkg.raise_message
544 (p_location => 'xla_validations_pkg.get_analytical_criteria_info');
545
546 END get_analytical_criteria_info;
547
548 /*======================================================================+
549 | |
550 | Public procedure |
551 | |
552 | get_accounting_method_info |
553 | |
554 | Gets name for the accounting method |
555 | |
556 +======================================================================*/
557 PROCEDURE get_accounting_method_info
558 (p_accounting_method_type_code IN VARCHAR2
559 ,p_accounting_method_code IN VARCHAR2
560 ,p_accounting_method_name IN OUT NOCOPY VARCHAR2
561 ,p_accounting_method_type IN OUT NOCOPY VARCHAR2)
562
563 IS
564
565 --
566 -- Cursor declarations
567 --
568 CURSOR c_anc
569 IS
570 SELECT xam.name, xlk.meaning accounting_method_type
571 FROM xla_acctg_methods_tl xam
572 , xla_lookups xlk
573 WHERE xlk.lookup_type = 'XLA_OWNER_TYPE'
574 AND xlk.lookup_code = xam.accounting_method_type_code
575 AND xam.accounting_method_type_code = p_accounting_method_type_code
576 AND xam.accounting_method_code = p_accounting_method_code
577 AND xam.language = USERENV('LANG');
578
579 BEGIN
580 xla_utility_pkg.trace('> xla_validations_pkg.get_accounting_method_info' , 10);
581
582 xla_utility_pkg.trace('accounting_method_type_code = '||p_accounting_method_type_code , 20);
583 xla_utility_pkg.trace('accounting_method_code = '||p_accounting_method_code , 20);
584
585 OPEN c_anc;
586 FETCH c_anc
587 INTO p_accounting_method_name, p_accounting_method_type;
588 CLOSE c_anc;
589
590 xla_utility_pkg.trace('< xla_validations_pkg.get_accounting_method_info' , 10);
591
592 EXCEPTION
593 WHEN xla_exceptions_pkg.application_exception THEN
594 RAISE;
595 WHEN OTHERS THEN
596 xla_exceptions_pkg.raise_message
597 (p_location => 'xla_validations_pkg.get_accounting_method_info');
598
599 END get_accounting_method_info;
600
601 /*======================================================================+
602 | |
603 | Public procedure |
604 | |
605 | get_application_name |
606 | |
607 | Gets name for the application |
608 | |
609 +======================================================================*/
610 PROCEDURE get_application_name
611 (p_application_id IN NUMBER
612 ,p_application_name IN OUT NOCOPY VARCHAR2)
613
614 IS
615
616 --
617 -- Cursor declarations
618 --
619 CURSOR c_application
620 IS
621 SELECT application_name
622 FROM fnd_application_tl
623 WHERE application_id = p_application_id
624 AND language = USERENV('LANG');
625
626 BEGIN
627 xla_utility_pkg.trace('> xla_validations_pkg.get_application_name' , 10);
628
629 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
630
631 OPEN c_application;
632 FETCH c_application
633 INTO p_application_name;
634 CLOSE c_application;
635
636 xla_utility_pkg.trace('< xla_validations_pkg.get_application_name' , 10);
637
638 EXCEPTION
639 WHEN xla_exceptions_pkg.application_exception THEN
640 RAISE;
641 WHEN OTHERS THEN
642 xla_exceptions_pkg.raise_message
643 (p_location => 'xla_validations_pkg.get_application_name');
644
645 END get_application_name;
646
647 /*======================================================================+
648 | |
649 | Public procedure |
650 | |
651 | get_ledger_name |
652 | |
653 | Gets name for the ledger |
654 | |
655 +======================================================================*/
656 PROCEDURE get_ledger_name
657 (p_ledger_id IN NUMBER
658 ,p_ledger_name IN OUT NOCOPY VARCHAR2)
659
660 IS
661
662 --
663 -- Cursor declarations
664 --
665 CURSOR c_ledger
666 IS
667 SELECT name
668 FROM gl_ledgers
669 WHERE ledger_id = p_ledger_id;
670
671 BEGIN
672 xla_utility_pkg.trace('> xla_validations_pkg.get_ledger_name' , 10);
673
674 xla_utility_pkg.trace('ledger_id = '||p_ledger_id , 20);
675
676 OPEN c_ledger;
677 FETCH c_ledger
678 INTO p_ledger_name;
679 CLOSE c_ledger;
680
681 xla_utility_pkg.trace('< xla_validations_pkg.get_ledger_name' , 10);
682
683 EXCEPTION
684 WHEN xla_exceptions_pkg.application_exception THEN
685 RAISE;
686 WHEN OTHERS THEN
687 xla_exceptions_pkg.raise_message
688 (p_location => 'xla_validations_pkg.get_ledger_name');
689
690 END get_ledger_name;
691
692 /*======================================================================+
693 | |
694 | Public Procedure |
695 | |
696 | get_trx_acct_def_info |
697 | |
698 | Get name and owner for the transaction account definition |
699 | |
700 +======================================================================*/
701 PROCEDURE get_trx_acct_def_info
702 (p_application_id IN NUMBER
703 ,p_amb_context_code IN VARCHAR2
704 ,p_account_definition_type_code IN VARCHAR2
705 ,p_account_definition_code IN VARCHAR2
706 ,p_application_name IN OUT NOCOPY VARCHAR2
707 ,p_trx_acct_def IN OUT NOCOPY VARCHAR2
708 ,p_trx_acct_def_type IN OUT NOCOPY VARCHAR2)
709
710 IS
711
712 --
713 -- Cursor declarations
714 --
715 CURSOR c_prod_rule
716 IS
717 SELECT a.application_name, p.name, l.meaning trx_acct_def_type
718 FROM xla_tab_acct_defs_vl p, fnd_application_vl a, xla_lookups l
719 WHERE p.application_id = p_application_id
720 AND p.amb_context_code = p_amb_context_code
721 AND p.account_definition_type_code = p_account_definition_type_code
722 AND p.account_definition_code = p_account_definition_code
723 AND a.application_id = p_application_id
724 AND l.lookup_code = p_account_definition_type_code
725 AND l.lookup_type = 'XLA_OWNER_TYPE';
726
727 BEGIN
728
729 xla_utility_pkg.trace('> xla_validations_pkg.get_trx_acct_def_info' , 10);
730
731 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
732 xla_utility_pkg.trace('account_definition_type_code = '||p_account_definition_type_code , 20);
733 xla_utility_pkg.trace('account_definition_code = '||p_account_definition_code , 20);
734
735 OPEN c_prod_rule;
736 FETCH c_prod_rule
737 INTO p_application_name, p_trx_acct_def, p_trx_acct_def_type;
738 CLOSE c_prod_rule;
739
740 xla_utility_pkg.trace('< xla_validations_pkg.get_trx_acct_def_info' , 10);
741
742 EXCEPTION
743 WHEN xla_exceptions_pkg.application_exception THEN
744 RAISE;
745 WHEN OTHERS THEN
746 xla_exceptions_pkg.raise_message
747 (p_location => 'xla_validations_pkg.get_trx_acct_def_info');
748
749 END get_trx_acct_def_info;
750
751 /*======================================================================+
752 | |
753 | Public Procedure |
754 | |
755 | get_trx_acct_type_info |
756 | |
757 | Get name for the transaction account type |
758 | |
759 +======================================================================*/
760 PROCEDURE get_trx_acct_type_info
761 (p_application_id IN NUMBER
762 ,p_account_type_code IN VARCHAR2
763 ,p_trx_acct_type IN OUT NOCOPY VARCHAR2)
764
765 IS
766
767 --
768 -- Cursor declarations
769 --
770 CURSOR c_type
771 IS
772 SELECT name
773 FROM xla_tab_acct_types_vl
774 WHERE application_id = p_application_id
775 AND account_type_code = p_account_type_code;
776
777 BEGIN
778 xla_utility_pkg.trace('> xla_validations_pkg.get_trx_acct_type_info' , 10);
779 xla_utility_pkg.trace('Application_id = '||p_application_id , 20);
780 xla_utility_pkg.trace('account_type_code = '||p_account_type_code , 20);
781
782 OPEN c_type;
783 FETCH c_type
784 INTO p_trx_acct_type;
785 CLOSE c_type;
786
787 xla_utility_pkg.trace('< xla_validations_pkg.get_trx_acct_type_info' , 10);
788
789 EXCEPTION
790 WHEN xla_exceptions_pkg.application_exception THEN
791 RAISE;
792 WHEN OTHERS THEN
793 xla_exceptions_pkg.raise_message
794 (p_location => 'xla_validations_pkg.get_trx_acct_type_info');
795
796 END get_trx_acct_type_info;
797
798 /*======================================================================+
799 | |
800 | Public Function |
801 | |
802 | table_name_is_valid |
803 | |
804 | Checks whether the table name is valid |
805 | |
806 +======================================================================*/
807 FUNCTION table_name_is_valid
808 (p_table_name IN VARCHAR2)
809 RETURN BOOLEAN
810
811 IS
812
813 --
814 -- Variable declarations
815 --
816
817 l_exist varchar2(1) := null;
818 l_return BOOLEAN := TRUE;
819
820 CURSOR c_user_objects
821 IS
822 SELECT 'x'
823 FROM user_objects o
824 WHERE o.object_name = p_table_name;
825
826 BEGIN
827 xla_utility_pkg.trace('> xla_validations_pkg.table_name_is_valid' , 10);
828
829 xla_utility_pkg.trace('Table Name = '||p_table_name , 20);
830
831 OPEN c_user_objects;
832 FETCH c_user_objects
833 INTO l_exist;
834 IF c_user_objects%found THEN
835 l_return := TRUE;
836 ELSE
837 l_return := FALSE;
838 END IF;
839 CLOSE c_user_objects;
840
841 xla_utility_pkg.trace('< xla_validations_pkg.table_name_is_valid' , 10);
842
843 RETURN l_return;
844
845 EXCEPTION
846 WHEN xla_exceptions_pkg.application_exception THEN
847 RAISE;
848 WHEN OTHERS THEN
849 xla_exceptions_pkg.raise_message
850 (p_location => 'xla_validations_pkg.table_name_is_valid');
851 END table_name_is_valid;
852
853 /*======================================================================+
854 | |
855 | Public Procedure |
856 | |
857 | reference_is_valid |
858 | |
859 | Check if reference object is not used by other transaction |
860 | objects within the same event class. |
861 +======================================================================*/
862 FUNCTION reference_is_valid
863 (p_table_name IN VARCHAR2
864 ,p_event_class_code IN VARCHAR2)
865 RETURN BOOLEAN
866
867 IS
868
869 --
870 -- variable declarations
871 --
872
873 l_exist varchar2(1) := null;
874 l_return BOOLEAN := TRUE;
875
876
877 CURSOR c_reference_objects
878 IS
879 SELECT 'x'
880 FROM xla_reference_objects_f_v
881 WHERE event_class_code = p_event_class_code
882 AND reference_object_name = p_table_name;
883
884 BEGIN
885
886 OPEN c_reference_objects;
887 FETCH c_reference_objects
888 INTO l_exist;
889 IF c_reference_objects%found THEN
890 l_return := FALSE;
891 ELSE
892 l_return := TRUE;
893 END IF;
894 CLOSE c_reference_objects;
895
896 RETURN l_return;
897
898 EXCEPTION
899
900 WHEN xla_exceptions_pkg.application_exception THEN
901 RAISE;
902 WHEN OTHERS THEN
903 xla_exceptions_pkg.raise_message
904 (p_location => 'xla_validations_pkg.reference_is_valid');
905 END reference_is_valid;
906
907 /*======================================================================+
908 | |
909 | Public Procedure |
910 | |
911 | join_condition_is_valid |
912 | |
913 | Check if join condition is valid |
914 | |
915 +======================================================================*/
916 FUNCTION join_condition_is_valid
917 (p_trx_object_name IN VARCHAR2
918 ,p_ref_object_name IN VARCHAR2
919 ,p_join_condition IN VARCHAR2
920 ,p_error_message OUT NOCOPY VARCHAR2)
921 RETURN BOOLEAN IS
922
923 l_sql VARCHAR2(2000);
924 l_dummy PLS_INTEGER;
925 l_return BOOLEAN;
926
927 BEGIN
928
929 xla_utility_pkg.trace('> xla_validations_pkg.join_condition_is_valid' , 10);
930
931 BEGIN
932
933 l_sql := 'SELECT 1 FROM '
934 || p_trx_object_name
935 || ','
936 || p_ref_object_name
937 || ' WHERE '
938 || p_join_condition
939 || ' AND 1 = 2';
940
941 EXECUTE IMMEDIATE l_sql INTO l_dummy;
942
943 xla_utility_pkg.trace('SQL = '||l_sql , 20);
944
945 EXCEPTION
946 WHEN no_data_found THEN
947 l_return := TRUE;
948 WHEN OTHERS THEN
949 l_return := FALSE;
950 p_error_message := SQLERRM;
951 END;
952
953 xla_utility_pkg.trace('< xla_validations_pkg.join_condition_is_valid' , 10);
954
955 RETURN l_return;
956
957 EXCEPTION
958 WHEN xla_exceptions_pkg.application_exception THEN
959 RAISE;
960 WHEN OTHERS THEN
961 xla_exceptions_pkg.raise_message
962 (p_location => 'xla_validations_pkg.join_condition_is_valid');
963
964 END join_condition_is_valid;
965
966 END xla_validations_pkg;