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

download using open data set and close data set

Former Member
0 Likes
571

can any body please send some sample pgm using open data set and close data set .the data should get downloaded in application server

very simple pgm needed

can any body please send some sample pgm using open data set and close data set .the data should get downloaded in application server

very simple pgm needed

3 REPLIES 3
Read only

Former Member
0 Likes
526

Hi Arun,

See the Sample code for BDC using OPEN DATASET.

report ZSDBDCP_PRICING no standard page heading

line-size 255.

include zbdcrecx1.

*--Internal Table To hold condition records data from flat file.

Data: begin of it_pricing occurs 0,

key(4),

f1(4),

f2(4),

f3(2),

f4(18),

f5(16),

end of it_pricing.

*--Internal Table To hold condition records header .

data : begin of it_header occurs 0,

key(4),

f1(4),

f2(4),

f3(2),

end of it_header.

*--Internal Table To hold condition records details .

data : begin of it_details occurs 0,

key(4),

f4(18),

f5(16),

end of it_details.

data : v_sno(2),

v_rows type i,

v_fname(40).

start-of-selection.

refresh : it_pricing,it_header,it_details.

clear : it_pricing,it_header,it_details.

  • CALL FUNCTION 'UPLOAD'

  • EXPORTING

  • FILENAME = 'C:\WINDOWS\Desktop\pricing.txt'

  • FILETYPE = 'DAT'

  • TABLES

  • DATA_TAB = it_pricing

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • INVALID_TABLE_WIDTH = 2

  • INVALID_TYPE = 3

  • NO_BATCH = 4

  • UNKNOWN_ERROR = 5

  • GUI_REFUSE_FILETRANSFER = 6

  • OTHERS = 7.

WRITE : / 'Condition Records ', P_FNAME, ' on ', SY-DATUM.

OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.

if sy-subrc ne 0.

write : / 'File could not be uploaded.. Check file name.'.

stop.

endif.

CLEAR : it_pricing[], it_pricing.

DO.

READ DATASET P_FNAME INTO V_STR.

IF SY-SUBRC NE 0.

EXIT.

ENDIF.

  • write v_str.

  • translate v_str using '#/'.

SPLIT V_STR AT ',' INTO it_pricing-key

it_pricing-F1 it_pricing-F2 it_pricing-F3

it_pricing-F4 it_pricing-F5 .

APPEND it_pricing.

CLEAR it_pricing.

ENDDO.

IF it_pricing[] IS INITIAL.

WRITE : / 'No data found to upload'.

STOP.

ENDIF.

loop at it_pricing.

At new key.

read table it_pricing index sy-tabix.

move-corresponding it_pricing to it_header.

append it_header.

clear it_header.

endat.

move-corresponding it_pricing to it_details.

append it_details.

clear it_details.

endloop.

perform open_group.

v_rows = sy-srows - 8.

loop at it_header.

perform bdc_dynpro using 'SAPMV13A' '0100'.

perform bdc_field using 'BDC_CURSOR'

'RV13A-KSCHL'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RV13A-KSCHL'

it_header-f1.

perform bdc_dynpro using 'SAPMV13A' '1004'.

perform bdc_field using 'BDC_CURSOR'

'KONP-KBETR(01)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'KOMG-VKORG'

it_header-f2.

perform bdc_field using 'KOMG-VTWEG'

it_header-f3.

**Table Control

v_sno = 0.

loop at it_details where key eq it_header-key.

v_sno = v_sno + 1.

clear v_fname.

CONCATENATE 'KOMG-MATNR(' V_SNO ')' INTO V_FNAME.

perform bdc_field using v_fname

it_details-f4.

clear v_fname.

CONCATENATE 'KONP-KBETR(' V_SNO ')' INTO V_FNAME.

perform bdc_field using v_fname

it_details-f5.

if v_sno eq v_rows.

v_sno = 0.

perform bdc_dynpro using 'SAPMV13A' '1004'.

perform bdc_field using 'BDC_OKCODE'

'=P+'.

perform bdc_dynpro using 'SAPMV13A' '1004'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

endif.

endloop.

*--Save

perform bdc_dynpro using 'SAPMV13A' '1004'.

perform bdc_field using 'BDC_OKCODE'

'=SICH'.

perform bdc_transaction using 'VK11'.

endloop.

perform close_group.

Hope this resolves your query.

Reward all the helpful answers.

Regards

Read only

Former Member
0 Likes
526

Hi..,

<b>Check this program, it first downloads a file into PRESENTATION server and then upoloads into an internal table and then SAVES THE FILE IN APPLICATION LAYER..

