Application Development and Automation 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: 
Read only

BAPI_ACC_GL_POSTING_POST -POSTING KEY

Former Member
0 Likes
556

HI ,

can anyone plz tell me how to pass Posting key and ZTERM values in this bapi .

i using this bapi for tranction F-02 .

Thanks,

sridhar

Message was edited by: sridhar reddy

2 REPLIES 2
Read only

Former Member
0 Likes
462

Hi,

Look at the sample code for posting through BAPI.

**************************

data: it_hdr like standard table of bapiache09

with header line, "#EC NEEDED

it_gl like standard table of bapiacgl09 with header line,

it_curr like standard table of bapiaccr09 with header line,

t_result like standard table of bapiret2 with header line,

act_rec like standard table of bapiacar09 with header line.

v_blart = 'ZT'.

loop at podoc_it.

clear: offset_it, it_gl, it_curr, er_podoc,

act_rec, tracc_it, pdoc_it, doc_it.

  • ON CHANGE of podoc_it-belnr.

  • line_item = 0.

  • ENDON.

on change of podoc_it-belnr or

podoc_it-gjahr.

line_item = 0.

clear v_bktxt.

concatenate podoc_it-belnr podoc_it-bukrs

podoc_it-gjahr into v_bktxt.

  • Header Data " Sending comp code

it_hdr-comp_code = podoc_it-bukrs.

it_hdr-doc_date = sy-datum.

if p_podt is initial.

it_hdr-pstng_date = podoc_it-budat.

v_monat = podoc_it-monat.

v_gjahr = podoc_it-gjahr.

else.

it_hdr-pstng_date = p_podt.

endif.

it_hdr-doc_type = v_blart.

it_hdr-ref_doc_no = podoc_it-belnr.

it_hdr-username = sy-uname.

it_hdr-header_txt = v_bktxt.

it_hdr-bus_act = 'RFBU'.

append it_hdr.

endon.

read table offset_it with key bukrs = podoc_it-bukrs

saknr = podoc_it-hkont.

read table tracc_it with key bukrs = podoc_it-bukrs

belnr = podoc_it-belnr

gjahr = podoc_it-gjahr

binary search.

if not offset_it-osaknr is initial and

tracc_it-obelnr = ''.

select single * from skb1

where bukrs = podoc_it-bukrs and

saknr = offset_it-osaknr.

if sy-subrc = 0.

move: podoc_it-bukrs to doc_it-bukrs,

podoc_it-belnr to doc_it-belnr,

podoc_it-gjahr to doc_it-gjahr,

podoc_it-per_yr to doc_it-per_yr,

podoc_it-buzei to doc_it-buzei,

v_blart to doc_it-blart,

  • pdoc_it-blart to doc_it-blart,

podoc_it-shkzg to doc_it-shkzg,

podoc_it-waers to doc_it-waers,

podoc_it-wrbtr to doc_it-wrbtr,

podoc_it-hkont to doc_it-hkont,

  • offset_it-osaknr to doc_it-osaknr,

podoc_it-error to doc_it-error,

podoc_it-invno to doc_it-invno,

podoc_it-sono to doc_it-sono,

podoc_it-soitem to doc_it-soitem,

podoc_it-lnum to doc_it-lnum,

podoc_it-lname to doc_it-lname,

podoc_it-panum to doc_it-panum,

podoc_it-pname to doc_it-pname,

podoc_it-pono to doc_it-pono.

if podoc_it-koart = 'D'.

move: podoc_it-kunnr to doc_it-hkont,

podoc_it-kunnr to doc_it-osaknr.

else.

move: podoc_it-hkont to doc_it-hkont,

offset_it-osaknr to doc_it-osaknr.

endif.

pdoc_it-bukrs = podoc_it-bukrs.

pdoc_it-belnr = podoc_it-belnr.

pdoc_it-gjahr = podoc_it-gjahr.

pdoc_it-blart = podoc_it-blart.

pdoc_it-xblnr = podoc_it-xblnr.

pdoc_it-buzei = podoc_it-buzei.

pdoc_it-koart = podoc_it-koart.

pdoc_it-sgtxt = podoc_it-sgtxt.

  • pdoc_it-hkont = podoc_it-hkont.

pdoc_it-kunnr = podoc_it-kunnr.

