03-13-2007 10:08 AM
hi,
Iam uploading the data using GUI_UPLOAD
the file type im using is .CSV type and is having more than 255 char per record /row
and hence all the data is not being uploaded ....
any advise on the same to get all the data in the file into internal table
thanks
03-13-2007 10:10 AM
03-13-2007 10:14 AM
hi
in this p_file is of .csv type and the length of l_t_att_file is 600 characters .
but gui_upload is uploading upto 255 char in eachline .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
filetype = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
data_tab = l_t_att_file
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
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
thanks
03-13-2007 10:20 AM
Are ur internal table fields are of fixed length
While using ASC datatype the internal table field lengths should be fixed, there should not be any TYPE STRINGS
03-13-2007 10:25 AM
hi
here is my internal table declaration
TYPES: BEGIN OF l_ty_txt,
contents(600) TYPE c,
END OF l_ty_txt.
DATA : l_t_att_file TYPE TABLE OF l_ty_txt.
advise me the possible solution asap
thanks
03-13-2007 10:29 AM
Hi shishupalreddy,
i do it on this way and it work with more than 1000 chars.
DATA: BEGIN OF ITAB OCCURS 0,
TEXT(1250),
END OF ITAB.
*
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = 'D:\TEST.CSV'
CHANGING
DATA_TAB = ITAB[]
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
OTHERS = 9.
*
IF SY-SUBRC <> 0. WRITE: / SY-SUBRC. ENDIF.
*
LOOP AT ITAB.
WRITE: / ITAB-TEXT+0000(250).
WRITE: / ITAB-TEXT+0250(250).
WRITE: / ITAB-TEXT+0500(250).
WRITE: / ITAB-TEXT+0750(250).
WRITE: / ITAB-TEXT+1000(250).
ENDLOOP.
*
Regards, Dieter
03-13-2007 10:38 AM
Hi Deiter ,
I tried with the method you provided even then it is taking only 255 char .
could you please advise me a solutiion
thanks
03-13-2007 10:44 AM
Hi,
did you try it as i have shown?
Are this statements empty?
WRITE: / ITAB-TEXT+0250(250).
WRITE: / ITAB-TEXT+0500(250).
WRITE: / ITAB-TEXT+0750(250).
If you try debugger, the debugger doesn't the whole entry!
Does your .CSV has realy more than 255 char per line?
If that all OK, i don't have an idea. Sorry.
Regards, Dieter
03-13-2007 12:10 PM
Hi ,
One more issue i had ...
i.e :
Once we upload the data from .CSV to itab which is in ASC format .., how to convert the same data into BIN format .
The BIN format data I neeed to pass to one more FM which is used for sending mail s with attachment using SAP CONNECT and SEND process
thanks
03-13-2007 12:30 PM
03-14-2007 4:13 AM
Hi Dieter ,
The problem is not solved yet....
If u have any suggestions please let me know
thanks
03-14-2007 4:41 AM
Hi
Hay man in place of .CSV why not u try with .TXT then ur problem solved with using GUI_UPLOAD.
Please try it.
03-14-2007 4:51 AM
REPORT DOWNLOAD_FILE_CSV.
DATA:
BEGIN OF FS_SPFLI,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
COUNTRYFR TYPE SPFLI-COUNTRYFR,
CITYFROM TYPE SPFLI-CITYFROM,
AIRPFROM TYPE SPFLI-AIRPFROM,
COUNTRYTO TYPE SPFLI-COUNTRYTO,
CITYTO TYPE SPFLI-CITYTO,
AIRPTO TYPE SPFLI-AIRPTO,
FLTIME TYPE SPFLI-FLTIME,
DEPTIME TYPE SPFLI-DEPTIME,
ARRTIME TYPE SPFLI-ARRTIME,
DISTANCE TYPE SPFLI-DISTANCE,
DISTID TYPE SPFLI-DISTID,
FLTYPE TYPE SPFLI-FLTYPE,
PERIOD TYPE SPFLI-PERIOD,
END OF FS_SPFLI.
DATA:
T_SPFLI LIKE
STANDARD TABLE
OF FS_SPFLI.
DATA:
W_CHAR(1000) TYPE C.
DATA:
BEGIN OF FS_TABLE,
CHAR(100) TYPE C,
END OF FS_TABLE.
DATA:
T_TABLE LIKE STANDARD TABLE OF FS_TABLE.
FIELD-SYMBOLS <FS1> TYPE ANY.
SELECT CARRID
CONNID
COUNTRYFR
CITYFROM
AIRPFROM
COUNTRYTO
CITYTO
AIRPTO
FLTIME
DEPTIME
ARRTIME
DISTANCE
DISTID
FLTYPE
PERIOD
INTO TABLE T_SPFLI
FROM SPFLI.
LOOP AT T_SPFLI INTO FS_SPFLI.
DO.
ASSIGN COMPONENT SY-INDEX OF STRUCTURE FS_SPFLI TO <FS1>.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
WRITE <FS1> TO W_CHAR.
IF SY-INDEX EQ 1.
MOVE W_CHAR TO FS_TABLE-CHAR.
ELSE.
CONCATENATE FS_TABLE-CHAR ',' W_CHAR INTO FS_TABLE-CHAR.
ENDIF.
ENDDO.
APPEND FS_TABLE TO T_TABLE.
ENDLOOP.
*LOOP AT T_TABLE INTO FS_TABLE.
WRITE:
/ FS_TABLE-CHAR.
*ENDLOOP.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'd:\files\spfli.csv'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = T_TABLE
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Try this code...... Hope this helps you out...
Regards,
Pavan P
03-14-2007 4:57 AM
hi
try the following code n let me know if it fulfills ur requirement
tables: spfli.
data:
fs_spfli type spfli.
data:
t_spfli like standard table
of fs_spfli.
data:
begin of fs_table,
str type string,
end of fs_table.
data:
t_table like standard table
of fs_table.
field-symbols: <fs>.
data:
w_char(50) type c.
select * from spfli into table t_spfli.
loop at t_spfli into spfli.
do.
assign component sy-index of structure spfli to <fs>.
if sy-subrc ne 0.
exit.
else.
move <fs> to w_char.
if sy-index eq 1.
fs_table-str = <fs>.
else.
concatenate fs_table-str ',' w_char into fs_table-str.
endif.
endif.
enddo.
condense fs_table-str.
append fs_table to t_table.
endloop.
call function 'GUI_DOWNLOAD'
exporting
BIN_FILESIZE =
filename = 'D:\FILES\spfli-csv'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = ' '
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = ' '
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH =
tables
data_tab = t_table
FIELDNAMES =
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
.
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,
kiran kumar k
03-14-2007 5:01 AM
Hi ,
Try like this
data:V_FILE TYPE STRING.
PERFORM UPLOAD_DATA TABLES I_DATA USING P_FILE.
FORM UPLOAD_DATA TABLES P_TABLE
USING P_FILE.
V_FILE = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = V_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = P_TABLE
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.
IF SY-SUBRC <> 0 .
PERFORM DISP_ERROR_MESSAGE USING SY-SUBRC.
ENDIF.
reward , if it is useful.
Thanks,
Manjunath MS