11-14-2007 10:59 AM
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
11-14-2007 11:02 AM
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
11-14-2007 11:02 AM
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
11-14-2007 11:05 AM
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>
11-14-2007 11:11 AM
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
11-14-2007 11:11 AM
11-14-2007 11:53 AM
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>
11-14-2007 12:47 PM
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.