pdoc_it-shkzg = podoc_it-shkzg.

pdoc_it-mwskz = podoc_it-mwskz.

pdoc_it-waers = podoc_it-waers.

pdoc_it-wrbtr = podoc_it-wrbtr.

append: pdoc_it, doc_it.

line_item = line_item + 1.

if podoc_it-koart = 'D'.

clear: v_sgtxt.

concatenate podoc_it-bukrs podoc_it-gjahr

podoc_it-belnr podoc_it-buzei into v_sgtxt.

if podoc_it-shkzg = 'S'.

  • First Item

  • Account receivable

act_rec-itemno_acc = line_item.

act_rec-customer = podoc_it-kunnr.

act_rec-gl_account = podoc_it-hkont.

act_rec-bus_area = podoc_it-gsber.

act_rec-item_text = v_sgtxt.

append act_rec.

  • Set amount

it_curr-itemno_acc = line_item.

it_curr-currency = podoc_it-waers.

it_curr-amt_doccur = podoc_it-wrbtr.

it_curr-amt_doccur = it_curr-amt_doccur * -1.

append it_curr.

else.

  • First Item

  • Account number

act_rec-itemno_acc = line_item.

act_rec-customer = podoc_it-kunnr.

act_rec-gl_account = podoc_it-hkont.

act_rec-bus_area = podoc_it-gsber.

act_rec-item_text = v_sgtxt.

append act_rec.

it_curr-itemno_acc = line_item.

it_curr-currency = podoc_it-waers.

it_curr-amt_doccur = podoc_it-wrbtr.

append it_curr.

endif.

else.

clear: v_sgtxt.

concatenate podoc_it-bukrs podoc_it-gjahr

podoc_it-belnr podoc_it-buzei into v_sgtxt.

if podoc_it-shkzg = 'S'.

  • First Item

  • Account number

it_gl-itemno_acc = line_item.

it_gl-gl_account = offset_it-osaknr.

it_gl-item_text = v_sgtxt.

  • it_gl-fis_period = v_monat.

  • it_gl-fisc_year = v_gjahr.

  • it_gl-tax_code = podoc_it-mwskz.

it_gl-acct_key = 'A00'.

append it_gl.

  • Set amount

it_curr-itemno_acc = line_item.

it_curr-currency = podoc_it-waers.

it_curr-amt_doccur = podoc_it-wrbtr.

it_curr-amt_doccur = it_curr-amt_doccur * -1.

append it_curr.

else.

  • First Item

  • Account number

it_gl-itemno_acc = line_item.

it_gl-gl_account = offset_it-osaknr.

it_gl-item_text = v_sgtxt.

  • it_gl-fis_period = v_monat.

  • it_gl-fisc_year = v_gjahr.

  • it_gl-tax_code = podoc_it-mwskz.

it_gl-acct_key = 'A00'.

append it_gl.

it_curr-itemno_acc = line_item.

it_curr-currency = podoc_it-waers.

it_curr-amt_doccur = podoc_it-wrbtr.

append it_curr.

endif.

endif.

else.

eflag = 'X'.

move: podoc_it-bukrs to doc_it-bukrs,

podoc_it-belnr to doc_it-belnr,

podoc_it-gjahr to doc_it-gjahr,

podoc_it-buzei to doc_it-buzei,

v_blart to doc_it-blart,

  • pdoc_it-blart to doc_it-blart,

podoc_it-shkzg to doc_it-shkzg,

podoc_it-waers to doc_it-waers,

podoc_it-wrbtr to doc_it-wrbtr.

doc_it-er_gl = 'X'.

move: podoc_it-belnr to er_podoc-belnr.

er_podoc-er_doc = 'X'.

if podoc_it-koart = 'D'.

move: podoc_it-kunnr to doc_it-hkont,

podoc_it-kunnr to doc_it-osaknr.

else.

move: podoc_it-hkont to doc_it-hkont,

offset_it-osaknr to doc_it-osaknr.

endif.

append doc_it.

collect er_podoc.

endif.

else."IF SENDING A/C not found

eflag = 'X'.

move: podoc_it-bukrs to doc_it-bukrs,

podoc_it-belnr to doc_it-belnr,

podoc_it-gjahr to doc_it-gjahr,

