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技术的发展,如使用BADI(Business Add-In)、LUM(Legacy User Exit Manager)等现代增强手段,CMOD和SMOD的使用逐渐减少,但在很多老系统的维护中,理解和掌握这些传统增强技术仍然很重要。
SAP增强BADI UserExit CustomerExit SAP增强BADI UserExit CustomerExit是SAP系统中的一种扩展机制,通过预留的Form/Subroutine,allowing开发者在系统中添加自己的逻辑。这种机制分为三种类型:User Exits、...
BADI&User Exit BADI(Business Add-In)和User Exit是SAP系统中两个重要的概念,它们都是用于增强SAP标准程序的功能。今天,我们将深入了解BADI和User Exit的概念、类型、使用场景和实现方法。 一、什么是User ...
这种方式需要修改SAP的标准代码,用户可以根据自己的业务需求在特定位置插入代码,这种方式通常称之为USEREXIT。例如,在SAP中会看到以USEREXIT打头的子程序代码。 2. 第二代用户出口: SAP提供的第二种增强方式是...
在这些模块中,查找以`userexit_`开头的子程序,它们是专门为用户出口预留的。例如,当你需要在销售订单处理中添加自定义逻辑时,可以在SAPMV45A的代码中找到相关的用户出口。 2. **模块池用户出口**(CMOD/SMOD)...
1. 打开欲增强的程序,点击工具栏上的“Display Object List”按钮,选择Subroutines,查找以“UserExit”开头的子程序,根据子程序前面的注释文档来查找用户出口 二代增强常用的查找方法: 1. 通过函数MODX_...
**示例**:在销售订单处理流程中,通过在包含程序MV45AFZZ中的子程序USEREXIT_SAVE_DOCUMENT_PREPARE中添加逻辑,可以在销售订单保存前进行额外的验证,比如检查订单类型是否为特定值,并确保订单编号已填写。...
* 这些子过程通常以UserExit_开头,存储在包含程序中(例如SAPMV45A中的MV45ATZZ、MV45AOZZ等)。 * 要找到相关的出口Form源代码,需要在主程序中搜索UserExit_关键字。 * 在修改这些子过程之前,需要到Service ...
此外,SAP还在不断地更新其增强技术,从早期的UserEXIT到现在的BADI,每一代增强都在逐步优化增强的管理和实施过程,使得SAP系统的定制化更加高效和易于管理。通过以上方法和工具的应用,SAP用户可以灵活地在标准SAP...
SMOD类似于CMOD,也是直接修改标准SAP源代码,但通常用于较小的、临时的调整。与CMOD一样,SMOD也存在升级风险,因为每次系统更新都可能覆盖所做的修改,所以它现在也被视为过时的增强手段。 3. **BADI(Business ...
第二代增强技术通过使用自定义函数模块(Customer-Function),也就是在SAP的事务代码SMOD(定义修改)和CMOD(客户修改)中实现。自定义函数模块允许开发者创建独立的ABAP函数模块,这些模块与SAP的事件处理系统...
**步骤3**:确定具体的用户出口后,可以通过事务代码`CMOD`来查找该用户出口。输入事务代码后,在弹出的屏幕中选择相应的组件(Component),然后输入事务代码或程序名,点击执行。 **步骤4**:在搜索结果中找到...
寻找这类增强的常用方法包括搜索“USEREXIT_”开头的子程序,或者在后台配置中找到相关的模块路径。 第二代增强(基于函数模块的增强) 随着SAP系统的演进,第二代增强引入了SMOD和CMOD,使得开发者可以通过调用...
在ABAP开发中,用户出口(User Exit)是一种允许开发者扩展标准SAP系统功能的关键机制。用户出口是在标准SAP程序中预定义的点,开发者可以通过编写自定义代码来干预这些点,以满足特定的业务需求。以下是关于用户...
例如:USEREXIT.. in SAPMV45A. 2. 第二代BADI:第二代BADI是SAP提供的CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现。参见我的blog.csdn.net/CompassButton/archive/2006/08/31/1150258.aspx 3. 第三代BADI:第...
- **User Exit**:用户出口,允许在特定的业务流程中添加自定义代码。 #### 常用事务代码(TCODE) 事务代码是SAP系统中用于执行特定任务的命令,以下是一些常用的事务代码及其功能描述: - **ABAPDOCU**:ABAP文档...
- **User Exit (用户出口)**:允许客户自定义特定的功能点。 - **Tree Control (树形控件)**:用于创建树状结构的界面。 - **数据字典**:存储SAP系统中所有数据对象的元数据。 - **逻辑库 (Logical Database)**:...