Skip to Content
0
Apr 23, 2014 at 03:11 PM

passing two different table of header and line items to BAPI_ACC_DOCUMENT_POST

106 Views

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.