‎2006 Dec 27 12:22 PM
Hi,
I am using gui_upload function module .
What should i specify in the
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
<b> FILENAME = ??????????????</b>
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
IMPORTING
FILELENGTH =
HEADER =
I want to enter the file name dynamically .
‎2006 Dec 27 12:26 PM
Hi Gayathri,
If you are taking file name from selection screen then follow this.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.
PERFORM GET_FILENAME .
*--
DATA: WL_RCODE TYPE I,
WL_TITLE TYPE STRING,
TL_FILETABLE TYPE FILETABLE,
WL_FILTER TYPE STRING .
FIELD-SYMBOLS: <L_FILE> TYPE FILE_TABLE.
*--
WL_FILTER = 'RFQ files *.*|'(M03).
WL_TITLE = 'Select RFQ file '(M02).
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = WL_TITLE
FILE_FILTER = WL_FILTER
CHANGING
FILE_TABLE = TL_FILETABLE
RC = WL_RCODE.
READ TABLE TL_FILETABLE ASSIGNING <L_FILE> INDEX 1.
IF SY-SUBRC = 0 .
P_PFILE = <L_FILE>-FILENAME.
ENDIF.
start of selection.
DATA:WL_FILE TYPE STRING .
IF NOT P_PFILE IS INITIAL.
WL_FILE = P_PFILE .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = WL_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = TL_UPLOAD
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 I032 WITH 'Error in File opening'(E32).
ENDIF.
[code]
‎2006 Dec 27 12:24 PM
Hi,
specify the file path where your file is located
regards,
pankaj singh
‎2006 Dec 27 12:26 PM
Hi Gayathri,
If you are taking file name from selection screen then follow this.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.
PERFORM GET_FILENAME .
*--
DATA: WL_RCODE TYPE I,
WL_TITLE TYPE STRING,
TL_FILETABLE TYPE FILETABLE,
WL_FILTER TYPE STRING .
FIELD-SYMBOLS: <L_FILE> TYPE FILE_TABLE.
*--
WL_FILTER = 'RFQ files *.*|'(M03).
WL_TITLE = 'Select RFQ file '(M02).
CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = WL_TITLE
FILE_FILTER = WL_FILTER
CHANGING
FILE_TABLE = TL_FILETABLE
RC = WL_RCODE.
READ TABLE TL_FILETABLE ASSIGNING <L_FILE> INDEX 1.
IF SY-SUBRC = 0 .
P_PFILE = <L_FILE>-FILENAME.
ENDIF.
start of selection.
DATA:WL_FILE TYPE STRING .
IF NOT P_PFILE IS INITIAL.
WL_FILE = P_PFILE .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = WL_FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = TL_UPLOAD
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 I032 WITH 'Error in File opening'(E32).
ENDIF.
[code]
‎2006 Dec 27 12:27 PM
‎2006 Dec 27 12:33 PM
HI,
Here is the sample code, Just check and try.
call function 'GUI_UPLOAD'
exporting
filename = 'C:\BDC1.TXT' " Give the file location(path)
filetype = 'ASC'
has_field_separator = 'X'
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.
Regards,
Kumar
‎2006 Dec 27 12:35 PM
Hi Gayatri:
You can aslo use the following:
SELECTION SCREEN
PARAMETERS : P_FILE TYPE RLGRAP-FILENAME DEFAULT ' '.
*--F4 help
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_file_path.
*--
FORM get_file_path .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = p_file.
Endform
*----
DATA: lv_filename TYPE string.
lv_filename = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_filename
TABLES
data_tab = it_line
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.
‎2006 Dec 27 12:36 PM
PARAMETERS:P_FILE TYPE RLGRAP-FILENAME.
DATA:V_FILE TYPE STRING.
start-of-selection.
V_FILE = P_FILE.
in the function specify:
filename = v_file.
‎2006 Dec 27 12:41 PM
Hi Gayatri,
You have to specify the name of file from which you have to upload the data into internal table.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'c:\filepath'filename.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
IMPORTING
FILELENGTH =
HEADER =
Regards
Ashutosh
Reward points if helpful
‎2006 Dec 27 2:17 PM
hi,
u can pass ur file path using two ways i.e either by passing file path directly in filename parameter of gui_upload. or use f4 help.
first method:
all function 'GUI_UPLOAD'
exporting
filename = 'Z:\sr.TXT'
filetype = 'ASC'
has_field_separator = 'X'
tables
data_tab = it_ven.
in filename parameter u have to pass filename with full path.
here if u use tab as delimitor u have to use has_field_separator or in asc u have to specify flatfile with exact field lengths i.e if lifnr is 15 u have to give 15 spaces.
(or )
parameters: p_file type ibipparms-path.
at selection-screen on value-request for p_file.
call function 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
importing
file_name = p_file.
in this case if u are using recording u have to comment include structure.and u have to write your own subroutines & u have to write the logic for session/calltransaction explicitly .