Application Development 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: 

problem with BAPI Commit

Former Member
0 Kudos

Dear Friends,

I am facing problem with BAPI_TRANSACTION_COMMIT.

I used BAPI_ACC_DOCUMENT_POST for accounting document posting. The document is created successful and the BAPI return table as well as the IMPORT paramters have the document number.

Then I used BAPI_TRANSACTION_COMMIT to commit the changes. This is also successful, ie.,

sy-subrc = 0, but i'm not able to view the document in FB03 as well in the database tables (BKPF, BSEG).

Whereas if I do manual posting via FB01, i'm able to view the doc. Kindly let me know what is wrong with this commit BAPI..

Thanks,

Nidhya

4 REPLIES 4

Former Member
0 Kudos

Hai,

Check the following code which is working fine:

l_documentheader LIKE bapiache08,

l_accountgl LIKE bapiacgl08 OCCURS 2 WITH HEADER LINE,

l_currencyamount LIKE bapiaccr08 OCCURS 2 WITH HEADER LINE,

l_return LIKE bapiret2 OCCURS 5 WITH HEADER LINE,

l_obj_type LIKE bapiache02-obj_type,

l_obj_key LIKE bapiache02-obj_key,

l_obj_sys LIKE bapiache02-obj_sys.

LOOP AT it_account_tab.

CLEAR:

g_fis_period,

g_pstng_date,

g_gl_account,

g_costcenter,

g_amt_doccur,

g_sign,

l_documentheader,

l_accountgl,

l_currencyamount,

l_return,

zbc_kto_conv.

REFRESH:l_accountgl,

l_currencyamount,

l_return.

g_fis_period = it_account_tab-line+0(6).

g_pstng_date = it_account_tab-line+6(8).

g_gl_account = it_account_tab-line+14(5).

g_costcenter = it_account_tab-line+19(6).

g_amt_doccur = it_account_tab-line+25(16).

g_sign = it_account_tab-line+41(1).

IF g_fis_period4(2) NE g_pstng_date4(2).

g_pstng_date4(2) = g_fis_period4(2).

ENDIF.

SELECT SINGLE * FROM zbc_kto_conv

WHERE zpoeskto = g_gl_account.

IF sy-subrc <> 0.

MOVE-CORRESPONDING it_account_tab TO it_error_acc_tab.

APPEND it_error_acc_tab.

CLEAR it_error_acc_tab.

CONTINUE.

ENDIF.

l_documentheader-username = sy-uname.

l_documentheader-comp_code = '1000'.

l_documentheader-fisc_year = g_fis_period(4).

l_documentheader-doc_date = sy-datum.

l_documentheader-pstng_date = g_pstng_date.

l_documentheader-fis_period = g_fis_period+4(2).

l_documentheader-doc_type = 'IP'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = zbc_kto_conv-pri_hkont

IMPORTING

output = zbc_kto_conv-pri_hkont.

l_accountgl-itemno_acc = '1'.

l_accountgl-gl_account = zbc_kto_conv-pri_hkont.

l_accountgl-comp_code = '1000'.

l_accountgl-pstng_date = g_pstng_date.

l_accountgl-fis_period = g_fis_period+4(2).

IF zbc_kto_conv-zkonv_kode = 'C'.

l_accountgl-costcenter = g_costcenter.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = l_accountgl-costcenter

IMPORTING

output = l_accountgl-costcenter.

ENDIF.

IF zbc_kto_conv-zkonv_kode = 'P'.

l_accountgl-profit_ctr = g_costcenter.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = l_accountgl-profit_ctr

IMPORTING

output = l_accountgl-profit_ctr.

ENDIF.

APPEND l_accountgl.

CLEAR: l_accountgl-costcenter,

l_accountgl-profit_ctr.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = zbc_kto_conv-mod_hkont

IMPORTING

output = zbc_kto_conv-mod_hkont.

l_accountgl-itemno_acc = '2'.

l_accountgl-gl_account = zbc_kto_conv-mod_hkont.

APPEND l_accountgl.

CLEAR l_accountgl.

l_currencyamount-itemno_acc = '1'.

l_currencyamount-currency = 'DKK'.

l_currencyamount-currency_iso = 'DKK'.

l_currencyamount-amt_doccur = g_amt_doccur.

l_currencyamount-amt_doccur = l_currencyamount-amt_doccur / 100.

IF g_sign = '-'.

l_currencyamount-amt_doccur = l_currencyamount-amt_doccur * -1.

ENDIF.

APPEND l_currencyamount.

l_currencyamount-itemno_acc = '2'.

l_currencyamount-amt_doccur = l_currencyamount-amt_doccur * -1.

APPEND l_currencyamount.

CLEAR l_currencyamount.

CALL FUNCTION 'BAPI_ACC_GL_POSTING_POST'

EXPORTING

documentheader = l_documentheader

IMPORTING

obj_key = l_obj_key

TABLES

accountgl = l_accountgl

currencyamount = l_currencyamount

return = l_return.

IF l_obj_key NE '$'.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ELSE.

MOVE-CORRESPONDING it_account_tab TO it_error_acc_tab.

APPEND it_error_acc_tab.

CLEAR it_error_acc_tab.

ENDIF.

ENDLOOP.

Former Member
0 Kudos

Have u called BAPI_TRANSACTION_COMMIT with commit?

If not try once.

Thanks

Edited by: chandra madapati on Dec 27, 2007 11:55 AM

Former Member
0 Kudos

Hi,

Paste your code...if any problem

Regards,

Hk

Former Member
0 Kudos

Hi,

Are you executing the BAPI directly in SE37 or in your code?

If you are testing in SE37, You have to run as a sequences with a) BAPI_ACC_DOCUMENT_POST

b) BAPI_TRANSACTION_COMMIT

Then you can see the changes in FB03.

Regards,

Hk