1、1、物料主数据增强(MM01/MM02/MM03) 目的:SAP标准字段不够使用,利用屏幕增强增加字段,以便用户输入内容并保存至自定义表中。 1.1 SE11创建如下表(我们暂且称之谓ADD-ON表) 如图1.1-1: 图1.1-1 1.2 创建定制子屏幕的程序 Tcode:spro,后勤-常规->物料主数据->配置物料主记录->创建定制子屏幕的程序 进去之后填写一个新的函数组,如图1.2-1: 图1.2-1 保存后生成函数组Z_FG2,另外会生成程序(SAPL+函数组名)SAPLZ_FG2,该程序名会在分配屏幕号的时候使用。 1.3 SE80定义函数组 se80
2、>function group->Z_FG2,我们会看到已有了两个屏幕和两个include.如图1.3-1: 图1.3-1 双击屏幕0001,添加三个Module,编辑如图1.3-2: 图1.3-2 module disable_field:通过判断TCODE,如果是MM03,则自定义字段为只读, module get_data:读取ADD-ON表中相应物料的数据,在自定义屏幕中显示出来。 module assign_data:将自定义屏幕中各字段的值传入内存ID中,以便保存时调用。各模块代码如下(新建这几个module时不用再创建新的include,放到LZ_FG2TO
3、P中即可): *&------------------------------------------------------------------- *& Module DISABLE_FIELD OUTPUT *&------------------------------------------------------------------- * text *-------------------------------------------------------------------- MODULE DISABLE_FIELD OUTPU
4、T. IF SY-TCODE = 'MM03'. LOOP AT SCREEN. SCREEN-INPUT = '0'. MODIFY SCREEN. ENDLOOP. ENDIF. ENDMODULE. " DISABLE_FIELD OUTPUT *&------------------------------------------------------------------- *& Module GET_DATA OUTPUT *&------------------
5、 * text *-------------------------------------------------------------------- MODULE GET_DATA OUTPUT. TABLES:ZPARTAPPEND. DATA: F1 LIKE ZPARTAPPEND-F1, F2 LIKE ZPARTAPPEND-F2, W_MATNR TYPE MATNR. IF SY-TCODE = 'MM02
6、' OR SY-TCODE = 'MM03'. GET PARAMETER ID 'MAT' FIELD W_MATNR. SELECT SINGLE * FROM ZPARTAPPEND WHERE MATNR = W_MATNR. F1 = ZPARTAPPEND-F1. F2 = ZPARTAPPEND-F2. ENDIF. ENDMODULE. " GET_DATA OUTPUT *&------------------------------------------------------------
7、 *& Module ASSIGN_DATA INPUT *&------------------------------------------------------------------- * text *-------------------------------------------------------------------- MODULE ASSIGN_DATA INPUT. ZPARTAPPEND-F1 = F1. ZPARTAPPEND-F2 = F2. EXPORT ZPARTAPPEND TO
8、MEMORY ID 'ZPARTAPPEND'. ENDMODULE. " ASSIGN_DATA INPUT 1.4 屏幕界面设计 在屏幕界面点'格式'进行屏幕定义,定义屏幕如图1.4-1,这里我们只用到部分字段。这两个可编辑框名称分别为:F1,F2。 图1.4-1 屏幕设计完后保存并激活函数组Z_FG2。 1.5 CMOD创建增强 T-CODE:CMOD,使用出口MGA00001(在增强分配中配置)(物料主数据,不同的模块都有系统自带的出口,可参考SAP系统出口汇总)。如图1.5-1、图1.5-2、图1.5-3,进去后再双击 includ
9、e ZXMG0U02.增强代码如图1.5-4: 图1.5-1 这里ZMM01已经存在,所以点击更改,如果不存在,点击创建。 图1.5-2 图1.5-3 图1.5-4 如图1.5-4,添加处理代码,用以保存主数据修改后保存到自建表中。代码如下: TABLES ZPARTAPPEND. IF SY-UCOMM = 'BU' OR SY-UCOMM = 'YES'. IMPORT ZPARTAPPEND FROM MEMORY ID 'ZPARTAPPEND'. ZPARTAPPEND-MATNR = CMARA-MATNR. MODIFY ZPAR
10、TAPPEND FROM ZPARTAPPEND. ENDIF. 1.6 分配屏幕到主数据的视图中-路径 T-CODE:spro,后勤-常规->物料主数据->配置物料主记录->定义每个屏幕序列的数据屏幕的结构 再按图1.6-1,图1.6-2进行操作。 图1.6-1 本实例把新增的屏幕放到“基本数据2”视图中,所以参考图1.6-2操作: 图1.6-2 1.7 分配屏幕到主数据的视图中-实现 在下图中输入前面创建的函数组对应的程序名(SAPLZ_FG2)及屏幕编号(0001),如图1.7-1,之后点保存,保存时如果需要就创建请求,直至保存成成功: 图1.7-1 1.8 MM03测试效果 如图1.8-1: 图1.8-1 添加成功。 1.9 MM02测试效果 如图1.9-1(修改),图1.9-2(修改结果): 图1.9-1 图1.9-2






