BAPI_ACC_DOCUMENT_CHECK BAPI_ACC_DOCUMENT_POST字段增强||字段拓展

BAPI_ACC_DOCUMENT_CHECK BAPI_ACC_DOCUMENT_POST字段增强||字段拓展

对于关联类型中没有的字段,如开户行等,需要自行定义拓展字段进行处理

第一步 创建一个数据类型 ZFI001_EXTEN

拓展字段最好是字符类型 不然会出错

遇到你就知道了 哈哈哈哈 我太菜了 没解决这个问题

image-20220804101149240

POSNR必须存在!其余根据需要自行添加即可

第二步 进入增强点进行处理

事务代码SE18,创建实施

image-20220804102110338

双击CHANGE输入以下模块代码,通常情况不需要做改变

  METHOD IF_EX_ACC_DOCUMENT~CHANGE.
    DATA: WA_EXTENSION   TYPE BAPIPAREX,
          EXT_VALUE(960) TYPE C,
          WA_ACCIT       TYPE ACCIT,
          L_REF          TYPE REF TO DATA.

    FIELD-SYMBOLS: <L_STRUC> TYPE ANY,
                   <L_FIELD> TYPE ANY.

    SORT C_EXTENSION2 BY STRUCTURE.

    LOOP AT C_EXTENSION2 INTO WA_EXTENSION.
      AT NEW STRUCTURE.
        CREATE DATA L_REF TYPE (WA_EXTENSION-STRUCTURE).
        ASSIGN L_REF->* TO <L_STRUC>.
      ENDAT.
      CONCATENATE WA_EXTENSION-VALUEPART1 WA_EXTENSION-VALUEPART2
                  WA_EXTENSION-VALUEPART3 WA_EXTENSION-VALUEPART4
             INTO EXT_VALUE.
      MOVE EXT_VALUE TO <L_STRUC>.
      ASSIGN COMPONENT 'POSNR' OF STRUCTURE <L_STRUC> TO <L_FIELD>.
      READ TABLE C_ACCIT WITH KEY POSNR = <L_FIELD>
            INTO WA_ACCIT.
      IF SY-SUBRC IS INITIAL.
        MOVE-CORRESPONDING <L_STRUC> TO WA_ACCIT.
        MODIFY C_ACCIT FROM WA_ACCIT INDEX SY-TABIX.
      ENDIF.
    ENDLOOP.
  ENDMETHOD.

第三步 程序调用

image-20220804102509735

  • 创建对应工作区和内表

    DATA: LS_EXTEN2 TYPE ZFI001_EXTEN. "定义的增强字段结构
    DATA: GT_EXTENSION2        TYPE TABLE OF BAPIPAREX,
          GS_EXTENSION2        TYPE BAPIPAREX.
    DATA :L_EXTNAME TYPE STRING VALUE 'ZFI001_EXTEN'.
    
  • 插入拓展字段数据

    CLEAR LS_EXTEN2.
    CLEAR GS_EXTENSION2.
    LS_EXTEN2-POSNR = NUM.
    *LS_EXTEN2-DMBTR = <FS_LINE>-DMBTR.
    LS_EXTEN2-FKBER = <FS_LINE>-FKBER.
    *LS_EXTEN2-MEINS = <FS_LINE>-MEINS.
    LS_EXTEN2-NEWBW = <FS_LINE>-NEWBW.
    LS_EXTEN2-POSID = <FS_LINE>-POSID.
    LS_EXTEN2-RBUSA = <FS_LINE>-RBUSA.
    LS_EXTEN2-XNEGP = <FS_LINE>-XNEGP.
    GS_EXTENSION2-STRUCTURE = L_EXTNAME.  "结构名
    GS_EXTENSION2-VALUEPART1 = LS_EXTEN2. "
    APPEND GS_EXTENSION2 TO GT_EXTENSION2.
    
  • 调用BAPI

    CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
      EXPORTING
        DOCUMENTHEADER          = 
    *   CUSTOMERCPD             =
    *   CONTRACTHEADER          =
      TABLES
    *   ACCOUNTGL               =
    *   ACCOUNTRECEIVABLE       =
    *   ACCOUNTPAYABLE          =
    *   ACCOUNTTAX              =
    *   CURRENCYAMOUNT          =
    *   CRITERIA                =
    *   VALUEFIELD              =
       EXTENSION1              = GT_EXTENSION2
        RETURN                  =
    *   PAYMENTCARD             =
    *   CONTRACTITEM            =
    *   EXTENSION2              =
    *   REALESTATE              =
    *   ACCOUNTWT               =
              .
    
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值