‎2010 Dec 18 6:59 AM
Hi ALL THE MASTERS,
I have created a program for multiple document posting with Spl G/L through BAPI BAPI_ACC_DOCUMENT_POST .For this the user can select 1 or many documents to post for a Vendor.It is working fine for 1 document posting.Now when posting for many document then the requirement is that the bank entry should be single with the total of all the amounts of all the vendors.When I post then i AM GETTING ERROR 'Balance In Transaction Currency'.
How can I rectify it.
Here is the code ssample which I have written.(T_ITAB is Vendor internal table & T_FINALN is bank Internal Table shoould contain I entry which is correct from my side)
COUNT = 0.
LOOP AT T_ITAB INTO W_ITAB WHERE CHECK = 'X'. "(CHECK indicates the rows selected from ALV which is displayed after user input)
DOCHEADER-USERNAME = SY-UNAME.
DOCHEADER-COMP_CODE = W_ITAB-BUKRS.
DOCHEADER-BUS_ACT = W_ITAB-GLVOR.
DOCHEADER-FISC_YEAR = W_ITAB-GJAHR.
DOCHEADER-REF_DOC_NO = W_ITAB-XBLNR.
DOCHEADER-DOC_DATE = W_ITAB-BLDAT.
DOCHEADER-PSTNG_DATE = W_ITAB-BUDAT.
DOCHEADER-TRANS_DATE = W_ITAB-WWERT.
DOCHEADER-FIS_PERIOD = W_ITAB-MONAT.
DOCHEADER-DOC_TYPE = 'KZ'.
ADD 1 TO COUNT.
WA_ACCOUNTPAY-ITEMNO_ACC = COUNT.
WA_ACCOUNTPAY-VENDOR_NO = W_ITAB-LIFNR.
WA_ACCOUNTPAY-GL_ACCOUNT = W_ITAB-HKONT.
WA_ACCOUNTPAY-GL_ACCOUNT = '0000428010'.
WA_ACCOUNTPAY-PMNTTRMS = W_ITAB-ZTERM.
WA_ACCOUNTPAY-BLINE_DATE = W_ITAB-ZFBDT.
WA_ACCOUNTPAY-BUSINESSPLACE = W_ITAB-BUPLA.
WA_ACCOUNTPAY-SECTIONCODE = W_ITAB-SECCO.
WA_ACCOUNTPAY-ALLOC_NMBR = W_ITAB-ZUONR.
WA_ACCOUNTPAY-ITEM_TEXT = W_ITAB-SGTXT.
WA_ACCOUNTPAY-W_TAX_CODE = W_ITAB-QSSKZ.
WA_ACCOUNTPAY-COMP_CODE = W_ITAB-BUKRS.
WA_ACCOUNTPAY-PROFIT_CTR = W_ITAB-PRCTR.
WA_ACCOUNTPAY-SP_GL_IND = W_ITAB-ZUMSK.
WA_ACCOUNTPAY-TAX_CODE = W_ITAB-MWSKZ.
WA_ACCOUNTPAY-PYMT_CUR = W_ITAB-PSWSL.
WA_ACCOUNTPAY-PYMT_AMT = W_ITAB-WRBTR.
WA_ACCOUNTPAY-PYMT_CUR_ISO =
IF W_ITAB-ZUMSK = 'B'.
WA_ACCOUNTPAY-TAX_CODE = 'V0'.
ENDIF.
APPEND WA_ACCOUNTPAY TO ACCOUNTPAY.
CLEAR: WA_ACCOUNTPAY.
MOVE W_ITAB-EBELN TO WA_EXTENSION1-FIELD1.
MOVE W_ITAB-EBELP TO WA_EXTENSION1-FIELD2.
MOVE W_ITAB-POSKI TO WA_EXTENSION1-FIELD3.
MOVE W_ITAB-PROJK TO WA_EXTENSION1-FIELD3.
MOVE W_ITAB-HKONT TO WA_EXTENSION1-FIELD4.
APPEND WA_EXTENSION1 TO EXTENSION1.
CLEAR: WA_EXTENSION1.
WA_CURRAMOUNT-ITEMNO_ACC = COUNT. " " Line Item Number
WA_CURRAMOUNT-CURR_TYPE = '00'. " " Currency Type
WA_CURRAMOUNT-CURRENCY = W_ITAB-WAERS. " " Currency Key
WA_CURRAMOUNT-CURRENCY_ISO = W_ITAB-WAERS. " " ISO Code
WA_CURRAMOUNT-AMT_DOCCUR = W_ITAB-WRBTR. " " Amount
WA_CURRAMOUNT-AMT_BASE = W_ITAB-DMBTR.
WA_CURRAMOUNT-TAX_AMT = W_ITAB-WRBTR.
APPEND WA_CURRAMOUNT TO CURRAMOUNT.
CLEAR: WA_CURRAMOUNT.
IF W_ITAB-ZUMSK = 'B'.
ADD 2 TO COUNT.
WA_ACCOUNTTAX-ITEMNO_ACC = COUNT.
WA_ACCOUNTTAX-GL_ACCOUNT = '0000428370'.
WA_ACCOUNTTAX-TAX_CODE = W_ITAB-MWSKZ.
WA_ACCOUNTTAX-TAX_CODE = 'V0'.
WA_ACCOUNTTAX-TAX_RATE = '0.00'.
WA_ACCOUNTTAX-ACCT_KEY = 'VS1'.
WA_ACCOUNTTAX-COND_KEY = 'JMOP'.
WA_ACCOUNTTAX-ITEMNO_TAX = COUNT - 2.
APPEND WA_ACCOUNTTAX TO ACCOUNTTAX.
CLEAR: WA_ACCOUNTTAX.
WA_CURRAMOUNT-ITEMNO_ACC = COUNT. " " Line Item Number
WA_CURRAMOUNT-CURR_TYPE = '00'. " " Currency Type
WA_CURRAMOUNT-CURRENCY = W_ITAB-PSWSL. " " Currency Key
WA_CURRAMOUNT-CURRENCY_ISO = W_ITAB-WAERS. " " ISO Code
WA_CURRAMOUNT-AMT_DOCCUR = '0.00'. " " Amount
WA_CURRAMOUNT-AMT_BASE = '0.00'. " " Base Amount
WA_CURRAMOUNT-TAX_AMT = W_ITAB-WRBTR.
APPEND WA_CURRAMOUNT TO CURRAMOUNT.
CLEAR WA_CURRAMOUNT.
MOVE-CORRESPONDING W_ITAB TO W_BSEGNEW.
APPEND W_BSEGNEW TO T_BSEGNEW.
*
MOVE-CORRESPONDING W_ITAB TO W_BKPFNEW.
APPEND W_BKPFNEW TO T_BKPFNEW.
CLEAR: W_ITAB,W_BSEGNEW,W_BKPFNEW.
ENDIF.
CLEAR: W_ITAB.
ENDLOOP.
COUNT = 0.
LOOP AT T_FINALN INTO W_FINALN.
ADD 2 TO COUNT.
WA_ACCOUNTGL-ITEMNO_ACC = COUNT. " " Line Item Number
WA_ACCOUNTGL-GL_ACCOUNT = HKONT. " " GL Account Number
WA_ACCOUNTGL-COMP_CODE = W_FINALN-BUKRS. " " Company Code
WA_ACCOUNTGL-PSTNG_DATE = W_FINALN-BUDAT. " " Posting Date
WA_ACCOUNTGL-DOC_TYPE = 'KZ'. "SA " " Document Type
WA_ACCOUNTGL-FISC_YEAR = W_FINALN-GJAHR. " " Fiscal Year
WA_ACCOUNTGL-FIS_PERIOD = W_FINALN-MONAT. " " Fiscal Period
WA_ACCOUNTGL-ITEM_TEXT = ''. " " Item Text
WA_ACCOUNTGL-ALLOC_NMBR = ''.
wa_accountgl-bus_area = '2500'.
wa_accountgl-acct_type = 'K'.
WA_ACCOUNTGL-PROFIT_CTR = V_PRCTR.
APPEND WA_ACCOUNTGL TO ACCOUNTGL.
CLEAR WA_ACCOUNTGL.
WA_CURRAMOUNT-ITEMNO_ACC = COUNT. " " Line Item Number
WA_CURRAMOUNT-CURR_TYPE = '00'. " " Currency Type
WA_CURRAMOUNT-CURRENCY = W_FINALN-WAERS. " " Currency Key
WA_CURRAMOUNT-CURRENCY_ISO = W_FINALN-WAERS. " " ISO Code
WA_CURRAMOUNT-AMT_DOCCUR = V_WRBTR * -1. " " Amount
WA_CURRAMOUNT-AMT_BASE = V_WRBTR * -1. " " Base Amount
WA_CURRAMOUNT-TAX_AMT = V_WRBTR * -1.
APPEND WA_CURRAMOUNT TO CURRAMOUNT.
CLEAR WA_CURRAMOUNT.
WA_ACCOUNTWT-ITEMNO_ACC = COUNT.
WA_ACCOUNTWT-WT_TYPE = W_FINALN-MWART.
WA_ACCOUNTWT-WT_CODE = W_FINALN-QSSKZ.
WA_ACCOUNTWT-BAS_AMT_LC = W_FINALN-QSSHB.
WA_ACCOUNTWT-BAS_AMT_TC = W_FINALN-FWBAS.
WA_ACCOUNTWT-BAS_AMT_IND = 'X'.
APPEND WA_ACCOUNTWT TO ACCOUNTWT.
CLEAR: WA_ACCOUNTWT.
ADD 2 TO COUNT.
WA_ACCOUNTTAX-ITEMNO_ACC = COUNT.
WA_ACCOUNTTAX-GL_ACCOUNT = '0000428370'.
WA_ACCOUNTTAX-TAX_CODE = 'V0'.
WA_ACCOUNTTAX-TAX_CODE = W_FINALN-MWSKZ.
WA_ACCOUNTTAX-ACCT_KEY = 'VS1'.
WA_ACCOUNTTAX-COND_KEY = 'JMOP'.
*
APPEND WA_ACCOUNTTAX TO ACCOUNTTAX.
CLEAR: WA_ACCOUNTTAX.
WA_CURRAMOUNT-ITEMNO_ACC = COUNT. " " Line Item Number
WA_CURRAMOUNT-CURR_TYPE = '00'. " " Currency Type
WA_CURRAMOUNT-CURRENCY = W_FINALN-WAERS. " " Currency Key
WA_CURRAMOUNT-CURRENCY_ISO = W_FINALN-WAERS. " " ISO Code
WA_CURRAMOUNT-AMT_DOCCUR = '00'. " " Amount
WA_CURRAMOUNT-AMT_BASE = '0.00'. " " Base Amount
APPEND WA_CURRAMOUNT TO CURRAMOUNT.
CLEAR WA_CURRAMOUNT.
ENDLOOP.
After this the BAPI is called BAPI_ACC_DOCUMENT_CHECK & BAPI_ACC_DOCUMENT_POST .It is giving error in RETURN in 1st BAPI.
Thanks In Advance
Bharti Jain
‎2010 Dec 18 7:21 AM
hi,
Pass Exch_rate = '1.00' while passign currencyamount table to BAPI .
Please check data which you are passing is correct .
Regards
Deepak.
‎2010 Dec 18 7:21 AM
hi,
Pass Exch_rate = '1.00' while passign currencyamount table to BAPI .
Please check data which you are passing is correct .
Regards
Deepak.
‎2010 Dec 18 8:06 AM
Thanks Deepak,
I have done as u have suggested but the same error is coming while posting for multiple documents
'Balane In Transaction Currency'.
Regards,
Bharti Jain
‎2010 Dec 18 8:23 AM
hi ,
when you are using LOOP ENDLOOP for posting via BAPi . then do it
one by one
i.e in loop at itab .
call bapi_acc_document_check
call bapi_acc_document_post
cal bapi_transaction_commit .
endloop .
pass data by one document at a time in loop endloop..
Then you can rectify error individually .
Regards
Deepak.
‎2010 Dec 18 8:39 AM
Thanks A Lot ,
If I Call The BAPI inside the loop then suppose there will 2 Documents selected then there will be 2 lines in ACCOUNTPAY and 2 lines in ACCOUNTGL.The document will be posted but if we see the document in FB03 then there will be 4 lines 2 for bank & 2 For vendor.
But we want that there will be 2 lines for vendor and 1 for bank.
Say for line 1 amt is 200 & for line 2 amt is 300 so the bank entry should contain -500. (this is required.)
Thanks In Advance,
Regards,
Bharti Jain
‎2010 Dec 20 3:01 AM
Hi,
Should I call any other BAPI for posting multiple documents or I have to call BADI or else.
Regards,
Bharti Jain