`
Jack Wu
  • 浏览: 891621 次
  • 来自: ...
社区版块
存档分类
最新评论

如何使用SMOD和CMOD进行SD的用户增强

阅读更多

1、关于增强的简单介绍
1.1 SMOD包含具体的增强,而CMOD是包含一组SMOD编写的增强. 
1.2 User exits (Function module exits)是sap提供出口,它的命名规则如下:
EXIT_<program name><3 digit suffix> 
示例:
sd的VA01事务,对应的程序是SAPMV45A ,你会在程序里查到(用CALL CUSTOMER-FUNCTION字符串)如下代码:
CALL CUSTOMER-FUNCTION '003'
  exporting
    xvbak   = vbak
    xvbuk   = vbuk
    xkomk   = tkomk
  importing
    lvf_subrc = lvf_subrc
  tables
    xvbfa = xvbfa
    xvbap = xvbap
    xvbup = xvbup.
则exit calls function module的名称就是: EXIT_SAPMV45A_003


2、先试用SMOD建立一个SAP增强
2.1、选择一个增强,如:SDVFX001 ,点击修改,进入sap增强维护屏幕;
2.2、点击“组件”按钮,进入组件维护屏;
2.3、将光标移到“功能模块名”,输入模块名,如:EXIT_SAPLV60B_001;
2.4、选择“代码修改”按钮进入函数模块;
2.5、双击函数模块的包含单元,进入包含单元加入自定义代码并激活保存;

3、使用CMOD建立增强项目
3.1、输入自定义的项目名,点击“创建”;
3.2、进入增强项目,选择“配置增强”,进入增强配置屏幕;
3.3、输入增强名如:SDVFX001
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.csdn.net/compassbutton/archive/2007/03/19/1533453.aspx

http://blog.csdn.net/CompassButton/archive/2005/02/05/281437.aspx



分享到:
评论

相关推荐

    smod与cmod区别

    从提供的信息来看,“smod”和“cmod”这两个词汇并未给出明确的定义或背景信息,因此这里我们将基于可能的上下文进行分析。考虑到“smod”与“cmod”可能是指特定编程语言中的函数或命令、操作系统中的模块类型或是...

    SAP增强CMOD和SMOD用法和区别

    CMOD(Control Module)和SMOD(Submodule)是SAP提供给开发人员进行增强的两种主要技术,它们都属于ABAP Workbench的一部分。理解这两种增强方式的用法和区别对于有效地定制SAP系统至关重要。 1. CMOD(Control ...

    ABAP SMOD/CMOD

    在ABAP开发中,SMOD(模块)和CMOD(客户端可变模块)是常见的增强工具,它们为开发人员提供了灵活的方式来扩展标准SAP应用程序的功能。SMOD允许开发人员在不修改原始程序的情况下添加自定义逻辑,而CMOD则允许...

    [SAP ABAP开发技术总结]ABAP Enhancement(增强)详解

    用户出口子程序所能使用的数据变量 VA01增强示例 第二代:基于函数出口增强(Function) SMOD与CMOD的区别 查找出口函数 根据出口函数查找对应的出口对象 出口对象激活(SMOD) 增强详细说明文档 示例:通过出口实现...

    BADI&user_exit

    三、如何使用SMOD和CMOD进行SD的用户增强 1. 关于增强的简单介绍 SMOD包含具体的增强,而CMOD是包含一组SMOD编写的增强。User exits(Function module exits)是sap提供的出口,它的命名规则如下:EXIT_...

    SAP 开发 SD 相关的增强BADI.pdf

    在实现BADI时,开发者还可以使用SMOD和CMOD来组织和管理增强。SMOD包含具体的增强点,而CMOD则包含一组相关的SMOD,这样可以使增强的管理更为系统化和结构化。用户退出(User exits)的命名规则通常遵循EXIT_...

    ABAP 增强详解.docx

    - 需要使用SMOD(System Modification)和CMOD(Customer Modification)事务码来进行维护。 - 在程序中通过调用`CALL CUSTOMER-FUNCTION`来触发这些增强函数。 **查找方法**: 1. **通过程序代码查找**:在程序...

    ABAP如何快速寻找增强

    此外,SMOD和CMOD也可以用于管理和激活增强。在SMOD中,你可以激活增强,而在CMOD中,你可以创建和激活包含增强逻辑的自定义程序,例如ZXF48U01。 请注意,为了使增强生效,不仅需要激活增强本身,还需要激活对应的...

    smod-v1.0.4.zip

    在使用smod进行渗透测试时,首先要理解Modbus协议的基本原理,包括其功能码、寄存器类型以及数据传输格式。然后,根据工控系统的具体情况,选择合适的测试策略,这可能包括但不限于以下几点: - **权限提升测试**:...

    SAP增强查找

    在这种增强方式中,SAP提供了一个叫CUSTOMER-FUNCTION的函数模块,用户可以通过SMOD和CMOD事务码来实现和维护增强。这类增强无需对象键,直接双击相关包含文件并编写代码即可。增强后的函数模块仅能使用接口传递的...

    [SAP ABAP开发技术总结]ABAP Enhancement:第一部分

    用户出口子程序所能使用的数据变量 VA01增强示例 第二代:基于函数出口增强(Function) SMOD与CMOD的区别 查找出口函数 根据出口函数查找对应的出口对象 出口对象激活(SMOD) 增强详细说明文档 示例:通过出口实现...

    [SAP ABAP开发技术总结]ABAP Enhancement:第二部分

    用户出口子程序所能使用的数据变量 VA01增强示例 第二代:基于函数出口增强(Function) SMOD与CMOD的区别 查找出口函数 根据出口函数查找对应的出口对象 出口对象激活(SMOD) 增强详细说明文档 示例:通过出口实现...

    SAP增强总结

    在进行增强时,还需注意一些细节,比如在传输增强请求时,为了便于管理和维护,通常建议使用CMOD将创建好的SMOD封装起来后再进行传输。 此外,SAP还在不断地更新其增强技术,从早期的UserEXIT到现在的BADI,每一代...

    ABAP 开发技巧

    最后,ABAP面试题涵盖了许多这些主题,如屏幕处理、数据库操作、用户出口使用和优化技巧,这些都是衡量开发者技能的重要标准。理解和熟练应用这些知识点,能够提升ABAP程序员的效率和代码质量。

    SAP找增强方法

    SAP ABAP增强还包括增强点和增强段,它们提供了一种更现代的、结构化的增强方式。用户可以在增强点上添加增强段,这些增强在运行时会自动插入到标准流程中。 在实施SAP增强时,应始终优先考虑使用BADI、BTE和其他...

    ABAP增强发展历史

    随着SAP系统的演进,第二代增强引入了SMOD和CMOD,使得开发者可以通过调用预定义的函数模块来实现增强。这一代增强的函数模块名称通常以“Exit_程序名_三位数字”形式表示。与第一代增强不同,这些增强不需要ACCESS ...

    smod-master (1).zip

    Smod是一个模块化的Modbus渗透测试框架,可以用来测试Modbus协议所需的各种诊断和攻击功能。这是一个使用Python和Scapy的完整的Modbus协议实现。这个软件可以在python 2.7.x下的Linux / OSX上运行。 近年来,Summery...

    ABAP增强的使用

    第二代增强技术通过使用自定义函数模块(Customer-Function),也就是在SAP的事务代码SMOD(定义修改)和CMOD(客户修改)中实现。自定义函数模块允许开发者创建独立的ABAP函数模块,这些模块与SAP的事件处理系统...

Global site tag (gtag.js) - Google Analytics