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: 

access file from application server

Former Member
0 Kudos
232

Hi experts,

i want to access file from application server on the basis on the file i will get some values from file n update database table.

so please provide me the way this requirement will complete.

thanks

babbal

6 REPLIES 6

former_member226203
Active Contributor
0 Kudos
139

OPEN DATASET p_file FOR INPUT IN TEXT MODE ENCODING DEFAULT MESSAGE msg.

IF sy-subrc = 0.

DO.

IF sy-subrc <> 0.

EXIT.

ENDIF.

READ DATASET p_file INTO i_tab.

**get all the data from this internal table and update

Former Member
0 Kudos
139

Hi,

Please follow the code as below.

OPEN DATASET file for INPUT in LEGACY TEXT MODE.

ASSIGN wa_inv to <fs_inv>.

DO.

READ DATASET file INTO <fs_inv>.

if sy-subrc = 0.

WRITE: / wa_inv-belnr,

wa_inv-bsart,

wa_inv-zterm,

wa_inv-wkurs,

wa_inv-parvw,

wa_inv-lifnr.

APPEND wa_inv to i_inv.

else.

exit.

endif.

ENDDO.

CLOSE DATASET file.

Thanks,

Pradeep

Former Member
0 Kudos
139

Hi Babbalsingh,

You can write code as follows:

OPEN DATASET v_file1 IN TEXT MODE FOR OUTPUT ENCODING DEFAULT IGNORING CONVERSION ERRORS.

LOOP AT it_gr_data1 INTO wa_gr_data1.

TRANSFER wa_gr_data1 TO v_file1.

CLEAR wa_gr_data1.

******Here you can do your processing.

ENDLOOP.

CLOSE DATASET v_file1.

Regards,

Anil Salekar

Former Member
0 Kudos
139

HI,

Please try the following


*open file in read mode to get data 
  OPEN DATASET l_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
  IF sy-subrc <> 0.
    WRITE :'Invalid filename'.
  ELSE.
    DO.
       READ DATASET l_file into wa
         IF sy-subrc <> 0.
           EXIT.
        ENDIF.
        APPEND WA TO ITAB.
   ENDDO.
  ENDIF.
  CLOSE DATASET l_file.
  WRITE:/ 'FILE UPLOADED TO THE PATH', l_file.

wa is the workarea where the data from the file is placed in every do loop pass and it is added to the internal table IT.

Hope this helps

Regards,

Sachin

Former Member
0 Kudos
139

Hi,

If we want to save the internal table data to the application server

DATA: gdf_filepath type dxfile-filename

DATA: gdt_data type table of gts_data.

DATA: ldf_length type i.

FIELD-SYMBOLS: <lfs_outfile> TYPE gts_data

START-OF-SELECTION.

gdf_filepath = 'C:\mydata.txt'

OPEN DATASET gdf_filepath FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

LOOP AT prt_data ASSIGNING <lfs_outfile>.

DESCRIBE FIELD <lfs_outfile> LENGTH ldf_length IN BYTE MODE.

TRANSFER <lfs_outfile> TO prf_file LENGTH ldf_length.

ENDLOOP.

CLOSE DATASET gdf_filepath.

If we want to save the internal table data to the application server

PARAMETERS p_file TYPE dxfile-filename.

START-OF-SELECTION.

OPEN DATASET p_file IN TEXT MODE ENCODING DEFAULT FOR INPUT.

DO.

READ DATASET p_file INTO gds_data.

IF sy-subrc <> 0.

EXIT.

ENDIF.

APPEND gds_data TO gdt_data.

ENDDO.

CLOSE DATASET p_file.

For the file data which has tab separator between field columns.

DATA: gds_field_split type gts_data.

FIELD-SYMBOLS: <fs_field> TYPE gts_data.

PARAMETERS p_file TYPE dxfile-filename.

START-OF-SELECTION.

OPEN DATASET prf_file IN TEXT MODE ENCODING DEFAULT FOR INPUT.

DO.

READ DATASET p_file INTO gds_field.

SPLIT gds_field AT cl_abap_char_utilities=>horizontal_tab

INTO TABLE gdt_field_split.

LOOP AT gdt_field_split into gds_field_split.

gdf_index = gdf_index + 1.

ASSIGN COMPONENT gdf_index OF STRUCTURE

gds_data to <fs_field>.

IF sy-subrc = 0.

<fs_field> = gds_field_split.

ENDIF.

ENDLOOP.

APPEND gds_data TO gdt_data.

ENDDO.

CLOSE DATASET p_file.

Thanks & Regards

Former Member
0 Kudos
139

Hi,

You can use this function module /SAPDMC/LSM_F4_SERVER_FILE for F4 help for application server file and then you can use the function module TEXT_CONVERT_XLS_TO_SAP to read data into internal table.

Thanks.