首页 > 其他分享 >[转载]SAP 增强开发

[转载]SAP 增强开发

时间:2022-10-12 13:37:36浏览次数:70  
标签:10 增强 SAP 20 sy 转载 type

作者:​SAP169​




用户增强大致分为三类



1. E Enhancement exits 就是常说的 USER_EXIT.



2. C GUI Code.



3. S Subscreens 屏幕增强.





1. 菜单出口-Menu Exits



定义自己的菜单



2. 屏幕出口-Screen Exits



定义自己的屏幕.



3. 功能模块出口-Function Module Exits



在SAP应用程式中添加功能



4. 关键字出口-Keyword Exits



在ABAP/4字典中的关键字数据元素添加文档. 结果是你在使用这些数据元素的字段处按F1后会出现你自定义的说明文档.



用户出口的发展:


第一代: 基于源代码的增强:



需要申请 access key 才能更改.



查找此类出口的方法:



1. 在增强程序中查找第二个字母为"Z"的包含程序.





2. 通过开发类来查找基于源码的用户出口



该类增强大部分都包含在开发类VMOD中, 可通过 SE80 查找该类包含的对象.





3. 在后台找对应模块的增强.





4. 在程序中查找以 USEREXIT_ 开头的关键子程序.





第二代: 基于函数模块的增强:



用 SMOD 和 CMOD 维护.



SMOD 包含具体的增强,而 CMOD 是包含一组SMOD编写的增强.  



与增强相关的Table:



    [1]. TFDIR->function module table



    [2]. MODSAP->sap enhancement table



    [3]. TSDIR->Dynpro Areas CALL CUSTOMER SUBSCREEN(屏幕增强)



    [4]. CUATEXTS-> GUI Interface: Menu Texts Changed(GUI 菜单文本增强)



所有的 Enhancement 在表 MODSAP 中, 而表TFDIR是看此 Enhancement 是否被激活, 看字段MAND是否为"C".



第二类增强主要有3类.



1. E类, Enhancement Exits,也叫功能出口.



函数名称由三个部分组成, 其命名规则为: EXIT_<程序名>_<3位数字>, 在程序中通过引用代码



"CALL CUSTOMER-FUNCTION <3位数字>"来调用.



一个函数只会对应一个出口,但一个出口对象可以对应多个函数.



例如:V45A0003会同时对应 EXIT_SAPMV45A_003, EXIT_SAPMV45A_004两个函数.



在 MODSAP, MODSAPT 两个表中存放函数和出口的关系及出口对象的描述.



查寻此类出口的方法:



1. 利用系统Function查找.



 [1].DYNP_VALUES_READ



 [2].MODX_ALL_ACTIVE_MENUENTRIES(菜单增强)



 [3].MODX_FUNCTION_ACTIVE_CHECK(出口函数增强)



 [4].MODX_MENUENTRY_ACTIVE_CHECK(菜单增强)



 [5].MODX_SUBSCREEN_ACTIVE_CHECK(屏幕增强)



SE37 进入上面Function后, 设定断点, 如图



[转载]SAP <wbr>增强开发

​​
运行Tcode, 如果有出口程式就会自动进入Debug画面,


[转载]SAP <wbr>增强开发



观察L_FUNCNAME , 得到出口函数后, 可以在Table MODSAP 中查到出口对象. 





   先通过源码找到函数, 再通过函数来查找出口对象.



以 MB1C 为例,



[转载]SAP <wbr>增强开发



[转载]SAP <wbr>增强开发

​​

​​

[转载]SAP <wbr>增强开发

​​
得到这些 Number 后, 用通常的出口结构 EXIT_SAPMM07M_ 001/005/009



再用 SE37 进去查看, 通过参数,说明等找出准确的出口.





3. 通过包名查找.



先得到源程序名, 用SE38再获取包名.



还以 MB1C 为例:



[转载]SAP <wbr>增强开发

​​



执行 SMOD



[转载]SAP <wbr>增强开发

​​

​​

[转载]SAP <wbr>增强开发

​​

​​

[转载]SAP <wbr>增强开发

​​
根据描述找出需要的Exit.





4. 通过SE80 查找.



[转载]SAP <wbr>增强开发

​​



[转载]SAP <wbr>增强开发

​​



5. 通过编写程式查找.



*&---------------------------------------------------------------------*
*& Report  Z_EXIT_HELP
*&
*&---------------------------------------------------------------------*
REPORT  z_exit_help .

TABLES  : tstc , tadir , modsapt , modact , trdir , tfdir , enlfdir .
TABLES  : tstct .
DATA  : jtab  LIKE tadir  OCCURS  0  WITH  HEADER  LINE .
DATA  : field1 ( 30 ) .
DATA  : v_devclass  LIKE tadir -devclass .
PARAMETERS  : p_tcode  LIKE tstc -tcode OBLIGATORY .

