出口和BADI查询

简介: *&---------------------------------------------------------------------**& Report  Z_FIND_EXIT_AND_BADI*&*&------------------------...

*&---------------------------------------------------------------------*
*& Report  Z_FIND_EXIT_AND_BADI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
report z_find_exit_and_badi no standard page heading.
*&---------------------------------------------------------------------*
*&  Enter the transaction code that you want to search through in order
*&  to find which Standard SAP User Exits and BADIs
*&
*&---------------------------------------------------------------------*
*& For field 'SUBC' of table 'TRDIR':
*&   M  Module Pool
*&   F  Function group
*&   S  Subroutine Pool
*&   J  Interface pool
*&   K  Class pool
*&   T  Type Pool
*&   X  XSLT Program
*&---------------------------------------------------------------------*
*& Tables
*&---------------------------------------------------------------------*
tables: tstc     , " SAP Transaction Codes
        tadir    , " Directory of Repository Objects
        modsapt  , " SAP Enhancements - Short Texts
        sxs_attrt, " SAP BADI - short text
        modact   , " Modifications
        trdir    , " System table TRDIR
        tfdir    , " Function Module
        enlfdir  , " Additional Attributes for Function Modules
        tstct    . " Transaction Code Texts

*&---------------------------------------------------------------------*
*& Variables
*&---------------------------------------------------------------------*
data: jtab        like tadir occurs 0 with header line.
data: field1(30).
data: v_devclass  like tadir-devclass.
data: object      like tadir-object.
data: bdcdata_wa  type bdcdata,
      bdcdata_tab type table of bdcdata.
data: opt         type ctu_params.

*&---------------------------------------------------------------------*
*& Selection Screen Parameters
*&---------------------------------------------------------------------*
selection-screen begin of block a01 with frame. title text-001.
selection-screen skip.
parameters: p_tcode like tstc-tcode obligatory.
selection-screen skip.
parameters: exit radiobutton group 1 default 'X',
            badi radiobutton group 1.
selection-screen end of block a01.

define bdc_program.
  clear bdcdata_wa.
  bdcdata_wa-program  = &1.
  bdcdata_wa-dynpro   = &2.
  bdcdata_wa-dynbegin = &3.
  append bdcdata_wa to bdcdata_tab.
end-of-definition.
define bdc_detail.
  clear bdcdata_wa.
  bdcdata_wa-fnam = &1.
  bdcdata_wa-fval = &2.
  append bdcdata_wa to bdcdata_tab.
end-of-definition.

*&---------------------------------------------------------------------*
*& Start of main program
*&---------------------------------------------------------------------*
start-of-selection.
  if exit = 'X'.
    bject = 'SMOD'.  " User-exit!
  else.
    bject = 'SXSD'.  " BADI!
  endif.

* Validate Transaction Code:
  select single * from tstc where tcode eq p_tcode.
* Find Repository Objects for transaction code:
  if sy-subrc eq 0.                                         " IF 1
    select single * from tadir where pgmid    = 'R3TR'
                                 and object   = 'PROG'
                                 and obj_name = tstc-pgmna."Program
*    name!
    move: tadir-devclass to v_devclass. " Package
    if sy-subrc ne 0.
      select single * from trdir where name = tstc-pgmna.
      if trdir-subc eq 'F'.  " Function Group
        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 = enlfdir-area.
        move: tadir-devclass to v_devclass.
      endif.
    endif.

*   Find SAP Modifactions:
    select * from tadir into table jtab where pgmid    = 'R3TR'
*                                          AND object   = 'SMOD'
                                          and object   = object
                                          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.                               " IF 2
      write: /(95) sy-uline.
      format color col_heading intensified on.
*     Exit:
      if exit = 'X'.
        write: /1  sy-vline,
                2  'Exit Name',
                22 sy-vline ,
                23 'Description',
                95 sy-vline.
*     BADI:
      else.
        write: /1  sy-vline,
                2  'BADI Name',
                22 sy-vline ,
                23 'Description',
                95 sy-vline.
      endif.
      write:/(95) sy-uline.
      loop at jtab.
*       EXIT:
        if exit = 'X'.
          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,
                  22 sy-vline ,
                  23 modsapt-modtext,
                  95 sy-vline.
