SAP 增強

  1. 第一代(FORM 增強)
    在所需增強的主程序中,查找form名中有userexit_的form.
  2. 第二代(Function 增強)
    在程序中搜索customer-function,找到customer-function後面的3位數字編號,出口函數名為EXIT_程序名_3位數字,然後用出口函數名去MODSAP表中取得增強對象。
    在MODX_FUNCTION_ACTIVE_CHECK中第36行打斷點,運行要查找出口的T-code,進入debug,查看l_funcname值。funcname就是出口函數名稱。
    cmod增強管理,smod實施的增強點。
  3. 第三代 BADI(Business add-Ins)
    在cl_exithandler中的方法get_instance中的調用方法cl_exithandler=>get_class_name_by_interface處打斷點,exit_name就是出口名,再通過se18查看badi的描述,找到接口對應的方法,點擊上面implementation下的create創建實施,然後雙擊方法編寫代碼,激活后查看是否生效。
    在NEW BADI中,一個Enhancement Spot可以定義多個BADI,每個BADI又是由1個接口與多個方法組成。Enhancement Spot相當於容器,用來存儲多個BADI,而每個BADI必須定義一個接口,這個接口可以有一個或多個方法,BADI就是將接口與方法鏈接在一起。
    不同implementation的調用通過過濾器進行設定;同一個enhancement implementation中,不同的BADI implementations是由Default Implementation 、Implementation is active選項共同決定。
  4. BTE(Business Transaction Event)
    兩種類型的接口:P/S(Publish & Subscribe Interfaces);Process Interface.
    1.標準程序中經常是以OPEN_FI_PERFORM開頭的function。OPEN_FI_PERFORM,找到的function名最後如果是’_E’,它就是P/S接口;如果是’_P’,那就是Process Interface.
    2.如果是P/S接口,T-code: BERE,直接運行后,用OPEN_FI_PERFORM中的數字去查詢,找到對應的Event后選中,點上面的Sample function module,然後copy Sample (要先創建function group).在複製的function module中添加增強的代碼;Process接口用T-code:BERP查找,後面的都一樣。
    3.T-code:FIBF,Setting–Products–…of a customer,創建一個Product,後面的Active打鉤。保存生成request。
    4.如果是P/S接口,在Setting-下選P/S Modules–… of a customer,Event就是OPEN_FI_PERFORM中的數字,Application Indicator可以不填,添加完後保存;Process Interface在Setting中選 Process Modules,其他步驟都一樣。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值