podoc_it-buzei to doc_it-buzei,

v_blart to doc_it-blart,

  • pdoc_it-blart to doc_it-blart,

podoc_it-shkzg to doc_it-shkzg,

podoc_it-waers to doc_it-waers,

podoc_it-wrbtr to doc_it-wrbtr.

doc_it-error = 'X'.

if podoc_it-koart = 'D'.

move: podoc_it-kunnr to doc_it-hkont,

podoc_it-kunnr to doc_it-osaknr.

else.

move: podoc_it-hkont to doc_it-hkont,

offset_it-osaknr to doc_it-osaknr.

endif.

move: podoc_it-belnr to er_podoc-belnr.

er_podoc-er_doc = 'X'.

er_podoc-er_sac = 'X'.

append doc_it.

collect er_podoc.

endif.

if podoc_it-blart = 'DF' and podoc_it-xbilk = space.

read table upd_it with key bukrs = podoc_it-bukrs

belnr = podoc_it-belnr

gjahr = podoc_it-gjahr

vbeln = podoc_it-sono

posnr = podoc_it-soitem

binary search.

if sy-subrc = 0.

clear bklog_it.

bklog_it-vbeln = upd_it-vbeln.

bklog_it-posnr = upd_it-posnr.

bklog_it-upd_amt = upd_it-upd_amt.

append bklog_it.

endif.

endif.

at end of belnr.

if eflag = ''.

refresh t_result. clear t_result.

call function 'BAPI_ACC_DOCUMENT_CHECK'

exporting

documentheader = it_hdr

tables

accountgl = it_gl

accountreceivable = act_rec

currencyamount = it_curr

return = t_result.

loop at t_result where ( type = 'E' or

type = 'A' ).

exit.

endloop.

if sy-subrc <> 0.

refresh t_result.

call function 'BAPI_ACC_DOCUMENT_POST'

exporting

documentheader = it_hdr

tables

accountgl = it_gl

accountreceivable = act_rec

currencyamount = it_curr

return = t_result.

*

call function 'BAPI_TRANSACTION_COMMIT'.

endif.

  • Print Message

loop at t_result.

read table pdoc_it with key bukrs = podoc_it-bukrs

gjahr = podoc_it-gjahr

belnr = podoc_it-belnr.

  • Get Doc Number / Error msg

if t_result-type = 'S' and

t_result-id = 'RW' and

t_result-number = '605'.

pdoc_it-obelnr = t_result-message_v2(10).

pdoc_it-ogjahr = t_result-message_v2+14(4).

pdoc_it-msg = t_result-message(28).

pdoc_it-val_rec = 'X'.

clear flag.

else.

flag = 'X'.

endif.

modify pdoc_it transporting obelnr ogjahr msg

er_rec val_rec

where bukrs = podoc_it-bukrs and

gjahr = podoc_it-gjahr and

belnr = podoc_it-belnr.

endloop.

if flag = 'X'.

clear t_result.

read table t_result index 2.

pdoc_it-msg = t_result-message.

pdoc_it-er_rec = 'X'.

pdoc_it-val_rec = 'X'.

  • append doc_it.

else.

loop at bklog_it into valid_bklog_it.

collect valid_bklog_it.

endloop.

endif.

clear v_per_yr.

concatenate '0' v_monat '-' v_gjahr

into v_per_yr.

move v_per_yr to pdoc_it-sper_yr.

modify pdoc_it transporting obelnr ogjahr sper_yr msg

er_rec val_rec

where bukrs = podoc_it-bukrs and

gjahr = podoc_it-gjahr and

belnr = podoc_it-belnr.

  • APPEND doc_it.

  • ENDLOOP.

endif.

clear: pdoc_it, it_hdr, it_gl, it_curr, act_rec, t_result, eflag.

refresh: it_hdr, it_gl, it_curr, act_rec, t_result, bklog_it.

endat.

clear: podoc_it.

endloop.

Thanks.

If this helps you reward with points.

Read only

Former Member
0 Likes
462

posting key will be automatically generated by the bapi based on the currency or depending on the the posting item.

'BAPI_ACC_DOCUMENT_CHECK'

'BAPI_ACC_DOCUMENT_POST' are better for the requirement. have the payments terms fields based on Vendor or Customer depending on the requirement.