04-18-2014 10:58 AM
As i am using below code for fetching file data from application server to internal table in custom report.
data in internal table in inconsistent is there any another way to do in?
report zparoman.
TYPES: BEGIN OF ty_bkpf, " STRUCTURE DEFINATION bkpf
belnr TYPE belnr_d ,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
bldat TYPE bldat,
cpudt TYPE cpudt,
waers TYPE waers,
blart TYPE blart,
budat TYPE budat,
xblnr TYPE xblnr1,
bktxt TYPE bktxt,
END OF ty_bkpf.
DATA: it_bkpf TYPE STANDARD TABLE OF ty_bkpf INITIAL SIZE 0, " INTERNAL TABLE it_BKPF
wa_bkpf TYPE ty_bkpf. " work area wa_bkpf
TYPES: BEGIN OF ty_bseg,
belnr TYPE belnr_d,
bukrs TYPE bukrs,
buzei TYPE buzei,
bschl TYPE bschl,
umskz TYPE umskz,
hkont TYPE hkont,
zterm TYPE dzterm,
wrbtr TYPE wrbtr,
kostl TYPE kostl,
prctr TYPE prctr,
mwskz TYPE mwskz,
sgtxt TYPE sgtxt,
zuonr TYPE dzuonr,
zlspr TYPE dzlspr,
zlsch TYPE schzw_bseg,
END OF ty_bseg.
DATA: it_bseg TYPE STANDARD TABLE OF ty_bseg INITIAL SIZE 0, "internal table it_bseg
wa_bseg TYPE ty_bseg. "work area wa_bseg
TYPES:BEGIN OF ty_final, " final structue defn
header TYPE c LENGTH 3,
belnr TYPE c LENGTH 10,"belnr_d,
bukrs TYPE c LENGTH 4,"bukrs,
gjahr TYPE c LENGTH 4,"gjahr,
bldat TYPE c LENGTH 8,"bldat,
cpudt TYPE c LENGTH 8,"cpudt,
waers TYPE c LENGTH 5,"waers,
blart TYPE c LENGTH 2,"blart,
budat TYPE c LENGTH 8,"budat,
xblnr TYPE c LENGTH 16,"xblnr1,
bktxt TYPE c LENGTH 25,"bktxt,
buzei TYPE c LENGTH 3,"buzei,
bschl TYPE c LENGTH 2,"bschl,
umskz TYPE c LENGTH 1,"umskz,
hkont TYPE c LENGTH 10,"hkont,
zterm TYPE c LENGTH 4,"dzterm,
wrbtr TYPE c LENGTH 13,"wrbtr,
kostl TYPE c LENGTH 10,"kostl,
prctr TYPE c LENGTH 10,"prctr,
mwskz TYPE c LENGTH 2,"mwskz,
sgtxt TYPE c LENGTH 50,"sgtxt,
zuonr TYPE c LENGTH 18,"dzuonr,
zlspr TYPE c LENGTH 1,"dzlspr,
zlsch TYPE c LENGTH 1,"schzw_bseg,
END OF ty_final.
DATA: it_final TYPE STANDARD TABLE OF ty_final INITIAL SIZE 0, " final internal table it_final
wa_final TYPE ty_final. " work area wa_final
TYPES: BEGIN OF temp_str,
wa_string(5000) TYPE c,
END OF temp_str.
DATA:it_str TYPE TABLE OF temp_str,
wa_str TYPE temp_str.
DATA: gv_file TYPE rlgrap-filename.
gv_file = 'E:\USR\SAP\ECS\SYS\CSL_FIGL_TRANS_DATA_04172014162215.TXT'.
OPEN DATASET gv_file FOR INPUT IN TEXT MODE ENCODING DEFAULT. "Opening file from Application server
IF sy-subrc EQ 0.
* DO 2 TIMES.
DO.
READ DATASET gv_file INTO wa_str.
IF sy-subrc = 0.
APPEND wa_str TO it_str.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDIF.
* WRITE:/ 'HELLO'.
LOOP AT it_str INTO wa_str.
split wa_str at ' ' into
wa_final-header
wa_final-belnr
wa_final-bukrs
wa_final-gjahr
wa_final-bldat
wa_final-cpudt
wa_final-waers
wa_final-blart
wa_final-budat
wa_final-xblnr
wa_final-bktxt
wa_final-buzei
wa_final-bschl
wa_final-umskz
wa_final-hkont
wa_final-zterm
wa_final-wrbtr
wa_final-kostl
wa_final-prctr
wa_final-mwskz
wa_final-sgtxt
wa_final-zuonr
wa_final-zlspr
wa_final-zlsch.
" Split the string separated by SPACE
append wa_final to it_final.
ENDLOOP.
04-18-2014 11:31 AM
Hi ,
Try to open the file with encoding UTF-8 :
Open dataset file for INPUT in TEXT MODE ENCODING UTF-8 .
Regards
04-18-2014 2:53 PM
04-21-2014 1:19 PM
The problem was at split statement use of pipe delimited instead of space in code . Solved my problem