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: 

file uploading / downloading

VB09104
Active Participant
0 Kudos

hello all,

can any one explain me about file uploading and downloading.

how the FM's GUI_UPLOAD and DOWNLOAD works,

also why we do not use the FM's WS_UPLOAD

if any material regarding this plz mail me at vikas.bhagwat@gmail.com

thanks for help in advance.

vikas

1 ACCEPTED SOLUTION

former_member386202
Active Contributor
0 Kudos

Hi,

GUI_DOWNLOAD AND GUI_UPLOAD are new version on upload and download.

Upload and download are onsolete FM in ECC6.0 so dont use that.

Refer this code.

*--Call the function to get the file into an internal table.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = lv_file

filetype = 'ASC'

TABLES

data_tab = pr_eord

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.

  • File not found.

MESSAGE e503.

ELSE.

*--Call function to download the error file

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = file

filetype = 'ASC'

TABLES

data_tab = pr_eord_error

EXCEPTIONS

file_write_error = 1

no_authority = 5

unknown_error = 6

access_denied = 15

file_not_found = 19.

CASE sy-subrc .

WHEN '1'.

  • Unable to write the error file.

MESSAGE e505.

WHEN '2'.

  • No authority to write the file.

MESSAGE e506.

WHEN '3'.

  • Access Denied.

MESSAGE e507.

WHEN '4'.

  • File not Found.

MESSAGE e503.

ENDCASE.

Reward Points

Reagrds,

PRashant

6 REPLIES 6

former_member386202
Active Contributor
0 Kudos

Hi,

GUI_DOWNLOAD AND GUI_UPLOAD are new version on upload and download.

Upload and download are onsolete FM in ECC6.0 so dont use that.

Refer this code.

*--Call the function to get the file into an internal table.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = lv_file

filetype = 'ASC'

TABLES

data_tab = pr_eord

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.

  • File not found.

MESSAGE e503.

ELSE.

*--Call function to download the error file

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

filename = file

filetype = 'ASC'

TABLES

data_tab = pr_eord_error

EXCEPTIONS

file_write_error = 1

no_authority = 5

unknown_error = 6

access_denied = 15

file_not_found = 19.

CASE sy-subrc .

WHEN '1'.

  • Unable to write the error file.

MESSAGE e505.

WHEN '2'.

  • No authority to write the file.

MESSAGE e506.

WHEN '3'.

  • Access Denied.

MESSAGE e507.

WHEN '4'.

  • File not Found.

MESSAGE e503.

ENDCASE.

Reward Points

Reagrds,

PRashant

varma_narayana
Active Contributor
0 Kudos

Hi..

WS_UPLOAD and WS_DOWNLOAD are obselete from 4.7.

So we have to use GUI_Upload and GUI_Download.

Eg:

to Download the data into a Local file along with Field Names?

data: begin OF itab occurs 0,

matnr like mara-matnr,

end of itab.

data : begin of it_fieldnames occurs 0,

name(100),

end of it_fieldnames.

it_fieldnames-name = 'MATNR'.

APPEND IT_FIELDNAMES.

select matnr from mara into table itab UP TO 10 ROWS.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = 'C:\Documents and Settings\sampath\Desktop\flatfile.txt'

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 = itab

FIELDNAMES = IT_FIELDNAMES .

<b>reward if Helpful.</b>

Former Member
0 Kudos

Hi Vikas,

To understand the functionality of Upload see the following code:-

&----


*& Report ZUPLOAD *

*& *

&----


*& *

*& *

&----


REPORT ZSHILPI_UPLOAD .

data: itab type standard table of zhclpconfig,

PATH TYPE STRING.

PARAMETER: P_PATH TYPE RLGRAP-FILENAME.

MOVE P_PATH TO PATH.

START-OF-SELECTION.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = PATH

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • IMPORTING

  • FILELENGTH =

  • HEADER =

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

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*END-OF-SELECTION.

and to Understand the functionality of download one see the following code:-

&----


*& Report ZDOWNLOAD *

*& *

&----


*& *

*& *

&----


REPORT ZSHILPI_UPLOAD .

data: itab type standard table of zhclpconfig,

PATH TYPE STRING.

PARAMETER: P_PATH TYPE RLGRAP-FILENAME.

START-OF-SELECTION.

MOVE P_PATH TO PATH.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

FILENAME = PATH

FILETYPE = 'ASC'

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • 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 = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = ITAB

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.

ENDIF.

&----


*& Form F_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_SELECT .

SELECT * FROM zhclpconfig INTO CORRESPONDING FIELDS OF TABLE ITAB.

ENDFORM. " F_SELECT

Reward Points if useful.

Regards,

Shilpi

Former Member
0 Kudos

hi

u will get answer for all your question in the following thread.

regards,

pavan

reward points if useful

Former Member
0 Kudos

Hi

refer this document

http://www.sapdevelopment.co.uk/file/file_updown.htm

WS_UPLOAD and DOWNLOAD are used in the older vertion before 4.7

after 4.7 we have GUI_UPLOAD and DOWNLOAD

<b>Reward if useful</b>

Former Member
0 Kudos

Hi vikas,

there r 3 function modules for downloading the data from internal(dictionary)

