zoukankan      html  css  js  c++  java
  • SMOD和CMOD

    原文:http://blog.sina.com.cn/s/blog_45f2f8670100hm99.html

    1、关于增强的简单介绍
    1.1 SMOD包含具体的增强,而CMOD是包含一组SMOD编写的增强.
    1.2 User exits (Function module exits)是sap提供出口,它的命名规则如下:
                 EXIT_>program name<>3 digit suffix<</font>
                 示例:
                 创建设备主数据的Tcode是IE01,对应的程序是SAPMIEQ0,进入程序,点击编辑->查找,你会在程序里查到(用CALL CUSTOMER-FUNCTION字符串)如下代码:

     CALL CUSTOMER-FUNCTION '001'
           EXPORTING
                ACTIVITY_TYPE           = ACTIVITY_TYPE
                DATA_EQUI               = EQUI
                DATA_EQKT               = EQKT
                DATA_EQUZ               = EQUZ
                DATA_ILOA               = ILOA
                MAIN_CLASS              = RM63E-KLASSE
           IMPORTING
                UPDATE_DATA_EQ          = UPDATE_DATA_EQ
                UPDATE_FLAGS_EQ         = UPDATE_FLAGS_EQ
                UPDATE_DATA_EZ          = UPDATE_DATA_EZ
                UPDATE_FLAGS_EZ         = UPDATE_FLAGS_EZ
           EXCEPTIONS
                POSTING_NOT_ALLOWED     = 1
                POSTING_NOT_ALLOWED_EXT = 2
                OTHERS                  = 3.
    则exit calls function module的名称就是: EXIT_ SAPMIEQ0_001
     

    2、先试用SMOD建立一个SAP增强
    2.1、选择一个增强,如:IEQM0003,点击修改,进入sap增强维护屏幕;
    2.2、点击"组件"按钮,进入组件维护屏;
    2.3、将光标移到"功能模块名",输入模块名,如:EXIT_SAPMIEQ0_001;
    2.4、选择"代码修改"按钮进入函数模块;
    2.5、双击函数模块的include单元,进入include单元加入自定义代码并激活保存;
    3、使用CMOD建立增强项目
    3.1、输入自定义的项目名,点击"创建";
    3.2、进入增强项目,选择"配置增强",进入增强配置屏幕;
    3.3、输入增强名如:IEQM0003
    3.4、保存,并退出;
    4、使用CMOD将增强项目激活,便大工告成。
    如何查找
    *判断是否存在相应增强的定义(SMOD)
    select single name from modsapa into mod0-name
    where name = 'PPCO0002'.
    if sy-subrc = 0.
    endif.
    select single * from tadir into ps_tadir_db
    where pgmid = 'R3TR'
    and object = 'SMOD'
    and obj_name = 'PPCO0002'.
    *判断是否存在相应增强项目的定义(CMOD)
    SELECT SINGLE name FROM MODATTR into mod0-name
    WHERE NAME = 'PPCO0002'..
    *提取增强的定义的组件 (可以用此反查增强定义)
    select * from modsap
    where name = 'PPCO0002'.
    *判断该增强是否移植到BADI实现
    *Enhancement & has already been migrated in Business Add-In definition
    select single migrated badi_def into (migrated, exit_name)
    from modsapa where name = modname.
    if sy-subrc = 0 and migrated = seex_true.
    message s621 with modname exit_name.
    check mode ne 'CHAM'.
    endif.
    MODTYP 类型:
    E : 功能退出
    S : 屏幕
    T : 表
    C : GUI代码
    sap增强存在MODSAP表内
    *获取增强组件的参见函数MOD_SAP_MEMBER_TEXT
    *获得退出功能模块的信息
    select single * from tftit
    where "SPRAS" = '1' AND "FUNCNAME" = 'EXIT_SAPLCORE_001'
    if sy-subrc = 0.
    endif.
    *值得学习的函数
    MOD_KUN_ACTIVATE(会操作相关报表)
    http://blog.sina.com.cn/sapliumeng
  • 相关阅读:
    Golang 连接Kafka
    Go tail库
    Kubernetes busybox nslookup问题
    数据结构与算法之美 06 | 链表(上)-如何实现LRU缓存淘汰算法
    python 中model.py详解
    解决 python No migrations to apply 无法生成表
    django的使用INNODE的方式,排除错误MySQL Strict Mode is not set for database connection 'default'
    IndentationError: unindent does not match any outer indentation level
    Mac中 pip3 install mysqlclient 报错
    mac下如何搭建python开发环境
  • 原文地址:https://www.cnblogs.com/senlinmu110/p/3802234.html
Copyright © 2011-2022 走看看