1: PACKAGE BODY xla_flex_pkg AS
2: /* $Header: xlacmflx.pkb 120.18 2005/02/26 02:06:40 weshen ship $ */
3: /*======================================================================+
4: | Copyright (c) 2001-2002 Oracle Corporation |
5: | Redwood Shores, CA, USA |
5: | Redwood Shores, CA, USA |
6: | All rights reserved. |
7: +=======================================================================+
8: | PACKAGE NAME |
9: | xla_flex_pkg |
10: | |
11: | DESCRIPTION |
12: | XLA Flex Package |
13: | |
56:
57: IS
58:
59: BEGIN
60: xla_utility_pkg.trace('> xla_flex_pkg.get_value_set_name' , 20);
61:
62: xla_utility_pkg.trace('Value set id = '||p_flex_value_set_id , 40);
63:
64: IF p_flex_value_set_id = g_flex_value_set_id THEN
77: END IF;
78:
79: xla_utility_pkg.trace('Value set name = '||g_flex_value_set_name , 40);
80:
81: xla_utility_pkg.trace('< xla_flex_pkg.get_value_set_name' , 20);
82:
83: RETURN g_flex_value_set_name;
84:
85: EXCEPTION
86: WHEN xla_exceptions_pkg.application_exception THEN
87: RAISE;
88: WHEN OTHERS THEN
89: xla_exceptions_pkg.raise_message
90: (p_location => 'xla_flex_pkg.get_value_set_name');
91: END get_value_set_name;
92:
93:
94: /*======================================================================+
109:
110: l_chart_of_accounts_name VARCHAR2(80);
111:
112: BEGIN
113: xla_utility_pkg.trace('> xla_flex_pkg.get_chart_of_accounts_name' , 20);
114:
115: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
116: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
117: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
138: END IF;
139:
140: xla_utility_pkg.trace('Chart of accounts name = '||g_coa_name , 40);
141:
142: xla_utility_pkg.trace('< xla_flex_pkg.get_chart_of_accounts_name' , 20);
143:
144: RETURN g_coa_name;
145:
146: EXCEPTION
147: WHEN xla_exceptions_pkg.application_exception THEN
148: RAISE;
149: WHEN OTHERS THEN
150: xla_exceptions_pkg.raise_message
151: (p_location => 'xla_flex_pkg.get_chart_of_accounts_name');
152: END get_chart_of_accounts_name;
153:
154:
155: /*======================================================================+
183: ;
184:
185: BEGIN
186:
187: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_segment_name' , 20);
188:
189: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
190: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
191: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
199: CLOSE c_segment_name;
200:
201: xla_utility_pkg.trace('Segment name = '||l_flexfield_segment_name , 40);
202:
203: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_segment_name' , 20);
204:
205: RETURN l_flexfield_segment_name;
206:
207: EXCEPTION
214: IF c_segment_name%ISOPEN THEN
215: CLOSE c_segment_name;
216: END IF;
217: xla_exceptions_pkg.raise_message
218: (p_location => 'xla_flex_pkg.get_flexfield_segment_name');
219: END get_flexfield_segment_name;
220:
221:
222: /*======================================================================+
241: l_additional_where_clause VARCHAR2(4000);
242: l_number NUMBER;
243:
244: BEGIN
245: xla_utility_pkg.trace('> xla_flex_pkg.get_flex_value_meaning' , 20);
246:
247: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
248: xla_utility_pkg.trace('Flex_value = '||p_flex_value , 40);
249:
275: g_meaning_flex_value := p_flex_value;
276:
277: ELSIF l_validation_type = 'F' THEN
278:
279: IF xla_flex_pkg.id_column_is_null(p_flex_value_set_id) THEN
280:
281: g_meaning_meaning := p_flex_value;
282:
283: ELSE
361: ELSE
362: xla_exceptions_pkg.raise_message
363: ('XLA' ,'XLA_COMMON_ERROR'
364: ,'ERROR' ,'Unsupported value set'
365: ,'LOCATION' ,'xla_flex_pkg.get_flex_value_meaning');
366: END IF;
367: END IF;
368:
369: xla_utility_pkg.trace('Flex_value_meaning = '||g_meaning_meaning , 40);
367: END IF;
368:
369: xla_utility_pkg.trace('Flex_value_meaning = '||g_meaning_meaning , 40);
370:
371: xla_utility_pkg.trace('< xla_flex_pkg.get_flex_value_meaning' , 20);
372:
373: RETURN g_meaning_meaning;
374:
375: EXCEPTION
376: WHEN xla_exceptions_pkg.application_exception THEN
377: RAISE;
378: WHEN OTHERS THEN
379: xla_exceptions_pkg.raise_message
380: (p_location => 'xla_flex_pkg.get_flex_value_meaning');
381: END get_flex_value_meaning;
382:
383:
384: /*======================================================================+
429: ;
430:
431: BEGIN
432:
433: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_segment_info' , 20);
434:
435: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
436: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
437: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
454:
455: xla_utility_pkg.trace('Segment name = '||p_flexfield_segment_name , 40);
456: xla_utility_pkg.trace('Segment num = '||p_flexfield_segment_num , 40);
457:
458: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_segment_info' , 20);
459:
460: RETURN TRUE;
461:
462: EXCEPTION
469: IF c_segment_info%ISOPEN THEN
470: CLOSE c_segment_info;
471: END IF;
472: xla_exceptions_pkg.raise_message
473: (p_location => 'xla_flex_pkg.get_flexfield_segment_info');
474: END get_flexfield_segment_info;
475:
476: /*======================================================================+
477: | |
492:
493:
494: BEGIN
495:
496: xla_utility_pkg.trace('> xla_flex_pkg.get_table_vset_select' , 20);
497:
498: xla_utility_pkg.trace('flex_value_set_id = '||p_flex_value_set_id , 40);
499:
500: fnd_flex_val_api.get_table_vset_select
507: xla_utility_pkg.trace('select = '||p_select , 40);
508: xla_utility_pkg.trace('mapping code = '||p_mapping_code , 40);
509: xla_utility_pkg.trace('success = '||p_success , 40);
510:
511: xla_utility_pkg.trace('< xla_flex_pkg.get_table_vset_select' , 20);
512:
513: EXCEPTION
514: WHEN xla_exceptions_pkg.application_exception THEN
515: RAISE;
514: WHEN xla_exceptions_pkg.application_exception THEN
515: RAISE;
516: WHEN OTHERS THEN
517: xla_exceptions_pkg.raise_message
518: (p_location => 'xla_flex_pkg.get_table_vset_select');
519: END get_table_vset_select;
520:
521: /*======================================================================+
522: | |
551: ;
552:
553: BEGIN
554:
555: xla_utility_pkg.trace('> xla_flex_pkg.segment_qualifier_is_enabled' , 20);
556:
557: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
558: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
559: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
573: ELSE
574: l_return := TRUE;
575: END IF;
576:
577: xla_utility_pkg.trace('< xla_flex_pkg.segment_qualifier_is_enabled' , 20);
578:
579: RETURN l_return;
580:
581: EXCEPTION
588: IF c_qualifier%ISOPEN THEN
589: CLOSE c_qualifier;
590: END IF;
591: xla_exceptions_pkg.raise_message
592: (p_location => 'xla_flex_pkg.segment_qualifier_is_enabled');
593: END segment_qualifier_is_enabled;
594:
595: /*======================================================================+
596: | |
609: l_id_column_name varchar2(240);
610: l_return boolean;
611:
612: BEGIN
613: xla_utility_pkg.trace('> xla_flex_pkg.id_column_is_null' , 20);
614:
615: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
616:
617: SELECT id_column_name
624: ELSE
625: l_return := FALSE;
626: END IF;
627:
628: xla_utility_pkg.trace('< xla_flex_pkg.id_column_is_null' , 20);
629:
630: RETURN l_return;
631:
632: EXCEPTION
633: WHEN xla_exceptions_pkg.application_exception THEN
634: RAISE;
635: WHEN OTHERS THEN
636: xla_exceptions_pkg.raise_message
637: (p_location => 'xla_flex_pkg.id_column_is_null');
638: END id_column_is_null;
639:
640: /*======================================================================+
641: | |
654: l_meaning_column_name varchar2(240);
655: l_return boolean;
656:
657: BEGIN
658: xla_utility_pkg.trace('> xla_flex_pkg.meaning_column_is_null' , 20);
659:
660: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
661:
662: SELECT meaning_column_name
669: ELSE
670: l_return := FALSE;
671: END IF;
672:
673: xla_utility_pkg.trace('< xla_flex_pkg.meaning_column_is_null' , 20);
674:
675: RETURN l_return;
676:
677: EXCEPTION
678: WHEN xla_exceptions_pkg.application_exception THEN
679: RAISE;
680: WHEN OTHERS THEN
681: xla_exceptions_pkg.raise_message
682: (p_location => 'xla_flex_pkg.meaning_column_is_null');
683: END meaning_column_is_null;
684:
685: /*======================================================================+
686: | |
699: l_additional_where_clause varchar2(4000);
700: l_return varchar2(30);
701:
702: BEGIN
703: xla_utility_pkg.trace('> xla_flex_pkg.chk_additional_where_clause' , 20);
704:
705: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
706:
707: BEGIN
726: WHEN VALUE_ERROR THEN
727: l_return := 'FALSE';
728: END;
729:
730: xla_utility_pkg.trace('< xla_flex_pkg.chk_additional_where_clause' , 20);
731:
732: RETURN l_return;
733:
734: EXCEPTION
735: WHEN xla_exceptions_pkg.application_exception THEN
736: RAISE;
737: WHEN OTHERS THEN
738: xla_exceptions_pkg.raise_message
739: (p_location => 'xla_flex_pkg.chk_additional_where_clause');
740: END chk_additional_where_clause;
741:
742: /*======================================================================+
743: | |
770: ;
771:
772: BEGIN
773:
774: xla_utility_pkg.trace('> xla_flex_pkg.get_qualifier_segment' , 20);
775:
776: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
777: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
778: xla_utility_pkg.trace('Chart of accounts id = '||p_id_flex_num , 40);
782: FETCH c_segment
783: INTO l_application_column_name;
784: CLOSE c_segment;
785:
786: xla_utility_pkg.trace('< xla_flex_pkg.get_qualifier_segment' , 20);
787:
788: RETURN l_application_column_name;
789:
790: EXCEPTION
797: IF c_segment%ISOPEN THEN
798: CLOSE c_segment;
799: END IF;
800: xla_exceptions_pkg.raise_message
801: (p_location => 'xla_flex_pkg.get_qualifier_segment');
802: END get_qualifier_segment;
803:
804: /*======================================================================+
805: | |
832: ;
833:
834: BEGIN
835:
836: xla_utility_pkg.trace('> xla_flex_pkg.get_segment_qualifier' , 20);
837:
838: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
839: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
840: xla_utility_pkg.trace('Structure id = '||p_id_flex_num , 40);
844: FETCH c_qualifier
845: INTO l_segment_attribute_type;
846: CLOSE c_qualifier;
847:
848: xla_utility_pkg.trace('< xla_flex_pkg.get_segment_qualifier' , 20);
849:
850: IF l_segment_attribute_type = null THEN
851: l_segment_attribute_type := 'X';
852: END IF;
863: IF c_qualifier%ISOPEN THEN
864: CLOSE c_qualifier;
865: END IF;
866: xla_exceptions_pkg.raise_message
867: (p_location => 'xla_flex_pkg.get_segment_qualifier');
868: END get_segment_qualifier;
869:
870: /*======================================================================+
871: | |
897: ;
898:
899: BEGIN
900:
901: xla_utility_pkg.trace('> xla_flex_pkg.get_segment_valueset' , 20);
902:
903: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
904: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
905: xla_utility_pkg.trace('Structure id = '||p_id_flex_num , 40);
909: FETCH c_valueset
910: INTO l_flex_value_set_id;
911: CLOSE c_valueset;
912:
913: xla_utility_pkg.trace('< xla_flex_pkg.get_segment_valueset' , 20);
914:
915: IF l_flex_value_set_id = null THEN
916: l_flex_value_set_id := -99;
917: END IF;
928: IF c_valueset%ISOPEN THEN
929: CLOSE c_valueset;
930: END IF;
931: xla_exceptions_pkg.raise_message
932: (p_location => 'xla_flex_pkg.get_segment_valueset');
933: END get_segment_valueset;
934:
935: /*======================================================================+
936: | |
958: AND segment_attribute_type = p_qualifier_segment;
959:
960: BEGIN
961:
962: xla_utility_pkg.trace('> xla_flex_pkg.get_qualifier_name' , 20);
963:
964: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
965: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
966: xla_utility_pkg.trace('Flexfield segment code = '||p_qualifier_segment , 40);
969: FETCH c_segment
970: INTO l_segment_prompt;
971: CLOSE c_segment;
972:
973: xla_utility_pkg.trace('< xla_flex_pkg.get_qualifier_name' , 20);
974:
975: RETURN l_segment_prompt;
976:
977: EXCEPTION
984: IF c_segment%ISOPEN THEN
985: CLOSE c_segment;
986: END IF;
987: xla_exceptions_pkg.raise_message
988: (p_location => 'xla_flex_pkg.get_qualifier_name');
989: END get_qualifier_name;
990:
991: /*======================================================================+
992: | |
1013: AND id_flex_code = p_id_flex_code;
1014:
1015: BEGIN
1016:
1017: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_structure' , 20);
1018:
1019: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
1020: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
1021:
1023: FETCH c_struc
1024: INTO l_id_flex_num;
1025: CLOSE c_struc;
1026:
1027: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_structure' , 20);
1028:
1029: RETURN l_id_flex_num;
1030:
1031: EXCEPTION
1038: IF c_struc%ISOPEN THEN
1039: CLOSE c_struc;
1040: END IF;
1041: xla_exceptions_pkg.raise_message
1042: (p_location => 'xla_flex_pkg.get_flexfield_structure');
1043: END get_flexfield_structure;
1044:
1045: END xla_flex_pkg;
1041: xla_exceptions_pkg.raise_message
1042: (p_location => 'xla_flex_pkg.get_flexfield_structure');
1043: END get_flexfield_structure;
1044:
1045: END xla_flex_pkg;