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 to reverse an existing Accounting Document

Former Member
0 Likes
3,416

I need to reverse accounting documents using a BAPI.

The call transaction and BDC methods are ruled out for my requirement since the transaction atomicity needs to be controlled for say 10 reversals. Either all 10 happen or none happen. Hence the requirement for BAPI.

I have tried to use the available BAPIs BAPI_ACC_GL_POSTING_REV_POST and BAPI_ACC_DOCUMENT_REV_POST however am not able to figure out their exact usage.

Can you help me with a code example of the appropriate BAPI to be used.

Thanks in advance.

I need to reverse accounting documents using a BAPI.

The call transaction and BDC methods are ruled out for my requirement since the transaction atomicity needs to be controlled for say 10 reversals. Either all 10 happen or none happen. Hence the requirement for BAPI.

I have tried to use the available BAPIs BAPI_ACC_GL_POSTING_REV_POST and BAPI_ACC_DOCUMENT_REV_POST however am not able to figure out their exact usage.

Can you help me with a code example of the appropriate BAPI to be used.

Thanks in advance.

2 REPLIES 2
Read only

Former Member
0 Likes
1,038

hi

go through this program it may help you to give greater knowledge about using BAPI_ACC_DOCUMENT_REV_POST

======================================

report zbapi_factura_acreedor2 .

*REPORT acc_bapi_test_document .

selection-screen begin of block bl01 .

parameters:

check_l radiobutton group rb1,

check_a default 'X' radiobutton group rb1,

post radiobutton group rb1.

selection-screen uline.

parameters:

rev_c radiobutton group rb1,

rev_p radiobutton group rb1.

selection-screen uline.

parameters:

ref_key like bapiache01-obj_key default 'TEST000001BAPICALL',

dest like bdi_logsys-logsys default ' '.

selection-screen end of block bl01 .

data:

gd_documentheader like bapiache09,

gd_customercpd like bapiacpa09,

gd_fica_hd like bapiaccahd,

it_accountreceivable like table of bapiacar09 with header line,

it_accountgl like table of bapiacgl09 with header line,

it_accounttax like table of bapiactx09 with header line,

it_criteria like table of bapiackec9 with header line,

it_valuefield like table of bapiackev9 with header line,

it_currencyamount like table of bapiaccr09 with header line,

it_return like table of bapiret2 with header line,

it_receivers like table of bdi_logsys with header line,

it_fica_it like table of bapiaccait with header line,

it_accountpayable like table of bapiacap09 with header line,

it_paymentcard like table of bapiacpc09 with header line,

it_ext like table of bapiacextc with header line.

it_re LIKE TABLE OF bapiacre09 WITH HEADER LINE,

it_ext2 LIKE TABLE OF bapiparex WITH HEADER LINE.

perform fill_internal_tables.

if check_l = 'X'.

call function 'BAPI_ACC_DOCUMENT_CHECK'

destination dest

exporting

documentheader = gd_documentheader

customercpd = gd_customercpd

contractheader = gd_fica_hd

tables

accountgl = it_accountgl

accountreceivable = it_accountreceivable

accountpayable = it_accountpayable

accounttax = it_accounttax

currencyamount = it_currencyamount

criteria = it_criteria

valuefield = it_valuefield

extension1 = it_ext

return = it_return

paymentcard = it_paymentcard

contractitem = it_fica_it.

extension2 = it_ext2

realestate = it_re.

.

write: / 'Result of check lines:'. "#EC NOTEXT

perform show_messages.

endif.

if check_a = 'X'.

call function 'BAPI_ACC_DOCUMENT_CHECK'

destination dest

exporting

documentheader = gd_documentheader

customercpd = gd_customercpd

contractheader = gd_fica_hd

tables

accountgl = it_accountgl

accountreceivable = it_accountreceivable

accountpayable = it_accountpayable

accounttax = it_accounttax

currencyamount = it_currencyamount

criteria = it_criteria

valuefield = it_valuefield

extension1 = it_ext

return = it_return

paymentcard = it_paymentcard

contractitem = it_fica_it.

extension2 = it_ext2

realestate = it_re.

write: / 'Result of check all:'. "#EC NOTEXT

perform show_messages.

endif.

if post = 'X'.

data: l_type like gd_documentheader-obj_type,

