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: 

Data download to excel

Former Member
0 Kudos

Hi all,

I need to transfer the report data of a program to excel when it completes the running in background.

If the program running in background mode then the data of the report be transferred into an comma-seperated file or excel file,

How can I do?

Thanks in advance.

Deniz.

1 ACCEPTED SOLUTION

naimesh_patel
Active Contributor
0 Kudos

If report is running into background than you can only save your file to Application server. So, to download file on application server you need to use the OPEN DATASET, TRANSFER, CLOSE DATASET syntax.

Once file is createed to server, you can make one small program which can read the file and stores it to the presentation server.

Regards,

Naimesh Patel

6 REPLIES 6

Former Member
0 Kudos

You have to use

OPEN DATASET Command inorder to download when program runs on Back ground since Function module like ws_download or gui_download will not support in background.

Thanks

Seshu

naimesh_patel
Active Contributor
0 Kudos

If report is running into background than you can only save your file to Application server. So, to download file on application server you need to use the OPEN DATASET, TRANSFER, CLOSE DATASET syntax.

Once file is createed to server, you can make one small program which can read the file and stores it to the presentation server.

Regards,

Naimesh Patel

0 Kudos

Thanks for your answer.

How can I write the necessary code to send the data to file using open dataset,

transfer and close dataset...

Please write me,I will reward your answers, and those who replies..

Thanks.

0 Kudos

Check the below example program :

parameters: d1 type localfile default

'/usr/sap/TST/SYS/Test.txt'.

data: begin of itab occurs 0,

field1(20) type c,

field2(20) type c,

field3(20) type c,

end of itab.

data: str type string.

constants: con_tab type x value '09'.

  • if you have a newer version, then you can use this

instead.

*constants:

  • con_tab type c value

cl_abap_char_utilities=>HORIZONTAL_TAB.

start-of-selection.

itab-field1 = 'ABC'.

itab-field2 = 'DEF'.

itab-field3 = 'GHI'.

append itab.

itab-field1 = '123'.

itab-field2 = '456'.

itab-field3 = '789'.

append itab.

open dataset d1 for output in text mode.

loop at itab.

translate itab using ' # '.

concatenate itab-field1 itab-field2 itab-field2

into str

separated by con_tab.

translate str using ' # '.

transfer str to d1.

endloop.

close dataset d1.

Thanks

Seshu

Former Member
0 Kudos

Hi Deniz,

Use FM GUI_DOWNLOAD in the program

pass the parameters as below

import parameters:

File name - 'TEST.XLS'.

File Type - 'ASC'.

comma-seperation indicator - 'X'.

Tables:

<internal table>

Hope your problem will get resolved.

<b>Reward points for helpful answers</b>

Satish

Former Member
0 Kudos

Hi,

Please refer to the below mentioned code & reward points if found suitable.

Regards,

IFF

Download in Background in Excel Format

How to download the data in excel format directly while executing in background mode?

If you will execute it in bacground with ws_download or download, it will be aoutomatically cancel. so what is the procedure to do this. How is can directly read the spool from program?

Download from background is possible, if you could setup the environment

1. create a custom table first

Table : Y001

Displayed fields: 4 of 4 Fixed columns:

MANDT BNAME Y_SITE Y_PATH

010 <userid> <site> cd <novell_path>

2. rewrite ws_download to z_download (light modification required, see attachment)

3. ask your basis team to make a copy of command FTP and CHMOD to ZFTP and ZCHMOD resp., make the setting according to your environment.

1 *----


2 * Changed By :

3 * Changed On :

4 * Changed : NOVELL directory path based on SAP login id.

5 *----


6 TABLES: Y001.

7

8 CONSTANTS: C_PATH(14) VALUE '/home/ftpuser/'.

9

10 DATA: BEGIN OF C_TAB,

11 X(1) TYPE X VALUE '09',

12 END OF C_TAB.

13

14 DATA: BUFFER(8000),

15 FIELDNAME_OFFSET TYPE I,

