Skip to Content
0
Dec 17, 2013 at 02:53 AM

How to upload file CSV with Integer type ?

61 Views

I have a problem with my code to upload a record to my table with internal table.

Example :

I have 5 record at my CSV File, but it just 4 record can attach to my table and have 1 record with value 'Blank' '000000' '0'.

this is my source code :


REPORT ZEDWINCSV2COBA.

TABLES ZRVCOBAHTG.

TYPES: BEGIN OF ttab,
rec(1000) type C,
END OF ttab.
TYPES: BEGIN OF tdat,
fld1(8) TYPE C,
fld2(6) TYPE C,
fld3(14) TYPE C,
END OF tdat.
DATA: itab TYPE TABLE OF ttab WITH HEADER LINE.
DATA: idat TYPE TABLE OF tdat WITH HEADER LINE.
DATA: file_str TYPE string.

PARAMETERS: p_file TYPE localfile.

AT SELECTION-SCREEN on VALUE-REQUEST FOR p_file.
call FUNCTION 'KD_GET_FILENAME_ON_F4' EXPORTING
static = 'X' CHANGING file_name = p_file.

START-OF-SELECTION.
file_str = p_file.
call FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = file_str
TABLES
data_tab = itab
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.

LOOP AT itab.
CLEAR idat.
SPLIT itab-rec AT ',' INTO idat-fld1 idat-fld2 idat-fld3.
APPEND idat.
ENDLOOP.
LOOP AT idat.
WRITE:/ idat-fld1, idat-fld2, idat-fld3.
INSERT ZRVCOBAHTG.
ZRVCOBAHTG-KODECUSTOMER = idat-fld1.
ZRVCOBAHTG-PERIODE = idat-fld2.
ZRVCOBAHTG-VALUEHTG = idat-fld3.
ENDLOOP.

SELECT * from ZRVCOBAHTG.
write :/ ZRVCOBAHTG-KODECUSTOMER, ZRVCOBAHTG-PERIODE, ZRVCOBAHTG-VALUEHTG.
ENDSELECT.


Notes :

KODECUSTOMER type CHAR.

PERIODE type ACCP.

VALUEHTG type DEC.

anyone can help with my code? thank you before.