Das wäre der Funktionsbaustein:
FUNCTION z_cd_dateierstellung.
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" REFERENCE(I_FILENAME) TYPE FILENAME-FILEINTERN
*" REFERENCE(I_DTYP) TYPE TRTM_FORMAT
*" REFERENCE(I_STRUCK) TYPE TABNAME OPTIONAL
*" REFERENCE(IT_OPLINE) TYPE FKKSP_OPLINE OPTIONAL
*" REFERENCE(I_FANZ) TYPE I DEFAULT 40
*" REFERENCE(I_SEPERATOR) TYPE C DEFAULT ';'
*" REFERENCE(I_SERVERTYP) TYPE TRUXS_SERVER DEFAULT 'APP'
*" TABLES
*" I_ITEMTAB
*" EXCEPTIONS
*" TO_MUTCH_FIELDS
*" WRONG_STRUC
*" OPLINE_WITHOUT_STRUC
*" WRONG_IFANZ
*" FILE_ERROR
*" DICT_ERROR
*"----------------------------------------------------------------------
*Änderungen: WM20150428: Betragsfelder mit Komma statt Punkt
************************************************************************
* KZK13062016 Anpassung der Nachrichtenaufrufe TFS:87506
************************************************************************
*WM20150428>>>>>>>>>>>>
TYPES: BEGIN OF ty_curr_pos,
pos TYPE char02,
END OF ty_curr_pos.
DATA: ht_curr_pos TYPE TABLE OF ty_curr_pos,
hs_curr_pos LIKE LINE OF ht_curr_pos.
*WM20150428<<<<<<<<<<<
DATA: feld_anz TYPE i.
DATA: h_struck_tab TYPE TABLE OF dfies.
DATA: l_header_text TYPE char50.
TYPES: BEGIN OF ty_columns,
col_01 LIKE l_header_text,
col_02 LIKE l_header_text,
col_03 LIKE l_header_text,
col_04 LIKE l_header_text,
col_05 LIKE l_header_text,
col_06 LIKE l_header_text,
col_07 LIKE l_header_text,
col_08 LIKE l_header_text,
col_09 LIKE l_header_text,
col_10 LIKE l_header_text,
col_11 LIKE l_header_text,
col_12 LIKE l_header_text,
col_13 LIKE l_header_text,
col_14 LIKE l_header_text,
col_15 LIKE l_header_text,
col_16 LIKE l_header_text,
col_17 LIKE l_header_text,
col_18 LIKE l_header_text,
col_19 LIKE l_header_text,
col_20 LIKE l_header_text,
col_21 LIKE l_header_text,
col_22 LIKE l_header_text,
col_23 LIKE l_header_text,
col_24 LIKE l_header_text,
col_25 LIKE l_header_text,
col_26 LIKE l_header_text,
col_27 LIKE l_header_text,
col_28 LIKE l_header_text,
col_29 LIKE l_header_text,
col_30 LIKE l_header_text,
col_31 LIKE l_header_text,
col_32 LIKE l_header_text,
col_33 LIKE l_header_text,
col_34 LIKE l_header_text,
col_35 LIKE l_header_text,
col_36 LIKE l_header_text,
col_37 LIKE l_header_text,
col_38 LIKE l_header_text,
col_39 LIKE l_header_text,
col_40 LIKE l_header_text,
END OF ty_columns.
DATA: t_columns TYPE TABLE OF ty_columns,
s_columns TYPE ty_columns,
h_col LIKE l_header_text.
FIELD-SYMBOLS: <fs_columns> TYPE ty_columns,
<fs_col_struc> TYPE ty_columns,
<fs_opline> TYPE fkksp_s_opline,
<fs_col> TYPE ANY,
<fs_itemtab> TYPE ANY.
ASSIGN s_columns TO: <fs_columns>,
<fs_col_struc>.
feld_anz = i_fanz.
IF i_struck IS NOT INITIAL.
CALL FUNCTION 'CREATE_XLS_HEADER_FROM_DDIC'
EXPORTING
i_fileformat = i_dtyp
i_fieldname = 'X'
i_tabname = i_struck
i_langu = sy-langu
TABLES
t_header = t_columns
EXCEPTIONS
table_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING dict_error.
ENDIF.
READ TABLE t_columns INDEX 1 ASSIGNING <fs_col_struc>.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = i_struck
langu = sy-langu
TABLES
dfies_tab = h_struck_tab
EXCEPTIONS
OTHERS = 4.
IF sy-subrc = 0.
DESCRIBE TABLE h_struck_tab LINES feld_anz.
*WM20150428>>>>>>>>>>>>
LOOP AT h_struck_tab TRANSPORTING NO FIELDS WHERE datatype = 'CURR'.
WRITE sy-tabix TO hs_curr_pos-pos.
IF sy-tabix < 10.
CONCATENATE '0' hs_curr_pos-pos INTO hs_curr_pos-pos.
ENDIF.
APPEND hs_curr_pos TO ht_curr_pos.
ENDLOOP.
*WM20150428<<<<<<<<<<<<<
ELSE.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING dict_error.
ENDIF.
ENDIF.
IF NOT feld_anz BETWEEN 0 AND 40.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 143 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 009 "KZK13062016
WITH 'Die Struktur' i_struck
RAISING to_mutch_fields.
ELSE.
IF feld_anz <> i_fanz.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 146 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 012 "KZK13062016
WITH i_fanz
RAISING wrong_ifanz.
ENDIF.
ENDIF.
IF it_opline IS NOT INITIAL.
DESCRIBE TABLE it_opline LINES feld_anz.
IF NOT feld_anz BETWEEN 0 AND 40.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 143 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 009 "KZK13062016
WITH 'Das OP-Layout' gs_fpo4_datei-zz_fpo4_layout
RAISING to_mutch_fields.
ELSE.
IF feld_anz <> i_fanz.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 146 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 012 "KZK13062016
WITH i_fanz
RAISING wrong_ifanz.
ENDIF.
ENDIF.
IF i_struck IS INITIAL.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 145 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 011 "KZK13062016
WITH gs_fpo4_datei-zz_fpo4_layout
RAISING opline_without_struc.
ENDIF.
LOOP AT it_opline ASSIGNING <fs_opline>.
ASSIGN COMPONENT 1 OF STRUCTURE <fs_opline> TO <fs_col>.
IF <fs_opline>-tabname = 'FKKOPRU'.
CONCATENATE <fs_col> '_' <fs_opline>-tabname INTO h_col.
ASSIGN h_col TO <fs_col>.
ENDIF.
CASE sy-tabix.
WHEN 1.
IF <fs_col_struc>-col_01 = <fs_col>.
<fs_columns>-col_01 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 2.
IF <fs_col_struc>-col_02 = <fs_col>.
<fs_columns>-col_02 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 3.
IF <fs_col_struc>-col_03 = <fs_col>.
<fs_columns>-col_03 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 4.
IF <fs_col_struc>-col_04 = <fs_col>.
<fs_columns>-col_04 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 5.
IF <fs_col_struc>-col_05 = <fs_col>.
<fs_columns>-col_05 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 6.
IF <fs_col_struc>-col_06 = <fs_col>.
<fs_columns>-col_06 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 7.
IF <fs_col_struc>-col_07 = <fs_col>.
<fs_columns>-col_07 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 8.
IF <fs_col_struc>-col_08 = <fs_col>.
<fs_columns>-col_08 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 9.
IF <fs_col_struc>-col_09 = <fs_col>.
<fs_columns>-col_09 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 10.
IF <fs_col_struc>-col_10 = <fs_col>.
<fs_columns>-col_10 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 11.
IF <fs_col_struc>-col_11 = <fs_col>.
<fs_columns>-col_11 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 12.
IF <fs_col_struc>-col_12 = <fs_col>.
<fs_columns>-col_12 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 13.
IF <fs_col_struc>-col_13 = <fs_col>.
<fs_columns>-col_13 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 14.
IF <fs_col_struc>-col_14 = <fs_col>.
<fs_columns>-col_14 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 15.
IF <fs_col_struc>-col_15 = <fs_col>.
<fs_columns>-col_15 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 16.
IF <fs_col_struc>-col_16 = <fs_col>.
<fs_columns>-col_16 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 17.
IF <fs_col_struc>-col_17 = <fs_col>.
<fs_columns>-col_17 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 18.
IF <fs_col_struc>-col_18 = <fs_col>.
<fs_columns>-col_18 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 19.
IF <fs_col_struc>-col_19 = <fs_col>.
<fs_columns>-col_19 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 20.
IF <fs_col_struc>-col_20 = <fs_col>.
<fs_columns>-col_20 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 21.
IF <fs_col_struc>-col_21 = <fs_col>.
<fs_columns>-col_21 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 22.
IF <fs_col_struc>-col_22 = <fs_col>.
<fs_columns>-col_22 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 23.
IF <fs_col_struc>-col_23 = <fs_col>.
<fs_columns>-col_23 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 24.
IF <fs_col_struc>-col_24 = <fs_col>.
<fs_columns>-col_24 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 25.
IF <fs_col_struc>-col_25 = <fs_col>.
<fs_columns>-col_25 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 26.
IF <fs_col_struc>-col_26 = <fs_col>.
<fs_columns>-col_26 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 27.
IF <fs_col_struc>-col_27 = <fs_col>.
<fs_columns>-col_27 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 28.
IF <fs_col_struc>-col_28 = <fs_col>.
<fs_columns>-col_28 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 29.
IF <fs_col_struc>-col_29 = <fs_col>.
<fs_columns>-col_29 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 30.
IF <fs_col_struc>-col_30 = <fs_col>.
<fs_columns>-col_30 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 31.
IF <fs_col_struc>-col_31 = <fs_col>.
<fs_columns>-col_31 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 32.
IF <fs_col_struc>-col_32 = <fs_col>.
<fs_columns>-col_32 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 33.
IF <fs_col_struc>-col_33 = <fs_col>.
<fs_columns>-col_33 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 34.
IF <fs_col_struc>-col_34 = <fs_col>.
<fs_columns>-col_34 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 35.
IF <fs_col_struc>-col_35 = <fs_col>.
<fs_columns>-col_35 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 36.
IF <fs_col_struc>-col_36 = <fs_col>.
<fs_columns>-col_36 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 37.
IF <fs_col_struc>-col_37 = <fs_col>.
<fs_columns>-col_37 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 38.
IF <fs_col_struc>-col_38 = <fs_col>.
<fs_columns>-col_38 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 39.
IF <fs_col_struc>-col_39 = <fs_col>.
<fs_columns>-col_39 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN 40.
IF <fs_col_struc>-col_40 = <fs_col>.
<fs_columns>-col_40 = <fs_col>.
ELSE.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 144 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 010 "KZK13062016
WITH i_struck gv_layout_mem
RAISING wrong_struc.
ENDIF.
WHEN OTHERS.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 143 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 009 "KZK13062016
WITH 'Das OP-Layout' gs_fpo4_datei-zz_fpo4_layout
RAISING to_mutch_fields.
ENDCASE.
ENDLOOP.
* APPEND <fs_columns> TO t_columns.
CLEAR: <fs_columns>.
ENDIF.
LOOP AT i_itemtab ASSIGNING <fs_itemtab>.
DO feld_anz TIMES.
* DO i_fanz TIMES.
ASSIGN COMPONENT sy-index OF STRUCTURE <fs_itemtab> TO <fs_col>.
CASE sy-index.
WHEN 1.
<fs_columns>-col_01 = <fs_col>.
WHEN 2.
<fs_columns>-col_02 = <fs_col>.
WHEN 3.
<fs_columns>-col_03 = <fs_col>.
WHEN 4.
<fs_columns>-col_04 = <fs_col>.
WHEN 5.
<fs_columns>-col_05 = <fs_col>.
WHEN 6.
<fs_columns>-col_06 = <fs_col>.
WHEN 7.
<fs_columns>-col_07 = <fs_col>.
WHEN 8.
<fs_columns>-col_08 = <fs_col>.
WHEN 9.
<fs_columns>-col_09 = <fs_col>.
WHEN 10.
<fs_columns>-col_10 = <fs_col>.
WHEN 11.
<fs_columns>-col_11 = <fs_col>.
WHEN 12.
<fs_columns>-col_12 = <fs_col>.
WHEN 13.
<fs_columns>-col_13 = <fs_col>.
WHEN 14.
<fs_columns>-col_14 = <fs_col>.
WHEN 15.
<fs_columns>-col_15 = <fs_col>.
WHEN 16.
<fs_columns>-col_16 = <fs_col>.
WHEN 17.
<fs_columns>-col_17 = <fs_col>.
WHEN 18.
<fs_columns>-col_18 = <fs_col>.
WHEN 19.
<fs_columns>-col_19 = <fs_col>.
WHEN 20.
<fs_columns>-col_20 = <fs_col>.
WHEN 21.
<fs_columns>-col_21 = <fs_col>.
WHEN 22.
<fs_columns>-col_22 = <fs_col>.
WHEN 23.
<fs_columns>-col_23 = <fs_col>.
WHEN 24.
<fs_columns>-col_24 = <fs_col>.
WHEN 25.
<fs_columns>-col_25 = <fs_col>.
WHEN 26.
<fs_columns>-col_26 = <fs_col>.
WHEN 27.
<fs_columns>-col_27 = <fs_col>.
WHEN 28.
<fs_columns>-col_28 = <fs_col>.
WHEN 29.
<fs_columns>-col_29 = <fs_col>.
WHEN 30.
<fs_columns>-col_30 = <fs_col>.
WHEN 31.
<fs_columns>-col_31 = <fs_col>.
WHEN 32.
<fs_columns>-col_32 = <fs_col>.
WHEN 33.
<fs_columns>-col_33 = <fs_col>.
WHEN 34.
<fs_columns>-col_34 = <fs_col>.
WHEN 35.
<fs_columns>-col_35 = <fs_col>.
WHEN 36.
<fs_columns>-col_36 = <fs_col>.
WHEN 37.
<fs_columns>-col_37 = <fs_col>.
WHEN 38.
<fs_columns>-col_38 = <fs_col>.
WHEN 39.
<fs_columns>-col_39 = <fs_col>.
WHEN 40.
<fs_columns>-col_40 = <fs_col>.
WHEN OTHERS.
* MESSAGE ID 'Z_ALTE_LEIPZIGER' TYPE 'E' NUMBER 143 "KZK13062016
MESSAGE ID 'ZFSCD_REPORTING' TYPE 'E' NUMBER 009 "KZK13062016
WITH 'Die Liste'
RAISING to_mutch_fields.
ENDCASE.
ENDDO.
*WM20150428>>>>>>>>>>>>
LOOP AT ht_curr_pos INTO hs_curr_pos.
CASE hs_curr_pos-pos.
WHEN '01'. REPLACE '.' IN <fs_columns>-col_01 WITH ','.
WHEN '02'. REPLACE '.' IN <fs_columns>-col_02 WITH ','.
WHEN '03'. REPLACE '.' IN <fs_columns>-col_03 WITH ','.
WHEN '04'. REPLACE '.' IN <fs_columns>-col_04 WITH ','.
WHEN '05'. REPLACE '.' IN <fs_columns>-col_05 WITH ','.
WHEN '06'. REPLACE '.' IN <fs_columns>-col_06 WITH ','.
WHEN '07'. REPLACE '.' IN <fs_columns>-col_07 WITH ','.
WHEN '08'. REPLACE '.' IN <fs_columns>-col_08 WITH ','.
WHEN '09'. REPLACE '.' IN <fs_columns>-col_09 WITH ','.
WHEN '10'. REPLACE '.' IN <fs_columns>-col_10 WITH ','.
WHEN '11'. REPLACE '.' IN <fs_columns>-col_11 WITH ','.
WHEN '12'. REPLACE '.' IN <fs_columns>-col_12 WITH ','.
WHEN '13'. REPLACE '.' IN <fs_columns>-col_13 WITH ','.
WHEN '14'. REPLACE '.' IN <fs_columns>-col_14 WITH ','.
WHEN '15'. REPLACE '.' IN <fs_columns>-col_15 WITH ','.
WHEN '16'. REPLACE '.' IN <fs_columns>-col_16 WITH ','.
WHEN '17'. REPLACE '.' IN <fs_columns>-col_17 WITH ','.
WHEN '18'. REPLACE '.' IN <fs_columns>-col_18 WITH ','.
WHEN '19'. REPLACE '.' IN <fs_columns>-col_19 WITH ','.
WHEN '20'. REPLACE '.' IN <fs_columns>-col_20 WITH ','.
WHEN '21'. REPLACE '.' IN <fs_columns>-col_21 WITH ','.
WHEN '22'. REPLACE '.' IN <fs_columns>-col_22 WITH ','.
WHEN '23'. REPLACE '.' IN <fs_columns>-col_23 WITH ','.
WHEN '24'. REPLACE '.' IN <fs_columns>-col_24 WITH ','.
WHEN '25'. REPLACE '.' IN <fs_columns>-col_25 WITH ','.
WHEN '26'. REPLACE '.' IN <fs_columns>-col_26 WITH ','.
WHEN '27'. REPLACE '.' IN <fs_columns>-col_27 WITH ','.
WHEN '28'. REPLACE '.' IN <fs_columns>-col_28 WITH ','.
WHEN '29'. REPLACE '.' IN <fs_columns>-col_29 WITH ','.
WHEN '30'. REPLACE '.' IN <fs_columns>-col_30 WITH ','.
WHEN '31'. REPLACE '.' IN <fs_columns>-col_31 WITH ','.
WHEN '32'. REPLACE '.' IN <fs_columns>-col_32 WITH ','.
WHEN '33'. REPLACE '.' IN <fs_columns>-col_33 WITH ','.
WHEN '34'. REPLACE '.' IN <fs_columns>-col_34 WITH ','.
WHEN '35'. REPLACE '.' IN <fs_columns>-col_35 WITH ','.
WHEN '36'. REPLACE '.' IN <fs_columns>-col_36 WITH ','.
WHEN '37'. REPLACE '.' IN <fs_columns>-col_37 WITH ','.
WHEN '38'. REPLACE '.' IN <fs_columns>-col_38 WITH ','.
WHEN '39'. REPLACE '.' IN <fs_columns>-col_39 WITH ','.
WHEN '40'. REPLACE '.' IN <fs_columns>-col_40 WITH ','.
WHEN OTHERS.
ENDCASE.
ENDLOOP.
*WM20150428<<<<<<<<<<<<
APPEND <fs_columns> TO t_columns.
CLEAR <fs_columns>.
ENDLOOP.
UNASSIGN: <fs_columns>, <fs_itemtab>.
CALL FUNCTION 'Z_SAP_DATA_CONVERT_WRITE_FILE'
EXPORTING
i_filename = i_filename
i_servertyp = i_servertyp
i_fileformat = i_dtyp
i_field_seperator = i_seperator
i_line_header = 'X'
* I_APPL_KEEP = ' '
* I_BIN_FILESIZE = ' '
* I_XML_DOC_NAME =
TABLES
i_tab_sender = t_columns[]
EXCEPTIONS
open_failed = 1
close_failed = 2
authorization_failed = 3
write_failed = 4
conversion_failed = 5
OTHERS = 6
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
RAISING file_error.
ENDIF.
ENDFUNCTION.