16 * FULLPATH(128),

17 FULLPATH LIKE SXPGCOLIST-PARAMETERS,

18 * CMDFULLPATH(128),

19 CMDFULLPATH LIKE SXPGCOLIST-PARAMETERS,

20 CMD(40),

21 IBTCXPM LIKE BTCXPM OCCURS 0.

22

23 FUNCTION Z_DOWNLOAD.

24 *"----


25 ""Local interface:

26 *" IMPORTING

27 *" VALUE(FILENAME)

28 *" VALUE(LOCATION)

29 *" TABLES

30 *" DATA_TAB

31 *" FIELDNAMES OPTIONAL

32 *"----


33

34 DATA: WS_LINE TYPE I.

35

36 FIELD-SYMBOLS: <F>.

37

38 CHECK NOT FILENAME IS INITIAL.

39

40 CONCATENATE C_PATH FILENAME INTO FULLPATH.

41 OPEN DATASET FULLPATH IN TEXT MODE FOR OUTPUT.

42

43 DESCRIBE TABLE FIELDNAMES LINES WS_LINE.

44 IF WS_LINE NE 0.

45 PERFORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.

46 FIELDNAME_OFFSET = STRLEN( BUFFER ).

47 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.

48 ENDIF.

49

50 LOOP AT DATA_TAB.

51 CLEAR BUFFER.

52 CLEAR FIELDNAME_OFFSET.

53 DO.

54 ASSIGN COMPONENT SY-INDEX OF STRUCTURE DATA_TAB TO <F>.

55 IF SY-SUBRC NE 0. EXIT. ENDIF.

56 WRITE <F> TO BUFFER+FIELDNAME_OFFSET.

57 CONDENSE BUFFER.

58 FIELDNAME_OFFSET = STRLEN( BUFFER ).

59 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).

60 ADD 1 TO FIELDNAME_OFFSET.

61 ENDDO.

62 TRANSFER BUFFER TO FULLPATH LENGTH FIELDNAME_OFFSET.

63 ENDLOOP.

64

65 CLOSE DATASET FULLPATH.

66

67 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

68 EXPORTING

69 COMMANDNAME = 'ZCHMOD'

70 ADDITIONAL_PARAMETERS = FULLPATH

71 TABLES

72 EXEC_PROTOCOL = IBTCXPM

73 EXCEPTIONS

74 NO_PERMISSION = 1

75 COMMAND_NOT_FOUND = 2

76 PARAMETERS_TOO_LONG = 3

77 SECURITY_RISK = 4

78 WRONG_CHECK_CALL_INTERFACE = 5

79 PROGRAM_START_ERROR = 6

80 PROGRAM_TERMINATION_ERROR = 7

81 X_ERROR = 8

82 PARAMETER_EXPECTED = 9

83 TOO_MANY_PARAMETERS = 10

84 ILLEGAL_COMMAND = 11

85 WRONG_ASYNCHRONOUS_PARAMETERS = 12

86 CANT_ENQ_TBTCO_ENTRY = 13

87 JOBCOUNT_GENERATION_ERROR = 14

88 OTHERS = 15.

89

90 CONCATENATE C_PATH FILENAME '_cmd' INTO CMDFULLPATH.

91 OPEN DATASET CMDFULLPATH IN TEXT MODE FOR OUTPUT.

92 CASE LOCATION. "location A, B, C, D on a network

93 WHEN 'A '.

94

95 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

96 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

97 WHEN 'B '.

98 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

99 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

100 when 'C '.

101 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

102 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

103 when 'D '.

104 TRANSFER 'open xx.xxx.xx.xx' TO CMDFULLPATH.

105 TRANSFER 'user sapftp <pwd>' TO CMDFULLPATH.

106 WHEN OTHERS.

107 ENDCASE.

108

109

110

111

112 *start>

113 CLEAR Y001.

114 SELECT SINGLE Y_PATH INTO Y001-Y_PATH

115 FROM Y001 WHERE BNAME = SY-UNAME