SELECT  SINGLE *  FROM tstc  WHERE tcode  EQ p_tcode .
IF sy -subrc  EQ  0 .
   SELECT  SINGLE *  FROM tadir  WHERE pgmid  =  'R3TR'
   AND object  =  'PROG'
   AND obj_name  = tstc -pgmna .
   MOVE  : tadir -devclass  TO v_devclass .
   IF sy -subrc  NE  0 .
     SELECT  SINGLE *  FROM trdir  WHERE name  = tstc -pgmna .
     IF trdir -subc  EQ  'F' .
       SELECT  SINGLE *  FROM tfdir  WHERE pname  = tstc -pgmna .
       SELECT  SINGLE *  FROM enlfdir  WHERE funcname  =
      tfdir -funcname .
       SELECT  SINGLE *  FROM tadir  WHERE pgmid  =  'R3TR'
       AND object  =  'FUGR'
       AND obj_name  EQ enlfdir -area .

       MOVE  : tadir -devclass  TO v_devclass .
     ENDIF .
   ENDIF .
   SELECT *  FROM tadir  INTO  TABLE jtab
   WHERE pgmid  =  'R3TR'
   AND object  =  'SMOD'
   AND devclass  = v_devclass .
   SELECT  SINGLE *  FROM tstct  WHERE sprsl  EQ sy -langu  AND
  tcode  EQ p_tcode .
   FORMAT  COLOR COL_POSITIVE  INTENSIFIED OFF .
   WRITE :/ ( 19 )  'Transaction Code - ' ,
   20 ( 20 ) p_tcode ,
   45 ( 50 ) tstct -ttext .
   SKIP .
   IF  NOT jtab[]  IS  INITIAL .
     WRITE :/ ( 95 ) sy - uline .
     FORMAT  COLOR COL_HEADING  INTENSIFIED  ON .
     WRITE :/1 sy -vline ,
     2  'Exit Name' ,
     21 sy -vline  ,
     22  'Description' ,
     95 sy -vline .
     WRITE :/ ( 95 ) sy - uline .
     LOOP  AT jtab .
       SELECT  SINGLE *  FROM modsapt
       WHERE sprsl  = sy -langu  AND
      name  = jtab -obj_name .
       FORMAT  COLOR  COL_NORMAL  INTENSIFIED OFF .
       WRITE :/1 sy -vline ,
       2 jtab -obj_name  HOTSPOT  ON ,
       21 sy -vline  ,
       22 modsapt -modtext ,
       95 sy -vline .
     ENDLOOP .
     WRITE :/ ( 95 ) sy - uline .
   

标签:10,增强,SAP,20,sy,转载,type
From: https://blog.51cto.com/u_15680210/5749649

相关文章

  • 外向交货单增强BADI:LE_SHP_DELIVERY_PR
     "参考销售订单创建外向交货单  CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS'    EXPORTING      SHIP_POINT  ......
  • 获取sap登陆用户名的中文描
    DATA:L_NAME_LASTLIKEADRP-NAME_LAST,   L_NAME_FIRSTLIKEADRP-NAME_FIRST..SELECTSINGLENAME_LASTNAME_FIRST FROM......
  • 物料查询F4帮助增强(添加筛选条件
    需求:1、通过F4快捷按钮查询物料主数据时,在查询界面增加已删除/冻结物料点选按钮(如上图)2、系统默认不点选已删除/冻结物料,查询结果不包括已删除和已冻结物料;当用户点选已删......
  • 【每周CV论文推荐】基于GAN的图像数据增强有哪些经典论文值得阅读
    欢迎来到《每周CV论文推荐》。在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的。当前基于GAN的二维图像生成领......
  • GW100-SAP Gateway and CDS Views
    SAPGatewayandCDSViews1、解释推荐的SAPFiori编程模型CDS视图是以数据库为中心的应用程序的下一代数据定义和访问。CDS视图提供了一个跨平台的统一抽象层---......
  • 接口的幂等性(转载)
    引言接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴......
  • [转载]危险操作一追到底--Linux的历史记录
    转自:https://zhuanlan.zhihu.com/p/524921170 危险操作一追到底--Linux的历史记录KellanFan为了更好的自己  概述在Linux下使用history命令......
  • 拦截器和跨域问题(转载)
    拦截器解决跨域问题梦梁鹿于2022-03-0316:58:06发布6161收藏7文章标签:javaweb安全版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出......
  • 转载:流动人口3.76亿,他们都去哪儿?2022-10-11
    https://m.thepaper.cn/baijiahao_20247546 流动人口3.76亿,他们都去哪儿?媒体:观察者网 2022-10-1111:13►文第一财经林小昭近年来,我国人口流动有哪些特征?国家......
  • 转载: 房贷利率下降,促进 楼市销售 上行 2022-10-10
    转载:https://baijiahao.baidu.com/s?id=1746295841564091930&wfr=spider&for=pc 这些城市房贷利率进入“3时代”,距离楼市销售回暖还有多远? 第一财经2022-10-10......