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_DOCUMENT_POST

Former Member
0 Likes
1,128

I'm trying to implement BAPI_ACC_DOCUMENT_POST. I'm following the examples for filling the structures, but I'm not really sure if Im filling well.

this is the code, hoping you can help me. Thanks!!

LOOP AT t_itab.
PERFORM llena_header.

READ TABLE t_zctasing WITH KEY XBLNR = t_itab-tarifa
BUKRS = t_itab-sociedad
ZDIVISION = t_itab-division.
IF sy-subrc EQ 0.
PERFORM llena_accountgl.
PERFORM llena_accounttax.
ENDIF.
* PERFORM llena_accountgl.
PERFORM llena_currencyamount.



CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
exporting
documentheader = t_header
* customercpd = gd_customercpd
* contractheader = gd_fica_hd
* importing
* obj_type = l_type
* obj_key = l_key
* obj_sys = l_sys
tables
accountgl = t_accountgl
accounttax = t_accounttax
currencyamount = t_currencyamount
return = t_return.



* IF sy-subrc = 0.
* CLEAR commit_ret.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT = 'X'
* IMPORTING
* RETURN = commit_ret.
* ENDIF.


CLEAR : t_header,
t_accountgl[],
t_accounttax[],
t_currencyamount[],
t_return[].

ENDLOOP.


FORM llena_header .

t_header-username = sy-uname.
t_header-header_txt = t_itab-descripcion.
t_header-comp_code = t_itab-sociedad.
t_header-doc_date = sy-datum.
t_header-pstng_date = sy-datum.
t_header-fis_period = sy-datum+2(2).
t_header-doc_type = t_itab-clase_docto.
t_header-ref_doc_no = t_itab-tarifa.
t_header-bus_act = 'RFBU'.

ENDFORM. " llena_header
*&---------------------------------------------------------------------*
*& Form llena_accountgl
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM llena_accountgl .
CLEAR t_accountgl.

IF t_zctasing-ziep EQ 'X'.
IF t_itab-iva EQ '10'.
t_accountgl-tax_code = 'A1'.
ELSEIF t_itab-iva EQ '15'.
t_accountgl-tax_code = 'A2'.
ELSEIF t_itab-iva EQ '16'.
t_accountgl-tax_code = 'A3'.
ELSEIF t_itab-iva EQ '11'.
t_accountgl-tax_code = 'A4'.
ENDIF.
ELSEIF t_itab-iva EQ '11'.
t_accountgl-tax_code = 'S2'.
ELSEIF t_itab-iva EQ '16'.
t_accountgl-tax_code = 'S1'.
ENDIF.


CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = t_zctasing-zcta
IMPORTING
OUTPUT = t_zctasing-zcta.

clear t_accountgl.
t_accountgl-itemno_acc = 1.
t_accountgl-gl_account = t_zctasing-zcta.
t_accountgl-item_text = 'BAPI Test G/L line item'. "#EC NOTEXT
t_accountgl-comp_code = t_itab-sociedad.
t_accountgl-bus_area = t_itab-division.
append t_accountgl.

ENDFORM. " llena_accountgl
*&---------------------------------------------------------------------*
*& Form llena_accounttax
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM llena_accounttax .

SELECT SINGLE *
FROM T030K
WHERE ktopl EQ 'MM01' AND
ktosl EQ 'MWS' AND
mwsKz EQ t_accountgl-tax_code.


clear t_accounttax.
t_accounttax-itemno_acc = 2.
t_accounttax-gl_account = t030k-konts.
t_accounttax-tax_code = t_accountgl-tax_code.
t_accounttax-acct_key = 'MWS'.
t_accounttax-cond_key = 'MWAS'.
* t_accounttax-itemno_tax = 2.
append t_accounttax.

ENDFORM. " llena_accounttax
*&---------------------------------------------------------------------*
*& Form llena_currencyamount
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM llena_currencyamount .

 DATA : v_importe_iva TYPE bapiaccr09-amt_doccur,
v_importe TYPE bapiaccr09-amt_doccur.

v_importe_iva = t_itab-importe * t_itab-iva.
v_importe_iva = v_importe_iva / 100.
v_importe = t_itab-importe - v_importe_iva.

clear t_currencyamount.
t_currencyamount-itemno_acc = 1.
* t_currencyamount-curr_type = '10'.
t_currencyamount-currency = 'MXN'.
t_currencyamount-amt_doccur = t_itab-importe.
append t_currencyamount.

