老版本ECC通过bapi创建资产带科目的资产凭证碰到了报错:法找到区域 01 的帐户 '对应科目: 购置价值记帐' 。
解决方式:1.排除是否是财务配置的报错,可以参照https://zhuanlan.zhihu.com/p/694212310
https://zhuanlan.zhihu.com/p/694212310
2.发现配置没问题,可以通过前台手工过账,也可以通过BDC等方式过账,生成凭证,于是跟踪代码,发现需要给 bapi的抬头传值:
DOCUM-OBJ_TYPE
DOCUM-OBJ_KEY
DOCUM-OBJ_SYS
以下为传值逻辑以及定义:
DATA:L_AWSYS TYPE BKPF-AWSYS.
DATA L_BELNR TYPE BSEG-BELNR.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET' "当前逻辑系统
IMPORTING
OWN_LOGICAL_SYSTEM = L_AWSYS
EXCEPTIONS
OWN_LOGICAL_SYSTEM_NOT_DEFINED = 1."根据公司代码加年度加凭证类型取最大的凭证编号加1
SELECT * INTO CORRESPONDING FIELDS OF TABLE ITAB_T003
FROM T003
WHERE NUMKR = '01'.
LOOP AT ITAB_T003.
S_BLART-SIGN = 'I'.
S_BLART-OPTION = 'EQ'.
S_BLART-LOW = ITAB_T003-BLART.
APPEND S_BLART.
CLEAR ITAB_T003.
ENDLOOP.
CLEAR L_BELNR.
SELECT SINGLE MAX( BELNR ) FROM BKPF INTO L_BELNR
WHERE BUKRS = BKPF-BUKRS
AND GJAHR = BKPF-BUDAT(4)
AND BLART IN S_BLART.
L_BELNR = L_BELNR + 1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_BELNR
IMPORTING
OUTPUT = L_BELNR.DOCUM-OBJ_TYPE = ' ZBKPF' .
CONCATENATE L_BELNR BKPF-BUKRS BKPF-BUDAT(4) INTO DOCUM-OBJ_KEY.
DOCUM-OBJ_SYS = L_AWSYS.
3.注意:参考交易只能使用Z*开头的参考交易,这个note说的
Solved: BAPI_ACC_DOCUMENT_POST how to post a document rela... - SAP Community 通过SM30配置表TTYP,参照BKPF复制
4.资产配置需要传参事务类型,而这个类型是通过增强进去的,增强有个筛选器一般默认为BKPF,所以我们需要新增一个增强,筛选器设置为ZBKPF
增强badi,比较常见
ACC_DOCUMENT
通过se19创建实施
增强:change方法可copy代码
DATA: WA_EXTENSION TYPE BAPIPAREX,
BEGIN OF ZEXT_DATA,
POSNR TYPE ACCIT-POSNR,
RSTGR TYPE ACCIT-RSTGR,
XNEGP TYPE ACCIT-XNEGP,
ANBWA TYPE ACCIT-ANBWA,
BSCHL TYPE ACCIT-BSCHL,
END OF ZEXT_DATA.
FIELD-SYMBOLS: <ACCIT> TYPE ACCIT.
DATA:LWA_ZSFI001 TYPE ZSFI001.
IF C_EXTENSION2[] IS NOT INITIAL.
LOOP AT C_EXTENSION2 INTO WA_EXTENSION
WHERE STRUCTURE = 'ZACC_CHECK'.
ZEXT_DATA = WA_EXTENSION-VALUEPART1.
READ TABLE C_ACCIT ASSIGNING <ACCIT> WITH KEY POSNR = ZEXT_DATA-POSNR.
IF SY-SUBRC = 0.
<ACCIT>-RSTGR = ZEXT_DATA-RSTGR.
<ACCIT>-XNEGP = ZEXT_DATA-XNEGP.
IF ZEXT_DATA-BSCHL IS NOT INITIAL .
<ACCIT>-BSCHL = ZEXT_DATA-BSCHL.
ENDIF.
IF ZEXT_DATA-ANBWA IS NOT INITIAL .
<ACCIT>-ANBWA = ZEXT_DATA-ANBWA.
ENDIF.
ENDIF.
ENDLOOP.
问题可以解决,过账成功