116 AND Y_SITE = LOCATION.

117 TRANSFER Y001-Y_PATH TO CMDFULLPATH.

118 *<end

119 CONCATENATE 'lcd' C_PATH INTO CMD SEPARATED BY SPACE.

120 TRANSFER CMD TO CMDFULLPATH.

121 CLEAR CMD.

122 CONCATENATE 'put' FILENAME INTO CMD SEPARATED BY SPACE.

123 TRANSFER CMD TO CMDFULLPATH.

124 TRANSFER 'bye' TO CMDFULLPATH.

125 CLOSE DATASET CMDFULLPATH.

126

127 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

128 EXPORTING

129 COMMANDNAME = 'ZCHMOD'

130 ADDITIONAL_PARAMETERS = CMDFULLPATH

131 TABLES

132 EXEC_PROTOCOL = IBTCXPM

133 EXCEPTIONS

134 NO_PERMISSION = 1

135 COMMAND_NOT_FOUND = 2

136 PARAMETERS_TOO_LONG = 3

137 SECURITY_RISK = 4

138 WRONG_CHECK_CALL_INTERFACE = 5

139 PROGRAM_START_ERROR = 6

140 PROGRAM_TERMINATION_ERROR = 7

141 X_ERROR = 8

142 PARAMETER_EXPECTED = 9

143 TOO_MANY_PARAMETERS = 10

144 ILLEGAL_COMMAND = 11

145 WRONG_ASYNCHRONOUS_PARAMETERS = 12

146 CANT_ENQ_TBTCO_ENTRY = 13

147 JOBCOUNT_GENERATION_ERROR = 14

148 OTHERS = 15.

149

150 CALL FUNCTION 'SXPG_COMMAND_EXECUTE'

151 EXPORTING

152 COMMANDNAME = 'ZFTP'

153 ** commandname = 'ZFTP'

154 ADDITIONAL_PARAMETERS = CMDFULLPATH

155 TABLES

156 EXEC_PROTOCOL = IBTCXPM

157 EXCEPTIONS

158 NO_PERMISSION = 1

159 COMMAND_NOT_FOUND = 2

160 PARAMETERS_TOO_LONG = 3

161 SECURITY_RISK = 4

162 WRONG_CHECK_CALL_INTERFACE = 5

163 PROGRAM_START_ERROR = 6

164 PROGRAM_TERMINATION_ERROR = 7

165 X_ERROR = 8

166 PARAMETER_EXPECTED = 9

167 TOO_MANY_PARAMETERS = 10

168 ILLEGAL_COMMAND = 11

169 WRONG_ASYNCHRONOUS_PARAMETERS = 12

170 CANT_ENQ_TBTCO_ENTRY = 13

171 JOBCOUNT_GENERATION_ERROR = 14

172 OTHERS = 15.

173

174 ENDFUNCTION.

175

176 ----


177 * FORM FIELDNAMES_2_BUFFER *

178 ----


179 * ........ *

180 ----


181 * --> FIELDNAMES *

182 * --> BUFFER *

183 ----


184 FORM FIELDNAMES_2_BUFFER TABLES FIELDNAMES CHANGING BUFFER.

185 CLEAR BUFFER.

186 CLEAR FIELDNAME_OFFSET.

187 LOOP AT FIELDNAMES.

188 WRITE FIELDNAMES TO BUFFER+FIELDNAME_OFFSET.

189 CONDENSE BUFFER.

190 FIELDNAME_OFFSET = STRLEN( BUFFER ).

191 WRITE C_TAB TO BUFFER+FIELDNAME_OFFSET(1).

192 ADD 1 TO FIELDNAME_OFFSET.

193 ENDLOOP.

194 FIELDNAME_OFFSET = FIELDNAME_OFFSET - 1.

195 IF FIELDNAME_OFFSET >= 0.

196 WRITE SPACE TO BUFFER+FIELDNAME_OFFSET(1).

197 ENDIF.

198 ENDFORM