l_key like gd_documentheader-obj_key,

l_sys like gd_documentheader-obj_sys.

if dest = space or

dest = gd_documentheader-obj_sys.

post synchron

call function 'BAPI_ACC_DOCUMENT_POST'

exporting

documentheader = gd_documentheader

customercpd = gd_customercpd

contractheader = gd_fica_hd

importing

obj_type = l_type

obj_key = l_key

obj_sys = l_sys

tables

accountgl = it_accountgl

accountreceivable = it_accountreceivable

accountpayable = it_accountpayable

accounttax = it_accounttax

currencyamount = it_currencyamount

criteria = it_criteria

valuefield = it_valuefield

extension1 = it_ext

return = it_return

paymentcard = it_paymentcard

contractitem = it_fica_it.

extension2 = it_ext2

realestate = it_re.

write: / 'Result of post:'. "#EC NOTEXT

perform show_messages.

else.

create Idoc

it_receivers-logsys = dest.

append it_receivers.

call function 'ALE_ACC_DOCUMENT_POST'

exporting

documentheader = gd_documentheader

customercpd = gd_customercpd

contractheader = gd_fica_hd

tables

accountgl = it_accountgl

accountreceivable = it_accountreceivable

accountpayable = it_accountpayable

accounttax = it_accounttax

currencyamount = it_currencyamount

criteria = it_criteria

valuefield = it_valuefield

extension1 = it_ext

paymentcard = it_paymentcard

contractitem = it_fica_it

extension2 = it_ext2

realestate = it_re

receivers = it_receivers

COMMUNICATION_DOCUMENTS =

APPLICATION_OBJECTS =

exceptions

error_creating_idocs = 1

others = 2 .

if sy-subrc = 0.

write: / 'IDoc created'. "#EC NOTEXT

else.

write: sy-msgid.

endif.

endif.

endif.

if rev_p = 'X' or rev_c = 'X'.

data: rev like bapiacrev,

rev_key like ref_key.

rev_key = ref_key.

rev_key(1) = 'R'.

rev-obj_type = gd_documentheader-obj_type.

rev-obj_key = rev_key.

rev-obj_sys = gd_documentheader-obj_sys.

rev-obj_key_r = ref_key.

if rev_c is initial.

if dest = space or

dest = gd_documentheader-obj_sys.

call function 'BAPI_ACC_DOCUMENT_REV_POST'

exporting

reversal = rev

bus_act = gd_documentheader-bus_act

tables

return = it_return.

else.

it_receivers-logsys = dest.

append it_receivers.

call function 'ALE_ACC_DOCUMENT_REV_POST'

exporting

reversal = rev

busact = gd_documentheader-bus_act

OBJ_TYPE = 'BUS6035'

SERIAL_ID = '0'

tables

receivers = it_receivers

COMMUNICATION_DOCUMENTS =

APPLICATION_OBJECTS =

exceptions

error_creating_idocs = 1

others = 2

.

if sy-subrc 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

else.

write: / 'IDoc created'. "#EC NOTEXT

endif.

endif.

else.

call function 'BAPI_ACC_DOCUMENT_REV_CHECK'

exporting

reversal = rev

bus_act = gd_documentheader-bus_act

tables

return = it_return.

endif.

write: / 'Result of Reversal Posting:'. "#EC NOTEXT

perform show_messages.

endif.

commit work.

-


Form fill_internal_tables

-


form fill_internal_tables.

perform fill_header.

perform fill_accountgl.

perform fill_accountar.

perform fill_accountap.

perform fill_accounttax.

perform fill_currencyamount.

perform fill_criteria.

perform fill_valuefield.

perform fill_re.

perform fill_cpd.

perform fill_contractitem.

perform fill_contractheader.

perform fill_paymentcard.

perform fill_extension.

endform. " fill_internal_tables

-


Form Show_messages

-


form show_messages.

if it_return[] is initial.

write: / 'no messages'.

else.

skip 1.

loop at it_return.

write: / it_return-type,

(2) it_return-id,

it_return-number,

(80) it_return-message,

IT_RETURN-LOG_NO

IT_RETURN-LOG_MSG_NO

it_return-message_v1,

IT_RETURN-MESSAGE_V2

IT_RETURN-MESSAGE_V3

