日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

user exits, customer exits, badi

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 user exits, customer exits, badi 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
user exits, customer exits, badi
user exits, customer exits, badi?

Basic Concepts:1. User Exits: 是系統中預留的一些空的Form/Subroutine, 獲得Access key后可以在Form中寫入自己的邏輯.

2. Customer Exits :
a. FM Exits: 在FM中include 保留的 Z 程序來提供功能擴展點
b. Menu Exits: 在GUI status中預留+Fcode menu item, 在程序中預留對應的Handling FM Exits
c. Screen Exits: 在Screen 中預留 Subscreen, 在程序中預留transport data to subscreen & return / retrieve data from subscreen 的 FM Exits

3. Enhancement & Enhancement Project :
a. Enhancement: 把系統程序中的相關Customer Exits收集起來成為一個Enhancement, 一般情況是按功能和類型來收集的, 比方說幾個相關的FM eixts組成一個enhancemnet, 或就一個 screen 或 menu exits 形成一個enhancement. 查看/修改 Enhancement的t-code為: SMOD
b. Enhancement Project: 在使用Enhacement時, 要先建立一個Enhancement Project, 可以將多個Enhancement assign給一個enhancement project去管理, 對應t-code: CMOD.

4. BADI (Business Add-in), 通過面向對象的方式來提供擴展點,它支持Customer Exits所有的enhancement 類型,因目前Class中不能包含subscreen所以在用BADI enhance screen時比用Customer Exits要復雜些.相關機制請參考我以前的blog.

這里要提下的是非Multiple Case的BADI同時只能有一個Active Implementation, 即要Active新生成的需先inactive舊的. 若是Multiple Case的BADI則可同時有多個Active Implementation,且所有的Implementation在沒有Filter的情況下都會被遍歷執行.

5. Other
User Exits與Customer Exits的區別在于User Exits的使用需要Access Key但Customer Exits不要.
FM exits在關聯的Function Group中的命名規則為: EXIT_program name_nnn
Customer exits的調用方式為:
a. FM Exits: CALL CUSTOMER-FUNCTION 'xxx' EXPORTING ... IMPORTING ...
b. Subscreen: Call CUSTOMER-SUBSCREEN INCLUDING

How to find user exits?
Using t-code: SE93 and specify the transaction code. from here goto the main program and click on the FIND button. Specify USEREXIT and select find in main program radio button and click search... if any user exit is used, it will list all the places as in SAP if any user exit is used, a comment is been written above the user exit.

How to find customer exits?
1. 通過一些專門的程序,見附件
2. Search string “call customer” in the main program source code;
3. SE80 -> Repository Infomation System -> Enhancements -> Customer Exits -> Input search condition -> Execute
4. SE11 -> Database table: MODSAPVIEW -> Display Contents -> Input "*program name*" into Enhancement field -> Execute -> 得到的SAP extension name 即為 Customer Exits Enhancement Name

How to find BADIs?
1. 通過一些專門的程序,見附件
2. Search string “type ref to” in the main program source code, then check if there is BAdi used in the program;
3. Set break-point in the method CL_EXITHANDLER=>GET_INSTANCE.
4. SE80 -> Repository Infomation System -> Enhancements -> Business Add-ins

Customer Exits and BADI implementation.
1. Customer Exits: SMOD, CMOD
2. BADI: SE18, SE19.

Attachment is an ABAP program which can find customer exits and BADIs conveniently.

How to find all the BADIs(including sap internal use): 1. Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
2. In 'Display' mode, go to 'Methods' tab.
3. Double click the method 'Get Instance' to display it source code.
4. Set a breakpoint on 'CALL METHOD cl_exithandler => get_class_name_by_interface'.
5. Then run your transaction.
6. The screen will stop at this method.
7. Check the value of parameter 'EXIT_NAME'. It will show you the BADI for that transaction. 補充: 1. 如何能過customer exit name 找 enhancement?
通過表 MODSAP
2. 如果知道你要做的customer exit是否已經有Project實現過了?
CMOD -> input customer name to "Enhancement component" field like "EXIT_SAPLRSAP_002" -> execute

總結

以上是生活随笔為你收集整理的user exits, customer exits, badi的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。