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: 

A function module that can replace gui_upload

Former Member
0 Kudos

since gui_upload do not work in back ground , is their any other funcyion module that works in back ground

1 ACCEPTED SOLUTION

Former Member
0 Kudos

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

8 REPLIES 8

amit_khare
Active Contributor
0 Kudos

You cannot pick the file from LOcal server using FM.Use OPEN DATASET instead.

Regards,

Amit

0 Kudos

my text file is present in presentation server

former_member386202
Active Contributor
0 Kudos

Hi,

Use FM ALSM_EXCEL_TO_INTERNAL_TABLE.

Regards,

Prashant

asik_shameem
Active Contributor
0 Kudos

Hi,

Use this FM which replaces GUI_UPLOAD

<b>TEXT_CONVERT_XLS_TO_SAP </b>

regards

sham.

Former Member
0 Kudos

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.

Former Member
0 Kudos

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

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.