IT_RETURN-MESSAGE_V4

(20) it_return-parameter,

(3) it_return-row,

it_return-field.

IT_RETURN-SYSTEM

endloop.

endif.

uline.

endform. " Show_messages

-


FORM fill_accountgl *

-


form fill_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 2.

it_accountgl-gl_account = '0021510201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '01'.

it_accountgl-profit_ctr = '0000010101'.

it_accountgl-comp_code = 'SLOC'.

append it_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 3.

it_accountgl-gl_account = '0082000201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '01'.

it_accountgl-profit_ctr = '0000010101'.

it_accountgl-comp_code = 'SLOC'.

it_accountgl-tax_code = 'A3'.

append it_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 5.

it_accountgl-gl_account = '0021510201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '01'.

it_accountgl-profit_ctr = '0000010301'.

it_accountgl-comp_code = 'SLOC'.

append it_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 6.

it_accountgl-gl_account = '0082000201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '01'.

it_accountgl-profit_ctr = '0000010301'.

it_accountgl-comp_code = 'SLOC'.

it_accountgl-tax_code = 'A3'.

append it_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 7.

it_accountgl-itemno_acc = 8.

it_accountgl-gl_account = '0021510201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '90'.

it_accountgl-profit_ctr = '0000900008'.

it_accountgl-comp_code = 'CORP'.

append it_accountgl.

clear it_accountgl.

it_accountgl-itemno_acc = 8.

it_accountgl-itemno_acc = 9.

it_accountgl-gl_account = '0082000201'.

it_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT

it_accountgl-bus_area = '90'.

it_accountgl-profit_ctr = '0000900008'.

it_accountgl-comp_code = 'CORP'.

it_accountgl-tax_code = 'A3'.

append it_accountgl.

endform. "fill_accountgl

-


FORM fill_header *

-


form fill_header.

CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'

IMPORTING

own_logical_system = gd_documentheader-obj_sys.

OBJ_TYPE has to be replaced by customers object key (Y* or Z*)

gd_documentheader-obj_type = 'IDOC'.

gd_documentheader-obj_key = ref_key.

gd_documentheader-username = sy-uname.

gd_documentheader-header_txt = 'BAPI Test'. "#EC NOTEXT

gd_documentheader-obj_key_r =

GD_DOCUMENTHEADER-reason_rev =

gd_documentheader-comp_code = 'SLOC'.

GD_DOCUMENTHEADER-AC_DOC_NO =

gd_documentheader-fisc_year = sy-datum(4).

gd_documentheader-doc_date = sy-datum.

gd_documentheader-pstng_date = sy-datum.

GD_DOCUMENTHEADER-TRANS_DATE =

GD_DOCUMENTHEADER-VALUE_DATE =

GD_DOCUMENTHEADER-FIS_PERIOD =

gd_documentheader-doc_type = 'KR'.

gd_documentheader-ref_doc_no = 'xxxx'.

GD_DOCUMENTHEADER-COMPO_ACC =

gd_documentheader-bus_act = 'RFBU'.

endform. "fill_header

-


FORM fill_contractheader *

-


form fill_contractheader.

gd_fica_hd-doc_no =

gd_fica_hd-doc_type_ca =

gd_fica_hd-res_key =

gd_fica_hd-fikey =

gd_fica_hd-payment_form_ref =

endform. "fill_contractheader

-


FORM fill_cpd *

-


form fill_cpd.

gd_customercpd-name

gd_customercpd-name_2

gd_customercpd-name_3

gd_customercpd-name_4

gd_customercpd-postl_code

gd_customercpd-city

gd_customercpd-country

gd_customercpd-country_iso

gd_customercpd-street

gd_customercpd-po_box

gd_customercpd-pobx_pcd

gd_customercpd-pobk_curac

gd_customercpd-bank_acct

gd_customercpd-bank_no

gd_customercpd-bank_ctry

gd_customercpd-bank_ctry_iso

gd_customercpd-tax_no_1

gd_customercpd-tax_no_2

gd_customercpd-tax

gd_customercpd-equal_tax

gd_customercpd-region

gd_customercpd-ctrl_key

gd_customercpd-instr_key

gd_customercpd-dme_ind

gd_customercpd-langu_iso

endform. "fill_cpd

