SAP BAPI_ACC_DOCUMENT_POST无法找到区域 01 的帐户 ‘对应科目: 购置价值记帐‘

老版本ECC通过bapi创建资产带科目的资产凭证碰到了报错:法找到区域 01 的帐户 '对应科目: 购置价值记帐' 。 

解决方式:1.排除是否是财务配置的报错,可以参照https://zhuanlan.zhihu.com/p/694212310https://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.
 

问题可以解决,过账成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你叶不叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值