Application Development and Automation 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: 
Read only

error in downloading

Former Member
0 Likes
641

Hi,

I am doing one function module. in which i have to download the final table data in

Excel file. The name of the file should be dynamically generated (i.e as in ALV during downloading). I am using Ws_file_get function module. But this is giving run time exception. Here is my code .Pls tell me what mistake i am doing.

FUNCTION Z_SALES_DOWNLOAD.

*"----


""Local interface:

*" IMPORTING

*" VALUE(V_VBELN) TYPE VBELN_VA

*" TABLES

*" IT_VBAK STRUCTURE VBAK

*" IT_AFKO STRUCTURE AFKO

*" IT_VBAP STRUCTURE VBAP

*"----


TYPES:BEGIN OF STRUCT_RESULT,

VBELN TYPE VBELN_VA,

POSNR TYPE POSNR_VA,

AUDAT TYPE AUDAT,

AUFNR TYPE AUFNR,

END OF STRUCT_RESULT.

DATA:IT_RESULT TYPE STANDARD TABLE OF STRUCT_RESULT,

WA_RESULT LIKE LINE OF IT_RESULT.

TYPES: BEGIN OF download_types,

s1(20) ,

s2(20) ,

s3(20) ,

s4(20) ,

END OF download_types.

DATA: itab_download TYPE STANDARD TABLE OF download_types,

wa_download LIKE LINE OF itab_download.

*CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = 'V_FILE'

    • IMPORTING

  • FILE_NAME = 'V_FILE'

.

DATA:v_file LIKE rlgrap-filename ."sgarg

*v_file = 'C:\Documents and Settings\DamarDPR\Desktop\sales.xls'.

IF NOT V_VBELN IS INITIAL.

SELECT * FROM VBAK INTO TABLE IT_VBAK WHERE VBELN = V_VBELN.

IF NOT IT_VBAK[] IS INITIAL.

SELECT * FROM AFKO INTO TABLE IT_AFKO FOR ALL ENTRIES IN IT_VBAK

WHERE AUFNR = IT_VBAK-AUFNR.

SELECT * FROM VBAP INTO TABLE IT_VBAP FOR ALL ENTRIES IN IT_VBAK

WHERE VBELN = IT_VBAK-VBELN.

ENDIF.

LOOP AT IT_VBAK.

READ TABLE IT_VBAK WITH KEY IT_VBAK-VBELN.

MOVE IT_VBAK-VBELN TO WA_RESULT-VBELN.

MOVE IT_VBAK-AUDAT TO WA_RESULT-AUDAT.

  • MODIFY TABLE IT_RESULT FROM WA_RESULT.

  • CLEAR WA_RESULT.

  • ENDLOOP.

READ TABLE IT_VBAP WITH KEY IT_VBAK-VBELN.

MOVE IT_VBAP-POSNR TO WA_RESULT-POSNR.

*

  • LOOP AT IT_AFKO.

READ TABLE IT_AFKO WITH KEY IT_VBAK-VBELN.

MOVE IT_VBAK-AUFNR TO WA_RESULT-AUFNR.

  • MODIFY TABLE IT_RESULT FROM WA_RESULT.

  • CLEAR WA_RESULT.

  • ENDLOOP.

  • LOOP AT IT_VBAP.

APPEND WA_RESULT TO IT_RESULT.

  • MODIFY TABLE IT_RESULT FROM WA_RESULT.

CLEAR WA_RESULT.

ENDLOOP.

ENDIF.

*loop at itab_download into wa_download.

wa_download-s1 = 'SalesOrder'.

wa_download-s2 = 'Item'.

wa_download-s3 = 'DueDate'.

wa_download-s4 = 'ProductionOrder'.

insert wa_download into table itab_download.

clear wa_download.

*endloop.

loop at it_result into wa_result.

wa_download-s1 = wa_result-vbeln.

wa_download-s2 = wa_result-posnr.

wa_download-s3 = wa_result-audat.

wa_download-s4 = wa_result-aufnr.

append wa_download to itab_download.

clear wa_download.

endloop.

******sandeep****

CALL FUNCTION 'WS_FILENAME_GET'

  • EXPORTING

  • DEF_FILENAME = ' '

  • DEF_PATH = ' '

  • MASK = ' '

  • MODE = ' '

  • TITLE = ' '

IMPORTING

FILENAME = v_file

  • RC =

  • 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.

******sandeep**

CALL FUNCTION 'WS_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE = ' '

  • CODEPAGE = ' '

  • FILENAME = v_file

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 = itab_download

  • FIELDNAMES = itab_download

  • 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

  • OTHERS = 10

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFUNCTION.

5 REPLIES 5
Read only

Former Member
0 Likes
565

Hi sandeep,

Go to ST22 and Analyse the Run time Error.

Thanks,

Read only

Former Member
0 Likes
565

HI,

You are declared the V_FILE like <b>DATA:v_file LIKE rlgrap-filename ."sgarg</b> ..

take it as Type C and try it

Regadrs

Sudheer

Read only

0 Likes
565

Hi Sudheer,

I tried by giving file type as c.

Bt it is agaun Dump.

So pls help me.

Thanks.

Read only

0 Likes
565

can you tell us wht is in dump

Read only

0 Likes
565

Hi Sudheer,

Here i am doing paste of dump.

Information on where termination occurred

The termination occurred in the ABAP/4 prog

"WS_FILENAME_GET".

The main program was "RS_TESTFRAME_CALL ".

The termination occurred in line 127

of the source code of program "LGRAPU50 " (

Source code extract

000970 LEN = STRLEN( TEXT ).

000980 WRITE ',' TO TEXT+LEN.

000990 LEN = STRLEN( TEXT ).

001000 WRITE DEF_FILENAME TO TEXT+LEN.

001010 LEN = STRLEN( TEXT ).

001020 * MASK = ',All Files,.,Some File

001030 WRITE MASK TO TEXT+LEN.

001040

001050 PERFORM GR_SEND_C USING TEXT.

001060 CLEAR RC.

001070

001080 CALL FUNCTION 'GRAPH_RECEIVE'.

001090 CALL FUNCTION 'GRAPH_GET_PARAM'

001100 IMPORTING

001110 RBUFF = RTEXT. "// RC=<NUL><xxx>

001120

001130 LEN = STRLEN( RTEXT ) - 4. "// Skip 'RC=<NUL>'

001140 IF LEN GT 0.

001150 ASSIGN RTEXT+3(LEN) TO <F>.

001160 IF <F> CA HEXNUL. "// only until <NUL>

001170 ASSIGN <F>(SY-FDPOS) TO <F>.

001180 ENDIF.

001190 FILENAME = <F>.

001200 DATA: HEAD(2).

001210 HEAD = <F>.

001220 IF HEAD = '#1'. "// CANCEL

001230 CLEAR RC.

001240 CLEAR FILENAME.

001250 PERFORM GR_SEND USING 'K' 'QURY'.

001260 CALL FUNCTION 'GRAPH_RECEIVE'. "// just wait.

> RAISE SELECTION_CANCEL.

001280 ELSEif HEAD = '#2'. "// SELECTION ERROR

001290 CLEAR RC.

001300 CLEAR FILENAME.

001310 PERFORM GR_SEND USING 'K' 'QURY'.

001320 CALL FUNCTION 'GRAPH_RECEIVE'. "// just wait.

001330 RAISE SELECTION_ERROR.

001340 else.

001350 * GL 24.1.1996

001360 * check if selected file fits in Return-Parameter

001370 IF FILENAME = <F>. "// long enough

001380 RC = '0'.

001390 ELSE. "// not long enough

Pls look into this.