34:
35: l_debug_info varchar2(200);
36:
37: l_chart_of_accounts_id number := p_chart_of_accounts_id;
38: l_segments FND_FLEX_EXT.SEGMENTARRAY;
39: l_num_of_segments NUMBER;
40: l_cost_ctr_seg_num NUMBER;
41:
42: BEGIN
53:
54: -----------------------------------------------------
55: l_debug_info := 'Retrieve segments from code combination id';
56: -----------------------------------------------------
57: IF (NOT FND_FLEX_EXT.GET_SEGMENTS('SQLGL',
58: 'GL#',
59: l_chart_of_accounts_id,
60: p_ccid,
61: l_num_of_segments,
229:
230: l_flex_segment_delimiter varchar2(1);
231: l_cost_center_seg_num number;
232: l_num_segments number;
233: l_default_emp_segments FND_FLEX_EXT.SEGMENTARRAY;
234: l_appcol_name fnd_id_flex_segments_vl.application_column_name%type;
235: l_seg_name fnd_id_flex_segments_vl.segment_name%type;
236: l_prompt fnd_id_flex_segments_vl.form_left_prompt%type;
237: l_value_set_name fnd_flex_value_sets.flex_value_set_name%type;
244: -- used to prepare the concatenated segment from segment array to a string.
245: -----------------------------------------------------
246: l_debug_info := 'Get segment delimiter';
247: -----------------------------------------------------
248: l_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER(
249: 'SQLGL',
250: 'GL#',
251: p_chart_of_accounts_id);
252:
269: -- code combination id.
270: -----------------------------------------------------
271: l_debug_info := 'Get employee default segments';
272: -----------------------------------------------------
273: if (NOT FND_FLEX_EXT.GET_SEGMENTS(
274: 'SQLGL',
275: 'GL#',
276: p_chart_of_accounts_id,
277: p_default_emp_ccid,
329: -- (l_default_emp_segments) to a string(l_concatenated_segments).
330: -----------------------------------------------------
331: l_debug_info := 'Concatenate segments';
332: -----------------------------------------------------
333: l_concatenated_segments := FND_FLEX_EXT.concatenate_segments(l_num_segments,
334: l_default_emp_segments,
335: l_flex_segment_delimiter);
336:
337: /* -----------------------------------------------------------------------+
407: l_chart_of_accounts_id number;
408: l_flex_segment_delimiter varchar2(1);
409: l_cost_center_seg_num number;
410: l_num_segments number;
411: l_exp_type_template_array FND_FLEX_EXT.SEGMENTARRAY;
412: l_FlexConcactenated AP_EXPENSE_REPORT_PARAMS.flex_concactenated%TYPE;
413:
414: BEGIN
415:
424: -- used to prepare the concatenated segment from segment array to a string.
425: -----------------------------------------------------
426: l_debug_info := 'Get segment delimeter';
427: -----------------------------------------------------
428: l_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER(
429: 'SQLGL',
430: 'GL#',
431: l_chart_of_accounts_id);
432:
465:
466: -----------------------------------------------------
467: l_debug_info := 'Break up segments';
468: -----------------------------------------------------
469: l_num_segments := FND_FLEX_EXT.Breakup_Segments(l_FlexConcactenated,
470: l_flex_segment_delimiter,
471: l_exp_type_template_array);
472:
473: IF nvl(l_num_segments,0) = 0 THEN
569: c integer;
570: l_concat_segments VARCHAR2(1000);
571: rows integer;
572: l_num_segments NUMBER;
573: l_segment_array FND_FLEX_EXT.SEGMENTARRAY;
574: l_flex_segment_delimiter varchar2(1);
575:
576: cursor cflex(p_chart_accounts_id IN NUMBER) is
577: SELECT flex.application_column_name
589: -- used to prepare the concatenated segment from segment array to a string.
590: -----------------------------------------------------
591: l_debug_info := 'Get segment delimiter';
592: -----------------------------------------------------
593: l_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER(
594: 'SQLGL',
595: 'GL#',
596: p_chart_of_accounts_id);
597:
664:
665: --------------------------------------------------------------
666: l_debug_info:='Break Up Segments';
667: --------------------------------------------------------------
668: l_num_segments := FND_FLEX_EXT.Breakup_Segments(l_concat_segments,
669: l_flex_segment_delimiter,
670: l_segment_array);
671:
672:
706:
707: l_debug_info VARCHAR2(100);
708:
709: l_flex_segment_delimiter VARCHAR2(1);
710: l_segments FND_FLEX_EXT.SEGMENTARRAY;
711:
712: BEGIN
713:
714: IF (p_chart_of_accounts_id is null) THEN
718:
719: ----------------------------------------
720: l_debug_info := 'Get Segment Delimiter like .';
721: ----------------------------------------
722: l_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER(
723: 'SQLGL',
724: 'GL#',
725: p_chart_of_accounts_id);
726:
728: RAISE AP_WEB_OA_MAINFLOW_PKG.G_EXC_ERROR;
729: END IF; /* l_flex_segment_delimiter IS NULL */
730:
731: ------------------------------------------------------------------------
732: l_debug_info := 'Convert AP_OIE_KFF_SEGMENTS_T to FND_FLEX_EXT.SEGMENTARRAY';
733: ------------------------------------------------------------------------
734: FOR i IN 1..p_segments.count LOOP
735: l_segments(i) := p_segments(i);
736: END LOOP;
735: l_segments(i) := p_segments(i);
736: END LOOP;
737:
738: ------------------------------------------------------------------------
739: l_debug_info := 'calling FND_FLEX_EXT.concatenate_segments';
740: ------------------------------------------------------------------------
741: p_concatenated_segments := FND_FLEX_EXT.concatenate_segments(l_segments.count,
742: l_segments,
743: l_flex_segment_delimiter);
737:
738: ------------------------------------------------------------------------
739: l_debug_info := 'calling FND_FLEX_EXT.concatenate_segments';
740: ------------------------------------------------------------------------
741: p_concatenated_segments := FND_FLEX_EXT.concatenate_segments(l_segments.count,
742: l_segments,
743: l_flex_segment_delimiter);
744:
745: EXCEPTION
770: l_default_emp_ccid AP_WEB_DB_EXPRPT_PKG.expHdr_employeeCCID;
771: l_chart_of_accounts_id NUMBER;
772: l_cost_center_seg_num NUMBER;
773: l_flex_segment_delimiter VARCHAR2(1);
774: l_default_emp_segments FND_FLEX_EXT.SEGMENTARRAY;
775: l_FlexConcactenated AP_EXPENSE_REPORT_PARAMS.FLEX_CONCACTENATED%TYPE;
776: l_exp_type_template_array FND_FLEX_EXT.SEGMENTARRAY;
777: l_exp_line_acct_segs_array FND_FLEX_EXT.SEGMENTARRAY;
778: l_num_segments NUMBER:=NULL;
772: l_cost_center_seg_num NUMBER;
773: l_flex_segment_delimiter VARCHAR2(1);
774: l_default_emp_segments FND_FLEX_EXT.SEGMENTARRAY;
775: l_FlexConcactenated AP_EXPENSE_REPORT_PARAMS.FLEX_CONCACTENATED%TYPE;
776: l_exp_type_template_array FND_FLEX_EXT.SEGMENTARRAY;
777: l_exp_line_acct_segs_array FND_FLEX_EXT.SEGMENTARRAY;
778: l_num_segments NUMBER:=NULL;
779: l_concatenated_segments varchar2(2000);
780:
773: l_flex_segment_delimiter VARCHAR2(1);
774: l_default_emp_segments FND_FLEX_EXT.SEGMENTARRAY;
775: l_FlexConcactenated AP_EXPENSE_REPORT_PARAMS.FLEX_CONCACTENATED%TYPE;
776: l_exp_type_template_array FND_FLEX_EXT.SEGMENTARRAY;
777: l_exp_line_acct_segs_array FND_FLEX_EXT.SEGMENTARRAY;
778: l_num_segments NUMBER:=NULL;
779: l_concatenated_segments varchar2(2000);
780:
781: BEGIN
842: -----------------------------------------------------------------
843: l_debug_info := 'Get employee default ccid account segments';
844: -----------------------------------------------------------------
845: IF (l_default_emp_ccid IS NOT NULL) THEN
846: IF (NOT FND_FLEX_EXT.GET_SEGMENTS(
847: 'SQLGL',
848: 'GL#',
849: l_chart_of_accounts_id,
850: l_default_emp_ccid,
870:
871: ----------------------------------------
872: l_debug_info := 'Get Segment Delimiter like .';
873: ----------------------------------------
874: l_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER(
875: 'SQLGL',
876: 'GL#',
877: l_chart_of_accounts_id);
878:
889:
890: ----------------------------------------
891: l_debug_info := 'Convert p_ccid into a segment array';
892: ----------------------------------------
893: IF (NOT FND_FLEX_EXT.GET_SEGMENTS('SQLGL',
894: 'GL#',
895: l_chart_of_accounts_id,
896: p_ccid,
897: l_num_segments,
931:
932: --------------------------------------------------------------
933: l_debug_info:='Break Up Segments';
934: --------------------------------------------------------------
935: l_num_segments := FND_FLEX_EXT.Breakup_Segments(l_FlexConcactenated,
936: l_flex_segment_delimiter,
937: l_exp_type_template_array);
938: END IF;
939:
1000: --------------------------------------------------------------
1001: l_debug_info := 'Retrieve new ccid';
1002: --------------------------------------------------------------
1003: -- Work around for bug 1569108
1004: l_concatenated_segments := FND_FLEX_EXT.concatenate_segments(l_num_segments,
1005: l_exp_line_acct_segs_array,
1006: l_flex_segment_delimiter);
1007:
1008: ------------------------------------------------------------------------
1134: l_pa_CCID gl_code_combinations.code_combination_id%TYPE;
1135: lv_concat_segs VARCHAR2(2000);
1136: lv_concat_ids VARCHAR2(2000);
1137: lv_concat_description VARCHAR2(2000);
1138: l_segments FND_FLEX_EXT.SEGMENTARRAY;
1139: ln_segment_count NUMBER := 0;
1140: lv_flex_segment_delimiter VARCHAR2(1);
1141: lb_gms_accounting_created BOOLEAN := false;
1142:
1364:
1365: -----------------------------------------------------
1366: l_debug_info := 'Get segment delimeter';
1367: -----------------------------------------------------
1368: lv_flex_segment_delimiter := FND_FLEX_EXT.GET_DELIMITER('SQLGL','GL#',pa_rec.chart_of_accounts_id);
1369:
1370: -----------------------------------------------------
1371: l_debug_info := 'Break up segments';
1372: -----------------------------------------------------
1369:
1370: -----------------------------------------------------
1371: l_debug_info := 'Break up segments';
1372: -----------------------------------------------------
1373: ln_segment_count := FND_FLEX_EXT.Breakup_Segments(lv_concat_segs, lv_flex_segment_delimiter, l_segments);
1374:
1375: -----------------------------------------------------
1376: l_debug_info := 'Assign values to p_new_segments';
1377: -----------------------------------------------------