11-27-2007 9:53 AM
since gui_upload do not work in back ground , is their any other funcyion module that works in back ground
11-27-2007 10:21 AM
Hi ,
Please consider the Amit suggestion. Here we need to place file in application server using OPEN DATASET and also we can use following transactions, directly place a file without programing in application server.
CG3Y = Download
CG3Z = Upload
If helpful, rewards it.
Regards,
Vishvesh
11-27-2007 9:54 AM
You cannot pick the file from LOcal server using FM.Use OPEN DATASET instead.
Regards,
Amit
11-27-2007 9:56 AM
11-27-2007 9:58 AM
11-27-2007 10:01 AM
Hi,
Use this FM which replaces GUI_UPLOAD
<b>TEXT_CONVERT_XLS_TO_SAP </b>
regards
sham.
11-27-2007 10:06 AM
You cannot use GUI_UPLOAD in background.Write the same file in application server and then read from application server.This can be done in background.
Sample code:
For writing in Application Server:
types: BEGIN OF ty_output,
field(500) TYPE c,
END OF ty_output.
data : t_output TYPE STANDARD TABLE OF ty_output,
w_output TYPE ty_output.
Opening the file for output in text mode
OPEN DATASET p_afile FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
IF sy-subrc NE 0.
CLEAR g_flg.
g_flg = c_x.
MESSAGE s000 WITH text-003 p_afile text-004.
"Error in opening file for output
LEAVE LIST-PROCESSING.
ENDIF.
LOOP AT t_output INTO w_output.
TRANSFER w_output TO p_afile.
ENDLOOP.
Closing the file
CLOSE DATASET p_afile.
IF sy-subrc NE 0.
"Error in closing file
LEAVE LIST-PROCESSING.
ENDIF.
For reading:
DATA : G_DATA(1000) TYPE C,
G_DELIM TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB.
DATA: BEGIN OF T_INPUT OCCURS 0, " Flat file data
PERNR(9) TYPE C,
AMOUNT(15) TYPE C,
W_TYPE(5) TYPE C,
END OF T_INPUT.
OPEN DATASET G_AFILE1 FOR INPUT IN TEXT MODE ENCODING DEFAULT.
IF SY-SUBRC = 0.
DO.
READ DATASET G_AFILE1 INTO G_DATA.
IF SY-SUBRC = 0.
SPLIT G_DATA AT G_DELIM INTO T_INPUT-PERNR T_INPUT-AMOUNT
T_INPUT-W_TYPE .
IF SY-SUBRC = 0.
APPEND T_INPUT.
CLEAR T_INPUT.
ELSE.
MESSAGE E001 WITH TEXT-012 G_AFILE1.
ENDIF.
ELSE.
EXIT. "After reading last Record
ENDIF.
ENDDO.
ELSE.
MESSAGE E001 WITH TEXT-013 G_AFILE1.
ENDIF.
11-27-2007 10:21 AM
Hi ,
Please consider the Amit suggestion. Here we need to place file in application server using OPEN DATASET and also we can use following transactions, directly place a file without programing in application server.
CG3Y = Download
CG3Z = Upload
If helpful, rewards it.
Regards,
Vishvesh
11-27-2007 10:57 AM
Hi selvaraj,
GUI_DOWNLOAD, WS_DOWNLOAD etc.. all these function modules create a file in your presentation Server this is Front end work but you are trying to execute this function module in back ground, Back ground jobs cannot do Front End Applications so, in back ground the system does not create a file in presentation server so if you want to downlod in back ground use OPEN DATASET Syntax for Application Server.
Please Reward,
Mahi.
11-27-2007 11:08 AM
Uploading data directly from Excel file format
Upload data direct from excel.xls file to SAP
REPORT ZEXCELUPLOAD.
PARAMETERS: filename LIKE rlgrap-filename MEMORY ID M01,
begcol TYPE i DEFAULT 1 NO-DISPLAY,
begrow TYPE i DEFAULT 1 NO-DISPLAY,
endcol TYPE i DEFAULT 100 NO-DISPLAY,
endrow TYPE i DEFAULT 32000 NO-DISPLAY.
Tick don't append header
PARAMETERS: kzheader AS CHECKBOX.
DATA: BEGIN OF intern OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA: END OF intern.
DATA: BEGIN OF intern1 OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA: END OF intern1.
DATA: BEGIN OF t_col OCCURS 0,
col LIKE alsmex_tabline-col,
size TYPE i.
DATA: END OF t_col.
DATA: zwlen TYPE i,
zwlines TYPE i.
DATA: BEGIN OF fieldnames OCCURS 3,
title(60),
table(6),
field(10),
kz(1),
END OF fieldnames.
No of columns
DATA: BEGIN OF data_tab OCCURS 0,
value_0001(50),
value_0002(50),
value_0003(50),
value_0004(50),
value_0005(50),
value_0006(50),
value_0007(50),
value_0008(50),
value_0009(50),
value_0010(50),
value_0011(50),
value_0012(50),
value_0013(50),
value_0014(50),
value_0015(50),
value_0016(50),
value_0017(50),
value_0018(50),
value_0019(50),
value_0020(50),
value_0021(50),
value_0022(50),
value_0023(50),
value_0024(50),
value_0025(50),
value_0026(50),
value_0027(50),
value_0028(50),
value_0029(50),
value_0030(50),
value_0031(50),
value_0032(50),
value_0033(50),
value_0034(50),
value_0035(50),
value_0036(50),
value_0037(50),
value_0038(50),
value_0039(50),
value_0040(50),
value_0041(50),
value_0042(50),
value_0043(50),
value_0044(50),
value_0045(50),
value_0046(50),
value_0047(50),
value_0048(50),
value_0049(50),
value_0050(50),
value_0051(50),
value_0052(50),
value_0053(50),
value_0054(50),
value_0055(50),
value_0056(50),
value_0057(50),
value_0058(50),
value_0059(50),
value_0060(50),
value_0061(50),
value_0062(50),
value_0063(50),
value_0064(50),
value_0065(50),
value_0066(50),
value_0067(50),
value_0068(50),
value_0069(50),
value_0070(50),
value_0071(50),
value_0072(50),
value_0073(50),
value_0074(50),
value_0075(50),
value_0076(50),
value_0077(50),
value_0078(50),
value_0079(50),
value_0080(50),
value_0081(50),
value_0082(50),
value_0083(50),
value_0084(50),
value_0085(50),
value_0086(50),
value_0087(50),
value_0088(50),
value_0089(50),
value_0090(50),
value_0091(50),
value_0092(50),
value_0093(50),
value_0094(50),
value_0095(50),
value_0096(50),
value_0097(50),
value_0098(50),
value_0099(50),
value_0100(50).
DATA: END OF data_tab.
DATA: tind(4) TYPE n.
DATA: zwfeld(19).
FIELD-SYMBOLS: <fs1>.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
mask = '*.xls'
static = 'X'
CHANGING
file_name = filename.
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = filename
i_begin_col = begcol
i_begin_row = begrow
i_end_col = endcol
i_end_row = endrow
TABLES
intern = intern
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
WRITE:/ 'Upload Error ', SY-SUBRC.
ENDIF.
END-OF-SELECTION.
LOOP AT intern.
intern1 = intern.
CLEAR intern1-row.
APPEND intern1.
ENDLOOP.
SORT intern1 BY col.
LOOP AT intern1.
AT NEW col.
t_col-col = intern1-col.
APPEND t_col.
ENDAT.
zwlen = strlen( intern1-value ).
READ TABLE t_col WITH KEY col = intern1-col.
IF sy-subrc EQ 0.
IF zwlen > t_col-size.
t_col-size = zwlen.
Internal Table, Current Row Index
MODIFY t_col INDEX sy-tabix.
ENDIF.
ENDIF.
ENDLOOP.
DESCRIBE TABLE t_col LINES zwlines.
SORT intern BY row col.
IF kzheader = 'X'.
LOOP AT intern.
fieldnames-title = intern-value.
APPEND fieldnames.
AT END OF row.
EXIT.
ENDAT.
ENDLOOP.
ELSE.
DO zwlines TIMES.
WRITE sy-index TO fieldnames-title.
APPEND fieldnames.
ENDDO.
ENDIF.
SORT intern BY row col.
LOOP AT intern.
IF kzheader = 'X'
AND intern-row = 1.
CONTINUE.
ENDIF.
tind = intern-col.
CONCATENATE 'DATA_TAB-VALUE_' tind INTO zwfeld.
ASSIGN (zwfeld) TO <fs1>.
<fs1> = intern-value.
AT END OF row.
APPEND data_tab.
CLEAR data_tab.
ENDAT.
ENDLOOP.
CALL FUNCTION 'DISPLAY_BASIC_LIST'
EXPORTING
file_name = filename
TABLES
data_tab = data_tab
fieldname_tab = fieldnames.
*-- End of Program
Hope this will help you,
Reward if useful.