‎2008 Jun 11 9:31 AM
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.
‎2008 Jun 11 9:32 AM
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
‎2008 Jun 11 9:35 AM
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
‎2008 Jun 11 9:39 AM
Hi,
links:
http://abaplovers.blogspot.com/2008/05/sap-abap-data-download-to-application.html
http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3d42358411d1829f0000e829fbfe/content.htm
http://www.s001.org/ABAP-Hlp/abapopen_dataset.htm
http://abap4.tripod.com/Upload_and_Download_ABAP_Source_Code.html
Regards
Adil
‎2008 Jun 11 9:39 AM
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
‎2008 Jun 11 9:41 AM
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
‎2008 Jun 11 9:41 AM
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.
‎2008 Jun 11 9:42 AM
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
‎2008 Jun 11 9:47 AM
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...
‎2008 Jun 11 10:13 AM
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
‎2008 Jun 11 10:17 AM
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.