【SAP-ABAP】-BTE增强

BTE增强的概念:

有点类似财务的替代增强

SAP有很多这种增强方式,就是相当于复制一个原有FM,替换FM里面的逻辑

事务码:FIBF--维护事务BTE

一、操作步骤:FIBF->环境->信息系统,查找事件号及需要替换的函数

双击或者点击样本函数模块可以查看具体的FM

二、复制一个函数,更名(一般是在前面加一个Z*原函数名,也可以随意)

三、FIBF->设置->产品->一个客户(这里为创建是否激活)

四、FIBF->设置->处理函数模块->一个客户的

备注:此需求一般为配置请求,所以TR产生的请求为定制请求TR,而非工作台TR,这个需要注意一下

(很多时候,SAP给了这种可以配置的TR,一般建议在100环境执行,当然在200开发环境执行也没啥问题,反正对应的800都一样,看个人和整体规划,我一般都是建议,类似于配置的TR在100执行,开发的TR在200执行,先配置再开发的,也区分开)

以下为操作具体案例:也可以不看

需求:在函数BAPI_ACC_DOCUMENT_POST生成凭证时,增强一下,使得某个字段能够增强进入表BKPF-XREF1_HD这个字段中

找到对应的需要替换的函数:/SAPPCE/DPC_PROCESS_EXTENSION (不要问我是怎么找到这个函数的,大佬直接告诉我的,这个我没有找到,我是渣渣😭)

一、拷贝函数/SAPPCE/DPC_PROCESS_EXTENSION,函数命名自定义为ZSAMPLE_PROCESS_RWBAPI01

二、修改函数ZSAMPLE_PROCESS_RWBAPI01的代码,不要修改出入参(防止出问题)

代码如下:

  DATA gs_extension TYPE bapiacextc.

  IF NOT extension[] IS INITIAL.

    LOOP AT extension INTO gs_extension.

      IF gs_extension-field1 EQ 'XREF1_HD' AND gs_extension-field2 IS NOT INITIAL.

        it_accit-xref1_hd = gs_extension-field2 .

      ENDIF.

      IF gs_extension-field1 EQ 'XREF2_HD' AND gs_extension-field2 IS NOT INITIAL.

        it_accit-xref2_hd = gs_extension-field2 .

      ENDIF.

      CLEAR gs_extension.

    ENDLOOP.

    MODIFY it_accit INDEX 1 TRANSPORTING xref1_hd xref2_hd.

  ENDIF.

三、FIBF->设置->产品->一个客户(这里为创建是否激活)

四、FIBF->设置->处理函数模块->一个客户的

五、保存生成TR

六、运用到实际代码中

  DATA:lt_extension1 LIKE TABLE OF bapiacextc,        "增强结构

          ls_extension1 LIKE bapiacextc.

  ls_extension1-field1 = 'XREF1_HD'.

  ls_extension1-field2 = gs_receipt-notecode+0(17).

  APPEND ls_extension1 TO lt_extension1.

  CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'

  EXPORTING

    documentheader          = gs_documentheader

*     CUSTOMERCPD             =

*     CONTRACTHEADER          =

*   IMPORTING

*     OBJ_TYPE                =

*     OBJ_KEY                 =

*     OBJ_SYS                 =

  TABLES

   accountgl               = gt_accountgl

   accountreceivable       = gt_accountreceivable

   accountpayable          = gt_accountpayable

*     ACCOUNTTAX              =

    currencyamount          = gt_currencyamount

*     CRITERIA                =

*     VALUEFIELD              =

     extension1              = lt_extension1 在这里

    return                  = gt_return

*     PAYMENTCARD             =

*     CONTRACTITEM            =

   extension2              = gt_extension2

*     REALESTATE              =

*     ACCOUNTWT               =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

自律的Drew.Dong

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

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

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

打赏作者

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

抵扣说明:

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

余额充值