‎2007 Aug 08 9:37 AM
What I am doing is to post new G/L Accounting Document on each successfully paid transaction, each successfully reversed transaction, each rejected transaction for bank XXX, and each payment transaction for bank YYY in 3 Events respectively. And I am using the BAPI BAPI_ACC_GL_POSTING_POST to post.
but in the return table there are error messages, the sample code is as follows:
&----
*& Get the OBJ_KEY of DOCUMENTHEADER *
&----
get the current fiscal year
l_fiscyear = sy-datum(4).
select the Number Range NO. out from T003
select single numkr
from t003
into l_numkr
where blart = 'SY'.
if sy-subrc <> 0.
message .
endif.
call FM to get the Accounting Doc. No.
call function 'NUMBER_GET_NEXT'
exporting
nr_range_nr = l_numkr
object = RF_BELEG
subobject = HKHK
toyear = l_fiscyear
importing
number = p_belnr
exceptions
interval_not_found = 1
number_range_not_intern = 2
object_not_found = 3
quantity_is_0 = 4
quantity_is_not_1 = 5
interval_overflow = 6
buffer_overflow = 7
others = 8.
if sy-subrc <> 0.
message
endif.
concatenate the Accountint Doc. No, the company code and the
fiscal year together as the OBJ_KEY
concatenate p_belnr HKHK' l_fiscyear into lx_docheader-obj_key.
&--
get the OBJ_SYS
select single logsys
from t000
into lx_docheader-obj_sys
where mandt = sy-mandt.
if sy-subrc <> 0.
message
endif.
fill the structure parameter DOCUMENTHEADER of the BAPI
lx_docheader-obj_type = 'BKPFF'.
lx_docheader-username = sy-uname.
lx_docheader-comp_code = 'HKHK'.
lx_docheader-ac_doc_no = p_belnr.
lx_docheader-fisc_year = l_fiscyear.
lx_docheader-doc_date = p_doc_date.
lx_docheader-pstng_date = p_post_date.
lx_docheader-doc_type = SY.
fill the table parameter ACCOUNTGL of the BAPI
lwa_tabaccgl-itemno_acc = 1.
lwa_tabaccgl-gl_account = 0000050107 .
lwa_tabaccgl-comp_code = HKHK.
lwa_tabaccgl-pstng_date = p_post_date.
lwa_tabaccgl-doc_type = SY.
lwa_tabaccgl-ac_doc_no = p_belnr.
lwa_tabaccgl-fisc_year = l_fiscyear.
append lwa_tabaccgl to li_tabaccgl.
clear lwa_tabaccgl.
lwa_tabaccgl-itemno_acc = 2.
lwa_tabaccgl-gl_account = 0000082910.
lwa_tabaccgl-comp_code = HKHK.
lwa_tabaccgl-pstng_date = p_post_date.
lwa_tabaccgl-doc_type = SY.
lwa_tabaccgl-ac_doc_no = p_belnr.
lwa_tabaccgl-fisc_year = l_fiscyear.
lwa_tabaccgl-costcenter = 0000011401.
append lwa_tabaccgl to li_tabaccgl.
clear lwa_tabaccgl.
fill the table parameter CURRENCYAMOUNT of the BAPI
lwa_tabcurramt-itemno_acc = 1.
lwa_tabcurramt-currency = HKD.
lwa_tabcurramt-amt_doccur = 1.5-.
append lwa_tabcurramt to li_tabcurramt.
clear lwa_tabcurramt.
lwa_tabcurramt-itemno_acc = 2.
lwa_tabcurramt-currency = HKD.
lwa_tabcurramt-amt_doccur = 1.5.
append lwa_tabcurramt to li_tabcurramt.
clear lwa_tabcurramt.
Call BAPI to post the FI-GL Document
call function 'BAPI_ACC_GL_POSTING_POST'
exporting
documentheader = lx_docheader
tables
accountgl = li_tabaccgl
currencyamount = li_tabcurramt
return = li_tabreturn.
The return table says:
Error in document: BKPFF 1200000068HKCG2007 UD1CLNT120
Field Value date is a required field for G/L account HKCG 50107
would you experts please tell me what's the problem is?? it's emergency, thanks in a million advance.
‎2007 Aug 08 9:57 AM
Hi
U haven't to transfer the reference data to the BAPI, the document number is picked up automatically:
* fill the structure parameter DOCUMENTHEADER of the BAPI
* LX_DOCHEADER-OBJ_TYPE = 'BKPFF'.
LX_DOCHEADER-USERNAME = SY-UNAME.
LX_DOCHEADER-COMP_CODE = 'HKHK'.
* LX_DOCHEADER-AC_DOC_NO = P_BELNR.
* LX_DOCHEADER-FISC_YEAR = L_FISCYEAR.
LX_DOCHEADER-DOC_DATE = P_DOC_DATE.
LX_DOCHEADER-PSTNG_DATE = P_POST_DATE.
LX_DOCHEADER-DOC_TYPE = SY.
* fill the table parameter ACCOUNTGL of the BAPI
LWA_TABACCGL-ITEMNO_ACC = 1.
LWA_TABACCGL-GL_ACCOUNT = 0000050107 .
LWA_TABACCGL-COMP_CODE = HKHK.
LWA_TABACCGL-PSTNG_DATE = P_POST_DATE.
LWA_TABACCGL-DOC_TYPE = SY.
* LWA_TABACCGL-AC_DOC_NO = P_BELNR.
* LWA_TABACCGL-FISC_YEAR = L_FISCYEAR.
APPEND LWA_TABACCGL TO LI_TABACCGL.
CLEAR LWA_TABACCGL.
LWA_TABACCGL-ITEMNO_ACC = 2.
LWA_TABACCGL-GL_ACCOUNT = 0000082910.
LWA_TABACCGL-COMP_CODE = HKHK.
LWA_TABACCGL-PSTNG_DATE = P_POST_DATE.
LWA_TABACCGL-DOC_TYPE = SY.
* LWA_TABACCGL-AC_DOC_NO = P_BELNR.
* LWA_TABACCGL-FISC_YEAR = L_FISCYEAR.
LWA_TABACCGL-COSTCENTER = 0000011401.
APPEND LWA_TABACCGL TO LI_TABACCGL.
CLEAR LWA_TABACCGL.Max
‎2007 Aug 08 10:29 AM
‎2007 Aug 08 10:41 AM
Hi
Probably, but now you should try to know which error occurs.
I believe these are the parameters you should transfer to create the document, perhaps some data are missing, but this depends on your system:
LX_DOCHEADER-USERNAME = SY-UNAME.
LX_DOCHEADER-COMP_CODE = 'HKHK'.
LX_DOCHEADER-DOC_DATE = P_DOC_DATE.
LX_DOCHEADER-PSTNG_DATE = P_POST_DATE.
LX_DOCHEADER-DOC_TYPE = SY.
* fill the table parameter ACCOUNTGL of the BAPI
LWA_TABACCGL-ITEMNO_ACC = 1.
LWA_TABACCGL-GL_ACCOUNT = 0000050107 .
APPEND LWA_TABACCGL TO LI_TABACCGL.
LWA_TABACCGL-ITEMNO_ACC = 2.
LWA_TABACCGL-GL_ACCOUNT = 0000082910.
LWA_TABACCGL-COSTCENTER = 0000011401.
APPEND LWA_TABACCGL TO LI_TABACCGL.
CLEAR LWA_TABACCGL.
* fill the table parameter CURRENCYAMOUNT of the BAPI
LWA_TABCURRAMT-ITEMNO_ACC = 1.
LWA_TABCURRAMT-CURR_TYPE = '00'.
LWA_TABCURRAMT-CURRENCY = HKD.
LWA_TABCURRAMT-AMT_DOCCUR = 1.5-.
APPEND LWA_TABCURRAMT TO LI_TABCURRAMT.
CLEAR LWA_TABCURRAMT.
LWA_TABCURRAMT-ITEMNO_ACC = 2.
LWA_TABCURRAMT-CURR_TYPE = '00'.
LWA_TABCURRAMT-CURRENCY = HKD.
LWA_TABCURRAMT-AMT_DOCCUR = 1.5.
APPEND LWA_TABCURRAMT TO LI_TABCURRAMT.
CLEAR LWA_TABCURRAMT.Max