clear t_currencyamount.
t_currencyamount-itemno_acc = 2.
* t_currencyamount-curr_type = '10'.
t_currencyamount-currency = 'MXN'.
t_currencyamount-amt_base = t_itab-importe.
t_currencyamount-amt_doccur = v_importe_iva.
append t_currencyamount.

* clear t_currencyamount.
* t_currencyamount-itemno_acc = 3.
** t_currencyamount-curr_type = '10'.
* t_currencyamount-currency = 'MXN'.
** t_currencyamount-amt_doccur = '3840.00'.
* append t_currencyamount.

10 REPLIES 10
Read only

brad_bohn
Active Contributor
0 Likes
1,069

Do you have a specific issue, such as no document or is there something wrong with your posted document? I don't see the extension parameter - have you implemented the BTE for the posting keys (covered in many posts on this forum)? Why is the commit code commented out?

Read only

Former Member
0 Likes
1,069

When the bapi end, in the internal table t_return, have an error 702 (Balance in transaction currency), I'm new in this module, I never used BTE, I'm looking some information about structure extension1, Do you have an example about this??

I'm trying to post a document for receivables doubtful.

Read only

Former Member
0 Likes
1,069

See test report ACC_BAPI_TEST_DOCUMENT. You will get better idea how to fill up all different parameters/tables.

regards,

Pranav

Read only

Former Member
0 Likes
1,069

I think it's telling you that the sum of the debits has to equal the sum of the credits and they don't.

Rob

Read only

Former Member
0 Likes
1,069

Yes.

Following the report ACC_BAPI_TEST_DOCUMENT, change my code as follows:

Even still get error 702 " Balance in transaction currency". What's happening?? help please!!!

t_accountgl-itemno_acc = 2.

t_accountgl-gl_account = t_zctasing-zcta. "'0021510201'.

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

  • t_accountgl-comp_code = t_itab-sociedad.

  • t_accountgl-bus_area = t_itab-division.

t_accountgl-profit_ctr = t_zctasing-zprctr.

t_accountgl-tax_code = 'S1'.

append t_accountgl.

FORM llena_currencyamount .

DATA : v_importe_iva TYPE bapiaccr09-amt_doccur,

v_importe TYPE bapiaccr09-amt_doccur,

v_iva(5) TYPE c.

CONCATENATE '1.' t_itab-iva INTO v_iva. " '1.16'

v_importe_iva = ( t_itab-importe / v_iva ) * t_itab-iva.

v_importe_iva = v_importe_iva / 100.

v_importe = t_itab-importe - v_importe_iva.

clear t_currencyamount.

t_currencyamount-itemno_acc = 1.

  • t_currencyamount-curr_type = '10'.

t_currencyamount-currency = 'MXN'.

t_currencyamount-amt_doccur = t_itab-importe * ( -1 ). "'565.58'

append t_currencyamount.

clear t_currencyamount.

t_currencyamount-itemno_acc = 2.

  • t_currencyamount-curr_type = '10'.

t_currencyamount-currency = 'MXN'.

t_currencyamount-amt_doccur = v_importe. " '487.57'

append t_currencyamount.

clear t_currencyamount.

t_currencyamount-itemno_acc = 3.

  • t_currencyamount-curr_type = '10'.

t_currencyamount-currency = 'MXN'.

t_currencyamount-amt_base = v_importe. " '487.57'

t_currencyamount-amt_doccur = v_importe_iva. " '78.01'

append t_currencyamount.

ENDFORM. " llena_currencyamount

Read only

0 Likes
1,069

Please make GL account line item number matches with the currency amount number... otheriwse it will throw such an error.

Nabheet

Read only

Former Member
0 Likes
1,069

I foundwhat was missing, thanks to all for your help.

Read only

Former Member
0 Likes
1,069

Moderator message - Per forum rules, please tell the forum just what solved the problem. You can also assign Po1nts to helpful answers. This encourages people to help you in the future. Rob

Read only

Former Member
0 Likes
1,069

the structure ACCOUNTRECEIVABLE(BAPIACAR09) structure was missing to fill.

FORM llena_receivable .

CLEAR t_accountreceivable.

t_accountreceivable-itemno_acc = 1.

t_accountreceivable-customer = t_itab-cliente.

t_accountreceivable-item_text = t_itab-tarifa.

APPEND t_accountreceivable.

ENDFORM.

Edited by: Hugo0355 on Oct 22, 2010 4:16 PM

Read only

Former Member
0 Likes
1,069

Thanks for the update.

Rob