02-17-2009 1:07 PM
Hello,
We are trying to implement the posting of a Document for an asset using the BAPI: BAPI_ACC_DOCUMENT_POST (and BAPI_TRANSACTION_COMMIT) but although we get the succee message, no document is post.
I do not know if we are not introducing correctly the information... Could someone help me??
The code is:
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
OWN_LOGICAL_SYSTEM = et_documentheader-obj_sys
EXCEPTIONS
OWN_LOGICAL_SYSTEM_NOT_DEFINED = 1
OTHERS = 2
.
et_documentheader-obj_type = 'IDOC'.
et_documentheader-obj_key = lv_docnum.
et_documentheader-bus_act = 'RFBU'.
et_documentheader-username = sy-uname."Usuario
et_documentheader-header_txt = i_entrada-conc_doc_cont."Texto de cabecera de documento
et_documentheader-comp_code = i_entrada-sociedad."Sociedad
et_documentheader-doc_date = i_entrada-fecha_doc."Fecha Documento
et_documentheader-pstng_date = i_entrada-fecha_cont."Fecha Contabilización
et_documentheader-doc_type = i_entrada-clase_doc."Clase de Documento
et_documentheader-fisc_year = i_entrada-fecha_cont(4)."Ejercicio
et_documentheader-fis_period = i_entrada-fecha_cont+4(2)."Mes Contable
et_documentheader-ref_doc_no = i_entrada-referencia.
it_accountgl-itemno_acc = '0000000001'.
it_accountgl-gl_account = lv_cuenta."cuenta
it_accountgl-item_text = i_entrada-texto.
it_accountgl-stat_con = 'H'.
it_accountgl-acct_type = 'S'.
it_accountgl-comp_code = i_entrada-sociedad.
it_accountgl-alloc_nmbr = i_entrada-asignacion.
it_accountgl-tax_code = i_entrada-ind_iva.
APPEND it_accountgl.
CLEAR it_accountgl.
it_accountgl-itemno_acc = '0000000002'.
it_accountgl-item_text = i_entrada-texto.
it_accountgl-stat_con = 'S'.
it_accountgl-acct_type = 'A'.
it_accountgl-alloc_nmbr = i_entrada-asignacion.
it_accountgl-tax_code = i_entrada-ind_iva.
it_accountgl-cs_trans_t = '100'. "i_entrada-clase_mov.
it_accountgl-asset_no = i_entrada-num_activo."Numero Activo Fijo
it_accountgl-sub_number = i_entrada-subnum_activo."Subnumero de Activo Fijo
APPEND it_accountgl.
CLEAR it_accountgl.
it_currencyamount-itemno_acc = '0000000001'.
it_currencyamount-currency_iso = 'EUR'.
it_currencyamount-amt_doccur = i_entrada-importe.
APPEND it_currencyamount.
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = '0000000002'.
it_currencyamount-currency_iso = 'EUR'.
it_currencyamount-amt_doccur = i_entrada-importe.
APPEND it_currencyamount.
CLEAR it_currencyamount.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = et_documentheader
TABLES
accountgl = it_accountgl
currencyamount = it_currencyamount
return = it_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
.
Thanksss!!
Araitz.-
02-17-2009 10:01 PM
Hi,
For the asset posting it is exactly the same as the GL posting. The only difference is for the Asset line you need to find the GL account(KTOGR) for the asset from the ANLA table and populate the same in the GL account field fro the asset line. Also populate the asset number and the sub asset number in the fields for the same line along with the transaction type.
Hope this clarifies your question.
Thanks and Regards,
Hari
02-18-2009 10:32 AM
Hello Hari,
It has sense, but it does not work yet!!
Do we have to update something in any table? TTYP or TRWPR?
Thanks a lot!!
Araitz.-
03-27-2009 6:13 PM
Hello Hari,
I had same issue and I saw your answer to this question and I have tried the same but getting an error.
I have passed KTOGR value from ANLA table into GL a/c but I'm getting this error 'G/L account Z40000 is not defined in chart of accounts AVNT' , that is true becase z40000 is not a GL a/c , it is asset classs. I would appreciate if you could help me in resolving this issue.
thanks
Naveen
02-18-2009 10:43 AM
Data: it_header type BAPIACHE09 OCCURS 0 WITH HEADER LINE,
it_acc_gl type BAPIACGL09 occurs 0 WITH HEADER LINE,
it_acc_pay type BAPIACAP09 occurs 0 WITH HEADER LINE,
it_curr_amt type BAPIACCR09 OCCURS 0 WITH HEADER LINE,
it_return type BAPIRET2 OCCURS 0 WITH HEADER LINE.
it_header-bus_act = 'FB60'.
IT_HEADER-USERNAME = 'ABC'.
IT_HEADER-COMP_CODE = 'XYZ'.
IT_HEADER-DOC_DATE = SY-DATUM.
IT_HEADER-PSTNG_DATE = SY-DATUM.
IT_HEADER-DOC_TYPE = 'KR'.
APPEND IT_HEADER.
IT_ACC_GL-ITEMNO_ACC = '0000000001'.
IT_ACC_GL-GL_ACCOUNT = '0000123456'.
IT_ACC_GL-DOC_TYPE = 'KR'.
IT_ACC_GL-COMP_CODE = 'XYZ'.
IT_ACC_GL-FISC_YEAR = '2009'.
IT_ACC_GL-PSTNG_DATE = SY-DATUM.
IT_ACC_GL-VENDOR_NO = '987'.
IT_ACC_GL-COSTCENTER = '1987'.
APPEND IT_ACC_GL.
it_acc_pay-ITEMNO_ACC = '0000000002'.
*IT_ACC_GL-GL_ACCOUNT = '0000123456'.
*IT_ACC_GL-DOC_TYPE = 'KR'.
*IT_ACC_GL-COMP_CODE = 'XYZ'.
*IT_ACC_GL-FISC_YEAR = '2009'.
*IT_ACC_GL-PSTNG_DATE = SY-DATUM.
it_acc_pay-VENDOR_NO = '987'.
*IT_ACC_GL-COSTCENTER = '1987'.
APPEND it_acc_pay.
IT_CURR_AMT-ITEMNO_ACC = '0000000001'.
IT_CURR_AMT-CURR_TYPE = '00'.
IT_CURR_AMT-CURRENCY = 'QAR'.
IT_CURR_AMT-AMT_DOCCUR = '10000'.
APPEND IT_CURR_AMT.
IT_CURR_AMT-ITEMNO_ACC = '0000000002'.
IT_CURR_AMT-CURR_TYPE = '00'.
IT_CURR_AMT-CURRENCY = 'QAR'.
IT_CURR_AMT-AMT_DOCCUR = '-10000'.
APPEND IT_CURR_AMT.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = it_header
CUSTOMERCPD =
CONTRACTHEADER =
IMPORTING
OBJ_TYPE =
OBJ_KEY =
OBJ_SYS =
tables
ACCOUNTGL = it_acc_gl
ACCOUNTRECEIVABLE =
ACCOUNTPAYABLE = it_acc_pay
ACCOUNTTAX =
currencyamount = it_curr_amt
CRITERIA =
VALUEFIELD =
EXTENSION1 =
return = it_return
PAYMENTCARD =
CONTRACTITEM =
EXTENSION2 =
REALESTATE =
ACCOUNTWT =
.
IF SY-SUBRC EQ 0.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN =
.
Check if the above can help you out..
Regards,
PR.
02-18-2009 10:47 AM
*&---HEADER DECLARATION
DATA: HEADER TYPE BAPIACHE09. " HEADER DATA
*&----G/L ACCOUNT ITEM
DATA: ACCOUNTGL TYPE STANDARD TABLE OF BAPIACGL09.
*&----ACCOUNTS PAYABLE ITEMS
DATA: ACCOUNTPAYABLE TYPE STANDARD TABLE OF BAPIACAP09.
DATA: WA_ACCOUNTPAYABLE TYPE BAPIACAP09.
*&---CURRENCY ITEMS
DATA: CURRENCY_AMOUNT TYPE STANDARD TABLE OF BAPIACCR09.
*&----RETURN PARAMETER
DATA: RETURN TYPE STANDARD TABLE OF BAPIRET2 with header line.
**********************************************************************
WORK-AREA DECLARATION
**********************************************************************
*&----WORKAREA FOR G/L ACCOUNT ITEM
DATA: WA_ACCOUNTGL TYPE BAPIACGL09.
*&---WORKAREA FOR CURRENCY ITEMS
DATA: WA_CURRENCY_AMOUNT TYPE BAPIACCR09.
data :ACCOUNTRECEIVABLE TYPE STANDARD TABLE OF BAPIACAR09,
ACCOUNTTAX TYPE STANDARD TABLE OF BAPIACTX09,
CURRENCYAMOUNT TYPE STANDARD TABLE OF BAPIACCR09,
CRITERIA TYPE STANDARD TABLE OF BAPIACKEC9,
VALUEFIELD TYPE STANDARD TABLE OF BAPIACKEV9,
EXTENSION1 TYPE STANDARD TABLE OF BAPIACEXTC,
PAYMENTCARD TYPE STANDARD TABLE OF BAPIACPC09,
CONTRACTITEM TYPE STANDARD TABLE OF BAPIACCAIT,
EXTENSION2 TYPE STANDARD TABLE OF BAPIPAREX,
REALESTATE TYPE STANDARD TABLE OF BAPIACRE09,
ACCOUNTWT TYPE STANDARD TABLE OF BAPIACWT09.
**********************************************************************
INITIALIZATION.
**********************************************************************
**HEADER-OBJ_TYPE = 'BEBD'.
**HEADER-OBJ_KEY = '1000000050'.
**HEADER-OBJ_SYS = 'DEVCLNT300'.
HEADER-HEADER_TXT = 'TEST HEADER'.
HEADER-USERNAME = 'PUSHPA'.
HEADER-COMP_CODE = '5800'.
HEADER-FISC_YEAR = '2008'.
HEADER-DOC_DATE = SY-DATUM.
HEADER-PSTNG_DATE = SY-DATUM.
HEADER-TRANS_DATE = SY-DATUM.
HEADER-DOC_TYPE = 'SA'.
HEADER-BUS_ACT = 'RMRP'.
WA_ACCOUNTGL-ITEMNO_ACC = '0000000010'.
WA_ACCOUNTGL-GL_ACCOUNT = '0007100019'.
WA_ACCOUNTGL-ITEM_TEXT = 'SO_DOC'.
WA_ACCOUNTGL-DE_CRE_IND = 'S'.
*wa_accountgl-costcenter = 'JK000'.
WA_ACCOUNTGL-WBS_ELEMENT = 'AUP.07.RV.RV.07.1.1'.
*WA_ACCOUNTGL-VENDOR_NO = 'A125'.
WA_ACCOUNTGL-REF_KEY_3 = '31'.
APPEND WA_ACCOUNTGL TO ACCOUNTGL.
CLEAR WA_ACCOUNTGL.
WA_ACCOUNTGL-ITEMNO_ACC = '0000000020'.
WA_ACCOUNTGL-GL_ACCOUNT = '0007100019'.
WA_ACCOUNTGL-ITEM_TEXT = 'SO_DOC'.
WA_ACCOUNTGL-DE_CRE_IND = 'H'.
*wa_accountgl-costcenter = 'JK000'.
WA_ACCOUNTGL-WBS_ELEMENT = 'AUP.07.RV.RV.07.1.2'.
WA_ACCOUNTGL-REF_KEY_3 = '40'.
APPEND WA_ACCOUNTGL TO ACCOUNTGL.
CLEAR WA_ACCOUNTGL.
*WA_ACCOUNTPAYABLE-ITEMNO_ACC = '10'.
*WA_ACCOUNTPAYABLE-VENDOR_NO = 'A125'.
*WA_ACCOUNTPAYABLE-REF_KEY_3 = '31'.
*WA_ACCOUNTPAYABLE-BUS_AREA = 'JKTD'.
*
*APPEND WA_ACCOUNTPAYABLE TO ACCOUNTPAYABLE.
*CLEAR WA_ACCOUNTPAYABLE.
*
*
*WA_ACCOUNTPAYABLE-ITEMNO_ACC = '20'.
*WA_ACCOUNTPAYABLE-GL_ACCOUNT = '400200'.
*WA_ACCOUNTPAYABLE-REF_KEY_3 = '40'.
*WA_ACCOUNTPAYABLE-BUS_AREA = 'JKTD'.
*
*APPEND WA_ACCOUNTPAYABLE TO ACCOUNTPAYABLE.
*CLEAR WA_ACCOUNTPAYABLE.
*
WA_CURRENCY_AMOUNT-ITEMNO_ACC = '0000000010'.
WA_CURRENCY_AMOUNT-AMT_DOCCUR = '500'.
WA_CURRENCY_AMOUNT-CURRENCY = 'INR'.
APPEND WA_CURRENCY_AMOUNT TO CURRENCY_AMOUNT.
CLEAR WA_CURRENCY_AMOUNT.
WA_CURRENCY_AMOUNT-ITEMNO_ACC = '0000000020'.
WA_CURRENCY_AMOUNT-AMT_DOCCUR = '-500'.
WA_CURRENCY_AMOUNT-CURRENCY = 'INR'.
APPEND WA_CURRENCY_AMOUNT TO CURRENCY_AMOUNT.
CLEAR WA_CURRENCY_AMOUNT.
**************************************************************
START-OF-SELECTION
**************************************************************
START-OF-SELECTION.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
DOCUMENTHEADER = HEADER
CUSTOMERCPD =
CONTRACTHEADER =
IMPORTING
OBJ_TYPE =
OBJ_KEY =
OBJ_SYS =
TABLES
ACCOUNTGL = ACCOUNTGL
ACCOUNTRECEIVABLE = ACCOUNTRECEIVABLE
ACCOUNTPAYABLE = ACCOUNTPAYABLE
ACCOUNTTAX = ACCOUNTTAX
CURRENCYAMOUNT = CURRENCY_AMOUNT
CRITERIA = CRITERIA
VALUEFIELD = VALUEFIELD
EXTENSION1 = EXTENSION1
RETURN = RETURN
PAYMENTCARD = PAYMENTCARD
CONTRACTITEM = CONTRACTITEM
EXTENSION2 = EXTENSION2
REALESTATE = REALESTATE
.
IF return-type EQ 'S'.
COMMIT WORK.
*CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
RETURN = RETURN
.
WRITE:/ RETURN-TYPE.
write:/ return-message.
ELSE.
WRITE:/ RETURN-TYPE.
write:/ return-message.
ENDIF.
This will work.
Regards,
Priti
Edited by: Priti Suryawanshi on Feb 18, 2009 11:47 AM