Error F5246 "Special G/L transactions of type & are not supported" is being raised when trying to post a
document via BAPI (i.e. BAPI_ACC_DOCUMENT_POST).
环境
SAP Release Independent •
ERP Financial Accounting •
General Ledger Accounting •
Posting/Clearing •
Accounting interface •
重现问题
Enter a BAPI (i.e. BAPI_ACC_DOCUMENT_POST). 1.
Inform special G/L indicators class = 'W' (bill of exchange). 2.
Post the document. 3.
The system issues message F5246. 4.
原因
Bill of exchange postings are not supported by accounting interface, therefore a bill of exchange posting via
BAPI_ACC_DOCUMENT_POST is not possible. The reason for error F5246 to be raised is that the interface
posting with special G/L indicator W is not designed for a posting with this indicator for downpayment or bill of
exchange.
解决方案
In this case the bill of exchange documents should be posted manually in financial accounting.
Another option to post bill of exchange documents in an automated process is to use batch-input.
SAP给出的解决方案是采用BDC的方式,其实SAP有提供一个函数实现F-02的BATCH-INPUT,代码如下:
1@34qwer*&---------------------------------------------------------------------*
*& Report Y_BAPI_POSTING_INTERFACE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT y_bapi_posting_interface.
DATA: ls_ftpost TYPE ftpost,
lt_ftpost TYPE TABLE OF ftpost,
lt_fttax TYPE TABLE OF fttax,
lt_blntab TYPE TABLE OF blntab,
lv_subrc TYPE sy-subrc,
lv_msg TYPE bapiret2.
CALL FUNCTION 'POSTING_INTERFACE_START'
EXPORTING
i_function = 'C' "For Batch Input.
i_group = 'ZSESSION1' "Name of the session for creation
i_keep = 'X' "Retain the session
i_user = sy-uname. "User name
*CALL FUNCTION 'POSTING_INTERFACE_START'
* EXPORTING
* i_function = 'B' " For Batch Input.
* i_group = 'ZSESSION' " Name of the session for creation
* i_keep = 'X' " Retain the session
* i_user = sy-uname. " User name
DEFINE macro.
ls_ftpost-fnam = &1.
ls_ftpost-fval = &2.
APPEND ls_ftpost TO lt_ftpost.
END-OF-DEFINITION.
"header:
ls_ftpost-stype = 'K'. "Header indicator
ls_ftpost-count = '001'. "First item
macro: 'BKPF-BLDAT' '20190919',
'BKPF-BLART' 'SA',
'BKPF-BUKRS' '1111',
'BKPF-BUDAT' sy-datum.
*"items:
ls_ftpost-stype = 'P'.
ls_ftpost-count = '001'.
macro: 'RF05A-NEWBS' '39',
'RF05A-NEWKO' '2000010',
'RF05A-NEWUM' 'W',
'BSEG-ZFBDT' '20190919',
'BSEG-WRBTR' '100'.
ls_ftpost-stype = 'P'.
ls_ftpost-count = '002'.
macro: 'RF05A-NEWBS' '40',
'RF05A-NEWKO' '40030103',
'BSEG-WRBTR' '100',
'COBL-RMVCT' '100'.
*
CALL FUNCTION 'POSTING_INTERFACE_DOCUMENT'
EXPORTING
i_tcode = 'FB01' "Name of t-code for Posting
i_sgfunct = 'C' "Batch input session
IMPORTING
e_subrc = lv_subrc
e_msgid = lv_msg-id "Error handling
e_msgty = lv_msg-type "Error handling
e_msgno = lv_msg-number "Error handling
e_msgv1 = lv_msg-message_v1 "Error handling
e_msgv2 = lv_msg-message_v2 "Error handling
e_msgv3 = lv_msg-message_v3 "Error handling
e_msgv4 = lv_msg-message_v4 "Error handling
TABLES
t_ftpost = lt_ftpost "Internal table populated in Step 2
t_fttax = lt_fttax "Relevant for Tax calculation manually
t_blntab = lt_blntab "Relevant only for Call Trans…
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'POSTING_INTERFACE_END'.
LOOP AT lt_blntab INTO DATA(ls_blntab).
WRITE: ls_blntab-belnr,
ls_blntab-gjahr.
ENDLOOP.