-


FORM fill_ar *

-


form fill_accountar.

CLEAR it_accountreceivable.

it_accountreceivable-itemno_acc =

it_accountreceivable-customer =

IT_ACCOUNTRECEIVABLE-REF_KEY_1 =

IT_ACCOUNTRECEIVABLE-REF_KEY_2 =

IT_ACCOUNTRECEIVABLE-REF_KEY_3 =

IT_ACCOUNTRECEIVABLE-PMNTTRMS =

IT_ACCOUNTRECEIVABLE-BLINE_DATE =

IT_ACCOUNTRECEIVABLE-DSCT_DAYS1 =

IT_ACCOUNTRECEIVABLE-DSCT_DAYS2 =

IT_ACCOUNTRECEIVABLE-NETTERMS =

IT_ACCOUNTRECEIVABLE-DSCT_PCT1 =

IT_ACCOUNTRECEIVABLE-DSCT_PCT2 =

IT_ACCOUNTRECEIVABLE-PYMT_METH =

IT_ACCOUNTRECEIVABLE-DUNN_KEY =

IT_ACCOUNTRECEIVABLE-DUNN_BLOCK =

IT_ACCOUNTRECEIVABLE-PMNT_BLOCK =

IT_ACCOUNTRECEIVABLE-VAT_REG_NO =

IT_ACCOUNTRECEIVABLE-ALLOC_NMBR =

it_accountreceivable-item_text =

IT_ACCOUNTRECEIVABLE-PARTNER_BK =

IT_ACCOUNTRECEIVABLE-GL_ACCOUNT =

it_accountreceivable-comp_code

it_accountreceivable-bus_area

it_accountreceivable-pmtmthsupl

it_accountreceivable-paymt_ref

it_accountreceivable-scbank_ind

it_accountreceivable-businessplace

it_accountreceivable-sectioncode

it_accountreceivable-branch

it_accountreceivable-pymt_cur

it_accountreceivable-pymt_cur_iso

it_accountreceivable-pymt_amt

it_accountreceivable-c_ctr_area

it_accountreceivable-bank_id

it_accountreceivable-supcountry

it_accountreceivable-supcountry_iso

it_accountreceivable-tax_code

it_accountreceivable-taxjurcode

it_accountreceivable-tax_date

it_accountreceivable-sp_gl_ind

it_accountreceivable-partner_guid = '1465464654'.

APPEND it_accountreceivable.

endform. "fill_accountar

-


FORM fill_ap *

-


form fill_accountap.

clear it_accountpayable.

it_accountpayable-itemno_acc = 1.

it_accountpayable-vendor_no = '0000060259'.

it_accountpayable-vendor_no = '0000060693'.

it_accountpayable-gl_account

it_accountpayable-ref_key_1

it_accountpayable-ref_key_2

it_accountpayable-ref_key_3

it_accountpayable-comp_code = 'SLOC'.

it_accountpayable-bus_area = '01'.

it_accountpayable-pmnttrms = 'A000'.

it_accountpayable-bline_date

it_accountpayable-dsct_days1

it_accountpayable-dsct_days2

it_accountpayable-netterms

it_accountpayable-dsct_pct1

it_accountpayable-dsct_pct2

it_accountpayable-pymt_meth

it_accountpayable-pmtmthsupl

it_accountpayable-pmnt_block

it_accountpayable-scbank_ind

it_accountpayable-supcountry

it_accountpayable-supcountry_iso

it_accountpayable-bllsrv_ind

it_accountpayable-alloc_nmbr

it_accountpayable-item_text = 'BAPI Test A/P line item'. "#EC NOTEXT

it_accountpayable-po_sub_no

it_accountpayable-po_checkdg

it_accountpayable-po_ref_no

it_accountpayable-w_tax_code

it_accountpayable-businessplace

it_accountpayable-sectioncode

it_accountpayable-instr1

it_accountpayable-instr2

it_accountpayable-instr3

it_accountpayable-instr4

it_accountpayable-branch

it_accountpayable-pymt_cur

it_accountpayable-pymt_amt

it_accountpayable-pymt_cur_iso

it_accountpayable-sp_gl_ind

append it_accountpayable.

endform. "fill_accountap

-


FORM fill_tax *

-


form fill_accounttax.

