BADI for ME28

2020-08-30 00:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 在保存数据时,...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

在保存数据时,请您告诉我ME28的BADI吗?

我需要跟踪EBELN。(采购订单编号)。 预先感谢。

关于

吉瓦那

7条回答
SAP小菜
2020-08-30 01:11

嗨,

通过使用SE38中的Z程序,您可以找到任何SAP交易Badi,仅提供给定的屏幕截图输入参数即可。 >

 REPORT Z_FIND_BADI。

 表:TSTC,TADIR,MODSAPT,MODACT,TRDIR,TFDIR,ENLFDIR,SXS_ATTRT,TSTCT。
 数据:带有标题行的JTAB像TADIR发生0。
 数据:FIELD1(30)。
 数据:类似于TADIR-DEVCLASS的V_DEVCLASS。
 数据WA_TADIR TYPE TADIR。


 参数:类似于TSTC-TCODE的P_TCODE,
 P_PGMNA像TSTC-PGMNA。


 选择开始。
 如果不是P_TCODE初始化的话。
   从TSTC WHERE TCODE EQ P_TCODE中选择单个*。
 否则,P_PGMNA不会初始化。
   TSTC-PGMNA = P_PGMNA。
 万一。
 如果SY-SUBRC EQ 0。
   选择单*从塔迪尔
         PGMID ='R3TR'
           AND对象='PROG'
           AND OBJ_NAME = TSTC-PGMNA。
   移动:从TADIR-DEVCLASS到V_DEVCLASS。
   如果SY-SUBRC NE 0。
     选择单*从TRDIR
           姓名= TSTC-PGMNA。
     如果是TRDIR-SUBC EQ'F'。
       选择单*从TFDIR
             PNAME = TSTC-PGMNA。
       选择单*从ENLFDIR
             FUNCNAME在哪里= TFDIR-FUNCNAME。
       选择单*从塔迪尔
             PGMID ='R3TR'
               AND对象='FUGR'
               和OBJ_NAME EQ ENLFDIR-AREA。
       移动:从TADIR-DEVCLASS到V_DEVCLASS。
     万一。
   万一。
   SELECT * FROM TADIR INTO TABLE JTAB
         PGMID ='R3TR'
           和对象输入(" SMOD"," SXSD")
           AND DEVCLASS = V_DEVCLASS。
   选择单*从TSTCT
         SPRSL EQ SY-LANGU在哪里
           和TCODE EQ P_TCODE。
   格式颜色COL_POSITIVE已关闭。
   写:/(19)'交易代码-',
         20(20)P_TCODE,
         TSTCT-TTEXT 45(50)。
   跳跃。
   如果不是JTAB []是初始的。
     写:/(105)SY-ULINE。
     格式颜色COL_HEADING已启用。
 *对内部表进行排序
     按对象排序JTAB。
     数据:WF_TXT(60)C型,
           WF_SMOD TYPE I,
           WF_BADI TYPE I,
           WF_OBJECT2(30)C型。
     清除:WF_SMOD,WF_BADI,WF_OBJECT2。
 *获取总的SMOD。
     将JTAB插入WA_TADIR。
       首先。
         格式颜色COL_HEADING已启用。
         写:/1 SY-VLINE,
               2个"增强/业务扩展",
               41 SY-VLINE,
               42'说明',
               105 SY-VLINE。
         写:/(105)SY-ULINE。
       ENDAT。


       清除WF_TXT。


       在新的对象。
         如果WA_TADIR-OBJECT ='SMOD'。
           WF_OBJECT2 ='增强'。
         ELSEIF WA_TADIR-OBJECT ='SXSD'。
           WF_OBJECT2 ='业务外接程序'。
         万一。
         格式颜色COL_GROUP启用。
         写:/1 SY-VLINE,
               2 WF_OBJECT2,
               105 SY-VLINE。
       ENDAT。


       案例WA_TADIR-OBJECT。
       当" SMOD"。
         WF_SMOD = WF_SMOD + 1。
         选择单个文本到WF_TXT
               从MODSAPT
               SPRSL = SY-LANGU
                 AND NAME = WA_TADIR-OBJ_NAME。
         FORN COLOR COL_NORMAL INTENSIFIED OFF。
       当" SXSD"。
 *对于BADis
         WF_BADI = WF_BADI + 1。
         选择单个文本到WF_TXT
               来自SXS_ATTRT
               SPRSL = SY-LANGU
                 AND EXIT_NAME = WA_TADIR-OBJ_NAME。
         格式颜色COL_NORMAL启用。
       结束。
       写:/1 SY-VLINE,
             2 WA_TADIR-OBJ_NAME HOTSPOT ON,
             41 SY-VLINE,
             42 WF_TXT,
             105 SY-VLINE。


       在对象结束时。
         写:/(105)SY-ULINE。
       ENDAT。
     结局。
     写:/(105)SY-ULINE。
     跳跃。
     格式颜色:COL_TOTAL,已启用。
     WRITE:/'出口数量:',WF_SMOD。
     WRITE:/'BADis的编号:',WF_BADI。
   其他。
     格式颜色COL_NEGATIVE启用。
     写:/(105)'不存在用户退出或BADis'。
   万一。
 其他。
   格式颜色COL_NEGATIVE启用。
   写:/(105)'事务不存在'。
 万一。


 在行选择。
   数据:WF_OBJECT类型TADIR-OBJECT。
   清除WF_OBJECT。
   获取光标字段字段1。
   检查FIELD1(8)EQ'WA_TADIR'。
   使用键OBJ_NAME = SY-LISEL + 1(20)读取表JTAB。
   将JTAB对象移至WF_OBJECT。
   案例WF_OBJECT。
     当" SMOD"。
       设置参数ID'MON'字段SY-LISEL + 1(10)。
       呼叫交易" SMOD"并跳过第一屏。
     当" SXSD"。
       在SY-LISEL + 1(20)中设置参数ID'EXN'。
       呼叫交易" SE18"并跳过第一屏。
   结束。
 

一周热门 更多>