‎2007 Oct 01 5:22 AM
Hi Guru's,
I am using the BAPI to post Optional Expenses and I am getting the following error:
Error in document: BKPFF $ DEVCLNT300
FI/CO interface: Line item entered several times
Please suggest me ..
Thanks in advance
‎2007 Oct 01 5:23 AM
‎2007 Oct 01 5:25 AM
Hi Atish , This is the piece of code I am using.
DATA: I_DOCUMENTHEADER LIKE BAPIACHE09 OCCURS 0 WITH HEADER LINE,
I_ACCOUNTGL LIKE BAPIACGL09 OCCURS 0 WITH HEADER LINE,
I_ACCOUNTRECEIVABLE LIKE BAPIACAR09 OCCURS 0 WITH HEADER LINE,
I_CURRENCYAMOUNT LIKE BAPIACCR09 OCCURS 0 WITH HEADER LINE,
I_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
data : v_obj_type like bapiache02-obj_type,
v_obj_key like bapiache02-obj_key,
v_obj_sys like bapiache02-obj_sys.
I_DOCUMENTHEADER-BUS_ACT = 'RFBU'.
I_DOCUMENTHEADER-USERNAME = 'ACPUPPALAS'.
*I_DOCUMENTHEADER-OBJ_SYS = 'DEVCLNT300'.
*I_DOCUMENTHEADER-OBJ_type = 'BKPF'.
*I_DOCUMENTHEADER-OBJ_key = '1100000057'.
I_DOCUMENTHEADER-HEADER_TXT = '123'.
I_DOCUMENTHEADER-COMP_CODE = '0001'.
I_DOCUMENTHEADER-DOC_DATE = '20070928'.
I_DOCUMENTHEADER-PSTNG_DATE = '20070928'.
I_DOCUMENTHEADER-FISC_YEAR = '2007'.
I_DOCUMENTHEADER-FIS_PERIOD = '07'.
I_DOCUMENTHEADER-DOC_TYPE = 'SA'.
I_DOCUMENTHEADER-REF_DOC_NO = '100000040'.
APPEND I_DOCUMENTHEADER.
I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
I_ACCOUNTGL-GL_ACCOUNT = 449000.
I_ACCOUNTGL-COSTCENTER = 'TEST2'.
APPEND I_ACCOUNTGL.
I_ACCOUNTRECEIVABLE-ITEMNO_ACC = 0000000001.
I_ACCOUNTRECEIVABLE-CUSTOMER = 'TEST1'.
APPEND I_ACCOUNTRECEIVABLE.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000001.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100.
APPEND I_CURRENCYAMOUNT.
*I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
*I_ACCOUNTGL-GL_ACCOUNT = 400000.
*I_ACCOUNTGL-COSTCENTER = 'TEST2'.
*APPEND I_ACCOUNTGL.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000002.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100 * -1 .
APPEND I_CURRENCYAMOUNT.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = I_DOCUMENTHEADER
CUSTOMERCPD =
CONTRACTHEADER =
IMPORTING
OBJ_TYPE = v_obj_type
OBJ_KEY = v_obj_key
OBJ_SYS = v_obj_sys
tables
ACCOUNTGL = I_ACCOUNTGL
ACCOUNTRECEIVABLE = I_ACCOUNTRECEIVABLE
ACCOUNTPAYABLE =
ACCOUNTTAX =
currencyamount = I_CURRENCYAMOUNT
CRITERIA =
VALUEFIELD =
EXTENSION1 =
return = I_RETURN
PAYMENTCARD =
CONTRACTITEM =
EXTENSION2 =
REALESTATE =
ACCOUNTWT =
.
LOOP AT I_RETURN.
WRITE:/ I_RETURN-MESSAGE.
ENDLOOP.
‎2007 Oct 01 5:28 AM
Hi Sagar,
Use COMMIT WORK or FM BAPI_TRANSACTION_COMMIT after BAPI and see what is the result.
Regards,
Atish
‎2007 Oct 01 5:29 AM
Sagar,
Try making this change... (add CLEAR)
I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
I_ACCOUNTGL-GL_ACCOUNT = 449000.
I_ACCOUNTGL-COSTCENTER = 'TEST2'.
APPEND I_ACCOUNTGL.
<b>CLEAR I_ACCOUNTGL.</b>
I_ACCOUNTRECEIVABLE-ITEMNO_ACC = 0000000001.
I_ACCOUNTRECEIVABLE-CUSTOMER = 'TEST1'.
APPEND I_ACCOUNTRECEIVABLE.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000001.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100.
APPEND I_CURRENCYAMOUNT.
<b>CLEAR I_CURRENCYAMOUNT.</b>
*I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
*I_ACCOUNTGL-GL_ACCOUNT = 400000.
*I_ACCOUNTGL-COSTCENTER = 'TEST2'.
*APPEND I_ACCOUNTGL.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000002.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100 * -1 .
APPEND I_CURRENCYAMOUNT.
<b>CLEAR I_CURRENCYAMOUNT.</b>
reward if helpful,
Karthik
‎2007 Oct 01 5:40 AM
Hi ,
I have used FM BAPI_TRANSACTION_COMMIT and also clear accountgl and currencyitem but still the same error coming.
I have to post Optional Expenses to transacion FB01.
Please suggest if any other BAPI with code if possible.
Thanks in advance
‎2007 Oct 01 5:41 AM
Hi all,
Now my code looks like this.
DATA: I_DOCUMENTHEADER LIKE BAPIACHE09 OCCURS 0 WITH HEADER LINE,
I_ACCOUNTGL LIKE BAPIACGL09 OCCURS 0 WITH HEADER LINE,
I_ACCOUNTRECEIVABLE LIKE BAPIACAR09 OCCURS 0 WITH HEADER LINE,
I_CURRENCYAMOUNT LIKE BAPIACCR09 OCCURS 0 WITH HEADER LINE,
I_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
data: wa_return like line of i_return.
data : v_obj_type like bapiache02-obj_type,
v_obj_key like bapiache02-obj_key,
v_obj_sys like bapiache02-obj_sys.
I_DOCUMENTHEADER-BUS_ACT = 'RFBU'.
I_DOCUMENTHEADER-USERNAME = 'ACPUPPALAS'.
*I_DOCUMENTHEADER-OBJ_SYS = 'DEVCLNT300'.
*I_DOCUMENTHEADER-OBJ_type = 'BKPF'.
*I_DOCUMENTHEADER-OBJ_key = '1100000057'.
I_DOCUMENTHEADER-HEADER_TXT = '123'.
I_DOCUMENTHEADER-COMP_CODE = '0001'.
I_DOCUMENTHEADER-DOC_DATE = '20070928'.
I_DOCUMENTHEADER-PSTNG_DATE = '20070928'.
I_DOCUMENTHEADER-FISC_YEAR = '2007'.
I_DOCUMENTHEADER-FIS_PERIOD = '07'.
I_DOCUMENTHEADER-DOC_TYPE = 'SA'.
I_DOCUMENTHEADER-REF_DOC_NO = '100000040'.
APPEND I_DOCUMENTHEADER.
I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
I_ACCOUNTGL-GL_ACCOUNT = 449000.
I_ACCOUNTGL-COSTCENTER = 'TEST2'.
APPEND I_ACCOUNTGL.
CLEAR I_ACCOUNTGL.
I_ACCOUNTRECEIVABLE-ITEMNO_ACC = 0000000001.
I_ACCOUNTRECEIVABLE-CUSTOMER = 'TEST1'.
APPEND I_ACCOUNTRECEIVABLE.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000001.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100.
APPEND I_CURRENCYAMOUNT.
CLEAR I_CURRENCYAMOUNT.
*I_ACCOUNTGL-ITEMNO_ACC = 0000000001.
*I_ACCOUNTGL-GL_ACCOUNT = 400000.
*I_ACCOUNTGL-COSTCENTER = 'TEST2'.
*APPEND I_ACCOUNTGL.
I_CURRENCYAMOUNT-ITEMNO_ACC = 0000000002.
I_CURRENCYAMOUNT-CURRENCY = 'EUR'.
I_CURRENCYAMOUNT-AMT_DOCCUR = 100 * -1 .
APPEND I_CURRENCYAMOUNT.
CLEAR I_CURRENCYAMOUNT.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = I_DOCUMENTHEADER
CUSTOMERCPD =
CONTRACTHEADER =
IMPORTING
OBJ_TYPE = v_obj_type
OBJ_KEY = v_obj_key
OBJ_SYS = v_obj_sys
tables
ACCOUNTGL = I_ACCOUNTGL
ACCOUNTRECEIVABLE = I_ACCOUNTRECEIVABLE
ACCOUNTPAYABLE =
ACCOUNTTAX =
currencyamount = I_CURRENCYAMOUNT
CRITERIA =
VALUEFIELD =
EXTENSION1 =
return = I_RETURN
PAYMENTCARD =
CONTRACTITEM =
EXTENSION2 =
REALESTATE =
ACCOUNTWT =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN =
.
LOOP AT I_RETURN.
WRITE:/ I_RETURN-MESSAGE.
ENDLOOP.
‎2007 Oct 01 5:43 AM
‎2007 Oct 01 6:43 AM
Try this:
I_DOCUMENTHEADER-USERNAME = sy-uname.Also, debug the demo program ACC_BAPI_TEST_DOCUMENT
Cheers,
Sougata.