У меня получилось провести документ между двумя БЕ через BAPI_ACC_DOCUMENT_POST
Code:
data: DOCUMENTHEADER type BAPIACHE09,
ACCOUNTGL like table of BAPIACGL09 with header line,
ACCOUNTRECEIVABLE like table of BAPIACAR09 with header line,
ACCOUNTTAX like table of BAPIACTX09 with header line,
CURRENCYAMOUNT like table of BAPIACCR09 with header line,
CRITERIA like table of BAPIACKEC9 with header line,
EXTENSION1 like table of BAPIACEXTC with header line,
T_BAPIRET2 like table of BAPIRET2 with header line,
OBJ_TYPE type BAPIACHE09-OBJ_TYPE,
OBJ_KEY type BAPIACHE09-OBJ_KEY,
OBJ_SYS type BAPIACHE09-OBJ_SYS.
DOCUMENTHEADER-BUS_ACT = 'RFBU'.
DOCUMENTHEADER-USERNAME = 'ASHIMOV'.
DOCUMENTHEADER-HEADER_TXT = 'Test'.
DOCUMENTHEADER-COMP_CODE = '40'.
DOCUMENTHEADER-DOC_DATE = '20080331'.
DOCUMENTHEADER-PSTNG_DATE = '20080407'.
DOCUMENTHEADER-TRANS_DATE = '00000000'.
DOCUMENTHEADER-FISC_YEAR = '2008'.
DOCUMENTHEADER-FIS_PERIOD = '04'.
DOCUMENTHEADER-DOC_TYPE = 'DR'.
DOCUMENTHEADER-REF_DOC_NO = 'test'.
ACCOUNTGL-ITEMNO_ACC = '0000000001'.
ACCOUNTGL-GL_ACCOUNT = '6010-010'.
ACCOUNTGL-ITEM_TEXT = 'Test'.
ACCOUNTGL-BUS_AREA = '3301'.
ACCOUNTGL-TAX_CODE = 'NB'.
ACCOUNTGL-PROFIT_CTR = '3301-'.
ACCOUNTGL-FUNDS_CTR = '3301'.
ACCOUNTGL-CMMT_ITEM = '503'.
ACCOUNTGL-QUANTITY = '118360.000'.
ACCOUNTGL-BASE_UOM = 'MIN'.
append ACCOUNTGL.
ACCOUNTRECEIVABLE-ITEMNO_ACC = '0000000002'.
ACCOUNTRECEIVABLE-CUSTOMER = '0000014503'.
ACCOUNTRECEIVABLE-ITEM_TEXT = 'Test'.
ACCOUNTRECEIVABLE-TAX_CODE = 'NB'.
append ACCOUNTRECEIVABLE.
ACCOUNTTAX-ITEMNO_ACC = '0000000003'.
ACCOUNTTAX-GL_ACCOUNT = '3130-'.
ACCOUNTTAX-COND_KEY = 'MWAS'.
ACCOUNTTAX-ACCT_KEY = 'MWS'.
ACCOUNTTAX-TAX_CODE = 'NB'.
append ACCOUNTTAX.
CURRENCYAMOUNT-ITEMNO_ACC = '0000000001'.
CURRENCYAMOUNT-CURRENCY = 'KZT'.
CURRENCYAMOUNT-AMT_DOCCUR = '4208405.6300-'.
append CURRENCYAMOUNT.
CURRENCYAMOUNT-ITEMNO_ACC = '0000000002'.
CURRENCYAMOUNT-CURRENCY = 'KZT'.
CURRENCYAMOUNT-AMT_DOCCUR = '4755498.3500'.
append CURRENCYAMOUNT.
CURRENCYAMOUNT-ITEMNO_ACC = '0000000003'.
CURRENCYAMOUNT-CURRENCY = 'KZT'.
CURRENCYAMOUNT-AMT_DOCCUR = '547092.7200-'.
CURRENCYAMOUNT-AMT_BASE = '4208405.6300'.
append CURRENCYAMOUNT.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'PRCTR'.
CRITERIA-CHARACTER = '3301-'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'WWSRV'.
CRITERIA-CHARACTER = 'A10-11N'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'WWBUS'.
CRITERIA-CHARACTER = '0'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'WWKDR'.
CRITERIA-CHARACTER = 'OMY10'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'KUKLA'.
CRITERIA-CHARACTER = '3'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'WWDIR'.
CRITERIA-CHARACTER = '0'.
append CRITERIA.
CRITERIA-ITEMNO_ACC = '0000000001'.
CRITERIA-FIELDNAME = 'KNDNR'.
CRITERIA-CHARACTER = '0000014503'.
append CRITERIA.
EXTENSION1-FIELD1 = '1'. " Ввел любое значение, лишь бы отработало замещение
append EXTENSION1.
call function 'BAPI_ACC_DOCUMENT_CHECK'
exporting
DOCUMENTHEADER = DOCUMENTHEADER
tables
ACCOUNTGL = ACCOUNTGL
ACCOUNTRECEIVABLE = ACCOUNTRECEIVABLE
ACCOUNTTAX = ACCOUNTTAX
CURRENCYAMOUNT = CURRENCYAMOUNT
CRITERIA = CRITERIA
EXTENSION1 = EXTENSION1
RETURN = T_BAPIRET2.
refresh T_BAPIRET2.
call function 'BAPI_ACC_DOCUMENT_POST'
exporting
DOCUMENTHEADER = DOCUMENTHEADER
importing
OBJ_TYPE = OBJ_TYPE
OBJ_KEY = OBJ_KEY
OBJ_SYS = OBJ_SYS
tables
ACCOUNTGL = ACCOUNTGL
ACCOUNTRECEIVABLE = ACCOUNTRECEIVABLE
ACCOUNTTAX = ACCOUNTTAX
CURRENCYAMOUNT = CURRENCYAMOUNT
CRITERIA = CRITERIA
EXTENSION1 = EXTENSION1
RETURN = T_BAPIRET2.
commit work.
В замещении меняю для Основного счета (6010-010) в IT_ACCIT-BUKRS '40' на '33', а в IT_ACCIT-STBUK прописываю '40'.
Единственная проблема в документе по БЕ40 появляется проводка по кредитору БЕ33 c кодом налога 'NB', а в документе по БЕ33 появляется проводка по дебитору БЕ40 c кодом налога ' '.
При создании документа через FB01 в вышеуказанных проводках код налога стоит '**'.
Кто подскажит, как можно сделать, чтобы через BAPI тоже ставился код налога '**'?
ЗЫ Код налога '**' в БД не существует, но в BSEG имено такой код указан
