zoukankan      html  css  js  c++  java
  • 查找增强的程序

    *&---------------------------------------------------------------------*
    *& Report  ZLM_ENHANMENT_SEARCH
    *&
    *&---------------------------------------------------------------------*
    *&
    *&
    *&---------------------------------------------------------------------*

    REPORT  ZLM_ENHANMENT_SEARCH.

    *&---------------------------------------------------------------------*
    *&  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':
    *&    Module Pool
    *&    Function group
    *&    Subroutine Pool
    *&    Interface pool
    *&    Class pool
    *&    Type Pool
    *&    XSLT Program
    *&---------------------------------------------------------------------*
    *& Tables
    *&---------------------------------------------------------------------*
    TABLEStstc     SAP Transaction Codes
            tadir    Directory of Repository Objects
            modsapt  SAP Enhancements Short Texts
            sxs_attrtSAP BADI short text
            modact   Modifications
            trdir    System table TRDIR
            tfdir    Function Module
            enlfdir  Additional Attributes for Function Modules
            tstct    Transaction Code Texts

    *&---------------------------------------------------------------------*
    *& Variables
    *&---------------------------------------------------------------------*
    DATAjtab        LIKE tadir OCCURS WITH HEADER LINE.
    DATAfield1(30).
    DATAv_devclass  LIKE tadir-devclass.
    DATAobject      LIKE tadir-object.
    DATAbdcdata_wa  TYPE bdcdata,
          bdcdata_tab TYPE TABLE OF bdcdata.
    DATAopt         TYPE ctu_params.

    *&---------------------------------------------------------------------*
    *& Selection Screen Parameters
    *&---------------------------------------------------------------------*
    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERSp_tcode LIKE tstc-tcode OBLIGATORY                      "事物代码
    SELECTION-SCREEN SKIP.
    PARAMETERSexit RADIOBUTTON GROUP DEFAULT 'X'                    "用户出口
                badi RADIOBUTTON GROUP 1                                "BADI
    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'.
        object 'SMOD' User-exit!
      ELSE.
        object 'SXSD' BADI!
      ENDIF.

    Validate Transaction Code:
      SELECT SINGLE FROM tstc WHERE tcode 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-pgmnaProgram name!
        MOVEtadir-devclass TO v_devclassPackage
        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.
            MOVEtadir-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 '(001),
                20(20p_tcode,
                45(50tstct-ttext.
        SKIP.
        IF NOT jtab[] IS INITIAL                              IF 2
          WRITE/(95sy-uline.
          FORMAT COLOR COL_HEADING INTENSIFIED ON.
        Exit:
          IF exit 'X'.
            WRITE/1  sy-vline,
                     'Exit Name',
                    22 sy-vline ,
                    23 'Description',
                    95 sy-vline.
        BADI:
          ELSE.
            WRITE/1  sy-vline,
                     'BADI Name',
                    22 sy-vline ,
                    23 'Description',
                    95 sy-vline.
          ENDIF.
          WRITE:/(95sy-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,
                       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,
                       jtab-obj_name HOTSPOT ON,
                      22 sy-vline ,
                      23 sxs_attrt-text,
                      95 sy-vline.
            ENDIF.
          ENDLOOP.
          WRITE/(95sy-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(4EQ '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.
        CLEARbdcdata_wabdcdata_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.
    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    java中<> 的用法
    Java 中 compareTo方法问题
    class AClass<E extends Comparable>与class AClass<E extends Comaprable<E>>有什么区别?
    zookeeper常用命令
    Storm概念讲解和工作原理介绍
    Storm集群安装部署步骤【详细版】
    Error contacting service. It is probably not running.
    Exception in thread "main" expected '<document start>', but found BlockMappingStart in 'reader', line 23, column 2: nimbus.host: "master"
    zookeeper 启动失败 BindException: Address already in use 或者Error contacting service. It is probably not running
    scss的安装使用
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802189.html
Copyright © 2011-2022 走看看