07-11-2006 8:12 AM
Hi,
i have an CSV File on a PC. The fields in the File
are separated by ','. I try to use the FM TEXT_CONVERT_CSV_TO_SAP, but i have problems.
Can anyone give me an example-Code for this FM?
Thanks
Dieter
07-11-2006 8:42 AM
Hi,
Check this sample code...
REPORT ZTEST.
TYPE-POOLS:TRUXS.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
END OF ITAB.
data: itabt like itab occurs 0 with header line.
DATA: ITAB1 TYPE TRUXS_T_TEXT_DATA,
ITAB2 TYPE TRUXS_T_TEXT_DATA.
SELECT VBELN
POSNR
UP TO 100 ROWS
FROM VBAP
INTO TABLE ITAB.
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = ITAB1
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:TEMPtest.txt'
TABLES
DATA_TAB = ITAB1
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = ','
I_TAB_RAW_DATA = ITAB1
* I_FILENAME = 'C:TEMPtest.txt'
TABLES
I_TAB_CONVERTED_DATA = ITABt
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDIF.
Regards
vijay
07-11-2006 8:19 AM
You might want to try this. You can split it into a table and then assign to the fields of itab.
report ztest.data: begin of itab occurs 0, fld1(10) type c, fld2(10) type c, fld3(10) type c, end of itab.data: isplit type table of string with header line.data: istr type table of string.data: xstr type string.field-symbols: <fs>.call function 'GUI_UPLOAD' exporting filename = 'c:text.cvs' tables data_tab = istr.loop at istr into xstr. clear isplit. refresh isplit. split xstr at ',' into table isplit. clear itab. loop at isplit. assign component sy-tabix of structure itab to <fs>. if sy-subrc <> 0. exit. endif. <fs> = isplit. endloop. append itab.endloop.
07-11-2006 8:23 AM
You can use this code for the same purpose
report ztest.
data: begin of itab occurs 0,
fld1(10) type c,
fld2(10) type c,
fld3(10) type c,
end of itab.
data: isplit type table of string with header line.
data: istr type table of string.
data: xstr type string.
field-symbols: <fs>.
call function 'GUI_UPLOAD'
exporting
filename = 'c:\text.cvs'
tables
data_tab = istr.
loop at istr into xstr.
clear isplit. refresh isplit.
split xstr at ',' into table isplit.
clear itab.
loop at isplit.
assign component sy-tabix of structure itab to <fs>.
if sy-subrc <> 0.
exit.
endif.
<fs> = isplit.
endloop.
append itab.
endloop.
07-11-2006 8:28 AM
Hi dieter,
1. simple
2. just copy paste.
3. the file name is d:\myfile.txt
the contents are - 2 records:
amit;mittal
mr;xyz
4.
report abc.
type-pools : TRUXS.
*----
data : rawdata type TRUXS_T_TEXT_DATA.
data : begin of itab occurs 0,
f1(10) type c,
f2(10) type c,
end of itab.
*----
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'd:\myfile.txt'
TABLES
DATA_TAB = rawdata
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
*----
CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = ';'
I_LINE_HEADER =
I_TAB_RAW_DATA = rawdata
I_FILENAME = 'd:\myfile1.txt'
TABLES
I_TAB_CONVERTED_DATA = itab
EXCEPTIONS
CONVERSION_FAILED = 1
OTHERS = 2
.
break-point.
regards,
amit m.
07-11-2006 8:42 AM
Hi,
Check this sample code...
REPORT ZTEST.
TYPE-POOLS:TRUXS.
DATA: BEGIN OF ITAB OCCURS 0,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
END OF ITAB.
data: itabt like itab occurs 0 with header line.
DATA: ITAB1 TYPE TRUXS_T_TEXT_DATA,
ITAB2 TYPE TRUXS_T_TEXT_DATA.
SELECT VBELN
POSNR
UP TO 100 ROWS
FROM VBAP
INTO TABLE ITAB.
CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
EXPORTING
I_FIELD_SEPERATOR = ','
TABLES
I_TAB_SAP_DATA = ITAB
CHANGING
I_TAB_CONVERTED_DATA = ITAB1
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:TEMPtest.txt'
TABLES
DATA_TAB = ITAB1
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'TEXT_CONVERT_CSV_TO_SAP'
EXPORTING
I_FIELD_SEPERATOR = ','
I_TAB_RAW_DATA = ITAB1
* I_FILENAME = 'C:TEMPtest.txt'
TABLES
I_TAB_CONVERTED_DATA = ITABt
EXCEPTIONS
CONVERSION_FAILED = 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.
ENDIF.
Regards
vijay