*       BADI:
        else.
          select single * from sxs_attrt where sprsl     = sy-langu
                                           and exit_name =
jtab-obj_name.
          format color col_normal intensified off.
          write: /1  sy-vline,
                  2  jtab-obj_name hotspot on,
                  22 sy-vline ,
                  23 sxs_attrt-text,
                  95 sy-vline.
        endif.
      endloop.
      write: /(95) sy-uline.
      describe table jtab.
      skip.
      format color col_total intensified on.
      if exit = 'X'.
        write: / 'No of Exits:', sy-tfill.
      else.
        write: / 'No of BADIs:', sy-tfill.
      endif.
    else.                                                   " IF 2
      format color col_negative intensified on.
      write: /(95) 'No User Exit exists'.
    endif.                                                  " IF 2
  else.                                                     " IF 1
    format color col_negative intensified on.
    write: /(95) 'Transaction Code Does Not Exist'.
  endif.                                                    " IF 1


* Take the user to SMOD for the Exit that was selected:
at line-selection.
  get cursor field field1.
  check field1(4) eq 'JTAB'.
* For exit:
  if exit = 'X'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first screen.
* For BADI:
  else.
    clear: bdcdata_wa, bdcdata_tab[].
    bdc_program 'SAPLSEXO' '0100' 'X'.
    bdc_detail 'BDC_CURSOR' 'G_IS_BADI'.
    bdc_detail 'BDC_OKCODE' '=ISSPOT'.
    bdc_detail 'G_IS_BADI' 'X'.
    bdc_program 'SAPLSEXO' '0100' 'X'.
    bdc_detail 'BDC_CURSOR' 'G_BADINAME'.
    bdc_detail 'BDC_OKCODE' '=SHOW'.
    bdc_detail 'G_BADINAME' sy-lisel+1(20).
    opt-dismode = 'E'.
    opt-defsize = 'X'.
    call transaction 'SE18' using bdcdata_tab options from opt.
  endif.

目录
相关文章
|
9月前
|
SQL 自然语言处理 程序员
SAP ABAP DDIC 结构字段的一些技术限制条件
SAP ABAP DDIC 结构字段的一些技术限制条件
101 0
SAP MM初阶之采购信息记录里的Prior Supplier栏位
SAP MM初阶之采购信息记录里的Prior Supplier栏位
SAP MM初阶之采购信息记录里的Prior Supplier栏位
|
缓存 API 开发者
API开放 | 国际包裹查询接口解决方案International Package Tracking 17TRACK
物流环节信息化升级,用户物流体验升级,国际包裹查询接口解决方案International Package Tracking 17TRACK接口使用教程。有100单免费测试额度,需要完整的技术开发文档v我837094255
API开放 | 国际包裹查询接口解决方案International Package Tracking 17TRACK
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(二)
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(二)
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(二)
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(一)
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(一)
SAP MM 外部采购流程里的如同鸡肋一样的Advanced Returns Management功能(一)
|
JavaScript
SAP MM ME21N 创建委外采购PO报错 - Not possible to determine any components - 之对策
SAP MM ME21N 创建委外采购PO报错 - Not possible to determine any components - 之对策
SAP MM ME21N 创建委外采购PO报错 - Not possible to determine any components - 之对策
SAP MM 为FO类型的采购订单做MIRO时候PO Amount不自动带出来问题之对策
SAP MM 为FO类型的采购订单做MIRO时候PO Amount不自动带出来问题之对策
SAP MM 为FO类型的采购订单做MIRO时候PO Amount不自动带出来问题之对策
SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
126 0
SAP 电商云 Spartacus UI 点了 Shipping Method 之后的执行逻辑
SAP C4C 和 ERP 中的外部定价模块 - External Pricing原理介绍
从下图可以看出,C4C的Opportunity,Sales Quote和Sales Order这些business transaction没有自己的pricing engine,使用的是在ERP Pricing里计算的结果,即所谓的external pricing。
SAP C4C 和 ERP 中的外部定价模块 - External Pricing原理介绍
为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用
http://localhost:4200/powertools-spa/en/USD/jerryproduct/3755211/PSR%2010.8%20LI 为什么打开一个 product 明细页面,也调用了 12 次?
115 0
为什么 SAP 电商云 Spartacus 产品明细页面的自定义 matcher 会重复被调用

热门文章

最新文章