09-22-2005 2:27 PM
hi all
i have to upload multiple files together and have to send to application server. I am able to do with single file but not getting any idea how to upload multiple files together.
if someone has faced the same problem before can please help me. or if some one have idea plz help me its urgent for me. and can please send me the logic
it will be great help.
plz help !!!!
thanks
09-22-2005 2:34 PM
hi,
i thing already some posting are there.
read all the file names and keep it to one itab
loop at itab.
use upload function ( how you are doing for single file )
and using open dataset you can write into application server.
endloop
cheers,
sasi
09-22-2005 2:43 PM
hi
please can you tell me...what parameter should i maintain. And i dont know the filenames too.
so can u define some method for that
Plz if possible help
09-22-2005 2:56 PM
Hi,
try with this
data: l_filename type string OCCURS 0 WITH HEADER LINE.
l_filename = 'c:\temp1.xls'.
APPEND L_FILENAME
l_filename = 'c:\temp2.xls'.
APPEND L_FILENAME
LOOP AT L_FILENAME
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = l_filename
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = '#'
TABLES
DATA_TAB = itab1.
OPEN DATASET <applicationfilename> FOR OUTPUT IN TEXT MODE.
IF sy-subrc = 0.
LOOP AT ITAB1
TRANSFER ITAB1 TO pt_infil .
ENDLOOP.
ENDIF.
CLOSE DATASET pt_infil.
ENDLOOP.
09-22-2005 3:01 PM
Hi,
try:
1) CL_GUI_FRONTEND_SERVICES->DIRECTORY_LIST_FILES
2) loop at file_table.
fm C13Z_FILE_UPLOAD_ASCII
endloop.
Andreas
09-22-2005 3:10 PM
hi
i am still confused....if i append the l_filename. but what should be the select option for user to select the files.
as i dont know what are the file names. they could be any. so please a little bit help more reuqiered..
plz help
thanks
09-22-2005 3:31 PM
hi,
try with this
tables tline.
data: l_filename type string OCCURS 0 WITH HEADER LINE.
select-options l_file for tline-tdline no intervals.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR l_file-low.
*To get file name from user's workstation
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = l_file-low
def_path = 'c:/'
mask = ',.,..'
mode = 'S'
IMPORTING
filename = l_file-low
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
09-22-2005 3:33 PM
Hi all,
An exampl to do that:
PARAMETERS: p_path(1024) DEFAULT 'c:\tmp\',
p_appl LIKE RCGFILETR-FTAPPL DEFAULT '/home/ABALLAY/Pablo'.
DATA: v_count type i,
v_path TYPE STRING,
v_filename LIKE RCGFILETR-FTFRONT,
wa_tab LIKE FILE_INFO.
DATA: TAB TYPE STANDARD TABLE OF FILE_INFO.
DATA: BEGIN OF t_data OCCURS 0,
LINE(1000),
END OF t_data.
v_path = p_path.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_LIST_FILES
EXPORTING
DIRECTORY = v_path
FILTER = '.'
FILES_ONLY =
DIRECTORIES_ONLY =
CHANGING
FILE_TABLE = TAB
COUNT = v_count.
EXCEPTIONS
CNTL_ERROR = 1
DIRECTORY_LIST_FILES_FAILED = 2
WRONG_PARAMETER = 3
ERROR_NO_GUI = 4
NOT_SUPPORTED_BY_GUI = 5
others = 6
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
break-point.
OPEN DATASET p_appl FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
LOOP AT TAB INTO WA_TAB..
CONCATENATE p_path wa_tab-filename INTO v_filename.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = v_filename
FILETYPE = 'ASC'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
DATA_TAB = t_data
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 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.
LOOP AT t_data.
TRANSFER t_data TO p_appl.
ENDLOOP.
ENDLOOP.
Regards
PabloX.
09-22-2005 5:13 PM
Hi Anu,
in the following, you might have to change path-separators according to your back/frontend OS but otherwise it's fully functional for your request.
Regards Jörg
REPORT ztest99 .
PARAMETERS: path(128) LOWER CASE OBLIGATORY.
DATA: filtab TYPE filetable,
filline TYPE LINE OF filetable,
a_file TYPE string.
DATA: intab TYPE TABLE OF string,
a_line TYPE string.
DATA: target TYPE string.
DATA: rc TYPE i.
DATA: ix TYPE i.
DATA: dummy TYPE TABLE OF string WITH HEADER LINE.
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Select files for upload'
DEFAULT_EXTENSION =
DEFAULT_FILENAME =
FILE_FILTER =
INITIAL_DIRECTORY =
multiselection = 'X'
CHANGING
file_table = filtab
rc = rc
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc <> 0.
Do some Error Handling
ENDIF.
LOOP AT filtab INTO a_file.
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = a_file
filetype = 'ASC'
CHANGING
data_tab = intab
EXCEPTIONS
file_open_error = 1
file_read_error = 2.
IF sy-subrc <> 0.
DO SOME ERROR HANDLING
ENDIF.
SPLIT a_file AT '' INTO TABLE dummy.
ix = LINES( dummy ).
READ TABLE dummy INDEX ix.
CONCATENATE path dummy INTO target SEPARATED BY '/'.
OPEN DATASET target FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
CHECK sy-subrc EQ 0.
LOOP AT intab INTO a_line.
TRANSFER a_line TO target.
ENDLOOP.
CLOSE DATASET target.
ENDLOOP.