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

How to upload data from Application server

Former Member
0 Likes
1,612

Hi all,

How to upload data from Application server ? ( Because there is one requirement like this )

Give me some sample code.

Thanks in advance

Krupali.

10 REPLIES 10
Read only

prasanth_kasturi
Active Contributor
0 Likes
1,329

hi,

use opendatset statemnt in read mode ( i.e input)

open dataset <name> for INPUT in BINARY MODE / TEXT MODE.

Example

DATA: file TYPE string VALUE 'test.txt'.

OPEN DATASET file FOR INPUT IN TEXT MODE

ENCODING DEFAULT .

WHILE sy-subrc = 0.

READ DATASET file INTO result.

WRITE / result.

ENDWHILE.

CLOSE DATASET file.

regards

prasanth

Read only

Former Member
0 Likes
1,329

hii,

for reading a file from application server you can use this code



data:
    w_file(50) TYPE c VALUE 'file1.txt'.

OPEN DATASET w_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
  DO.

   READ DATASET w_file INTO fs_bkpf.
      IF sy-subrc EQ 0.
      WRITE: fs_bkpf.
        APPEND fs_bkpf TO t_bkpf.
      ELSE.
        EXIT.
      ENDIF.                           "  IF sy-subrc EQ 0

  ENDDO.
  CLOSE DATASET w_file.

\[removed by moderator\]

thx

twinkal.

Edited by: Jan Stallkamp on Jun 11, 2008 10:41 AM

Read only

Former Member
0 Likes
1,329

Hi,

Use open dataset.

Open dataset <name> for input in legacy text mode .

\[removed by moderator\]

Edited by: Jan Stallkamp on Jun 11, 2008 10:41 AM

Read only

Former Member
0 Likes
1,329

Go through This...

*&----


*& Report ZDOWNLOADFILE *

*& *

*&----


*& *

*& *

*&----


REPORT ZDOWNLOADFILE

MESSAGE-ID B1 .

*----


  • INCLUDES *

*----


INCLUDE ZDOWNLOADFILE_TOP.

INCLUDE ZDOWNLOADFILE_FORM.

*----


  • EVENT-AT SELECTION-SCREEN *

*----


AT SELECTION-SCREEN ON pa_appl.

PERFORM check_file_exists USING pa_appl.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_appl.

PERFORM f4_dxfilename USING pa_appl.

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 7

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_pres.

PERFORM f4_filename USING pa_pres.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_del.

PERFORM f4_dxfilename USING pa_del.

*----


  • EVENT INITIALIZATION *

*----


INITIALIZATION.

PERFORM initialization.

*----


  • EVENT START-OF-SELECTION *

*----


START-OF-SELECTION.

PERFORM determine_fields. "Determine number of columns

PERFORM build_itab. "Create internal table based on number

"of columns

PERFORM build_header. "To prepare header for the file

PERFORM download_data. "Download data to presentation server

PERFORM delete_files. "Delete files from application server

*&----


*& Include ZDOWNLOADFILE_TOP *

*&----


TYPES: BEGIN OF ty_header,

text(100) TYPE c,

END OF ty_header.

DATA: c_fnh_mask type dxfields-filemask value '.',

search_dir type dxfields-longpath value '/sapglobal/users'.

CLASS cl_abap_char_utilities DEFINITION LOAD.

*----


  • Internal tables *

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 8

*----


DATA: gt_header TYPE STANDARD TABLE OF ty_header,

gt_fieldcat TYPE lvc_t_fcat.

*----


  • Work areas *

*----


DATA: gs_header TYPE ty_header,

gs_fieldcat TYPE lvc_s_fcat.

DATA: wa_filename TYPE string.

DATA: wa_count(2) TYPE N,

wa_start(3) TYPE N,

wa_end(3) TYPE N,

wa_len(3) TYPE N.

DATA: wa_data(12000) TYPE c,

wa_off TYPE I,

itab_appl TYPE REF TO DATA,

itab_line TYPE REF TO DATA,

col(2) TYPE c.

DATA: wa_field(30) TYPE c.

DATA: lv_index TYPE sy-tabix.

DATA: gs_adrp type adrp,

gs_usr02 type usr02,

gs_usr21 type usr21,

gs_char50(50).

CONSTANTS: co_slash(1) value '/'.

FIELD-SYMBOLS: .

*----


  • SELECTION SCREEN *

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 9

*----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-f01.

PARAMETERS: pa_appl LIKE rlgrap-filename OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE text-f02.

PARAMETERS: pa_pres LIKE rlgrap-filename OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B2.

SELECTION-SCREEN BEGIN OF BLOCK B3 WITH FRAME TITLE text-f03.

PARAMETERS: pa_del LIKE rlgrap-filename .

PARAMETERS: pa_deld AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK B3.