clear it_accounttax.

it_accounttax-itemno_acc = 4.

it_accounttax-gl_account = '0011361502'.

it_accounttax-tax_code = 'A3'.

it_accounttax-acct_key = 'VST'.

it_accounttax-cond_key = 'MWVS'.

it_accounttax-itemno_tax = 8.

append it_accounttax.

clear it_accounttax.

it_accounttax-itemno_acc = 7.

it_accounttax-gl_account = '0011361502'.

it_accounttax-tax_code = 'A3'.

it_accounttax-acct_key = 'VST'.

it_accounttax-COND_KEY = 'MWVS'.

append it_accounttax.

clear it_accounttax.

it_accounttax-itemno_acc = 10.

it_accounttax-itemno_acc = 9.

it_accounttax-gl_account = '0011361502'.

it_accounttax-tax_code = 'A3'.

it_accounttax-acct_key = 'VST'.

it_accounttax-cond_key = 'MWVS'.

it_accounttax-itemno_tax = 4.

append it_accounttax.

endform. "fill_accounttax

-


FORM fill_currencyamount *

-


form fill_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 1.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '-7408036.2'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 2.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '5336472.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 3.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '3840.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 4.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_base = '5548.00'.

it_currencyamount-amt_doccur = '832.2'.

it_currencyamount-amt_doccur = '576.00'.

it_currencyamount-amt_base = '3840.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 5.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '2051279.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 6.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '1690.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 7.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_base = '1690.00'.

it_currencyamount-amt_doccur = '253.5'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 8.

it_currencyamount-itemno_acc = 7.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '13905.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 9.

it_currencyamount-itemno_acc = 8.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_base = '2.70'.

it_currencyamount-amt_doccur = '18.00'.

append it_currencyamount.

clear it_currencyamount.

it_currencyamount-itemno_acc = 10.

it_currencyamount-itemno_acc = 9.

it_currencyamount-curr_type = '00'.

it_currencyamount-currency = 'MXN'.

it_currencyamount-amt_doccur = '2.70'.

it_currencyamount-amt_base = '18.00'.

append it_currencyamount.

endform. "fill_currencyamount

-


FORM fill_criteria *

-


form fill_criteria.

CLEAR it_criteria.

it_criteria-itemno_acc = 2.

it_criteria-fieldname = 'BZIRK'.

it_criteria-character = '000001'.

append it_criteria.

endform. "fill_criteria

-


FORM fill_valuefield *

-


form fill_valuefield.

CLEAR it_valuefield.

it_valuefield-itemno_acc = 2.

it_valuefield-fieldname = 'VV010'.

it_valuefield-curr_type

it_valuefield-currency = 'EUR'.

it_valuefield-currency_iso

it_valuefield-amt_valcom

it_valuefield-base_uom

it_valuefield-base_uom_iso

it_valuefield-qua_valcom

append it_valuefield.

endform. "fill_valuefield

-


FORM fill_extension *

-


form fill_extension.

CLEAR it_ext.

it_ext-field1

it_ext-field2

it_ext-field3

it_ext-field4

APPEND it_ext.

DATA: ls_zzz TYPE ZZZ_ACCIT.

CLEAR it_ext2.

it_ext2-structure = 'ZZZ_ACCIT'.

ls_zzz-posnr = 2.

ls_zzz-awref_reb = '123654'.

ls_zzz-aworg_reb = '654654'.

ls_zzz-grant_nbr = '0022002'.

MOVE ls_zzz TO it_ext2-valuepart1.

APPEND it_ext2.

endform. "fill_extension

-


FORM fill_paymentcard *

-


form fill_paymentcard.

CLEAR it_paymentcard.

it_paymentcard-itemno_acc = 1.

it_paymentcard-cc_glaccount

it_paymentcard-cc_type

it_paymentcard-cc_number

it_paymentcard-cc_seq_no

it_paymentcard-cc_valid_f

it_paymentcard-cc_valid_t

it_paymentcard-cc_name

it_paymentcard-dataorigin

it_paymentcard-authamount = '100'.

it_paymentcard-currency = 'EUR'.

it_paymentcard-currency_iso

it_paymentcard-cc_autth_no

it_paymentcard-auth_refno

it_paymentcard-auth_date

it_paymentcard-auth_time

