zoukankan      html  css  js  c++  java
  • 如何查找事务代码所在程序的用户出口(userexit)

    方法一:
    1。 执行tcode --> system --> status,找出程序名称。
    2。SE80;输入第一步中找到的程序名称。用菜单:GOTO --> Attributes,找出Package 名称。(注:也可以用SE93,查这个程式所在的Package)
    3。 SE80 --> Repository Information System --> Enhancements --> Customer Exits --> Enhancements -->将第二步中找到的Package 名称输入,执行,就可以找到tcode的所有用户出口。

    方法二:
    编写ABAP程序,代码如下:
    ===========================================================
    作者: qiujun(http://qiujun.itpub.net) 谢谢作者
    发表于:2007.10.23 17:01
    分类: ABAP
    出处:http://qiujun.itpub.net/post/24006/407469
    ---------------------------------------------------------------
    TABLES : tstc, "SAP Transaction Codes(SAP 事务代码)
    tadir, "Directory of Repository Objects(资源库对象的目录)
    modsapt, "SAP Enhancements - Short Texts(SAP增强-短文件)
    modact, "Modifications(修正)
    trdir, "System table TRDIR(系统表 TRDIR)
    tfdir, "Function Module(功能模块)
    enlfdir, "Additional Attributes for Function Modules(功能模块的附加属性)
    tstct. "Transaction Code Texts(事务代码文本)

    DATA : jtab LIKE tadir OCCURS 0 WITH HEADER LINE.
    DATA : field1(30).
    DATA : v_devclass LIKE tadir-devclass.

    SELECTION-SCREEN BEGIN OF BLOCK a01 WITH FRAME TITLE text-001.
    SELECTION-SCREEN SKIP.
    PARAMETERS : p_tcode LIKE tstc-tcode OBLIGATORY.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN END OF BLOCK a01.


    START-OF-SELECTION.
    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 = 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:/(12) '事务代码 - ',
    13(20) p_tcode,
    34(10) '功能 - ' ,
    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.
    DESCRIBE TABLE jtab.
    SKIP.
    FORMAT COLOR COL_TOTAL INTENSIFIED ON.
    WRITE:/ '用户出口数量:' , sy-tfill.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(95) '此TCode没有用户出口!'.
    ENDIF.
    ELSE.
    FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
    WRITE:/(95) '事务代码不存在!'.
    ENDIF.

    AT LINE-SELECTION.
    GET CURSOR FIELD field1.
    CHECK field1(4) EQ 'JTAB'.
    SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
    CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
  • 相关阅读:
    Sql Server数据库使用触发器和sqlbulkcopy大批量数据插入更新
    树莓派安装系统
    ubuntu设置ulimit
    aws申请ec2实例后如何用root用户登录
    python-redis
    Windows Server多用户同时远程登录
    ansible-常用模块
    ansible安装-本机测试
    cmdb实现三种方式
    linux-crond_计划任务
  • 原文地址:https://www.cnblogs.com/elegantok/p/1335649.html
Copyright © 2011-2022 走看看