SELECTION-SCREEN BEGIN OF BLOCK B4 WITH FRAME TITLE text-f04.

PARAMETERS: pa_len(3) TYPE c.

SELECTION-SCREEN END OF BLOCK B4.

*&----


*& Include ZDOWNLOADFILE_FORM *

*&----


*&----


*& Form f4_dxfilename

*&----


  • text

*----


  • -->P_pa_appl text

*----


form f4_dxfilename using p_file.

DATA: wa_file LIKE dxfields-longpath.

CLEAR: wa_file.

call function 'F4_DXFILENAME_TOPRECURSION'

exporting

i_location_flag = 'A'

i_server = ' '

i_path = search_dir

filemask = c_fnh_mask

fileoperation = 'R'

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 10

importing

o_path = wa_file

exceptions

rfc_error = 1

error_with_gui = 2

others = 3

.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

else.

p_file = wa_file.

endif.

endform. " f4_dxfilename

*&----


*& Form f4_filename

*&----


  • text

*----


  • -->P_pa_pres text

*----


form f4_filename using p_data.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

IMPORTING

FILE_NAME = p_data

.

endform. " f4_filename

*&----


*& Form check_file_exists

*&----


*

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 11

  • text

*----


  • -->P_pa_appl text

*----


form check_file_exists using p_file.

DATA: wa_file LIKE rlgrap-filename.

wa_file = p_file.

OPEN DATASET wa_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.

IF sy-subrc = 8.

MESSAGE E714

WITH text-m01 p_file text-m02.

ELSE.

CLOSE DATASET p_file.

ENDIF.

endform. " check_file_exists

*&----


*& Form build_header

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form build_header .

*Select user details

clear gs_usr21-persnumber.

select single persnumber

into (gs_usr21-persnumber)

from usr21

where bname = sy-uname.

concatenate sy-uname

co_slash

gs_adrp-name_text(36)

co_slash

into gs_char50.

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 12

condense gs_char50.

clear gs_usr02-class.

select single class

into (gs_usr02-class)

from usr02

where bname = sy-uname.

concatenate gs_char50

gs_usr02-class

into gs_char50.

condense gs_char50.

  • Write report technical name

write 'Name: ' TO gs_header+0(10).

gs_header+11(*) = sy-repid.

APPEND gs_header TO gt_header.

CLEAR: gs_header.

  • Write user data

write 'User: ' TO gs_header+0(10).

gs_header+11(*) = gs_char50.

CONCATENATE gs_header gs_char50 INTO

gs_header SEPARATED BY SPACE.

APPEND gs_header TO gt_header.

CLEAR: gs_header.

  • Write System data

write 'System: ' TO gs_header+0(10).

write: sy-sysid to gs_header+11(3).

write: co_slash to gs_header+14(1).

write: sy-mandt to gs_header+15(3).

APPEND gs_header TO gt_header.

CLEAR: gs_header.

  • Write System date and time

write 'System: ' TO gs_header+0(10).

write sy-datum to gs_header+11(10).

write sy-uzeit to gs_header+22(8).

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 13

APPEND gs_header TO gt_header.

CLEAR: gs_header.

  • Write Local date and time

write 'Local: ' TO gs_header+0(10).

write sy-datlo to gs_header+11(10).

write sy-timlo to gs_header+22(8).

APPEND gs_header TO gt_header.

CLEAR: gs_header.

APPEND gs_header TO gt_header.

endform. " build_header

*&----


*& Form determine_fields

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form determine_fields .

DATA: wa_data(600) TYPE c.

CLEAR: wa_count,wa_start,wa_end,wa_data.

wa_start = 0.

wa_end = 1.

OPEN DATASET pa_appl FOR INPUT IN TEXT MODE ENCODING DEFAULT.

READ DATASET pa_appl INTO wa_data.

wa_len = STRLEN( wa_data ).

DO wa_len TIMES.

IF wa_data+wa_start(wa_end) EQ

cl_abap_char_utilities=>horizontal_tab.

wa_count = wa_count + 1.

ENDIF.

wa_start = wa_start + 1.

ENDDO.

CLOSE DATASET pa_appl.

wa_count = wa_count + 1.

endform. " determine_fields

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 14

*&----


*& Form build_itab

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form build_itab .

DATA: wa_len(4) TYPE c.

CLEAR: wa_len.

IF pa_len IS INITIAL.

wa_len = 40.

ELSE.

wa_len = pa_len.

ENDIF.

col = 1.

DO wa_count TIMES.

CONCATENATE 'FIELD' col INTO wa_field.

gs_fieldcat-fieldname = wa_field.

gs_fieldcat-outputlen = wa_len.

gs_fieldcat-datatype = 'CHAR'.

gs_fieldcat-col_pos = col.

col = col + 1.

APPEND gs_fieldcat TO gt_fieldcat.

CLEAR: wa_field.

ENDDO.

