1: PACKAGE BODY xla_flex_pkg AS
2: /* $Header: xlacmflx.pkb 120.23.12020000.3 2012/09/12 11:27:43 vkanteti 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: | |
57:
58: IS
59:
60: BEGIN
61: xla_utility_pkg.trace('> xla_flex_pkg.get_value_set_name' , 20);
62:
63: xla_utility_pkg.trace('Value set id = '||p_flex_value_set_id , 40);
64:
65: IF p_flex_value_set_id = g_flex_value_set_id THEN
78: END IF;
79:
80: xla_utility_pkg.trace('Value set name = '||g_flex_value_set_name , 40);
81:
82: xla_utility_pkg.trace('< xla_flex_pkg.get_value_set_name' , 20);
83:
84: RETURN g_flex_value_set_name;
85:
86: EXCEPTION
87: WHEN xla_exceptions_pkg.application_exception THEN
88: RAISE;
89: WHEN OTHERS THEN
90: xla_exceptions_pkg.raise_message
91: (p_location => 'xla_flex_pkg.get_value_set_name');
92: END get_value_set_name;
93:
94:
95: /*======================================================================+
110:
111: l_chart_of_accounts_name VARCHAR2(80);
112:
113: BEGIN
114: xla_utility_pkg.trace('> xla_flex_pkg.get_chart_of_accounts_name' , 20);
115:
116: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
117: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
118: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
139: END IF;
140:
141: xla_utility_pkg.trace('Chart of accounts name = '||g_coa_name , 40);
142:
143: xla_utility_pkg.trace('< xla_flex_pkg.get_chart_of_accounts_name' , 20);
144:
145: RETURN g_coa_name;
146:
147: EXCEPTION
148: WHEN xla_exceptions_pkg.application_exception THEN
149: RAISE;
150: WHEN OTHERS THEN
151: xla_exceptions_pkg.raise_message
152: (p_location => 'xla_flex_pkg.get_chart_of_accounts_name');
153: END get_chart_of_accounts_name;
154:
155:
156: /*======================================================================+
184: ;
185:
186: BEGIN
187:
188: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_segment_name' , 20);
189:
190: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
191: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
192: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
200: CLOSE c_segment_name;
201:
202: xla_utility_pkg.trace('Segment name = '||l_flexfield_segment_name , 40);
203:
204: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_segment_name' , 20);
205:
206: RETURN l_flexfield_segment_name;
207:
208: EXCEPTION
215: IF c_segment_name%ISOPEN THEN
216: CLOSE c_segment_name;
217: END IF;
218: xla_exceptions_pkg.raise_message
219: (p_location => 'xla_flex_pkg.get_flexfield_segment_name');
220: END get_flexfield_segment_name;
221:
222:
223: /*======================================================================+
243: l_number NUMBER;
244: l_number2 NUMBER;--Bug 12943068
245:
246: BEGIN
247: xla_utility_pkg.trace('> xla_flex_pkg.get_flex_value_meaning' , 20);
248:
249: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
250: xla_utility_pkg.trace('Flex_value = '||p_flex_value , 40);
251:
277: g_meaning_flex_value := p_flex_value;
278:
279: ELSIF l_validation_type = 'F' THEN
280:
281: IF xla_flex_pkg.id_column_is_null(p_flex_value_set_id) THEN
282:
283: g_meaning_meaning := p_flex_value;
284: g_meaning_flex_value_set_id := p_flex_value_set_id;
285: g_meaning_flex_value := p_flex_value;
367: ELSE
368: xla_exceptions_pkg.raise_message
369: ('XLA' ,'XLA_COMMON_ERROR'
370: ,'ERROR' ,'Unsupported value set'
371: ,'LOCATION' ,'xla_flex_pkg.get_flex_value_meaning');
372: END IF;
373: END IF;
374:
375: xla_utility_pkg.trace('Flex_value_meaning = '||g_meaning_meaning , 40);
373: END IF;
374:
375: xla_utility_pkg.trace('Flex_value_meaning = '||g_meaning_meaning , 40);
376:
377: xla_utility_pkg.trace('< xla_flex_pkg.get_flex_value_meaning' , 20);
378:
379: RETURN g_meaning_meaning;
380:
381: EXCEPTION
382: WHEN xla_exceptions_pkg.application_exception THEN
383: RAISE;
384: WHEN OTHERS THEN
385: xla_exceptions_pkg.raise_message
386: (p_location => 'xla_flex_pkg.get_flex_value_meaning');
387: END get_flex_value_meaning;
388:
389:
390: /*======================================================================+
435: ;
436:
437: BEGIN
438:
439: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_segment_info' , 20);
440:
441: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
442: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
443: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
460:
461: xla_utility_pkg.trace('Segment name = '||p_flexfield_segment_name , 40);
462: xla_utility_pkg.trace('Segment num = '||p_flexfield_segment_num , 40);
463:
464: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_segment_info' , 20);
465:
466: RETURN TRUE;
467:
468: EXCEPTION
475: IF c_segment_info%ISOPEN THEN
476: CLOSE c_segment_info;
477: END IF;
478: xla_exceptions_pkg.raise_message
479: (p_location => 'xla_flex_pkg.get_flexfield_segment_info');
480: END get_flexfield_segment_info;
481:
482: /*======================================================================+
483: | |
498:
499:
500: BEGIN
501:
502: xla_utility_pkg.trace('> xla_flex_pkg.get_table_vset_select' , 20);
503:
504: xla_utility_pkg.trace('flex_value_set_id = '||p_flex_value_set_id , 40);
505:
506: fnd_flex_val_api.get_table_vset_select
513: xla_utility_pkg.trace('select = '||p_select , 40);
514: xla_utility_pkg.trace('mapping code = '||p_mapping_code , 40);
515: xla_utility_pkg.trace('success = '||p_success , 40);
516:
517: xla_utility_pkg.trace('< xla_flex_pkg.get_table_vset_select' , 20);
518:
519: EXCEPTION
520: WHEN xla_exceptions_pkg.application_exception THEN
521: RAISE;
520: WHEN xla_exceptions_pkg.application_exception THEN
521: RAISE;
522: WHEN OTHERS THEN
523: xla_exceptions_pkg.raise_message
524: (p_location => 'xla_flex_pkg.get_table_vset_select');
525: END get_table_vset_select;
526:
527:
528: /* get_table_vset_return_col procedure is used to dynamically built the where clause while
559: OPEN c_fvt;
560: FETCH c_fvt INTO c_fvt_rec;
561: CLOSE c_fvt;
562:
563: IF (xla_flex_pkg.id_column_is_null(p_flex_value_set_id) and
564: xla_flex_pkg.meaning_column_is_null(p_flex_value_set_id))
565: THEN
566: p_select_col := NULL;
567: p_where_col := NULL;
560: FETCH c_fvt INTO c_fvt_rec;
561: CLOSE c_fvt;
562:
563: IF (xla_flex_pkg.id_column_is_null(p_flex_value_set_id) and
564: xla_flex_pkg.meaning_column_is_null(p_flex_value_set_id))
565: THEN
566: p_select_col := NULL;
567: p_where_col := NULL;
568: p_type_out := 1;
565: THEN
566: p_select_col := NULL;
567: p_where_col := NULL;
568: p_type_out := 1;
569: ELSIF xla_flex_pkg.id_column_is_null(p_flex_value_set_id) THEN
570: p_select_col := c_fvt_rec.value_column_name;
571: p_where_col := c_fvt_rec.value_column_name;
572: p_type_out := 2;
573: ELSIF xla_flex_pkg.meaning_column_is_null(p_flex_value_set_id) THEN
569: ELSIF xla_flex_pkg.id_column_is_null(p_flex_value_set_id) THEN
570: p_select_col := c_fvt_rec.value_column_name;
571: p_where_col := c_fvt_rec.value_column_name;
572: p_type_out := 2;
573: ELSIF xla_flex_pkg.meaning_column_is_null(p_flex_value_set_id) THEN
574: p_select_col := c_fvt_rec.id_column_name;
575: p_where_col := c_fvt_rec.value_column_name;
576: p_type_out := 3;
577: ELSE
620: ;
621:
622: BEGIN
623:
624: xla_utility_pkg.trace('> xla_flex_pkg.segment_qualifier_is_enabled' , 20);
625:
626: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
627: xla_utility_pkg.trace('Flex code = '||p_flex_code , 40);
628: xla_utility_pkg.trace('Chart of accounts id = '||p_chart_of_accounts_id , 40);
642: ELSE
643: l_return := TRUE;
644: END IF;
645:
646: xla_utility_pkg.trace('< xla_flex_pkg.segment_qualifier_is_enabled' , 20);
647:
648: RETURN l_return;
649:
650: EXCEPTION
657: IF c_qualifier%ISOPEN THEN
658: CLOSE c_qualifier;
659: END IF;
660: xla_exceptions_pkg.raise_message
661: (p_location => 'xla_flex_pkg.segment_qualifier_is_enabled');
662: END segment_qualifier_is_enabled;
663:
664: /*======================================================================+
665: | |
678: l_id_column_name varchar2(240);
679: l_return boolean;
680:
681: BEGIN
682: xla_utility_pkg.trace('> xla_flex_pkg.id_column_is_null' , 20);
683:
684: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
685:
686: SELECT id_column_name
693: ELSE
694: l_return := FALSE;
695: END IF;
696:
697: xla_utility_pkg.trace('< xla_flex_pkg.id_column_is_null' , 20);
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_flex_pkg.id_column_is_null');
707: END id_column_is_null;
708:
709: /*======================================================================+
710: | |
723: l_meaning_column_name varchar2(240);
724: l_return boolean;
725:
726: BEGIN
727: xla_utility_pkg.trace('> xla_flex_pkg.meaning_column_is_null' , 20);
728:
729: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
730:
731: SELECT meaning_column_name
738: ELSE
739: l_return := FALSE;
740: END IF;
741:
742: xla_utility_pkg.trace('< xla_flex_pkg.meaning_column_is_null' , 20);
743:
744: RETURN l_return;
745:
746: EXCEPTION
747: WHEN xla_exceptions_pkg.application_exception THEN
748: RAISE;
749: WHEN OTHERS THEN
750: xla_exceptions_pkg.raise_message
751: (p_location => 'xla_flex_pkg.meaning_column_is_null');
752: END meaning_column_is_null;
753:
754: /*======================================================================+
755: | |
768: l_additional_where_clause varchar2(4000);
769: l_return varchar2(30);
770:
771: BEGIN
772: xla_utility_pkg.trace('> xla_flex_pkg.chk_additional_where_clause' , 20);
773:
774: xla_utility_pkg.trace('Flex_value_set_id = '||p_flex_value_set_id , 40);
775:
776: BEGIN
795: WHEN VALUE_ERROR THEN
796: l_return := 'FALSE';
797: END;
798:
799: xla_utility_pkg.trace('< xla_flex_pkg.chk_additional_where_clause' , 20);
800:
801: RETURN l_return;
802:
803: EXCEPTION
804: WHEN xla_exceptions_pkg.application_exception THEN
805: RAISE;
806: WHEN OTHERS THEN
807: xla_exceptions_pkg.raise_message
808: (p_location => 'xla_flex_pkg.chk_additional_where_clause');
809: END chk_additional_where_clause;
810:
811: /*======================================================================+
812: | |
839: ;
840:
841: BEGIN
842:
843: xla_utility_pkg.trace('> xla_flex_pkg.get_qualifier_segment' , 20);
844:
845: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
846: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
847: xla_utility_pkg.trace('Chart of accounts id = '||p_id_flex_num , 40);
851: FETCH c_segment
852: INTO l_application_column_name;
853: CLOSE c_segment;
854:
855: xla_utility_pkg.trace('< xla_flex_pkg.get_qualifier_segment' , 20);
856:
857: RETURN l_application_column_name;
858:
859: EXCEPTION
866: IF c_segment%ISOPEN THEN
867: CLOSE c_segment;
868: END IF;
869: xla_exceptions_pkg.raise_message
870: (p_location => 'xla_flex_pkg.get_qualifier_segment');
871: END get_qualifier_segment;
872:
873: /*======================================================================+
874: | |
901: ;
902:
903: BEGIN
904:
905: xla_utility_pkg.trace('> xla_flex_pkg.get_segment_qualifier' , 20);
906:
907: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
908: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
909: xla_utility_pkg.trace('Structure id = '||p_id_flex_num , 40);
913: FETCH c_qualifier
914: INTO l_segment_attribute_type;
915: CLOSE c_qualifier;
916:
917: xla_utility_pkg.trace('< xla_flex_pkg.get_segment_qualifier' , 20);
918:
919: IF l_segment_attribute_type = null THEN
920: l_segment_attribute_type := 'X';
921: END IF;
932: IF c_qualifier%ISOPEN THEN
933: CLOSE c_qualifier;
934: END IF;
935: xla_exceptions_pkg.raise_message
936: (p_location => 'xla_flex_pkg.get_segment_qualifier');
937: END get_segment_qualifier;
938:
939: /*======================================================================+
940: | |
966: ;
967:
968: BEGIN
969:
970: xla_utility_pkg.trace('> xla_flex_pkg.get_segment_valueset' , 20);
971:
972: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
973: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
974: xla_utility_pkg.trace('Structure id = '||p_id_flex_num , 40);
978: FETCH c_valueset
979: INTO l_flex_value_set_id;
980: CLOSE c_valueset;
981:
982: xla_utility_pkg.trace('< xla_flex_pkg.get_segment_valueset' , 20);
983:
984: IF l_flex_value_set_id = null THEN
985: l_flex_value_set_id := -99;
986: END IF;
997: IF c_valueset%ISOPEN THEN
998: CLOSE c_valueset;
999: END IF;
1000: xla_exceptions_pkg.raise_message
1001: (p_location => 'xla_flex_pkg.get_segment_valueset');
1002: END get_segment_valueset;
1003:
1004: /*======================================================================+
1005: | |
1027: AND segment_attribute_type = p_qualifier_segment;
1028:
1029: BEGIN
1030:
1031: xla_utility_pkg.trace('> xla_flex_pkg.get_qualifier_name' , 20);
1032:
1033: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
1034: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
1035: xla_utility_pkg.trace('Flexfield segment code = '||p_qualifier_segment , 40);
1038: FETCH c_segment
1039: INTO l_segment_prompt;
1040: CLOSE c_segment;
1041:
1042: xla_utility_pkg.trace('< xla_flex_pkg.get_qualifier_name' , 20);
1043:
1044: RETURN l_segment_prompt;
1045:
1046: EXCEPTION
1053: IF c_segment%ISOPEN THEN
1054: CLOSE c_segment;
1055: END IF;
1056: xla_exceptions_pkg.raise_message
1057: (p_location => 'xla_flex_pkg.get_qualifier_name');
1058: END get_qualifier_name;
1059:
1060: /*======================================================================+
1061: | |
1082: AND id_flex_code = p_id_flex_code;
1083:
1084: BEGIN
1085:
1086: xla_utility_pkg.trace('> xla_flex_pkg.get_flexfield_structure' , 20);
1087:
1088: xla_utility_pkg.trace('Application id = '||p_application_id , 40);
1089: xla_utility_pkg.trace('Flex code = '||p_id_flex_code , 40);
1090:
1092: FETCH c_struc
1093: INTO l_id_flex_num;
1094: CLOSE c_struc;
1095:
1096: xla_utility_pkg.trace('< xla_flex_pkg.get_flexfield_structure' , 20);
1097:
1098: RETURN l_id_flex_num;
1099:
1100: EXCEPTION
1107: IF c_struc%ISOPEN THEN
1108: CLOSE c_struc;
1109: END IF;
1110: xla_exceptions_pkg.raise_message
1111: (p_location => 'xla_flex_pkg.get_flexfield_structure');
1112: END get_flexfield_structure;
1113:
1114: END xla_flex_pkg;
1110: xla_exceptions_pkg.raise_message
1111: (p_location => 'xla_flex_pkg.get_flexfield_structure');
1112: END get_flexfield_structure;
1113:
1114: END xla_flex_pkg;