Basic Concepts:
1. User Exits:是系统中预留的一些空的Form/Subroutine,获得Access key后可以在Form中写入自己的逻辑。

2. Customer Exits:

  • FM Exits:在FM中include 保留的 Z 程序来提供功能扩展点
  • Menu Exits:在GUI status中预留+Fcode menu item, 在程序中预留对应的Handling FM Exits
  • Screen Exits:在Screen 中预留 Subscreen, 在程序中预留transport data to subscreen & return / retrieve data from subscreen 的 FM Exits

3. Enhancement & Enhancement Project:

  • Enhancement:把系统程序中的相关Customer Exits收集起来成为一个Enhancement,一般情况是按功能和类型来收集的, 比方说几个相关的FM eixts组成一个enhancemnet,或就一个 screen 或 menu exits 形成一个enhancement。查看/修改 Enhancement的t-code为:SMOD
  • 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要复杂些。
这里要提下的是非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的调用方式为:

  • FM Exits: CALL CUSTOMER-FUNCTION 'xxx' EXPORTING ... IMPORTING ...
  • 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. 通过一些专门的程序,如:利用t-code查找增强出口的程序工具
    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.

User Exits,Customer Exits,BADI and BTE基本概念相关推荐

  1. user exits, customer exits, badi

    user exits, customer exits, badi user exits, customer exits, badi Basic Concepts:1. User Exits: 是系统中 ...

  2. abap 创建出口历程_SAP ABAP第一,两,三代出口型BADI实现 解释的概念

    BADI这是第三代用户出口型.让我们来看看如何实现的细节. 一个,用户出口的类型 1,第一代 sap提供了一个空的子程序代码.在这个过程分,用户可以添加自己的代码.为了控制自己的需求.这样的改进是需要 ...

  3. SAP ABAP第一,两,三代出口型BADI实现 解释的概念

    BADI这是第三代用户出口型.让我们来看看如何实现的细节. 一个,用户出口的类型 1,第一代 sap提供了一个空的子程序代码.在这个过程分,用户可以添加自己的代码.为了控制自己的需求.这样的改进是需要 ...

  4. SAP Enhancement 分类

    Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第一次接触到这种增强,所以跟着他一起做了一下.写一个这方面的小节.    BTEs(Business ...

  5. Enhancement .

    Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第一次接触到这种增强,所以跟着他一起做了一下.写一个这方面的小节. BTEs(Business Tra ...

  6. Enhancement

    Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第一次接触到这种增强,所以跟着他一起做了一下.写一个这方面的小节. BTEs(Business Tra ...

  7. 跟着团子学SAP PS:如何查询PS模块中的user exits以及相关BAdIs SE80/SMOD/CNEX006/CNEX007/CNEX008

    在PS很多标准字段或功能无法满足客户需求的时候往往需要通过SAP标准的user exits或者BAdI进行开发以满足业务需要,所以今天介绍下如何查询PS模块中的用户出口以及BAdIs: (1)查询PS ...

  8. Enhancement(5)--Field Exits {转载}

    Field Exits,我想了一下还是单独拿出来写一下比较好. 虽然技术上来讲有点像Customer Exits(两者都是通过function来实现出口的),但是其原理和用途又有很大不同,而且Fiel ...

  9. ABAP总结之十一,Enhancement(5)--Field Exits

    Field Exits,我想了一下还是单独拿出来写一下比较好. 虽然技术上来讲有点像Customer Exits(两者都是通过function来实现出口的),但是其原理和用途又有很大不同,而且Fiel ...

最新文章

  1. linux 雷电接口,Intel完全开放雷电技术:底层融合USB 4
  2. 语义表征的无监督对比学习:一个新理论框架
  3. python线下培训-天津python培训,0基础学python线上还是线下好?
  4. CSP认证201709-1 打酱油[C++题解]:贪心
  5. GDCM:变更dcm文件的序列的测试程序
  6. 小甲鱼c++学习视频之运算符重载
  7. leetcode面试题 04.03. 特定深度节点链表(bfs)
  8. GO开发 -- could not launch process: decoding dwarf section info at offset 0x0: too short
  9. STM32F103mini教程学习总结与心得(三)---->中断
  10. 基于C语言的图形化编程软件,图形化编程工具
  11. tomcat修改端口号
  12. Thinkpad E430C 跳过电池检测更新bios
  13. Program received signal SIGFPE,Arithmetic exception.
  14. shell中的括号(小括号,大括号/花括号)的使用方法
  15. 502粘到手上变硬了怎么办_502胶水粘手如何处理?五种小技巧帮你轻松去胶!
  16. FPGA与普通CPU的区别
  17. 关于转行产品经理的十大顾虑《上》
  18. 海贼王热血航线正在连接服务器,航海王热血航线维护中是怎么回事 无法登录解决方法_航海王热血航线...
  19. win7桌面便笺:启动时提示windows7部分便笺的元数据已被损坏
  20. centos离线安装fastdfs

热门文章

  1. 外贸必备!各国进口关税查询网站大全!
  2. App上线前产品经理自查的清单
  3. 《Effective Java 2nd》第4章 类和接口
  4. leetcode409.Longest Palindrome
  5. mysql binlog2sql闪回数据
  6. 《易学C++(第2版)》——1.10 习题
  7. 微信浏览器禁止页面下拉查看网址
  8. cdoj844-程序设计竞赛 (线段树的区间最大连续和)【线段树】
  9. 数据库密码加密公用秘要生成器,数据库密码加密解密入口
  10. Android通过意图使用内置的音频播放器