*Create the internal table dynamically based on the file structure,

*this table will be used to download data through GUI_DOWNLOAD fm

CALL METHOD cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = gt_fieldcat

IMPORTING

EP_TABLE = itab_appl

.

*Assign the pointer to the field symbol

ASSIGN itab_appl->* TO .

ENDIF.

ENDDO.

endform. " build_itab

*&----


*& Form download_data

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 16

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form download_data .

clear: wa_filename.

wa_filename = pa_pres.

call function 'GUI_DOWNLOAD'

exporting

filename = wa_filename

filetype = 'DAT'

tables

data_tab = gt_header

exceptions

access_denied = 15

.

call function 'GUI_DOWNLOAD'

exporting

filename = wa_filename

filetype = 'DAT'

append = 'X'

tables

data_tab =

exceptions

access_denied = 15

.

endform. " download_data

*&----


*& Form initialization

*&----


  • text

*----


  • --> p1 text

To download data from Application server files to presentation server SAP DEVELOPER NETWORK | sdn.sap.com BUSINESS PROCESS EXPERT COMMUNITY | bpx.sap.com © 2006 SAP AG 17

  • <-- p2 text

*----


form initialization .

REFRESH: gt_header,gt_fieldcat,gt_header.

endform. " initialization

*&----


*& Form delete_files

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


form delete_files .

IF pa_deld EQ 'X'.

DELETE DATASET pa_appl.

ENDIF.

IF pa_del IS NOT INITIAL.

DELETE DATASET pa_del.

ENDIF.

endform. " delete_files

Thanks

Read only

Former Member
0 Likes
1,329

Hi,

OPEN DATASET FNAME IN TEXT MODE FOR INPUT ENCODING DEFAULT.

DO.

READ DATASET FNAME INTO IT_TAB.

IF SY-SUBRC 0.

EXIT.

ENDIF.

APPEND IT_TAB.

ENDDO.

CLOSE DATASET FNAME.

Reward If Helpfull,

Naresh.

Read only

sachin_mathapati
Contributor
0 Likes
1,329

Hi,

wf_filename = Path on application server.

IF wa_file-file_type = 'BIN'.

OPEN DATASET wf_filename FOR INPUT IN BINARY MODE.

ELSE.

OPEN DATASET wf_filename FOR INPUT IN TEXT MODE.

ENDIF.

IF sy-subrc EQ 0.

READ DATASET wf_filename INTO wf_row.

  • Tab delimited File

SPLIT wf_row AT co_tab INTO TABLE tb_data.

or

  • ; delimited File

SPLIT wf_row AT ';' INTO TABLE tb_data.

endif.

Now tb_data contains the data from the application server.

Regards,

Sachin M M

Read only

Former Member
0 Likes
1,329

Hi,

to upload data from Application server we have to use open dataset To open a file on the application server, use the OPEN statement as follows:OPEN DATASET <dsn> [your file name].

To read data from a file on the application server, use the READ DATASET statement:

and we have to use close dataset to close rhe file...

close dataset (your file name).

READ DATASET <dsn> INTO <f> [LENGTH <len>].

DATA FNAME(60) VALUE 'myfile'.

DATA: TEXT1(12) VALUE 'abcdefghijkl',

TEXT2(5),

LENG TYPE I.

OPEN DATASET FNAME FOR OUTPUT IN BINARY MODE.

TRANSFER TEXT1 TO FNAME.

CLOSE DATASET FNAME.

OPEN DATASET FNAME FOR INPUT IN BINARY MODE.

DO.

READ DATASET FNAME INTO TEXT2 LENGTH LENG.

WRITE: / SY-SUBRC, TEXT2, LENG.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET FNAME.

regards,

dhaya.

if its useful reward points...

Read only

Former Member
0 Likes
1,329

hey krupali,

well for uploading the data from the presentation server,

tou are to use the "open dataset "statement.

as

Hi,

OPEN DATASET <name of the file> IN TEXT MODE FOR INPUT(since you are fetching values from the server) ENCODING DEFAULT.

DO.

READ DATASET <name of the file> INTO <internal table>

IF SY-SUBRC 0.

EXIT.

ENDIF.

APPEND <internal table.>

ENDDO.

CLOSE DATASET <name of the file>.

reward if helpful

take care

Read only

Former Member
0 Likes
1,329

Hi,

Please refer the code below:


DATA: i_file like rlgrap-filename value '/usr/sap/tmp/file.txt'.

    OPEN DATASET i_file FOR INPUT IN TEXT MODE.
    IF sy-subrc NE 0.
      MESSAGE e999(za) WITH 'Error opening file' i_file.
    ENDIF.
    DO.
*     Reads each line of file individually
      READ DATASET i_file INTO wa_datatab.
*     Perform processing here
*     .....
    ENDDO.

Thanks,

Sriram Ponna.