tables into the files in application server.

1.DOWNLOAD

2.WS_DOWNLOAD

3.GUI_DOWNLOAD

just hv a look on the following code.

TABLES: VBAK,VBAP.

DATA: BEGIN OF I_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

END OF I_VBAK.

DATA: BEGIN OF I_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF I_VBAP.

DATA: BEGIN OF IT_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF IT_VBAK.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP FROM VBAK INTO TABLE I_VBAK.

SELECT VBELN POSNR MATNR CHARG MATKL FROM VBAP INTO TABLE I_VBAP.

SORT: I_VBAK BY VBELN,I_VBAP BY VBELN.

LOOP AT I_VBAK.

READ TABLE I_VBAP WITH KEY VBELN = I_VBAK-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE I_VBAK-VBELN TO IT_VBAK-VBELN.

MOVE I_VBAK-ERDAT TO IT_VBAK-ERDAT.

MOVE I_VBAK-ERNAM TO IT_VBAK-ERNAM.

MOVE I_VBAK-AUDAT TO IT_VBAK-AUDAT.

MOVE I_VBAK-VBTYP TO IT_VBAK-VBTYP.

MOVE I_VBAP-POSNR TO IT_VBAK-POSNR.

MOVE I_VBAP-MATNR TO IT_VBAK-MATNR.

MOVE I_VBAP-CHARG TO IT_VBAK-CHARG.

MOVE I_VBAP-MATKL TO IT_VBAK-MATKL.

APPEND IT_VBAK.

ENDIF.

ENDLOOP.

*& IT ASKS THE CONFIRMATION FOR THE FILE FORMATE,WE CAN CHANGE THE FILENAME DYNAMICALLY(e.g DOC-TXT,XLS)

*CALL FUNCTION 'DOWNLOAD'

  • EXPORTING

    • BIN_FILESIZE = ' '

    • CODEPAGE = ' '

  • FILENAME = 'D:\C1.TXT'

  • FILETYPE = 'DAT' "ASC is also another format

    • ITEM = ' '

    • MODE = ' '

    • WK1_N_FORMAT = ' '

    • WK1_N_SIZE = ' '

    • WK1_T_FORMAT = ' '

    • WK1_T_SIZE = ' '

    • FILEMASK_MASK = '.TXT'

    • FILEMASK_TEXT = ' '

    • FILETYPE_NO_CHANGE = 'X'

    • FILEMASK_ALL = ' '

  • FILETYPE_NO_SHOW = 'X' "THIS WILL NOT SHOW THE FILE TYPE(DAT) WHILE CONFIRMATION OF FILE NAME

  • SILENT = 'S'

    • COL_SELECT = ' '

    • COL_SELECTMASK = ' '

    • NO_AUTH_CHECK = ' '

    • IMPORTING

    • ACT_FILENAME =

    • ACT_FILETYPE =

    • FILESIZE =

    • CANCEL =

  • TABLES

  • DATA_TAB = IT_VBAK

    • FIELDNAMES =

  • EXCEPTIONS

  • INVALID_FILESIZE = 1

  • INVALID_TABLE_WIDTH = 2

  • INVALID_TYPE = 3

  • NO_BATCH = 4

  • UNKNOWN_ERROR = 5

  • GUI_REFUSE_FILETRANSFER = 6

  • OTHERS = 7

  • .

*IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

*& this will not ask for the confirmation for the filename

*CALL FUNCTION 'WS_DOWNLOAD'

  • EXPORTING

    • BIN_FILESIZE = ' '

    • CODEPAGE = ' '

  • FILENAME = 'D:\C2.DOC'

  • FILETYPE = 'DAT'

    • MODE = ' '

    • WK1_N_FORMAT = ' '

    • WK1_N_SIZE = ' '

    • WK1_T_FORMAT = ' '

    • WK1_T_SIZE = ' '

    • COL_SELECT = ' '

    • COL_SELECTMASK = ' '

    • NO_AUTH_CHECK = ' '

    • IMPORTING

    • FILELENGTH =

  • TABLES

  • DATA_TAB = IT_VBAK

    • FIELDNAMES =

    • EXCEPTIONS

    • FILE_OPEN_ERROR = 1

    • FILE_WRITE_ERROR = 2

    • INVALID_FILESIZE = 3

    • INVALID_TYPE = 4

    • NO_BATCH = 5

    • UNKNOWN_ERROR = 6

    • INVALID_TABLE_WIDTH = 7

    • GUI_REFUSE_FILETRANSFER = 8

    • CUSTOMER_ERROR = 9

    • NO_AUTHORITY = 10

    • OTHERS = 11

  • .

*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

  • BIN_FILESIZE =

FILENAME = 'D:\C5.DOC'

FILETYPE = 'ASC' "Separate Columns by Tabs in Case of ASCII Download

  • APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

CONFIRM_OVERWRITE = 'X' "Overwrite The File Only After

Confirmation

  • 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 = ' '

  • WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

  • IMPORTING

  • FILELENGTH =

TABLES

DATA_TAB = IT_VBAK

  • 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.

if u need any help abt this one,i welcome u to clarify them.

reward points,if it is useful.