Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Isuue with GUI_UPLOAD

shishupalreddy
Active Contributor
0 Kudos

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

14 REPLIES 14

former_member181962
Active Contributor
0 Kudos

can you show your code?

Regards,

Ravi

shishupalreddy
Active Contributor
0 Kudos

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

0 Kudos

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

shishupalreddy
Active Contributor
0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

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

0 Kudos

Hi shishupalreddy,

is the other problem solved???

regards, Dieter

0 Kudos

Hi Dieter ,

The problem is not solved yet....

If u have any suggestions please let me know

thanks

navin_khedikar2
Contributor
0 Kudos

Hi

Hay man in place of .CSV why not u try with .TXT then ur problem solved with using GUI_UPLOAD.

Please try it.

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

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