BAPI_ACC_DOCUMENT_POST 增强字段写入

导语:不太理解SAP为什么BAPI预留了增强结构,还需要我们处理一下才可以用,物料主数据是这样,会计凭证也是这样,需要实施一个增强才可以用

一、创建增强结构

要先把需要增强的字段统一放在一个结构中,这样增强写一个就好了。
在这里插入图片描述

二、实施增强

对增强点【BADI_ACC_DOCUMENT】进行增强,代码如下。

代码里的【ITEMNO_ACC】是行号的名称,根据自己定义的进行调整

FIELD-SYMBOLS :<fs_posnr>  TYPE any,
                   <fs_value1> TYPE any,
                   <fs_value2> TYPE any.
    FIELD-SYMBOLS: <fs_struc> TYPE any,
                   <fs_field> TYPE any.
    DATA :ls_exte  TYPE bapiparex,
          ls_accit TYPE accit,
          l_string TYPE string.
    DATA: lv_ext_value(960) TYPE c,
          lr_ref            TYPE REF TO data.

    SORT c_extension2 BY structure.

    LOOP AT c_extension2 INTO DATA(ls_extension).
      AT NEW structure.
        CREATE DATA lr_ref TYPE (ls_extension-structure).
        ASSIGN lr_ref->* TO <fs_struc>.
      ENDAT.
      CONCATENATE ls_extension-valuepart1 ls_extension-valuepart2
                  ls_extension-valuepart3 ls_extension-valuepart4
             INTO lv_ext_value .
      MOVE lv_ext_value TO <fs_struc>.

      "抬头数据修改
      MOVE-CORRESPONDING <fs_struc> TO c_acchd.

      "行项目数据修改
      ASSIGN COMPONENT 'ITEMNO_ACC' OF STRUCTURE <fs_struc> TO <fs_field>.
      READ TABLE c_accit WITH KEY posnr = <fs_field>
            INTO ls_accit.
      IF sy-subrc IS INITIAL.
        MOVE-CORRESPONDING <fs_struc> TO ls_accit.
        MODIFY c_accit FROM ls_accit INDEX sy-tabix.
      ENDIF.
    ENDLOOP.

在这里插入图片描述

三、BAPI调用

在调用函数的时候进行增强就好了。
在这里插入图片描述
作者:小飞猪猪猪猪猪猪猪–CSDN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞猪猪猪猪猪猪猪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值