I have read the file from application server(Pipe Delimeted file) to an it_final internal table and separated the Header items and line items on two different internal table and i have to agree with the structure of BAPI_ACC_DOCUMENT_POST below is my code.
REPORT zupload_program_centrica_007.
DATA : wa_documentheader TYPE bapiache09,"ok
it_accountgl TYPE STANDARD TABLE OF bapiacgl09,"ok
wa_accountgl TYPE bapiacgl09,
it_accountreceivable TYPE STANDARD TABLE OF bapiacar09,"ok
wa_accountreceivable TYPE bapiacar09,
it_currencyamount TYPE STANDARD TABLE OF bapiaccr09,
wa_currencyamount TYPE bapiaccr09,
it_accountpayable TYPE STANDARD TABLE OF bapiacar09,
wa_payable TYPE bapiacar09,
it_return TYPE STANDARD TABLE OF bapiret2,
wa_return TYPE bapiret2.
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.
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.
LOOP AT it_final INTO wa_final. " temporary commented the code .
IF wa_final-header EQ 'HDR'.
MOVE: wa_final-belnr to wa_bkpf-belnr,
wa_final-bukrs to wa_bkpf-bukrs,
wa_final-gjahr to wa_bkpf-gjahr,
wa_final-bldat to wa_bkpf-bldat,
wa_final-cpudt to wa_bkpf-cpudt,
wa_final-waers to wa_bkpf-waers,
wa_final-blart to wa_bkpf-blart,
wa_final-budat to wa_bkpf-budat,
wa_final-xblnr to wa_bkpf-xblnr,
wa_final-bktxt to wa_bkpf-bktxt.
APPEND wa_bkpf to it_bkpf.
ELSE .
MOVE: wa_final-belnr to wa_bseg-belnr,
wa_final-bukrs to wa_bseg-bukrs,
wa_final-buzei to wa_bseg-buzei,
wa_final-bschl to wa_bseg-bschl,
wa_final-umskz to wa_bseg-umskz,
wa_final-hkont to wa_bseg-hkont,
wa_final-zterm to wa_bseg-zterm,
wa_final-wrbtr to wa_bseg-wrbtr,
wa_final-kostl to wa_bseg-kostl,
wa_final-prctr to wa_bseg-prctr,
wa_final-mwskz to wa_bseg-mwskz,
wa_final-sgtxt to wa_bseg-sgtxt,
wa_final-zuonr to wa_bseg-zuonr,
wa_final-zlspr to wa_bseg-zlspr,
wa_final-zlsch to wa_bseg-zlsch.
APPEND wa_bseg to it_bseg.
ENDIF.
ENDLOOP.
*-----------------------------------------------------------
LOOP AT it_bkpf INTO wa_bkpf.
wa_documentheader-ac_doc_no = wa_bkpf-belnr.
wa_documentheader-comp_code = wa_bkpf-bukrs.
wa_documentheader-fisc_year = wa_bkpf-gjahr.
wa_documentheader-doc_date = wa_bkpf-bldat.
wa_documentheader-doc_date = wa_bkpf-bldat.
wa_documentheader-doc_type = wa_bkpf-blart.
wa_documentheader-doc_type = wa_bkpf-blart.
wa_documentheader-pstng_date = wa_bkpf-budat.
wa_documentheader-pstng_date = wa_bkpf-budat.
wa_documentheader-ref_doc_no = wa_bkpf-xblnr.
wa_documentheader-header_txt = wa_bkpf-bktxt.
wa_documentheader-header_txt = wa_bkpf-bktxt.
ENDLOOP.