`

cmod smod user exit

阅读更多
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(会操作相关报表)
分享到:
评论

相关推荐

    SAP增强CMOD和SMOD用法和区别

    同时,随着SAP技术的发展,如使用BADI(Business Add-In)、LUM(Legacy User Exit Manager)等现代增强手段,CMOD和SMOD的使用逐渐减少,但在很多老系统的维护中,理解和掌握这些传统增强技术仍然很重要。

    sap 增强 badi userexit customerexit

    SAP增强BADI UserExit CustomerExit SAP增强BADI UserExit CustomerExit是SAP系统中的一种扩展机制,通过预留的Form/Subroutine,allowing开发者在系统中添加自己的逻辑。这种机制分为三种类型:User Exits、...

    BADI&user_exit

    BADI&User Exit BADI(Business Add-In)和User Exit是SAP系统中两个重要的概念,它们都是用于增强SAP标准程序的功能。今天,我们将深入了解BADI和User Exit的概念、类型、使用场景和实现方法。 一、什么是User ...

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

    这种方式需要修改SAP的标准代码,用户可以根据自己的业务需求在特定位置插入代码,这种方式通常称之为USEREXIT。例如,在SAP中会看到以USEREXIT打头的子程序代码。 2. 第二代用户出口: SAP提供的第二种增强方式是...

    SAP用户出口的找法

    在这些模块中,查找以`userexit_`开头的子程序,它们是专门为用户出口预留的。例如,当你需要在销售订单处理中添加自定义逻辑时,可以在SAPMV45A的代码中找到相关的用户出口。 2. **模块池用户出口**(CMOD/SMOD)...

    SAP增强课件SAP增强课件

    1. 打开欲增强的程序,点击工具栏上的“Display Object List”按钮,选择Subroutines,查找以“UserExit”开头的子程序,根据子程序前面的注释文档来查找用户出口 二代增强常用的查找方法: 1. 通过函数MODX_...

    ABAP 增强详解.docx

    **示例**:在销售订单处理流程中,通过在包含程序MV45AFZZ中的子程序USEREXIT_SAVE_DOCUMENT_PREPARE中添加逻辑,可以在销售订单保存前进行额外的验证,比如检查订单类型是否为特定值,并确保订单编号已填写。...

    ABAP增强 基础 详解 PDF

    * 这些子过程通常以UserExit_开头,存储在包含程序中(例如SAPMV45A中的MV45ATZZ、MV45AOZZ等)。 * 要找到相关的出口Form源代码,需要在主程序中搜索UserExit_关键字。 * 在修改这些子过程之前,需要到Service ...

    SAP增强总结

    此外,SAP还在不断地更新其增强技术,从早期的UserEXIT到现在的BADI,每一代增强都在逐步优化增强的管理和实施过程,使得SAP系统的定制化更加高效和易于管理。通过以上方法和工具的应用,SAP用户可以灵活地在标准SAP...

    SAP找增强方法

    SMOD类似于CMOD,也是直接修改标准SAP源代码,但通常用于较小的、临时的调整。与CMOD一样,SMOD也存在升级风险,因为每次系统更新都可能覆盖所做的修改,所以它现在也被视为过时的增强手段。 3. **BADI(Business ...

    ABAP增强的使用

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

    找SAP的用户出口 标准文档

    **步骤3**:确定具体的用户出口后,可以通过事务代码`CMOD`来查找该用户出口。输入事务代码后,在弹出的屏幕中选择相应的组件(Component),然后输入事务代码或程序名,点击执行。 **步骤4**:在搜索结果中找到...

    ABAP增强发展历史

    寻找这类增强的常用方法包括搜索“USEREXIT_”开头的子程序,或者在后台配置中找到相关的模块路径。 第二代增强(基于函数模块的增强) 随着SAP系统的演进,第二代增强引入了SMOD和CMOD,使得开发者可以通过调用...

    ABAP开发笔记-用户出口

    在ABAP开发中,用户出口(User Exit)是一种允许开发者扩展标准SAP系统功能的关键机制。用户出口是在标准SAP程序中预定义的点,开发者可以通过编写自定义代码来干预这些点,以满足特定的业务需求。以下是关于用户...

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

    例如:USEREXIT.. in SAPMV45A. 2. 第二代BADI:第二代BADI是SAP提供的CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现。参见我的blog.csdn.net/CompassButton/archive/2006/08/31/1150258.aspx 3. 第三代BADI:第...

    ABAP开发环境和总体介绍

    - **User Exit**:用户出口,允许在特定的业务流程中添加自定义代码。 #### 常用事务代码(TCODE) 事务代码是SAP系统中用于执行特定任务的命令,以下是一些常用的事务代码及其功能描述: - **ABAPDOCU**:ABAP文档...

    从实例学SAP_ABAP编程_清晰扫描版

    - **User Exit (用户出口)**:允许客户自定义特定的功能点。 - **Tree Control (树形控件)**:用于创建树状结构的界面。 - **数据字典**:存储SAP系统中所有数据对象的元数据。 - **逻辑库 (Logical Database)**:...

Global site tag (gtag.js) - Google Analytics