AND AGAIN READS IT FROM APPLICATION LAYER...</b>

tables:

spfli.

data:

wa_spfli type spfli,

w_line(2000) type c,

w_line_up like w_line,

w_file(20) type c value 'GUI-APPTEXT',

w_diff type boolean,

w_count type i,

w_count1 type i.

data:

t_spfli like standard table

of spfli

initial size 0.

data :

t_file like standard table

of w_line

initial size 0,

t_file_up like t_file.

select *

into table t_spfli

from spfli.

call function 'GUI_DOWNLOAD'

exporting

  • BIN_FILESIZE =

filename = 'D:\spfli'

filetype = 'ASC'

  • APPEND = ' '

tables

data_tab = t_spfli

  • FIELDNAMES =

exceptions

file_write_error = 1

no_batch = 2

gui_refuse_filetransfer = 3

invalid_type = 4

no_authority = 5

unknown_error = 6

header_not_allowed = 7

separator_not_allowed = 8

filesize_not_allowed = 9

header_too_long = 10

dp_error_create = 11

dp_error_send = 12

dp_error_write = 13

unknown_dp_error = 14

access_denied = 15

dp_out_of_memory = 16

disk_full = 17

dp_timeout = 18

file_not_found = 19

dataprovider_exception = 20

control_flush_error = 21

others = 22.

if sy-subrc <> 0.

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

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

endif.

clear t_file.

call function 'GUI_UPLOAD'

exporting

filename = 'D:\spfli'

FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = 'X'

tables

data_tab = t_file

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

if sy-subrc <> 0.

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

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

endif.

<u><b>

*SAVING FILE IN APPLICATION SERVER..</u>

open dataset w_file for output in TEXT MODE ENCODING DEFAULT.

loop at t_file into w_line.

transfer w_line to w_file.

endloop. " Loop at t_file into w_line.

close dataset w_file.

<u>

*READING FILE FROM APPLICATION SERVER...</u>

open dataset w_file for input in TEXT MODE ENCODING DEFAULT.

do.

read dataset w_file into w_line_up.

if sy-subrc ne 0.

exit.

endif. " If sy-subrc ne 0.

append w_line_up to t_file_up.

enddo. " Do.

close dataset w_file.</b>

loop at t_file_up into w_line_up.

write 😕 w_line_up.

endloop.

Read only

Former Member
0 Likes
526

Hi,

*"Table declarations...................................................

tables: bkpf. " Accounting Document Header

*"Selection screen elements............................................

parameters:

p_burks like bkpf-bukrs. " Company Code

select-options:

s_gjahr for bkpf-gjahr. " Fiscal year

"----


  • Type declaration of the structure to hold Accounting Document Header*

"----


data:

begin of fs_bkpf,

bukrs type bkpf-bukrs, " Company Code

belnr type bkpf-belnr, " Accounting Document Number

gjahr type bkpf-gjahr, " Fiscal year

blart type bkpf-blart, " Document type

bldat type bkpf-bldat, " Document date in document

end of fs_bkpf.

"----


  • Internal table to hold Accounting Document Header *

"----


data:

t_bkpf like standard table

of fs_bkpf.

"----


  • Type declaration of the structure to hold file data *

"----


data:

begin of fs_table,

str type string,

end of fs_table.

"----


  • Internal table to hold file data *

"----


data:

t_table like standard table

of fs_table.

field-symbols: <fs>.

*" Data declarations...................................................

"----


  • Work variables *

"----


data:

w_char(50) type c,

w_file_name(50) type c value 'YH645_050103'.

select bukrs " Company Code

belnr " Accounting Document Number

gjahr " Fiscal year

blart " Document type

bldat " Document date in document

from bkpf

into table t_bkpf

where bukrs eq p_burks

and gjahr in s_gjahr.

if sy-subrc eq 0.

loop at t_bkpf into fs_bkpf.

do.

assign component sy-index of structure fs_bkpf to <fs>.

if sy-subrc ne 0.

exit.

else.

move <fs> to w_char.

if sy-index eq 1.

fs_table-str = <fs>.

else.

concatenate fs_table-str ',' w_char into fs_table-str.

endif. " IF SY-INDEX...

endif. " IF SY-SUBRC...

enddo. " DO...

append fs_table to t_table.

endloop. " LOOP AT T_KNA1...

endif. " IF SY-SUBRC...

open dataset w_file_name for output in text mode encoding default.

loop at t_table into fs_table.

transfer fs_table-str to w_file_name.

endloop. " LOOP AT T_TABLE...

regards,

kiran kumar k