it_paymentcard-merchidcl

it_paymentcard-point_of_receipt

it_paymentcard-terminal

it_paymentcard-cctyp = '1'.

APPEND it_paymentcard.

endform. "fill_paymentcard

-


FORM fill_contractitem *

-


form fill_contractitem.

CLEAR it_fica_it.

it_fica_it-itemno_acc

it_fica_it-cont_acct

it_fica_it-main_trans

it_fica_it-sub_trans

it_fica_it-func_area

it_fica_it-fm_area

it_fica_it-cmmt_item

it_fica_it-funds_ctr

it_fica_it-fund

append it_fica_it.

endform. "fill_contractitem

&----


*& Form fill_re

&----


form fill_re .

CLEAR it_re.

it_re-itemno_acc =

it_re-business_entity =

it_re-building =

it_re-property =

it_re-rental_object =

it_re-serv_charge_key =

it_re-settlement_unit =

it_re-contract_no =

APPEND it_re.

*

endform. "fill_re

Regards,

Gaurav

Read only

0 Likes
1,038

Hi,

I am facing problem for document post, with holding tax.

i have tried the following code by passing GL table, currency and accounttax tables.it shows doc success post and return doc no.but i couldn't find doc in bkpf table.i have used commit bapi also.

can u have a look once and correct me please.its a bit urgent requirement.

thanks in advance

wa_documentheader-username = im_header-zz_req_by.

wa_documentheader-header_txt = im_header-bktxt.

wa_documentheader-comp_code = im_header-zz_charg_bukrs.

wa_documentheader-doc_date = sy-datum.

wa_documentheader-pstng_date = sy-datum.

wa_documentheader-doc_type = im_header-blart.

wa_documentheader-bus_act = 'RFBU'.

wa_documentheader-ref_doc_no = 'testing'.

  • fill GL (line 1)

tb_accountgl-itemno_acc = 1.

tb_accountgl-comp_code = im_header-zz_charg_bukrs.

tb_accountgl-gl_account = '0000800000'.

tb_accountgl-item_text = '#630020$5109669400\5109673020'.

tb_accountgl-costcenter = '1101810007'.

tb_accountgl-tax_code = 'P1'.

APPEND tb_accountgl.

tb_currencyamount-itemno_acc = 1.

tb_currencyamount-curr_type = '00'.

tb_currencyamount-currency = 'AUD'.

tb_currencyamount-amt_doccur = '150.00'.

APPEND tb_currencyamount.

tb_accountgl-itemno_acc = 2.

tb_accountgl-comp_code = im_header-zz_charg_bukrs.

tb_accountgl-gl_account = '0000121710'.

TB_ACCOUNTGL-ITEM_TEXT = '#630020$5109669400\5109673020'.

APPEND tb_accountgl.

tb_currencyamount-itemno_acc = 2.

tb_currencyamount-curr_type = '00'.

tb_currencyamount-currency = 'AUD'.

tb_currencyamount-amt_doccur = '-125.00'.

APPEND tb_currencyamount.

tb_accounttax-itemno_acc = 3.

tb_accounttax-gl_account = '0000121710'.

tb_accounttax-tax_code = 'P1'.

tb_accounttax-TAX_RATE = '20'.

APPEND tb_accounttax.

tb_currencyamount-itemno_acc = 3.

tb_currencyamount-curr_type = '00'.

tb_currencyamount-currency = 'AUD'.

tb_currencyamount-amt_doccur = '-25.00'.

tb_currencyamount-tax_amt = '-25.00'.

tb_currencyamount-amt_base = '-125.00'.

APPEND tb_currencyamount.

CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

EXPORTING

documentheader = wa_documentheader

customercpd = wa_customercpd

IMPORTING

obj_type = wf_obj_type

obj_key = wf_obj_key

obj_sys = wf_obj_sys

TABLES

accountgl = tb_accountgl

accountreceivable = tb_accountreceivable

accountpayable = tb_accountpayable

accounttax = tb_accounttax

currencyamount = tb_currencyamount

return = tb_return

READ TABLE tb_return INDEX 1.

  • Sucessfull posting

IF tb_return-type = 'S'.

wa_fi_docno = tb_return-message_v2.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'

IMPORTING

return = tb_return.

Endif.